如何使用HMPI工具拉起可执行程序
发表于 2023/04/27
0
在本章节中,我们将通过第4章节生成的可执行文件test_case带大家了解使用HMPI工具拉起可执行程序。
HMPI并行作业可以分为两种模式:Non-coll模式、Coll模式。
Non-coll模式
Hyper MPI可屏蔽掉coll_ucx功能,采用Open MPI原有的集合通信,使用命令示例如下:
mpirun --mca coll ^ucx -np 512 -N 128 --hostfile hf_test test_case
“-np”表示所有节点总进程数,计算方式-N*节点数。
“-N”表示每个节点的进程数。
“hf_test”表示进程运行节点的配置文件,文件内容为各节点IP,示例如下
“test_case”表示mpicc编译后的二进制文件。
Coll模式
Coll模式下使用Hyper MPI的HUCX功能,使用时不必加--mca coll ^ucx参数。Coll模式目前支持三种MPI集合操作:MPI_Allreduce、MPI_Bcast、MPI_Barrier。
Coll模式分默认算法和指定算法两种模式:
(1)默认算法实现了基于包长、PPN、节点数三个参数的算法自动选择功能,即根据不同的包长、每个节点的进程数、节点数选择不同的算法。
(2)指定算法模式则需要利用命令行参数进行特定算法的指定。
1. 默认算法模式
Hyper MPI在默认情况下根据包长、PPN、节点数三个参数进行算法选择,在使用时直接运行mpirun命令即可,不用添加额外参数。
(1)MPI_Allreduce和MPI_Bcast集合操作默认算法根据包长、PPN、节点数三个参数进行选择。
(2)MPI_Barrier集合操作默认算法根据PPN和节点数进行选择。
运行命令示例如下:
mpirun -np 512 -N 128 --hostfile hf_test test_case
2. 指定算法模式
方法1 通过命令行参数指定算法
a. 使用PuTTY工具,以Hyper MPI普通用户,如“hmpi_user”登录作业执行节点
b. 在mpirun命令中增加如下参数
-x UCX_BUILTIN_ALLREDUCE_ALGORITHM=n
方法2:通过设置环境变量的方式来选择对应的算法
a. 使用PuTTY工具,以Hyper MPI普通用户,如“hmpi_user”登录作业执行节点
b. 将以下命令写入所有节点的“~/.bashrc”中
export UCX_BUILTIN_ALLREDUCE_ALGORITHM=n
c. 执行以下命令,使环境变量生效
source ~/.bashrc
d. 不再需要该环境变量时,从“~/.bashrc”中删除上述命令,并执行以下命令删除已生效的环境变量
unset UCX_BUILTIN_ALLREDUCE_ALGORITHM
“UCX_BUILTIN_ALLREDUCE_ALGORITHM”表示MPI_Allreduce的算法参数,其他可选参数请参见《Hyper MPI 1.2.1 操作指导》。
“n”表示对应算法的序号。如果算法选择的数值不在有效范围内,则会执行默认算法。
本页内容