algorithm - 哪种 allreduce 算法用于 OpenMPI (V2.0.2) 中的大向量 (200MB+)?

标签 algorithm mpi openmpi

目前,我正在尝试了解 OpenMPI(版本 2.0.2)中大型向量的 MPI_Allreduce 的详细信息。我学习了 allreduce 算法,如二叉树、递归加倍、递归减半和加倍、二进制 block 和环算法。大多数都是基于reduce-scatter然后allgather。

但我仍然想知道在 OpenMPI (v2.0.2) 中,哪种 allreduce 算法用于大向量 (200MB+)。最好提供有关它的详细信息。

非常感谢:)

最佳答案

答案在代码中,参见https://github.com/open-mpi/ompi/blob/v2.0.2/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c中的ompi_coll_tuned_allreduce_intra_dec_fixed

简答,视情况而定 更长的答案,这取决于您的通信器大小、您使用的数据类型/计数(例如,一种用于大型向量的派生数据类型,或许多预定义的数据类型)以及您的运算符是否可交换。

您还可以使用 mpirun --mca coll_base_verbose 1 ... 询问 Open MPI(也就是说,我认为您需要使用 --enable- 配置 Open MPI调试为了让它工作)

关于algorithm - 哪种 allreduce 算法用于 OpenMPI (V2.0.2) 中的大向量 (200MB+)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45601828/

相关文章:

image - 如何根据矩阵值检测图像的一部分?

java - 高效的 Minkowski 和计算

c++ MPI广播 vector

c++ - 增加 mpi 中的 CPU 数量会增加处理时间?

c - MPI 矩阵乘法与分散聚集

linux - 如何从 srpm cuda aware 构建 openmpi rpm

algorithm - 在 1 GB 内存中排序 10GB 数据。我将如何做?

algorithm - 设计一个自动完成系统来选择聚合类型的实例

gcc - 我们可以使用 gcc 优化标志而不是 mpicc 吗?

c - 使用 openMPI 发送 gmp 类型 mpf_t