跳转至

小作业五:性能分析实践

负责助教:郑立言 zhengly20@mails.tsinghua.edu.cn

任务

服务器环境配置

将实验文件/home/course/hpc/assignments/2022/exp5 拷贝到自己的目录 ,并进入 exp5 目录:

cp -r /home/course/hpc/assignments/2022/exp5 ~/
cd ~/exp5/

本次实验依赖Intel MPI并推荐使用vTune进行性能分析,因此需要加载对应的环境:

source /opt/intel/oneapi/setvars.sh

vTune GUI环境配置

实验中需要使用vTune GUI读取性能数据。

方法一(推荐):本地安装vTune

  1. 下载vTune并安装
  2. 将采集到的性能数据复制到本地,启动vTune读取数据

方法二:本地安装X11服务器,将远程图形界面利用X11转发到本地

  1. 在本地安装X11服务器:Xming X Server for WindowsXQuartz for MacOS或Xming for Linux
  2. 在本地开启X11服务器
  3. 使用带X11转发的ssh连接到conv0(ssh时加上-X选项),使用vtune-gui命令启动vTune图形界面,读取数据

任务零:基于IPM的轻量级MPI性能分析

运行./run.sh <你的学号>,如./run.sh 202012345你将得到如下输出:

Success 202012345

在运行成功后,使用IPM对该MPI程序进行性能分析。在实验集群中可使用如下命令:

LD_PRELOAD=/home/course/hpc/assignments/2022/exp5/ipm/lib/libipm.so ./run.sh <你的学号>

根据IPM输出,MPI函数中的热点函数为_____。

任务一:负载均衡分析

对同一程序,使用vTune进行性能分析。参考vTune文档了解使用方法,在实验集群中可使用如下命令:

srun -n <进程数> /opt/intel/oneapi/vtune/2022.0.0/bin64/vtune -collect <采集模式> -trace-mpi -result-dir <结果保存目录> -- <应用执行命令>
# 实验中需要的采集模式有hotspots和uarch-exploration

使用vTune的Hotspots分析功能,可发现任务零中检测到的热点由一个进程导致。导致出现该现象的进程MPI rank是_____。

提示

  1. 在vTune Hotspots的Bottom-up界面中,选择显示Process,可以看到进程的MPI rank。
  2. 通过Filter in/out进程或函数,可查看各进程不同函数各自的运行时间。

任务二:

对于同一程序,同样以自己的学号作为输入运行。使用vTune的Microarchitecture exploration分析功能,可以看到程序运行过程产生的PMU数据。根据PMU数据,可以推断该程序中lipsum函数 最可能 是_____(填写选项编号)。

  1. 浮点数稠密矩阵乘
  2. 整数稀疏矩阵乘

提示:观察Memory bound的占比或vTune图形界面Event count中的FP_ARITH_INST_RETIRED类事件(如FP_ARITH_INST_RETIRED.SCALAR_DOUBLE)的计数。

实验提交

本实验需以json文件形式提交实验结果。请将上述两个任务的答案填入以下文本,并以 单个json文件 形式提交至网络学堂,文件名为学号.json

ID后填写自己的学号(一个整数),其他项后填写答案(函数名或一个整数)。

{
  "ID": 2020000000,
  "Task0": "FunctionName",
  "Task1": -1,
  "Task2": -1
}

请保证提交结果是合法的json文件。作业将采用评分程序自动给分。


最后更新: 2022年4月11日
作者: zhengly123