首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 218 毫秒
1.
基于事务性执行的投机并行多线程是一种适合未来多核微处理器架构的新型并行程序设计和编译技术.但在此基础上的并行程序执行过程更为复杂,程序执行过程的模拟成为关键问题之一.本文提出利用二进制代码级动态插桩技术对投机并行多线程程序进行功能性模拟,设计并实现了完整的软件平台,可精确地模拟和监控并行程序的线程级投机执行过程,检测访存冲突,从而实现投机并行多线程的语义.该软件平台同时可以作为进一步研究投机多线程并行程序真实执行过程的基础,并有效支持投机并行多线程编译器的设计和分析.  相似文献   

2.
确定性并行技术   总被引:1,自引:0,他引:1  
由于执行个体之间的同步、竞争和干扰,并行程序的执行存在着不确定性问题,即程序在相同输入下多次执行可能得到不同的结果.不确定性给并行程序在开发、调试、测试、容错和安全等方面都带来了挑战,严重降低了并行程序的可靠性,阻碍了并行程序的发展.确定性并行技术通过控制并行程序执行个体间的同步、竞争和干扰,使程序的执行结果仅依赖于输入.确定性并行技术能够从根本上解决了目前并行程序存在的诸多问题,提升了并行程序的可靠性,给并行程序的发展带来了新的机遇.文中调查、分析和比较了目前主流的确定性并行技术和方法,分析了弱内存一致性对确定性并行系统的影响,并对未来确定性并行技术的发展趋势做出了展望.  相似文献   

3.
针对电负载系统程序在顺序执行时,CPU利用率低且容易阻塞等问题,提出了利用LabWindows/CVI的多线程技术,建立独立的线程池线程分别用于数据采集和数据处理的方法.用多线程的方法解决了程序任务堵塞和资源利用率低的问题,提高了整体性能和系统的可靠性、稳定性.同时利用线程安全队列TSQ在线程间传递数据解决了数据同步的...  相似文献   

4.
现代操作系统中的多线程技术及其应用   总被引:1,自引:0,他引:1  
多处理器计算机系统的出现,并发多进程并行通信和同步上的困难,需要多线程来解决,多线程应用在适当的环境中可以大大提高程序的性能,本文对现代操作系统中的多线程技术和线程的私有数据进行了讨论,并以例程说明了多线程编程及其应用。  相似文献   

5.
周广川 《现代计算机》2011,(3):28-30,47
对多线程应用程序进行调试是一项具有挑战性的任务。多线程应用程序采用的互斥、同步技术使得调试时查看程序运行状态变得困难,线程的时序和多个线程间的交叉执行增加了程序调试的复杂性。采用适用于调试多线程应用程序的通用技术,并结合Visual Studio调试器提供的工具可以有效调试多线程应用程序。  相似文献   

6.
多线程是Java语言的重要特点之一,但是Java语言的线程调度是由操作系统来完成的,开发人员无法获知各线程的具体执行情况,而常规的软件调试工具对线程的分析会对目标程序有较大的干扰。该文利用基干事件的混合监测系统MS-3,对Java多线程程序的各线程行为进行了精确的分析。  相似文献   

7.
多线程技术是实现需要并发执行的应用程序的较好选择,具有不可替代的作用.文中介绍了进程、线程以及应用程序域的概念及其相互之间的关系,讨论了Visual Basic.NET对多线程的支持.并从线程的创建与管理、线程取消、线程的优先级、线程的状态、线程池、线程的同步等方面展示了如何使用多线程编程技术来创建多线程应用程序.每个线程都需要资源,创建的线程过多,反而会降低应用程序的性能.在设计多线程应用程序时,应慎重对待,建立合理的系统模型,才能使应用程序获得最佳的性能.  相似文献   

8.
线程处理使C#程序能够执行并发处理,以便可以同时执行多个操作。描述了线程状态,阐述了利用C#进行程序设计时线程同步数据处理的几种方式:使用监视器来同步变量的访问、使用事件来同步线程和使用Mutex同步多个对象并避免锁死,多线程同步数据处理方法能避免多线程数据处理时出现的线程同步错误.  相似文献   

9.
王科特  王力生 《计算机应用》2011,31(10):2593-2596
为解决多核环境下,信号采集系统的数据处理实时性问题,提高波形数据采集和数据显示速度,提出使用裸线程构建数据采集模块和数据处理模块的最佳线程分配数量的最优线程分配算法,其目的在于合理分配线程给各个模块,达到系统的最佳性能。该算法基于生产者-消费者模式、操作系统多线程时间片轮转调度策略,根据各模块的工作量酌情调节线程比例,使应用程序达到最高加速比。实验表明,在双核环境下,该最佳线程数算法计算出最佳线程组合,使采集波形数据和数据显示合理并行化,相对于其他的线程组合分配方式完成程序花费的时间更少,提高了系统加速比、运算性能以及实时性。通过最优线程分配算法,提供了最优的线程数量分配方案,提高并行程序执行效率,减少了不必要的线程开销,提高了波形信号采集实时性。  相似文献   

10.
欧广宇  邓桂英 《微机发展》2004,14(11):101-103
多线程技术是实现需要并发执行的应用程序的较好选择,具有不可替代的作用。文中介绍了进程、线程以及应用程序域的概念及其相互之间的关系,讨论了VisualBasic.NET对多线程的支持。并从线程的创建与管理、线程取消、线程的优先级、线程的状态、线程池、线程的同步等方面展示了如何使用多线程编程技术来创建多线程应用程序。每个线程都需要资源,创建的线程过多,反而会降低应用程序的性能。在设计多线程应用程序时,应慎重对待,建立合理的系统模型,才能使应用程序获得最佳的性能。  相似文献   

11.
支持多核并行程序确定性重放的高效访存冲突记录方法   总被引:2,自引:0,他引:2  
多核系统中并行程序执行过程的不确定性给程序调试带来了很大的困难.准确记录初始执行中冲突访存的次序是并行程序确定性重放的基础.提出了通过建立精确happens-before关系记录访存冲突的方法.此方法利用简洁高效的地址冲突检测机制确定冲突访存操作在执行中所处happens-before序关系的位置,可以抑制部分记录信息的产生,从而有效减少记录信息.与其他方式方法相比,可以进一步压缩17%的记录条数.采用逻辑向量时钟描述冲突访存操作间的happens-before关系,与采用标量时钟相比,可以避免happens-before关系的误识,降低重放执行时并行度的损失.  相似文献   

12.
一种基于检查点的并行程序调试器的设计与实现   总被引:4,自引:1,他引:4  
为支持大规模长时间运行并行程序的调试,有必要将检查点机制引入到并行程序调试器中,检查点设置与卷回应用中需要解决中途消息,孤儿消息和多米诺效应,活锁4个问题,并行程序调试中需要解决不确定性问题,提出的基于状态冻结的确定性检查点设置方法,可以避免检查点应用中孤儿消息和多米诺效应,活锁3个问题,通过消化记录的方法处理中途消息问题,采用记录/重放方法解决并行调试中的不确定性问题,基于状态冻结的确定性检查点设置方法,有效地解决了并行程序调试器和检查点结合时产生的诸多问题,该方法具有结构清晰,易于实现的优点,基于此技术,设计并实现了一个并行调试工具-DENNET。  相似文献   

13.
Trends in modern multicore architecture design requires software developers to develop and debug multithreaded programs. Consequently, software developers must face new challenges because of bug patterns occurring at runtime and due to the non-deterministic behavior of multi-threaded program executions. This calls for new defect-localization techniques. There has been much work in the field of defect localization for sequential programs on the one side and on the localization of specific multithreading bugs on the other side, but we are not aware of any general technique for multithreaded programs. This paper proposes such an approach. It generalizes data mining-based defect-localization techniques for sequential programs. The techniques work by analyzing call graphs. More specifically, we propose new graph representations of multithreaded program executions as well as two mining-based localization approaches based on these representations. Our evaluation shows that our technique yields good results and is able to find defects that other approaches cannot localize.  相似文献   

14.
Efficient performance tuning of parallel programs is often hard. Optimization is often done when the program is written as a last effort to increase the performance. With sequential programs each (executed) code segment will affect the completion time. In the case of a parallel program executed on a multiprocessor this is not always true, due to dependencies between the different threads. Thus, certain code segments of the execution may not affect the completion time of the program. Optimization of such code segments will not increase the performance. In this paper we present an approach to optimize performance by finding the extended critical path of the multithreaded program. The extended critical path analysis is a generalization of the critical path analysis in the sense that it also deals with more threads than processors. We have implemented the extended critical path analysis in a performance optimization tool. The tool allows the user to determine the extended critical path of a multithreaded application written for the Solaris operating system for any number of processors based on execution on a single processor workstation.  相似文献   

15.
Synchronous reactive modelling provides an optimal framework for the modular decomposition of programs that engage in complex patterns of deterministic interaction, such as many real-time and communication entities. This paper presents an approach which includes performance modelling techniques in the synchronous reactive modelling method supported by ESTEREL. It defines a methodology based on timing and probabilistic quantitative constructs that complete the synchronous reactive models. A monitoring mechanism allows the computation of performance results during the simulation. This methodology is applied to study a multithreaded runtime system for a distributed functional programming language. Performance metrics are computed and validated with experimental results.  相似文献   

16.
本文介绍了由B.Lester博士研制的并行程序设计学习和研究工具Multi-Pascal。它允许用户在微机上编写和调试不同类型的并行程序,考察并行算法在各种并行计算机系统上的运行效率。  相似文献   

17.
18.
陈诚  郑征  王皓钦  乔禹 《计算机科学》2017,44(11):195-201
并发程序的非确定性使得其调试工作异常困难。基于程序谱的软件缺陷定位方法虽然能够缓解该情况,但其定位结果依赖于调试信息。针对在此过程中难以获得调试信息及如何选择利用调试信息的问题,提出了一种基于测试充分性准则的缺陷定位方法,该方法包括3个部分:预测满足测试充分性准则的条件;制定相应的测试方案;将收集到的调试信息用于缺陷定位分析。依据此方法,用C#语言实现了缺陷定位工具——ConFinder。在含有实际并发缺陷的程序上进行实验,结果表明该方法可以有效找出引起程序失效的原因并且所得结果具有很好的稳定性。  相似文献   

19.
高岚  王锐  钱德沛 《软件学报》2013,24(6):1390-1402
多核处理器并行程序的确定性重放是实现并行程序调试的有效手段,对并行编程有重要意义。但由于多核架构下存在共享访存不同步问题,并行程序确定性重放的研究依然面临多方面的挑战,给并行程序的调试带来很大困难,严重影响了多核架构下并行程序的普及和发展。分析了多核处理器造成并行程序确定性重放难以实现的关键因素,总结了确定性重放的评价指标,综述了近年来学术界对并行程序确定性重放的研究。根据总结的评价指标,从纯软件方式和硬件支持方式对目前的确定性重放方法进行了分析与对比,并在此基础上对多核架构下并行程序的确定性重放未来的研究趋势和应用前景进行了展望。  相似文献   

20.
Multithreaded architectures provide an opportunity for efficiently executing programs with irregular parallelism and/or irregular locality. This paper presents a strategy that makes use of the multithreaded execution model without exposing multithreading to the programmer. Our approach is to design simple extensions to C, and to provide compiler support that automatically translates high-level C programs into lower-level threaded programs. In this paper we present EARTH-C our extended C language which contains simple constructs for specifying control parallelism, data locality, shared variables and atomic operations. Based on EARTH-C, we describe compiler techniques that are used for translating to lower-level Threaded-C programs for the EARTH multithreaded architecture. We demonstrate our approach with six benchmark programs. We show that even naive EARTH-C programs can lead to reasonable performance, and that more advanced EARTH-C programs can give performance very close to hand-coded threated-C programs. This work supported, in part, by NSERC and FCAR.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号