消息传递并行程序性能调试环境PBuster的设计

消息传递并行程序性能调试环境PBuster的设计

林贻珀[1]2005年在《可视化并行性能调试环境的设计与实现》文中进行了进一步梳理目前大部分并行机的效率都十分低下,主要原因是缺乏有效的并行程序开发工具,现有调试工具的功能跟不上需求,使得并行程序的编写、调试和性能优化非常的困难。消息传递并行程序是本文的研究对象,相对于其它编程模型,它灵活性好,通用性广,应用非常广泛。本文的主要工作有以下几点:1)改进了并行程序性能调试模型。代码插装-采集性能数据-根据情况动态调整插装代码-继续采集性能数据,辅以性能数据可视化显示和分析,根据性能数据分析结果修改源程序,直到找到系统瓶颈点并进行改善。2)在前人工作的基础上,完善了用于并行调试环境的物理时钟同步模型。相对于旧模型而言,新模型大大提高了局部时钟调整值的精度。从模拟结果来看,新模型的平均误差不到旧模型的15%。并且新模型随着并行规模的增大,其稳定性和精度都有所提高。新模型保留了旧模型不引入任何额外的通信开销的优点。新模型的时间代价完全可以接受。3)根据调试器需要对MPI源代码进行了修改,方便调试器对MPI程序进行控制和性能数据收集。4)利用Dyninst工具实现了对MPI消息传递程序的动态代码插装,完成了性能数据的采集和调试信息的收集。插装的代码可用于采集源代码信息、调试信息和性能相关数据等,并定期对各类资源使用情况进行采集。5)对收集的信息进行了分析,将主要的性能信息和调试信息放入叁张表中。其中时间信息表记录各次函数调用的信息,函数信息表记录各个函数源文件及行号并统计调用情况,通信信息表记录各次的通讯事件。6)性能数据可视化方面,在进程时空图基础上设计了过程时空图,在时空图上可直接查看事件信息和过程调用信息。时空图上具有源代码对应的click-back和click-forward,并能显示并行程序的关键路径。

赵峪[2]2004年在《消息传递并行程序性能调试环境PBuster的设计》文中认为并行计算的目的在于得到更高的性能。然而,众多的并行机的实际运行效率却比较低下,实际速度通常只达到峰值速度的10%到20%,处理器、存储器以及网络带宽都不能得到高效的利用。并行程序性能调试的意义就在于:如何帮助用户在现有并行计算模型以及硬件条件下,使并行程序达到最佳性能,尽可能的使各种资源都得到高效的利用。消息传递方式的并行程序是本文的主要研究对象,相比其它并行计算模型,它具有通用性好、表达力强、性能优异等特点,本文的主要工作有如下几点:明确了并行程序性能调试的定义和模型:采集性能数据——性能数据可视化和分析——修改源程序,并反复循环这个过程,直至得到满意的性能。总结出性能调试中的关键问题为:不确定性,测量干扰,和性能数据可视化。作为机群并行程序调试环境的重要组成部分,设计了性能调试工具PBuster。PBuster基于数据测量方式,具有交互式调试模式,采用状态冻结的控制方式,并具有性能数据可视化方面的独特之处。分析了MPI程序的启动运行模型,提出了一种模型,使MPI程序能够在PBuster控制下启动运行,并且同时能够采集性能数据进行性能数据可视化显示。PBuster采用动态插装技术,实现性能数据的采集。实现在线调试和性能数据指标的剪裁,从而达到交互式的性能调试模式。在性能数据可视化方面,在进程时空图的基础上提出了一种过程时空图,过程时空图能够更加精确的定位事件发生的位置,利于用户进行分析。提出了对并行程序的运行过程进行关键路径分析。讨论分析了消息传递并行程序的时钟问题,并根据并行程序的初始化机制和结束机制,将并行程序的运行过程对应为一个AOE网络,从而用求解关键路径算法对其进行分析。

刘建[3]2002年在《机群系统并行程序调试环境研究》文中研究指明并行程序调试是一个复杂的课题,在这方面做了很多研究工作,但许多问题仍没有得到圆满解决。本文对并行调试中的时钟模型、时间开销、交互式调试的干扰、动态条件断点、性能调试等问题进行了研究,取得了有价值的成果。在这些研究工作的基础之上,作者设计了一个机群系统并行程序调试环境并实现了其原型系统。本文的主要贡献包括以下几个方面:1. 描述了性能调试的基本含义和特征,分析了它应提供的方法和手段及需要解决的主要技术问题,进而归纳出并行程序性能调试的模型框架:性能数据采集- 性能数据可视化和分析- 程序修改。针对正确性调试和性能调试在技术及应用上逐步融合、统一的趋势,提出了调试环境的概念,即把性能调试和正确性调试有机地集成于一个环境中。2. 开发了一种基于事件的物理时钟。结合物理时钟和逻辑时钟的优点,设计了一个事后分析的时钟调整算法,证明了其正确性和收敛性。该混合时钟可以满足一般机群系统并行程序调试环境的需要,且无任何额外的通信开销。3. 提出了一种基于状态冻结的确定性检查点设置方法,解决了长时间运行程序的调试问题。该方法避免了检查点中的孤儿消息、多米诺效应和活锁问题;用记录的方法处理中途消息;用记录/重放方法解决不确定性问题。有效地解决了调试和检查点结合所产生的各种问题,且结构清晰、易于实现。4. 为降低交互式调试的干扰,提出了一种新的无干扰(pure)调试模式。所设计的冻结和解冻算法是实现无干扰调试模式的基础,通过形式化分析交互式调试操作对程序的干扰特性,从理论上证明了冻结和解冻算法的正确性。5. 采用动态插装技术,实现了条件断点。此种方法和传统方法相比效率极高,从测试的数据看,比GDB快几倍到几百倍;该方法同时也降低了调试器的干扰。6. 提出了基于状态冻结的交互式性能调试模式。性能测量代码的动态插装技术将交互式调试模式引入到了性能调试中;状态冻结是为了降低交互式调试的干扰。精确到源程序行级的性能数据采集,摆脱了程序构造符的限制,使采集的精度更高、采集的范围更灵活。7. 在本文研究成果的基础之上,设计并实现了一个机群系统并行程序调试环境- DENNET的原型系统。

参考文献:

[1]. 可视化并行性能调试环境的设计与实现[D]. 林贻珀. 清华大学. 2005

[2]. 消息传递并行程序性能调试环境PBuster的设计[D]. 赵峪. 清华大学. 2004

[3]. 机群系统并行程序调试环境研究[D]. 刘建. 清华大学. 2002

标签:;  ;  ;  ;  ;  

消息传递并行程序性能调试环境PBuster的设计
下载Doc文档

猜你喜欢