首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
程序调试工作的首要基础是错误可重现,然而并行程序执行过程存在天然的不确定性,尤其在多核处理器上,如何重现并行程序的错误是一个巨大的挑战.现有的方法或记录整个系统的状态或需要细粒度插桩,存在可用性差与运行时开销大等问题.本文首次提出一种基于硬件辅助的面向用户态并行程序的轻量级记录与重放方法,该方法通过软件协助来记录信号、系统调用与操作系统调度相关的序关系;利用硬件记录访存冲突,同时在记录过程中采用基于目录的方法来压缩日志存储.通过在16核模拟平台上评估,本文提出的方法不仅方便了用户态并行程序调试,同时减少了81%的存储日志开销.  相似文献   

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

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

4.
多核程序的执行存在不确定性,内存竞争记录是实现多核程序确定性重演的关键技术.针对现有内存竞争记录机制记录日志较大、重演速度受限等问题,提出了一种新型的循环式点到点内存竞争记录算法.该算法用当前发生序表示内存冲突,用硬件签名实现冲突检测,无需修改原有的cache结构;引入冲突方向检测机制,约减连续同向的当前发生序,记录循环发生序到内存竞争日志.该算法中,内存竞争日志中所记录的任意两线程间的内存竞争呈循环状,大大减少了冗余,并用增量计数器优化循环发生序,更大程度上减小了内存竞争日志.仿真结果表明该算法能够在引入较少硬件资源的前提下有效地减小内存竞争日志.同时,内存竞争日志也具有较好的可扩展性.  相似文献   

5.
为了帮助程序员检测并发程序中的错误,提出了一种重现错并发误场景的方法.使用对Java字节码插装的方法,生成记录和回放版本的程序.在记录程序运行时,自动记录下线程间执行的逻辑循序,同时在程序发生崩溃后自动生成测试用例,这些测试用例运行在回放版本上具有确定性地重现并发错误的能力.实现了一个基于Java程序的原型工具,实验结果表明,该原型具有重现并发程序错误的能力,并且性能开销在一个可接受的范围内.  相似文献   

6.
随着各领域需要处理的数据量越来越大,数据密集型应用也变得越来越被重视.该文提出一种包含数据访存层次和访存冲突等信息的新并行程序执行模型PSRAM(h).针对数据密集型应用以访存为主的特点,PSRAM(h)模型将程序执行时间简化为访存时间,通过分析各程序子段的访存层次和数量来预测串行程序的执行时间,进而通过使用各线程执行时间的最大值来预测并行程序的执行时间.使用PSRAM(h)模型下对最典型的数据密集型应用矩阵向量乘进行分析,在龙芯3A处理器和Intel Xeon E5520处理器两个平台上的测试结果表明,PSRAM(h)模型分析结果与实测结果大部分情况下误差小于20%.由此可见,针对数据密集型应用,PSRAM(h)不但可以给出程序执行时间的下限,还可以有效的预测程序的执行时间.  相似文献   

7.
准确地获取应用程序在真实系统上运行的访存地址序列(traces)是进行内存系统调度及结构优化的基础.HMTT是自主研发的软硬件结合的内存监测分析系统,能够实时获取完整的全系统访存traces.但是得到的traces与应用程序上层事件之间存在语义鸿沟问题,比如上层函数执行流与访存traces的同步问题.针对该问题提出了一种软硬件结合获取包含函数级别语义信息访存traces的方法,软件方面通过二进制插桩的方式,直接修改内存中的进程映像,在目标函数的入口及出口各插入标记tag访存指令,进而能够被HMTT卡监测并识别.采用二进制插桩不需要程序的源代码,不需要对程序重新编译链接,而且引入的运行开销很小.实验表明采用软硬件结合的方式能够有效地获取包含函数级别语义信息的访存traces,对于SPECCPU2006中的访存密集型程序引入的性能开销只是原程序的62%,而使用Pin工具的纯软件方式获取访存traces将导致至少10.4倍的性能开销.  相似文献   

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

9.
末级缓存的性能已成为影响多核处理器整体性能的关键因素.基于多核处理器在处理并行程序时各处理器核访存行为的相似性,提出一种降低访存缺失率的数据预取方法.首先记录各处理器核的访存缺失历史;然后通过分析历史信息预测各处理器核之间末级缓存缺失的关联关系,采用数据预取的方式,在处理器核出现读缺失之前为其末级缓存提供数据块.实验结果表明,对于4核和16核处理器系统,该方法可以分别降低末级缓存缺失率9.8%和18.4%,提高性能4.0%与12.4%.  相似文献   

10.
利用主存的多bank/rank/channel结构挖掘访存并行性和局部性,是提高系统性能的重要手段.相关研究工作通过sub-rank技术增加可并行工作的存储资源,或在并行程序之间对bank划分,以隔离访存冲突.但上述方法没有考虑在bank/rank资源共存的情况下,单个程序内部数据对象间的冲突问题.通过观察数据在主存中的分布,发现程序的数据倾向聚簇于单个rank中,并提出了一种基于数据对象规模的rank级内存分配方法(data object scale aware rank-level memory allocation,DSRA).DSRA将冲突开销较大的数据对象分散到不同的rank,利用增长的bank/rank资源提高访存性能.DSRA工作在操作系统层,基于编译器和操作系统提供的信息来分析数据对象间的冲突开销,既不用修改源码,也不依赖特殊的底层硬件.基于2款真实处理器对来自NAS Benchmark和SPEC CPU2000中的存储敏感型基准测试程序进行评测.结果表明,在不影响cache失效率的情况下,DSRA通过减少主存访问周期数,可以降低程序的执行时间.与已有的优化技术相比,性能平均提高6.8%,最高性能提升幅度为16%.  相似文献   

11.
于佳耕  周鹏  武延军  赵琛 《软件学报》2012,23(6):1620-1634
进程重放用于程序调试,无法重现系统全部状态,难以分析错误根源.而系统级重放复杂且难于实现,尚无模型分析方法提供理论指导,确保重放执行与记录执行等价.为了使执行重放系统适用于系统调试,建立虚拟机指令执行模型,提出了虚拟机执行重放的定义,给出并证明了成功重放的充分条件.根据该充分条件,设计实现了基于Xen的虚拟机重放系统CASMotion.CASMotion讨论了Xen DomU中不确定事件的种类,给出各类事件的重放方法以及时间点的匹配算法.CASMotion成功实现了不确定事件的准确重放,实验结果表明其具有较低的性能损失.  相似文献   

12.
基于事件模型的可视化并行调试技术   总被引:3,自引:0,他引:3       下载免费PDF全文
并行程序存在资源竞争、时序紊乱、死锁等复杂问题,加上并行程序的不确定性,给调试带来了很大的困难.基于事件模型的可视化并行调试技术EVTPD(event—basedvisualizationtechniquesonparalleldebugging)为解决这些困难提供了一个途径.EVTPD的基本要素是事件监视与可视化重放.本文讨论了事件监视与可视化重放中的关键技术;事件描述、事件过滤、事件识别、时戳、记录重放、执行重放和视图定义,并且给出了一个基于工作站机群系统的并行调试器的结构.  相似文献   

13.
文中探讨了片上网络在执行真实并行程序时的能耗和性能关系,并提出了一种能耗/性能优化方法.首先,文中提出了一种精确的性能-能耗模型,在性能和能耗模型中同时划分出与频率相关和与频率无关的因素,并分析其对性能和能耗的影响;其次,在性能-能耗模型中建立并行开销、片外访存开销与片上网络规模(节点数)、频率之间的关系,同时引入了并行度、通信模型等与应用相关的因素,使该模型能够同时表达软硬件特性;第三,文中提出了一种基于该性能-能耗模型的性能-能耗优化方法,通过采集程序的通信模型、访存消息数量等数据选择适当的频率和网络节点数来获得片上网络能耗最低值或处理器性能最大值.最后,文中采用8个PARSEC并行程序验证前述模型的准确性并评价性能-能耗优化方法,结果显示文中性能-能耗模型相比传统模型更加精确吻合实验测量结果,性能-能耗优化方法也有效适用于不同种类的并行程序.  相似文献   

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

15.
业务流程挖掘旨在从记录的事件日志中挖掘出满足人们需求的流程模型。以往的方法多是根据事件之间的直接依赖关系建立流程模型,具有一定的局限性,提出了基于拟间接依赖的流程挖掘优化分析方法。依据事件日志,以行为轮廓为基础,构建初始模型。在执行日志下,通过基于整数线性规划流程发现算法的基本约束体查找出具有拟间接依赖关系的变迁对,并对模型进行完善,挖掘出优化模型。通过具体的实例分析验证了该方法的有效性。  相似文献   

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

17.
近年来,多线程程序中性能bug问题越来越突出.传统用于检测并发错误的记录/重放系统存在重放开销和执行时间不精确等问题,因此不适于对性能bug的研究.针对上述问题,提出了一种可用于多线程程序性能分析的重放系统——PerfPlay.首先,分析了用于程序性能分析时必要的程序信息;其次,基于程序执行轨迹,探讨了不同的重放策略,并提出了基于程序调度的重放策略,以保证重放系统的性能保真度;最后,基于提出的性能重放系统,进一步研究了经典的“线程间不必要锁竞争”所造成的性能问题.通过与传统的重放策略作比较,PerfPlay保证了重放系统的性能保证度.并经过案例研究,发现并进一步验证了若干真实的多线程程序性能问题.  相似文献   

18.
网络服务等新型高通量应用的迅速兴起给传统处理器设计带来了巨大的挑战.高通量众核处理器作为面向此类应用的新型处理器结构成为研究热点.然而,随着片上处理核数量的剧增,加之高通量应用的数据密集型特点,“存储墙”问题进一步加剧.通过分析高通量应用访存行为,发现此类应用存在着大量的细粒度访存,降低了访存带宽的有效利用率.基于此分析,在高通量处理器设计中通过添加访存请求收集表(memory access collection table,MACT)硬件机制,结合消息式内存机制,用于收集离散的访存请求并进行批量处理.MACT硬件机制的实现,提高了访存带宽的有效利用率,同时也提高了执行效率;并通过时间窗口机制,确保访存请求在最晚期限之前发送出去,保证任务的实时性.实验以典型高通量应用WordCount,TeraSort,Search为基准测试程序.添加MACT硬件机制后,访存数量减少约49%,访存带宽提高约24%,平均执行速度提高约89%.  相似文献   

19.
王旭  陈雨亭 《计算机工程》2012,38(15):35-38,42
在多线程程序中,当2个以上线程在没有顺序约束的条件下访问同一个存储单元时,且其中至少有一个为写访问,则可能会发生数据竞争。为此,提出一种针对X10并行程序的静态数据竞争检测算法,包括源访存对计算、可达访存对计算、时钟同步访存对计算和逃逸访存对计算4个阶段。通过在WALA框架中分析构建程序的调用图,计算源访存对集合,检测出内存访存中可能发生数据竞争的无序对。实验结果表明,该算法可以在不显著增加X10并行程序总体运行时间的情况下,达到比较理想的数据竞争检测效果。  相似文献   

20.
通信开销是阻碍并行程序效率提高的关键因素,降低并行程序的通信开销可以有效地提高程序的运行效率.主要讨论了在并行识别中如何利用依赖关系信息来降低自动并行识别所生成的并行程序的通信开销,包括计算与通信重叠、消除冗余通信代码、消除冗余通信等,并给出了测试结果,试验表明具有较好的优化效果.  相似文献   

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

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