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