并行程序中共享内存访问定序技术的研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:xiaoxin_1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多核处理器的发展使得并行编程越来越流行。但是并行程序执行行为的不确定性,使得它们中存在错误难以测试和调试,这给程序员的工作带来巨大的困难和挑战。而且,隐藏在并行程序中的错误可能会给用户带来严重的影响。  因此,若干研究针对于如何提高并行程序的正确性,其中并行程序的错误重现能够有效的帮助程序员进行调试,是提高并行程序正确性的重要手段。在并行程序的错误重现中,如何高效的确定各个线程对于共享内存访问的顺序是最重要的问题。因此,本文的研究集中于如下两个方面:(1)识别并行程序中的同步操作,利用同步操作包含的顺序关系确定部分线程间共享内存访问的顺序;(2)利用商业处理器提供的局部时钟,高效的确定线程间共享内存访问的顺序。本文的贡献主要包括以下几点:  本文提出了基于程序行为的动态同步识别技术。该方法通过控制并行程序的执行,利用前向测试和后向测试两种算法来识别其中的同步操作,同时排除由于长延迟操作和锁操作造成的干扰,并通过降低测试线程数量以及降低测试点的数量优化算法的执行效率。本文在同步识别系统SyncTester中实现了上述各项技术,并通过与动态同步识别系统ISSTA08、Helgrind+系统进行比较,说明本文的技术能够更有效的识别并行程序中的同步操作。  本文提出了计算处理器核间局部时钟差值区间的方法。为了利用局部时钟确定线程间共享内存访问的顺序,必须确定核间局部时钟的差值。本文设计了程序测试和统计测试两种方法计算核间局部时钟差值的区间。其中程序测试方法可以得到必然包括该局部时钟差值的一个区间,而利用统计测试的方法,能够在极高的置信度的条件下,将核间局部时钟差值的区间缩小到10个周期以内。  本文提出了一种基于局部时钟的线程间共享内存访问的定序方法。在该方法中,并行程序的各个线程在执行过程中只需要记录局部时钟的值和少量线程私有信息,无需线程间同步操作,有效地降低了运行时开销;同时在离线分析阶段,利用局部时钟带有的时间信息,能够有效的推导线程间操作的顺序,降低离线分析开销。本文将该技术应用到两个著名的并行程序错误重现系统PRES和CLAP,降低了PRES系统1%~85%的运行时记录开销而没有影响它的错误重现能力,降低CLAP系统84.66%~99.99%的求解开销同时在绝大部分情况下仅额外带来不超过10%的运行时开销。
其他文献
无线射频识别(Radio Frequency Identification)技术和下一代互联网协议IPv6技术的出现使得人们朝思暮想构建一个在任何时间,任何地点都能获取任何物品信息的“物联网(Internet o
流畅而全面的沟通一直是人类的梦想,语言不通是实现这个梦想面临的最大难题,机器翻译应运而生。自从二十世纪四、五十年代起,至今日,机器翻译的研究已经经历过近六十年的时间。从
由于液滴蒸发的换热效率远比空气流动的换热效率高,而换热问题广泛存在于微电子学等工业和民用领域。所以对液滴蒸发的研究具有重要的应用价值。空间液滴蒸发热毛细对流实验
随着软件产品规模的扩大和应用领域的扩展,对软件过程管理的要求也越来越高。在软件开发过程中,人力资源是最重要的一种资源,人力资源调度的优劣将直接影响软件开发过程的产品质
多年以来,人们一直为有效解决计算中的难解问题而苦苦求索。目前的经典计算机面对许多问题显得渺小而无助,因此人们寻找新的计算模型和新的高效计算机的努力显得恢弘而伟大。
无线信号调制方式识别是非合作通信中一个非常重要的课题,广泛应用于频谱管理、电子战等非合作接收以及认知无线电、自适应通信等非合作通信场景。目前应用最广泛的调制识别方
自从计算机用于辅助设计和制造以来,曲面编辑就一直是人们研究的热点问题。特别是近二十年来,随着计算机软硬件技术的飞速发展,计算机图形学、虚拟现实、虚拟仿真、可视化、人机
近年来,随着全球经济和信息技术的不断发展,安全问题日益突出,越来越多的领域需要可靠的身份识别。生物特征识别技术为此提供了一种解决方案,而指纹识别技术是其中的最佳选择之一
学位
近几年,随着网络、通信以及传感技术的发展,数据流受到普遍关注;常见的数据流包括Web访问日志数据流、股票价格信息数据流以及网络信息数据流。随着数据流越来越受关注,研究人员
在计算机体系结构研究中,对内存系统的研究是非常重要的一部分,而访存trace的采集分析一直是必不可少的一环。HMTT就是一套基于硬件监听方式对访存行为进行监控分析的工具,相比