Coll模式下使用Hyper MPI的hucx功能,使用时不必加“--mca coll ^ucx”参数。Coll模式目前支持三种MPI集合操作:MPI_Allreduce、MPI_Bcast和MPI_Barrier。
Coll模式分默认算法和指定算法两种模式:
Hyper MPI在默认情况下根据包长进行算法选择,在使用时直接运行mpirun命令即可,不用添加额外参数。
该配置下的Hyper MPI稳定性好,但性能较指定算法稍差。运行命令示例如下:
mpirun -np 16 -N 2 --hostfile hf osu_allreduce
通过设置环境变量的方式来选择对应的算法,比如:
方法1:export UCX_BUILTIN_ALLREDUCE_ALGORITHM=n
方法2:mpirun -x UCX_BUILTIN_ALLREDUCE_ALGORITHM=n
算法序号 |
算法内容 |
---|---|
1 |
Recursive |
2 |
Node-aware Recursive+Binomial |
3 |
Socket-aware Recursive+Binomial |
4 |
Ring |
5 |
Node-aware Recursive+K-nomial |
6 |
Socket-aware Recurisve+K-nomial |
7 |
Node-aware K-nomial+K-nominal |
8 |
Socket-aware K-nominal+K-nominal |
MPI_Allreduce对于不连续的数据类型只支持算法1。
算法序号 |
算法内容 |
---|---|
1 |
Binomial tree |
2 |
Node-aware Binomial tree+Binomial tree |
3 |
Node-aware K-nomial tree+Binomial tree |
4 |
Node-aware K-nomial tree+K-nomial tree |
算法序号 |
算法内容 |
---|---|
1 |
Recursive |
2 |
Node-aware Recursive+Binomial |
3 |
Socket-aware Recursive+Binomial |
4 |
Node-aware Recursive+K-nomial |
5 |
Socket-aware Recurisve+K-nomial |
6 |
Node-aware K-nomial+K-nominal |
7 |
Socket-aware K-nominal+K-nominal |
Hyper MPI兼容Open MPI的命令参数,详情请参见https://www.open-mpi.org/doc/current/man1/mpirun.1.php;Hyper MPI新增命令参数说明参见表4。
参数 |
参数含义 |
---|---|
-x BMTREE_DEGREE_INTER_FANOUT |
K叉树节点间扇出值 |
-x BMTREE_DEGREE_INTER_FANIN |
K叉树节点间扇入值 |
-x BMTREE_DEGREE_INTRA_FANOUT |
K叉树节点内扇出值 |
-x BMTREE_DEGREE_INTRA_FANIN |
K叉树节点内扇入值 |
-x UCX_BUILTIN_BCAST_ALGORITHM= |
Bcast的算法参数,“=”号后面的数字代表对应的算法编号,例如:-x UCX_BUILTIN_BCAST_ALGORITHM=1,就代表Bcast的算法1。 |
-x UCX_BUILTIN_ALLREDUCE_ALGORITHM= |
Allreduce的算法参数,“=”号后面的数字代表对应的算法编号,例如:-x UCX_BUILTIN_ALLREDUCE_ALGORITHM=7,就代表Allreduce的算法7。 |
-x UCX_BUILTIN_BARRIER_ALGORITHM= |
Barrier的算法参数,“=”号后面的数字代表对应的算法编号,例如:-x UCX_BUILTIN_BARRIER_ALGORITHM=4,就代表Barrier的算法4。 |
-x MAX_MSG_LIST_SIZE= |
消息进程函数最大循环次数 |
-x BCOPY_TO_ZCOPY_OPT= |
bcopy到zcopy之间的优化开关 |
-x SHORT_MAX_TX_SIZE= |
使用小包的最大发送限制 |
-x BCOPY_MAX_TX_SIZE= |
使用bcopy包的最大发送限制 |
-x LARGE_DATATYPE_THRESHOLD= |
超大数据类型阈值 |
--mca coll_ucx_enable_topo_map |
使能拓扑地图 |
--mca coll_ucx_num_disconnect |
断开连接的并行进程数 |
--mca coll_ucx_priority |
UCX模块的优先级 |
--mca coll_ucx_verbosity |
UCX组件的日志详细程度 |