使用IMB软件和MPI通信库测试E-HPC通信性能

本文以IMB软件和MPI通信库为例介绍如何测试E-HPC集群的通信性能。

背景信息

IMB(Intel MPI Benchmarks)用于评估HPC集群在不同消息粒度下节点间点对点、全局通信的效率。

MPI(Message Passing Interface)是支持多编程语言编程的并行计算通信库,具有高性能、大规模性、可移植性、可扩展性等特点。

准备工作

测试前您需要在本地准备好算例文件IMB.dat,文件中包含了IMB运行的参数。以下为算例文件的示例,您可以在测试过程中根据实际情况调整参数。

/opt/intel-mpi-benchmarks/2019/IMB-MPI1 -h   #查看IMB支持的通信模式及参数说明

cd /home/<user>/<work_dir>    #请将<user>修改成实际用户名,只能使用非root用户执行

/opt/intel/impi/2018.3.222/bin64/mpirun -genv I_MPI_DEBUG 5 -np 2 -ppn 1 -host <node0>,<node1> /opt/intel-mpi-benchmarks/2019/IMB-MPI1 pingpong   #测试两节点间pingpong通信模式效率,获取通信延迟和带宽,-genv I_MPI_DEBUG 打印mpi debug信息;-np 指定mpi总进程数
# -ppn 指定每个节点的进程数
# -host 指定任务节点列表
# -npmin 指定最少运行的进程数
# -msglog 指定消息片粒度范围

/opt/intel/impi/2018.3.222/bin64/mpirun -genv I_MPI_DEBUG 5 -np <N*2> -ppn 2 -host <node0>,...,<nodeN> /opt/intel-mpi-benchmarks/2019/IMB-MPI1 -npmin 2 -msglog 19:21 allreduce   
#测试N节点间allreduce通信模式效率,每个节点开启两个进程,获取不同消息粒度下的通信时间,请将<node0>等参数修改成实际节点名称
/opt/intel/impi/2018.3.222/bin64/mpirun -genv I_MPI_DEBUG 5 -np <N> -ppn 1 -host <node0>,...,<nodeN> /opt/intel-mpi-benchmarks/2019/IMB-MPI1 -npmin 1 -msglog 15:17 alltoall 
#测试N节点间alltoall通信模式效率,每个节点开启一个进程,获取不同消息粒度下的通信时间,请将<node0>等参数修改成实际节点名称

操作步骤

  1. 登录弹性高性能计算控制台

  2. 创建一个名为MPI的集群。

    具体操作,请参见创建集群。请注意以下配置参数:

    • 计算节点:选择vCPU≥8的节点,如ecs.c7.2xlarge。

    • 其他软件:选中intel-mpi 2018、intel-mpi-benchmarks 2019软件。

      说明

      您也可以为已创建的集群安装intel-mpi 2018和intel-mpi-benchmarks 2019软件。具体操作,请参见安装软件

      MPI-1
  3. 创建一个名为mpitest的sudo用户。

    具体操作,请参见创建用户

  4. 上传作业文件。

    1. 在左侧导航栏,单击作业

    2. 集群列表中选择目标集群,单击创建作业

    3. 创建作业页面,选择新建文件 > 打开本地文件

    4. 在本地找到并单击IMB.dat文件,单击打开

      更多信息,请参见相关算例

  5. 创建作业脚本并提交作业。

    1. 创建作业页面,选择新建文件 > 使用文件模板 > pbs demo

    2. 按下图完成作业配置,单击确认提交作业。

      作业

      作业文件配置如下:

      #!/bin/sh
      #PBS -j oe
      #PBS -l select=2:ncpus=8:mpiprocs=1  #本示例使用2个计算节点,每个节点使用8 vCPU,使用一个MPI任务进行高性能计算。实际测试中根据节点配置设置CPU个数。
      
      export MODULEPATH=/opt/ehpcmodulefiles/
      module load intel-mpi/2018
      module load intel-mpi-benchmarks/2019
      
      echo "run at the beginning"
      /opt/intel/impi/2018.3.222/bin64/mpirun -genv I_MPI_DEBUG 5 -np 2 -ppn 1 -host compute000,compute001 /opt/intel-mpi-benchmarks/2019/IMB-MPI1 pingpong > IMB-pingpong   #本示例使用2个计算节点:compute000,compute001,请修改为您的集群节点名称。
  6. 查看作业结果。

    1. 集群页面,找到HPL.test集群,单击远程连接

    2. 远程连接页面,输入集群用户名、登录密码和端口,单击ssh连接

    3. 执行如下命令,查看HPL作业结果文件。

      cat /home/mpitest/IMB-pingpong

      本次测试结果如下图所示。

      结果new