基于插桩技术并行程序性能分析方法设计和实现.docVIP

  • 19
  • 0
  • 约9.67千字
  • 约 19页
  • 2018-08-29 发布于福建
  • 举报

基于插桩技术并行程序性能分析方法设计和实现.doc

基于插桩技术并行程序性能分析方法设计和实现

基于插桩技术并行程序性能分析方法设计和实现   摘要:   介绍了一种异构环境下的并行调试及性能分析工具ParaVT的设计方法和实现#65377;通过对并行程序源代码的分析处理,利用自动插桩模板插入用于调试和性能分析的用户代码,从而对并行程序进行断点调试和性能参数收集,达到进一步优化程序设计的目的#65377;   ?す丶?词:异构; 并行调试; 性能分析; 插桩; 优化   ?ぶ型挤掷嗪?:TP311文献标志码:A   文章编号:1001-3695(2007)10-0225-04   ??   0引言??      高性能计算技术的发展,尤其是近几年网格计算技术的兴起,使得大规模数据处理逐渐成为科学研究和工程应用的一个重要领域,因此需要开发越来越多具有高速运算能力和处理能力的高性能计算机#65377;与此同时,并行程序的设计也变得越来越重要#65377;然而由于硬件结构#65380;软件平台的差异,并行程序在不同的平台上运行时的调试技术#65380;性能效率等存在极大的差异#65377;如何设计一套异构环境下具有良好移植性#65380;可扩展性和功能灵活性的并行程序调试及性能分析工具变得十分重要#65377;??   并行调试是并行处理中的一个难点#65377;并行程序之所以难以编写#65380;调试,是由于多个进程同时运行于多台计算机之上,彼此之间需要相互同步及协调,较串行程序的运行过程复杂得多,而且每一次执行可能是不重现的#65377;引起程序出错的原因可能是资源竞争引起的死锁,或是程序本身所包含的不确定性,也可能是网络延迟或通信错误等#65377;??   现有的并行调试及性能分析工具主要分为基于PVM并行平台#65380;基于MPI并行平台和跨平台三种#65377;其中国外比较著名的并行调试及性能分析工具有XPVM[1]#65380;Paradyn[2]#65380;XMPI[3]#65380;SCALEA[4]和TotalView[5]等;国内比较著名的并行程序行为可视化工具有运行于曙光系列上的ParaVision[6]和DCDB[7]等#65377;以上这些系统由于对并行环境的依赖性比较强,在系统平台的可移植性#65380;功能扩展性和健壮性方面都有一定的局限#65377;例如,TotalView[5]在符号调试中增加了多线程的窗口,并可以实现数组的可视化,但是数组查看只能针对单个进程[5]#65377;同样GuideView用于辅助用户理解OpenMP[8]程序的性能,但缺乏自动性能瓶颈分析的能力#65377;??   本文正是通过对异构平台下并行程序动态信息收集及通信管理技术的研究,提出了一种基于源代码插桩技术的#65380;支持异构体系的#65380;具有良好可扩展性和通用性的并行调试及性能跟踪方法#65377;在此基础上实现了一套并行程序调试及性能分析的可视化辅助工具ParaVT#65377;??      1体系结构设计??      本文提出的并行程序调试及性能分析的可视化辅助工具ParaVT(图1),考虑到集群体系的异构性,从逻辑上将本地的监控端和远程运行节点彻底分开#65377;并行环境调试及性能分析系统分为监控端#65380;集群守护进程以及远程运行节点三部分#65377;??   监控端主要任务是对输入的源程序进行词法语法分析,同时从远程运行节点接收并行程序调试信息和性能分析数据,然后对这些信息和数据进行分析和可视化的显示#65377;远程运行节点接收本地监控端代码分析的结果,根据插桩模板库对程序进行插桩#65377;同时,干扰补偿模块程序对于插桩过程中所产生的源程序干扰进行补偿;插桩后代码在远程节点上运行,产生一定的调试信息和程序性能分析数据#65377;这些信息和数据实时地发送回监控端#65377;??   在过去的研究过程中,曾经尝试将所跟踪和调试的并行程序在监控端所运行的机器上编译成二进制可执行文件,然后发布到并行集群上运行[9]#65377;这个过程中隐含了一个假设,即并行集群必须能够识别所发布的并行程序的二进制可执行文件的格式#65377;这将在很大程度上限制ParaVT在异构环境下的运行和使用#65377;例如,远程运行节点是由不同体系结构或者不同操作平台组成的运行环境时,在本地监控端编译以后的二进制代码有时候并不能被远程节点所识别,可能出现一些运行错误#65377;为了解决这个问题,对这种结构进行了改进,从逻辑上将监控端和远程运行的集群环境彻底分开#65377;考虑到集群的异构性,在集群中的每一个节点都需要安装一个守护进程,这个守护进程将负责与具体节点体系结构和操作系统相关的工作#65377;这种方法很好地解决了本地监控端和远程运行端系统的

文档评论(0)

1亿VIP精品文档

相关文档