小作业五:性能分析实践¶
负责助教:郑立言 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¶
- 下载vTune并安装
- 将采集到的性能数据复制到本地,启动vTune读取数据
方法二:本地安装X11服务器,将远程图形界面利用X11转发到本地¶
- 在本地安装X11服务器:Xming X Server for Windows或XQuartz for MacOS或Xming for Linux
- 在本地开启X11服务器
- 使用带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是_____。
提示:
- 在vTune Hotspots的Bottom-up界面中,选择显示Process,可以看到进程的MPI rank。
- 通过Filter in/out进程或函数,可查看各进程不同函数各自的运行时间。
任务二:¶
对于同一程序,同样以自己的学号作为输入运行。使用vTune的Microarchitecture exploration分析功能,可以看到程序运行过程产生的PMU数据。根据PMU数据,可以推断该程序中lipsum
函数 最可能 是_____(填写选项编号)。
- 浮点数稠密矩阵乘
- 整数稀疏矩阵乘
提示:观察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文件。作业将采用评分程序自动给分。