哪种 allreduce 算法用于 OpenMPI (V2.0.2) 中的大向量 (200MB+)?
Which allreduce algorithm is used for large vectors (200MB+) in OpenMPI (V2.0.2)?
目前,我正在尝试了解 OpenMPI(版本 2.0.2)中大向量的 MPI_Allreduce 的详细信息。我学习了 allreduce 算法,如二叉树、递归加倍、递归减半和加倍、二进制块和环算法。大多数都是基于reduce-scatter然后allgather。
但我仍然想知道在 OpenMPI (v2.0.2) 中,哪种 allreduce 算法用于大向量 (200MB+)。最好提供有关它的详细信息。
非常感谢:)
答案在代码中,参见ompi_coll_tuned_allreduce_intra_dec_fixed
中的https://github.com/open-mpi/ompi/blob/v2.0.2/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c
简答,视情况而定
更长的答案,这取决于您的通信器大小,您正在使用的datatype/count(例如,一个大向量的派生数据类型,或许多预定义的数据类型)以及您的运算符是否可交换。
您也可以使用 mpirun --mca coll_base_verbose 1 ...
询问 Open MPI(也就是说,我认为您需要使用 --enable-debug
配置 Open MPI 才能使其工作)
目前,我正在尝试了解 OpenMPI(版本 2.0.2)中大向量的 MPI_Allreduce 的详细信息。我学习了 allreduce 算法,如二叉树、递归加倍、递归减半和加倍、二进制块和环算法。大多数都是基于reduce-scatter然后allgather。
但我仍然想知道在 OpenMPI (v2.0.2) 中,哪种 allreduce 算法用于大向量 (200MB+)。最好提供有关它的详细信息。
非常感谢:)
答案在代码中,参见ompi_coll_tuned_allreduce_intra_dec_fixed
中的https://github.com/open-mpi/ompi/blob/v2.0.2/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c
简答,视情况而定 更长的答案,这取决于您的通信器大小,您正在使用的datatype/count(例如,一个大向量的派生数据类型,或许多预定义的数据类型)以及您的运算符是否可交换。
您也可以使用 mpirun --mca coll_base_verbose 1 ...
询问 Open MPI(也就是说,我认为您需要使用 --enable-debug
配置 Open MPI 才能使其工作)