示例9:OpenMP统计分析
简介
本示例主要针对OMP应用程序,通过鲲鹏DevKit系统性能分析工具HPC应用分析功能的检测,指导用户如何使用OpenMP/MPI分析功能。
环境准备
分析过程
- 代码样例准备。
编译memory_bound.c,并赋予可执行文件所有用户可读、可写和可执行权限。
gcc memory_bound.c -O3 -o memory_bound -fopenmp -lm && chmod 777 memory_bound
- 创建HPC应用分析任务并启动分析。
表1 任务配置参数说明 参数
说明
分析对象
应用。本示例要分析确定OpenMPI程序,所以不需要在服务器上运行程序,而是直接在工具中选择需要运行的程序,当前是memory_bound程序。
应用路径
输入程序所在的绝对路径,例如本示例将代码样例放在服务器“/opt/testdemo/memory_bound”路径下。
分析类型
HPC应用分析
采集模式
OpenMP模式;本示例主要是对OMP的应用进行分析。
OpenMP分析模式
统计分析
采样模式
Detail模式
采样时长
10秒
其他参数
默认
- 查看分析结果。
如图1所示 “总览” 页签上方会展示相关的优化建议以及程序的执行时间,CPU使用率,CPU cycles/Retired instruction的比值(CPI)执行的指令数(Instruction Retired)。OpenMP Team的使用率等。
Hotstpots区域会展示出应用中热点函数调用CPU相关情况。分组方式认为“function”选项,还可选“module”、“parallel-region”、“barrier-to-barrier-segment”。
如图2所示,内存带宽区域展示当前应用程序调用带宽的相关信息,并展示相关的指令分布(鼠标悬停于参数旁边的问号上可查看详细信息)。HPC Top-Down 会展示Top-Down事件名称及事件比例。
图3 查看优化建议
鼠标悬停在上可以给出具体的优化建议。
如图4所示OpenMP运行时指标会展示当前OMP应用运行时的相关数据,并行区域(Parallel region),特殊的独立运行区段(Barrier-to-barrier segment),运行在并行区的时间(Elapsed Time(s))等。PMU事件计数会展示出对当前相关PMU事件及数量。
- 如果任务执行失败,“任务信息”界面上会显示任务失败的原因。
- 如果任务执行成功,但有部分不影响整体的数据采集失败,可查看“异常信息”。
- “采集结束原因”可表明当前任务数据采集结束原因,如“到达任务采集时间”。