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

指定算法说明

关于MPI_Allreduce指定算法的说明

  • 在选用算法3、6、8、14时,需保证进程数在socket上平均分布(Socket-aware类算法不支持socket间进程数不均衡),需要加上以下选项,命令如下:

    --map-by-socket --rank-by-core

  • 在选用算法5、6时,因节点内为K-nomial算法,需要引入调节K-nomial tree结构的K值参数,示例命令如下:

    -x UCX_BUILTIN_DEGREE_INTRA_FANOUT=3

    -x UCX_BUILTIN_DEGREE_INTRA_FANIN=8

  • 在选用算法7、8时,因节点内与节点间都采用K-nomial算法,需要引入调节K-nomial tree结构的K值参数,示例命令如下:

    -x UCX_BUILTIN_DEGREE_INTER_FANOUT=7 -x UCX_BUILTIN_DEGREE_INTER_FANIN=7

    -x UCX_BUILTIN_DEGREE_INTRA_FANOUT=3 -x UCX_BUILTIN_DEGREE_INTRA_FANIN=8

  • 在满足浮点精度前提下,如需要保证相同算法若干次计算结果的一致性,可打开计算结果一致性参数开关进行处理(默认为关闭“no”),示例命令如下:

    -x UCX_BUILTIN_REDUCE_CONSISTENCY=yes

为提高性能,也可加入以下选项:

-x UCX_TLS=sm,rc_x

综上,在调用MPI_Allreduce时运行命令示例如下(鲲鹏芯片):

mpirun -np 16 -N 2 --hostfile hf8 --mca btl ^vader,tcp,openib -x UCX_TLS=sm,rc_x -x UCX_BUILTIN_ALLREDUCE_ALGORITHM=n test_case

关于MPI_Bcast指定算法的说明

  • 在选用算法3时,因为节点间K-nomial算法,需要加上调节K值的参数,命令示例如下:

    -x UCX_BUILTIN_DEGREE_INTER_FANOUT=7

  • 在选用算法4时,因为节点内与节点间都采用了K-nomial算法,需要加上两个调节K值的参数,命令示例如下:

    -x UCX_BUILTIN_DEGREE_INTER_FANOUT=7

    -x UCX_BUILTIN_DEGREE_INTRA_FANOUT=3

为提高性能,也可加入以下选项:

–x UCX_TLS=sm,rc_x

综上,在调用MPI_Bcast时运行命令示例如下(鲲鹏芯片):

mpirun -np 16 -N 2 --hostfile hf8 --mca btl ^vader,tcp,openib -x UCX_TLS=sm,rc_x -x UCX_BUILTIN_BCAST_ALGORITHM=n test_case

关于MPI_Barrier指定算法的说明

MPI_Barrier算法地图可知,MPI_Barrier的算法是MPI_Allreduce算法的子集,因此可参考MPI_Allreduce指定算法说明部分,此处不再赘述。