国家高性能计算中心(合肥)十五并行程序设计环境与工具国家高性能计算中心(合肥)并行程序设计环境与工具15.115.1软件工具与环境软件工具与环境15.215.2并行编译器并行编译器15.315.3并行程序调试并行程序调试15.415.4并行程序性能分析并行程序性能分析15.515.5图形化并行程序集成开发环境图形化并行程序集成开发环境国家高性能计算中心(合肥)软件工程与环境编码工具编码工具编辑器编辑器编译器编译器连接器和加载器连接器和加载器预处理程序预处理程序交叉引用程序交叉引用程序源级查错器源级查错器查错辅助程序查错辅助程序软件工程工具软件工程工具系统构造程序系统构造程序版本管理程序版本管理程序设计编辑器设计编辑器代码产生器代码产生器测试辅助程序测试辅助程序集成工具集成工具数据集成数据集成公共前端公共前端控制集成控制集成将来的工具与环境将来的工具与环境过程工具过程工具群件工具群件工具可视化工具可视化工具程序分析工具程序分析工具国家高性能计算中心(合肥)并行程序设计环境与工具15.115.1软件工具与环境软件工具与环境15.215.2并行编译器并行编译器15.315.3并行程序调试并行程序调试15.415.4并行程序性能分析并行程序性能分析15.515.5图形化并行程序集成开发环境图形化并行程序集成开发环境国家高性能计算中心(合肥)并行编译器编译及其并行化编译及其并行化向量化(向量化(SIMDizingSIMDizing))并行化(并行化(MIMDizingMIMDizing))相关分析相关分析流相关流相关反相关反相关输出相关输出相关控制相关控制相关代码优化代码优化代码向量化方法代码向量化方法代码并行化方法代码并行化方法代码生成代码生成中间形式的代码转换成可执行的具体的机器目标代码中间形式的代码转换成可执行的具体的机器目标代码国家高性能计算中心(合肥)并行程序设计环境与工具15.115.1软件工具与环境软件工具与环境15.215.2并行编译器并行编译器15.315.3并行程序调试并行程序调试15.415.4并行程序性能分析并行程序性能分析15.515.5图形化并行程序集成开发环境图形化并行程序集成开发环境国家高性能计算中心(合肥)并行程序调试并行程序调试的方法与步骤并行程序调试的方法与步骤困难:不确定性、探针效应困难:不确定性、探针效应方法:重放(方法:重放(ReplayReplay)断点调试()断点调试(BreakpointDebuggingBreakpointDebugging))步骤:步骤:①先确保串行程序运行正确性①先确保串行程序运行正确性;;②以单机执行并行程②以单机执行并行程序确保并行程序的基本正确性序确保并行程序的基本正确性;;③在②的基础上逐步增大处理③在②的基础上逐步增大处理器数以充分证实并行程序的正确性;④逐步增加并行程序中的器数以充分证实并行程序的正确性;④逐步增加并行程序中的并行成分以进一步对并行程序进行性能调试;⑤当出错时要依并行成分以进一步对并行程序进行性能调试;⑤当出错时要依次检查数据定义,数据分布和同步机制正确性等。次检查数据定义,数据分布和同步机制正确性等。错误原因分错误原因分析析国家高性能计算中心(合肥)并行程序调试并行程序的调试技术并行程序的调试技术全局断点、渐增检查点、事件分析、静态分析全局断点、渐增检查点、事件分析、静态分析①断点调试包括控制流断点、自陷断点和谓词断点;他的主要①断点调试包括控制流断点、自陷断点和谓词断点;他的主要缺点是探针效应缺点是探针效应。。②事态分析法记录运行中事件轨迹信息而事②事态分析法记录运行中事件轨迹信息而事后加以分析,轨迹信息主要用于阅览和重放后加以分析,轨迹信息主要用于阅览和重放。。③重放控制程序③重放控制程序再现同步通信次序就可以重放程序运行结果。再现同步通信次序就可以重放程序运行结果。并行程序的性能调试并行程序的性能调试测量、分析(静态、动态)、优化测量、分析(静态、动态)、优化国家高性能计算中心(合肥)并行程序设计环境与工具15.115.1软件工具与环境软件工具与环境15.215.2并行编译器并行编译器15.315.3并行程序调试并行程序调试15.415.4并行程序性能分析并行程序性能分析15.515.5图形化并行程序集成开发环境图形化并行程序集成开发环境国家高性能计算中心(合肥)并行程序性能分析并行程序的性能预测并行程序的性能预测并行程序性能的静态分析又叫性能预测并行程序性能的静态分析又叫性能预测方法:分析预测(方法:分析预测(AnalyticalPredictionAnalyticalPrediction)、模拟仿真)、模拟仿真模拟仿真:并行系统建模模拟仿真:并行系统建模、应用程序建模、应用程序建模性能评估的参数选择性能评估的参数选择并行程序的性能监控并行程序的性能监控并行程序性能的动态分析又叫性能监控并行程序性能的动态分析又叫性能监控工具:联机的、脱机的工具:联机的、脱机的时钟驱动监控、事件驱动监控时钟驱动监控、事件驱动监控并行程序的性能可视化并行程序的性能可视化性能可视化:数据生成、数据显示、数据分析与用户交互性能可视化:数据生成、数据显示、数据分析与用户交互用户界面用户界面国家高性能计算中心(合肥)并行程序性能分析静态分析:采用模拟或分析方法获取源程序中有关性能参数报告静态分析:采用模拟或分析方法获取源程序中有关性能参数报告给用户,是在源程序一级进行的,其优点是可以用较小的时间代给用户,是在源程序一级进行的,其优点是可以用较小的时间代价,针对重要的程序结构做出多种可能的性能选择,缺点是准确价,针对重要的程序结构做出多种可能的性能选择,缺点是准确性较差。性较差。动态分析:采用测量的方法收集程序运行中的各种性能参数,即动态分析:采用测量的方法收集程序运行中的各种性能参数,即时或事后报告给用户;性能参数的获取可由硬件和软件提供;其时或事后报告给用户;性能参数的获取可由硬件和软件提供;其优点是所提供的数据较准确,缺点是灵活性较差。优点是所提供的数据较准确,缺点是灵活性较差。性能分析方法:性能分析方法:①①统计程序各部分执行时间;统计程序各部分执行时间;②②分析大计算量的分析大计算量的程序段是计算部分还是通信部分或程序段是计算部分还是通信部分或I/OI/O部分,从而找出性能瓶部分,从而找出性能瓶颈;颈;③③根据加速的理论值和实测值,分析计算粒度大小,负载平根据加速的理论值和实测值,分析计算粒度大小,负载平衡情况,通信开销和存储访问冲突以及衡情况,通信开销和存储访问冲突以及CACHECACHE命中率等;命中率等;④④根据根据效率和可扩放性分析结构与算法的组合最佳情况等。效率和可扩放性分析结构与算法的组合最佳情况等。国家高性能计算中心(合肥)并行程序性能分析可视化定义,目的和概念可视化定义,目的和概念定义:科学数据可视化是使用图形方法增强对科学数据的解释和便于定义:科学数据可视化是使用图形方法增强对科学数据的解释和便于用户直观理解。用户直观理解。目的:为科学数据提供富有表达性的和有效可视的表示概念,方法和目的:为科学数据提供富有表达性的和有效可视的表示概念,方法和工具等。工具等。基本概念:可视化概念和工具是基于心理学,感知学,计算机图形基本概念:可视化概念和工具是基于心理学,感知学,计算机图形学,艺术和绘画等其他学科,其基本过程是由真实现象→数字→图画学,艺术和绘画等其他学科,其基本过程是由真实现象→数字→图画→目标表示。→目标表示。科学数据的特征化科学数据的特征化可视元素(可视元素(CCuesues):):图画的基本要素,例如空间位置和运动,长度、图画的基本要素,例如空间位置和运动,长度、深度、面、体、厚度,角度、斜率取向,密度和颜色、对比度等。深度、面、体、厚度,角度、斜率取向,密度和颜色、对比度等。定量表示:点数据集的可视化用散布图定量表示:点数据集的可视化用散布图((Scatterplots)Scatterplots)和图示符和图示符((Glyphs)Glyphs)表示;连续函数用标量表示,矢量用长度和方向表示;表示;连续函数用标量表示,矢量用长度和方向表示;nn维张量场用维张量场用主方向和绝对值表示。主方向和绝对值表示。国家高性能计算中心(合肥)并行程序性能分析可视化技术可视化技术散布图(散布图(ScatterplotsScatterplots):):点数据用点数据用((XXii,Y,Yii))表示。表示。图示符(图示符(GlyphsGlyphs):):表示复数集合。表示复数集合。直方图或饼图:前者用矩形面积表示专门含义;后者表示部分直方图或饼图:前者用矩形面积表示专门含义;后者表示部分与总体的比例关系。与总体的比例关系。等值线(等值线(ISOISO--lineline))与等值面(与等值面(ISOISO--SurfaceSurface):):前者对于二维前者对于二维数据集,恒值线上的点具有相同值;后者对于三维数据集,等数据集,恒值线上的点具有相同值;后者对于三维数据集,等值面上的数值都相同。值面上的数值都相同。图像显示:对于二维数据可选用不同的数值、灰度和颜色等。图像显示:对于二维数据可选用不同的数值、灰度和颜色等。射线跟踪:为了显示体内元素值,用光线跟踪将三维中的体元射线跟踪:为了显示体内元素值,用光线跟踪将三维中的体元素(素(VoxelVoxel))投影到二维上。投影到二维上。动画:使用动画连续移动画面产生明显动感。动画:使用动画连续移动画面产生明显动感。国家高性能计算中心(合肥)并行程序设计环境与工具15.115.1软件工具与环境软件工具与环境15.215.2并行编译器并行编译器15.315.3并行程序调试并行程序调试15.415.4并行程序性能分析并行程序性能分析15.515.5图形化并行程序集成开发环境图形化并行程序集成开发环境国家高性能计算中心(合肥)图形化并行程序集成开发环境图形化的并行程序开发方法图形化的并行程序开发方法基本思路:用节点表示计算,用弧表示计算之间的交互,采用基本思路:用节点表示计算,用弧表示计算之间的交互,采用统一图形用户界面,将并行程序的设计、编辑、编译连接、调统一图形用户界面,将并行程序的设计、编辑、编译连接、调试和性能分析等工具集成起来,力图实现并行程序开发各阶段试和性能分析等工具集成起来,力图实现并行程序开发各阶段的可视化。的可视化。基本组成:至少包括:①可视化的程序设计工具;②可视化的基本组成:至少包括:①可视化的程序设计工具;②可视化的模拟系统模拟系统;;③可视化的程序调试和行为分析工具。③可视化的程序调试和行为分析工具。基本流程:基本流程:①用图形语言编辑器设计和构造用图形编程语言①用图形语言编辑器设计和构造用图形编程语言书写的并行程序;书写的并行程序;②用预编译器产生②用预编译器产生CC源代码,源代码,MAKEMAKE文件和文件和交叉引用文件;交叉引用文件;③由生成器连接有关库函数生成可执行文件;③由生成器连接有关库函数生成可执行文件;④可执行代码以调试或跟踪模式加载到处理器上执行。④可执行代码以调试或跟踪模式加载到处理器上执行。国家高性能计算中心(合肥)图形化并行程序集成开发环境并行程序的可视化设计环境与工具并行程序的可视化设计环境与工具并行程序集成开发环境并行程序集成开发环境GRADEGRADE的组成的组成图形应用开发环境图形应用开发环境GRADEGRADE((GRaphicalGRaphicalApplicationApplicationDevelopmentEnvironmentDevelopmentEnviron