鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Coll模式

Coll模式使用Hyper MPI的hucx功能,使用时不必加--mca coll ^ucx参数即可。Coll模式目前支持三种MPI集合操作:MPI_Allreduce、MPI_Bcast和MPI_Barrier。

Coll模式分为默认算法和指定算法两种模式;其中默认算法实现了基于包长的算法自动选择的功能,即根据不同的包长选择不同的算法;指定算法模式则需要利用命令行参数进行特性算法的指定。

默认算法模式

Hyper MPI在默认情况下根据包长进行算法选择,在使用时直接运行mpirun命令即可,不用添加额外参数。MPI_Allreduce集合操作所采用的包长小于16384 Byte的默认算法为:node-aware recursive doubling,大于16384 Byte默认算法:ring;MPI_Bcast集合操作所采用的默认算法为:node-aware binomial tree;MPI_Barrier默认算法:node-aware recursive doubling。

该配置下的Hyper MPI稳定性好,但性能较指定算法性能稍差。运行命令示例如下:

mpirun -np 16 -N 2 --hostfile hf osu_allreduce

指定算法模式

通过设置环境变量的方式来选择对应的算法,比如:

export UCX_BUILTIN_ALLREDUCE_ALGORITHM=n

mpirun -x UCX_BUILTIN_ALLREDUCE_ALGORITHM=n

其中n表示对应算法的编号。如果算法选择的数值不在有效范围内,则会打印出警告提示,并且执行默认算法选择。

表1 编号与算法对应关系参考算法地图

mpi_allreduce

算法序号

算法内容

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_bcast

算法序号

算法内容

1

Binomial tree

2

Topo-aware tree(Binomial tree+Binomial tree)(Topo-aware level:node)

3

Topo-aware tree(K-nomial tree+Binomial tree)(Topo-aware level:node)

4

Topo-aware tree(K-nomial tree+K-nomial tree)(Topo-aware level:node)

mpi_barrier

算法序号

算法内容

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