OSU
OSU Micro benchmark 是由Ohio State University提供的MPI通信效率评测工具。该工具可以测评不同模式下的MPI操作,常用于测量高性能集群上的通信能力。
环境配置与运行
我们可以直接从官网获取最新版OSU工具包。
wget https://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-7.4.tar.gz
tar -zxvf osu-micro-benchmarks-7.4.tar.gz -C ./
cd osu-micro-benchmarks-7.4
OSU需要使用make工具进行安装,在这之前你可能需要从集群环境中加载相应的MPI编译环境。同时你需要指定将OSU安装在用户目录下。
# 以openmpi为例
module load mpi/openmpi/v4.1.4
CC=mpicc CXX=mpicxx ./configure --prefix=/path/to/install
make -j<指定编译所用的进程数>
make install
成功安装后会在 /path/to/install/libexec/osu-micro-benchmarks/mpi
目录下得到各项osu可执行文件。
你可以依次运行这些测试文件来测试集群的通信性能。比赛中我们要求测试点对点通信的osu_bw测例,启用两节点,每节点1进程。
注意在集群上你可能需要使用slurm进行任务提交,同时你也可能需要修改mpirun的参数。
性能调优提示
可以自行探索尝试的调优方向包括但不限于:
- 调整使用的mpi实现,不同mpi的通信策略可能存在一定差别,最终影响效率。
- 调整mpi的编译选项和策略选择。有些编译选项会告诉编译器集群的特性或者一些优化策略,合理配置编译选项可能会带来一些性能提升。
- mpi的运行时选项和进程数配比。进程数对于程序的运行效率和性能有很大的影响,配合mpi的不同通信策略可能带来不同的效果。
- 调整节点间的拓扑关系,在有些集群环境中,不同节点间的通信带宽不同,选择合适的节点可以最大程度上提升通信效率。
提交
请将程序的输出重定向至文件,并将文件提交至给定的目录下。