【问题标题】:Is MPI_COMM_WORLD not constant?MPI_COMM_WORLD 不是恒定的吗?
【发布时间】:2019-03-01 08:43:37
【问题描述】:

我读到here,那个

而 MPI_Comm_split 是最常见的通信器创建 功能,还有很多。 MPI_Comm_dup 是最基本的 创建一个通信器的副本。那里可能看起来很奇怪 将存在一个仅创建副本的函数,但这非常 对于使用库执行专门的应用程序很有用 函数,例如数学库。在这几种 应用程序,重要的是用户代码和库代码不 互相干扰。为了避免这种情况,第一件事 应用程序应该做的是创建 MPI_COMM_WORLD 的副本, 这将避免其他库也使用的问题 MPI_COMM_WORLD。图书馆本身也应该复制 的 MPI_COMM_WORLD 以避免同样的问题。

MPI_COMM_WORLD 可以在 MPI 初始化开始后更改吗? MPI_COMM_WORLD 不是常量吗?

【问题讨论】:

    标签: c parallel-processing mpi communicator


    【解决方案1】:

    MPI_Comm_dup(MPI_COMM_WORLD, ...) 的基本原理是您不希望 MPI 应用程序(MPI_COMM_WORLD)发送的消息被库在后台接收。相反,您不希望 MPI 应用接收库发送的消息。

    避免这种情况的一种简单方法是使用库的专用通信器,复制MPI_COMM_WORLD 是实现此目的的最简单方法。

    您的问题的答案是MPI_COMM_WORLDMPI_Init() 之后无法更改。更一般地说,通信器一旦创建就无法更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多