MPI安装与配置
HCCL性能测试工具依赖MPI拉起多个进程,所以需要先安装MPI软件。
以下操作需要在每个参与集合通信的机器上执行。
下面分别介绍MPI 3.2.1版本与Open MPI-4.1.5版本的安装配置流程,注意以下操作需要在每个参与集合通信的机器上执行。
MPI 3.2.1安装配置
- 安装MPI软件包。
- 下载并解压MPI软件包。
参见MPI 3.2.1下载3.2.1版本的软件包,例如:mpich-3.2.1.tar.gz,然后执行如下命令解压缩软件包。
tar -zxvf mpich-3.2.1.tar.gz
- 进入MPI解压后路径,并配置编译选项。
cd mpich-3.2.1 ./configure --disable-fortran --prefix=/usr/local/mpich-3.2.1
- --disable-fortran:禁用Fortran语言支持。
- --prefix:配置的MPI安装路径,用户可自定义。
- 编译并安装MPI。
make && make install
以上命令执行完成后MPICH会安装在“/usr/local/mpich-3.2.1”路径下。
- 下载并解压MPI软件包。
- 配置网络节点信息。
将运行环境的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-4.1.5安装配置
- 下载并解压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-4.1.5
- --disable-fortran:禁用Fortran语言支持。
- --enable-ipv6:启用IPv6支持。
- --prefix:配置的Open MPI的安装路径,用户可自定义。
- 编译并安装Open MPI。
make && make install
以上命令执行完成后Open MPI会安装在“/usr/local/openmpi-4.1.5”路径下。
- 配置网络节点信息。
将运行环境的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网卡名"