示例8:OpenMP精细化分析
简介
本示例主要通过对OMP应用,通过鲲鹏DevKit系统性能分析工具的HPC应用分析下的OpenMP模式下的精细化分析,让用户清晰的了解到应用在各个时间段的调用栈信息及PMU事件信息。
环境准备
分析过程
- 代码样例准备。
编译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分析模式
精细化分析
采样时长
10秒
统计更多调用栈信息
开启
- 查看分析结果。
如图1所示 OpenMP timeline会展示当前应用所占用的线程,标记关键线程,可拖动上方时间轴查看对应时间区间数据展示,也可通过下拉框筛选关键线程。
如图2选择不同的region色块可以看到当前线程,在一段时间内的PMU事件信息,包括调用栈信息,以及Top-Down数据信息。
- 如果任务执行失败,“任务信息”界面上会显示任务失败的原因。
- 如果任务执行成功,但有部分不影响整体的数据采集失败,可查看“异常信息”。
- “采集结束原因”可表明当前任务数据采集结束原因,如“到达任务采集时间”。
父主题: 系统性能分析工具