MPI安装与配置
HCCL性能测试工具依赖MPI拉起多个进程,所以需要先安装MPI软件。
以下操作需要在每个参与集合通信的机器上执行。
下面分别介绍MPICH与Open MPI的安装配置流程,注意以下操作需要在每个参与集合通信的机器上执行。
MPICH安装配置
- 安装MPICH软件包。
- 下载并解压MPICH软件包。
- 针对Atlas 训练系列产品,请下载MPICH 3.2.1版本。
- 针对Atlas A2 训练系列产品,请下载MPICH 3.2.1版本。
获取到mpich-${version}.tar.gz后,执行如下命令解压缩软件包。
tar -zxvf mpich-${version}.tar.gz
${version}为MPICH的版本号。
- 进入MPICH解压后路径,并配置编译选项。
cd mpich-${version} ./configure --disable-fortran --prefix=/usr/local/mpich
- --disable-fortran:禁用Fortran语言支持。
- --prefix:配置的MPI安装路径,用户可自定义。
- 编译并安装MPICH。
make && make install
以上命令执行完成后MPICH会安装在“/usr/local/mpich”路径下。
- 下载并解压MPICH软件包。
- 配置网络节点信息。
将运行环境的IP地址加入到“/etc/hosts”文件中,格式为“IP地址 主机名”,示例如下:
172.16.0.100 node3
其中“node3”为主机名。
注意如果是Euler OS操作系统,需要执行如下命令使更新后的“/etc/hosts”文件生效:
nmcli c reload
- 配置当前操作节点到集群通信节点的SSH信任关系,以支持集群通信节点远程登录。
以下仅为操作示例:
- 在当前操作节点生成密钥信息(如若环境中存在,可不重复执行):
ssh-keygen -t rsa
例如密钥信息生成后,存储在“/root/.ssh/id_rsa.pub”文件中。
- 将操作节点的公钥文件复制到集群通信其他节点,实现SSH密钥登录远程主机。
示例如下,其中${nodeX_ip_address}是需要与操作节点通信的节点IP地址。
ssh-copy-id -i /root/.ssh/id_rsa.pub ${node3_ip_address} ssh-copy-id -i /root/.ssh/id_rsa.pub ${node4_ip_address}
- SSH远程登录3.b中的node3与node4,确认是否可以直接登录。
- 在当前操作节点生成密钥信息(如若环境中存在,可不重复执行):
Open MPI安装配置
- 下载并解压Open MPI软件包。
参见Open MPI-4.1.5下载4.1.5版本的软件包,例如:openmpi-4.1.5.tar.gz,然后执行如下命令解压缩软件包。
tar -zxvf openmpi-4.1.5.tar.gz
解压缩后Open MPI源码存储在openmpi-4.1.5路径下。
- 编辑Open MPI源码相关配置文件,修改Open MPI支持的最大Host数量。
- 进入Open MPI源码存储路径。
cd openmpi-4.1.5
- 修改“orte/mca/routed/radix/routed_radix_component.c”配置文件。
vi orte/mca/routed/radix/routed_radix_component.c
修改配置参数“mca_routed_radix_component.radix”的值为“集群中总卡数/单Server中卡数”,例如:
mca_routed_radix_component.radix = 1024;
保存退出。
- 修改“orte/mca/plm/rsh/plm_rsh_component.c”配置文件。
vi orte/mca/plm/rsh/plm_rsh_component.c
修改配置参数“mca_plm_rsh_component.num_concurrent”的值为“集群中总卡数/单Server中卡数”,例如:
mca_plm_rsh_component.num_concurrent = 1024;
保存退出。
- 进入Open MPI源码存储路径。
- 配置编译选项。
./configure --disable-fortran --enable-ipv6 --prefix=/usr/local/openmpi
- --disable-fortran:禁用Fortran语言支持。
- --enable-ipv6:启用IPv6支持。
- --prefix:配置的Open MPI的安装路径,用户可自定义。
- 编译并安装Open MPI。
make && make install
以上命令执行完成后Open MPI会安装在“/usr/local/openmpi”路径下。
- 配置网络节点信息。
将运行环境的IP地址加入到“/etc/hosts”文件中,格式为“IP地址 主机名”,示例如下:
172.16.0.100 node1 172.16.1.200 node2 fec0::b6ef:69dc:337d:9a12 node3 fec0::b6ef:998f:f3eb:4617 node4
注意如果是Euler OS操作系统,需要执行如下命令使更新后的“/etc/hosts”文件生效:
nmcli c reload
- 配置当前操作节点到集群通信节点的SSH信任关系,以支持集群通信节点远程登录。
以下仅为操作示例:
- 在当前操作节点生成密钥信息(如若环境中存在,可不重复执行):
ssh-keygen -t rsa
例如密钥信息生成后,存储在“/root/.ssh/id_rsa.pub”文件中。
- 将操作节点公钥复制到集群通信其他节点,实现SSH密钥登录远程主机。
- 如果通信网卡使用IPv4地址,公钥复制命令如下:
ssh-copy-id -i /root/.ssh/id_rsa.pub ${node1_ipv4_address} ssh-copy-id -i /root/.ssh/id_rsa.pub ${node2_ipv4_address}
例如:
ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.0.100
- 如果通信网卡使用IPv6地址,公钥复制命令如下:
ssh-copy-id -i /root/.ssh/id_rsa.pub ${node3_ipv6_address}%网卡名 ssh-copy-id -i /root/.ssh/id_rsa.pub ${node4_ipv6_address}%网卡名
例如:
ssh-copy-id -i /root/.ssh/id_rsa.pub fec0::b6ef:998f:f3eb:4617%enp189s0f0
- 如果通信网卡使用IPv4地址,公钥复制命令如下:
- SSH远程登录到6中配置信任关系的节点,确认是否可以直接登录。
- 在当前操作节点生成密钥信息(如若环境中存在,可不重复执行):
- 配置MPICH启动参数,此步骤仅在通信网卡使用IPv6协议时进行,若使用IPv4协议,跳过即可。
export HYDRA_LAUNCHER_EXTRA_ARGS="-B 本节点的IPv6网卡名"