HPCtoolkit的下载使用
背景介绍
HPCToolkit 是一套集成工具,用于测量和分析从多核桌面系统到 GPU 加速超级计算机等计算机上的程序性能。HPCToolkit 提供对程序工作、资源消耗和低效率的准确测量,将这些指标与程序的源代码相关联,使用多语言、完全优化的二进制文件,具有非常低的测量开销,并可扩展到大型并行系统。HPCToolkit 的测量为分析并行系统内部和节点之间的程序执行成本、低效率和扩展特性提供了支持。
其包括以下几个组件:
模块 | 功能简述 |
hpcrun | 运行时采样器,支持基于周期、事件的采样,支持硬件性能计数器 |
hpcprof / hpcprof-mpi | 分析采样数据,生成程序结构与性能数据的静态表示 |
hpcviewer | 图形化性能可视化界面,支持调用路径、热点函数、源代码映射等视图 |
hpcstruct | 分析二进制结构,提供源代码与指令级地址之间的映射关系 |
hpclink | 编译器辅助工具,插入符号信息便于后续分析 |
hpc-traceviewer | 可选模块,支持分析程序的时间序列行为(trace) |
官方网站:https://hpctoolkit.org
源代码仓库:HPCToolkit / HPCToolkit · GitLab
用户文档:https://hpctoolkit.org/documentation.html
工作流展示:
配置安装
1.使用spack安装
1.1spack的git安装
#git下载
git clone https://github.com/spack/spack.git#配置环境变量(看shell环境)
# For bash/zsh/sh
. spack/share/spack/setup-env.sh# For tcsh/csh
source spack/share/spack/setup-env.csh# For fish
. spack/share/spack/setup-env.fish#验证安装
spack --version#(可选)卸载
rm -rf ~/spack # 或者你安装的具体路径
1.2若离线,spack源码安装
#手动下载或wget
wget https://github.com/spack/spack/archive/refs/tags/v0.22.0.tar.gz # 替换为最新版本#解压
tar -zxvf v0.22.0.tar.gz#改名称为spack
mv spack-0.22.0 spack#配置环境变量
# For bash/zsh/sh
. spack/share/spack/setup-env.sh# For tcsh/csh
source spack/share/spack/setup-env.csh# For fish
. spack/share/spack/setup-env.fish#验证安装
spack --version#可选-卸载
rm -rf ~/spack # 或者你安装的具体路径
1.3 spack安装HPCtoolkit
HPCtoolkit依赖较多,尤其是其中相当一部分依赖需呀安全上网下载,所以网络要通畅,不然很折磨,我只能说
#spack安装hpctoolkit
spack install hpctoolkit [+features...]#spack加载hpctoolkit
spack load hpctoolkit [+features...]#spack查看已安装的软件
spack find hpctoolkit
+features表示可选功能:
+mpi
:除了 hpcprof
之外,还构建 hpcprof-mpi
。(需要MPI环境)
+papi
:启用 PAPI 指标。(需要 PAPI)
+cuda
:启用 CUDA 指标 (-e gpu=nvidia
)。(需要 CUDA)
+python
:启用(实验性)Python 展开器。(需要 Python)
+opencl
:启用 OpenCL 指标 (-e gpu=opencl
)。(需要 OpenCL)
更多见官网:HPCToolkit / HPCToolkit · GitLab
1.4移植适配
如需移植到其他离线机器使用,参考如下内容:
打包spack中的hpctoolkit,这里是将依赖一起打包成镜像,虽然大,但建议!不然本来就依赖多,你还要在离线机子上配,你就配去吧!建议不要没事找事,放松自己,放过自己。
# 进入你的 Spack 环境
cd $SPACK_ROOT
source share/spack/setup-env.sh# 创建缓存目录
mkdir -p ~/hpctoolkit-offline-mirror# 创建 buildcache(二进制包)
spack mirror add offline-mirror file:///path/to/hpctoolkit-offline-mirror# 推送 hpctoolkit 本身 + 所有依赖(包括构建依赖)
spack buildcache push --update-index --with-build-dependencies offline-mirror hpctoolkit#(可选)查看与删除镜像
spack mirror list
spack mirror remove offline-mirror #镜像名称# 在源主机打包
# 假设 Spack 安装在 ~/spack,镜像在 ~/hpctoolkit-offline-mirror
tar -czpvf hpctoolkit-mirror-bundle.tar.gz \~/spack \ # Spack 工具本体 \~/hpctoolkit-offline-mirror # 镜像与软件包缓存# 源主机:导出构建缓存的公钥
spack buildcache keys --export > hpctoolkit-buildcache-keys.pub#(可选)打包时将密钥一起放入压缩包
tar -czpf hpctoolkit-mirror-bundle.tar.gz \~/spack \~/hpctoolkit-offline-mirror \hpctoolkit-buildcache-keys.pub
离线主机操作:
# 解压镜像包(例如解压到 /opt/offline)
tar -xzvf hpctoolkit-mirror-bundle.tar.gz -C /opt/offline# 初始化 Spack 环境
cd /opt/offline/spack
source share/spack/setup-env.sh# 添加本地镜像
spack mirror add hpctoolkit-offline file:///opt/offline/hpctoolkit-offline-mirror# 安装构建缓存公钥(信任)
spack buildcache keys --install --trust /opt/offline/hpctoolkit-buildcache-keys.pub# 安装 hpctoolkit
spack install hpctoolkit# 验证与加载
spack find hpctoolkit
spack load hpctoolkit
暂时到这。。之后继续。。