Skip to content

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进程。

mpirun -ppn <每节点进程数> --hostfile <通信的节点> ./osu_<你想测试的可执行文件>

注意在集群上你可能需要使用slurm进行任务提交,同时你也可能需要修改mpirun的参数。

性能调优提示

可以自行探索尝试的调优方向包括但不限于:

  1. 调整使用的mpi实现,不同mpi的通信策略可能存在一定差别,最终影响效率。
  2. 调整mpi的编译选项和策略选择。有些编译选项会告诉编译器集群的特性或者一些优化策略,合理配置编译选项可能会带来一些性能提升。
  3. mpi的运行时选项和进程数配比。进程数对于程序的运行效率和性能有很大的影响,配合mpi的不同通信策略可能带来不同的效果。
  4. 调整节点间的拓扑关系,在有些集群环境中,不同节点间的通信带宽不同,选择合适的节点可以最大程度上提升通信效率。

提交

请将程序的输出重定向至文件,并将文件提交至给定的目录下。