【问题标题】:MPI_Igatherv VS MPI_Isend & MPI_IrecvMPI_Igatherv VS MPI_Isend & MPI_Irecv
【发布时间】:2015-05-27 19:00:03
【问题描述】:

我必须在算法的每一步从其他处理器收集大量数据,而某些处理器的数据大小可能为零。

所以,我想知道哪种方法更高效,使用起来更快,MPI_Igatherv,还是在缓冲区不为空时使用 (MPI_Isend & MPI_Irecv)。

MPI 是否在内部处理 MPI_Igatherv 中的零缓冲区?

使用单向通信代替 MPI_Igatherv 或 MPI_Isend 是否更好且可能?

【问题讨论】:

    标签: mpi openmpi mpich


    【解决方案1】:

    其中很多你只需要实现它,看看会发生什么。实现可以为不同的情况提供很多优化。网络硬件/拓扑可能会影响结果。

    一般来说,将零字节传递给集体操作并没有错。贡献零字节的进程可能仍然处于有利位置(从拓扑上讲)并且可以参与集体操作。

    单边操作可能会更好,也可能不会。再次取决于许多因素。

    【讨论】:

      猜你喜欢
      • 2020-03-09
      • 1970-01-01
      • 2017-08-20
      • 2011-08-01
      • 2018-09-13
      • 2015-12-09
      • 2017-10-01
      • 2016-01-06
      • 2021-05-15
      相关资源
      最近更新 更多