多线程程序的确定性调试方法

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:xia96316
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在目前的技术条件下,为了追求更高的性能功耗比与性能面积比,商业处理器普遍采用开发线程级并行的多核结构。多线程编程模型是充分发挥多核处理器硬件执行效率和提高性能的关键。然而多线程并行程序中固有的不确定性,使得传统的循环调试技术无法继续使用,导致并行程序难以调试,严重影响了并行软件的生产效率。为了解决多线程并行程序调试难的问题,本文研究了多线程并行程序的确定性重放系统,针对目前系统的不足,提出了硬件辅助的针对用户态并行程序的确定性重放方法,降低系统中存储日志开销的方法,以及在松弛的存储一致性模型下检测并避免重放死锁的机制。具体而言,本文的主要创新点及贡献包括:  (1)硬件辅助的重放用户态并行程序的方法  为了解决系统级重放方法不能有效地辅助应用程序员调试多线程并行程序,本文研究了面向用户态多线程并行程序的硬件辅助的确定性重放方法。与实现系统级重放相比,重放用户态并行程序存在两个挑战:第一,在多任务的系统中用户态程序的外部执行环境复杂,硬件检测到的依赖关系可能来自系统程序或其它的任务,对重放被监控的用户态程序而言,这些依赖关系是多余的;第二,除了程序的外部输入与程序内的访存依赖关系,重放用户态并行程序存在由上下文切换与系统调用之间的数据共享产生的依赖关系,本文称之为隐式依赖关系,这类关系与核心态代码有关,监控复杂。  针对用户态程序重放面临的挑战,本文提出了依赖关系过滤机制与隐式依赖关系的检测与记录方法。在依赖关系过滤机制中,根据发生依赖的两个处理器各自的执行任务情况对依赖关系进行分类,并详细讨论每类依赖关系对重放被监控程序的重要性。此外本文提出三类影响重放正确性的隐式依赖关系,并仔细分析了这三种隐式的依赖关系如何影响重放执行,针对不同的隐式依赖提出了具体的记录方法。  (2)基于全局同步逻辑时间的访存依赖约减方法  为了降低日志的存储开销,本文研究了记录过程中的访存依赖关系约减方法,提出了利用逻辑时间内的定序关系约减访存依赖的方法,该方法基于四步优化过程。首先,为了达到最佳的依赖关系约减效果,本项研究建立了全局同步的逻辑时间。然后,为了降低建立全局同步逻辑时间所带来的运行时开销,提出了基于共享通信的逻辑时间同步方法。再然后,为了进一步消除同步产生的时间开销,采用同步日志来取代逻辑时间同步时的执行等待,利用空间开销换取时间开销。最后,为了降低同步日志的存储开销,提出了一种放松的同步检测条件。此外针对本文提出的访存依赖约减方法,分别基于目录的缓存一致性协议与侦听的缓存一致性协议,提出了相应的逻辑时间同步算法。  (3)在松弛的存储一致性模型下的死锁检测与避免机制  目前的确定性重放方法在支持松弛存储一致性模型的商业处理器中执行时,会产生死锁。为了避免这种死锁问题,本文研究了在松弛存储一致性模型下的确定性重放方法,提出了在松弛存储一致性模型下的死锁检测与避免机制。在我们了解的范围内,本文首次分析了松弛存储一致性模型中的弱写原子性如何导致重放的死锁问题,并针对目前的商业处理器中松弛存储一致性模型的特点,提出了死锁检测与避免机制,该机制通过记录处理器端与访存端的乱序行为,重现了真实的执行过程。最后,为了降低记录乱序行为的存储开销,本文将乱序行为分成符合顺序一致性语义与违反顺序一致性语义两类,并针对违反顺序一致性语义的乱序行为提出了检测条件。  通过在Simics+GEMS的模拟平台上评估本文所提出的方法,结果表明系统调用的顺序化与管理存储开销所增加的运行时开销为9%。在顺序一致性模型下,每执行千条指令所记录的访存依赖关系的存储开销为0.11 Bytes,与当前最有效的访存依赖约减方法Timetraveler相比减少了75%。为了支持松弛的存储一致性模型,记录指令乱序执行所增加的存储开销为11%。此外,分别在4核、8核、16核模拟平台上评估本文所提出约减方法的可扩展性,实验结果表明每执行千条指令的平均存储开销分别为0.14、0.15、0.06Bytes,其中最大值是平均值的4倍。
其他文献
该文在全面深入地研究和剖析了这些算法的基础上,为克服早熟问题,把待优化问题分为连续和离散两种类型.对于较为简单的连续问题,文中提出了基于切面上升的狭义遗传算法.主要
随着计算机技术和网络技术的迅猛发展,海量的图像信息都在以多媒体信息的方式被数字化,如何高效的检索这些数字化的图像数据成为了迫切需要解决的问题。基于内容的图像检索技术
该文介绍多点合作设计系统(MLCDS)的概念和发展概况,论述了多点合作设计系统研制的意义.提出了运用面向对象开发方法进行多点合作设计系统开发的思想,并根据目前情况,提出实
随着信息技术的高速发展,软件产品被应用到现代生产生活的各个方面。软件产品的广泛应用又反过来推动了软件的设计、开发、维护、分析等技术的发展。其中面向对象相关的语言
该文介绍了CAI(Computer Assisted Instruction)和ICAI的研究、应用及其存在问题与发展趋势,介绍了超文本的Dexter参考模型,首次从知识点的角度出发,就ICAI系统的知识表示和
由于混合光纤/同轴电缆(HFC)接入网络形式中,具有大量剩余的带宽可用于提供统一的综合业务服务,能够作到向接入网络的最理想形式——光纤到用房(FTTH)的逐步演化.同时,中国有
学位
学位
21世纪以来,随着计算机运算性能飞速提高和网络带宽迅猛提升,以互联网为中心的新型概念如云计算、大数据以及移动互联网等悄然推动新一代信息革命。系统虚拟化作为云计算的基础
大型企业网络、数据中心网络、以及广域网可以被拆解成多个基于行政或者地理上的域。而且这些域可能是属于不同的行政部门或者机构。因此,保护域的信息是非常必要和重要的。