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表示对应算法的编号。如果算法选择的数值不在有效范围内,则会打印出警告提示,并且执行默认算法选择。
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 |