【问题标题】:MPI collective communicationsMPI 集体通信
【发布时间】:2012-03-17 21:41:11
【问题描述】:

我使用 C 语言的 MPI 库,我想知道是否可以通过不同的进程从代码的不同部分调用 MPI 集体通信方法?

伪例子:

MPI_Rank(&rank,MPI_COMM_WORLD);

switch(rank) {
 case 0:
     MPI_Bcast(buf1,count, type, 0, comm);
     break;
 case 1:
     MPI_Bcast(buf1,count, type, 0, comm);
     break;
 case 2:
     MPI_Bcast(buf1,count, type, 0, comm);
     break;
}

或者它必须从每个进程的同一行代码中调用?

     MPI_Bcast(buf1,count, type, 0, comm);

抱歉,我问了一个琐碎的问题,但我用谷歌搜索并没有找到答案。

谢谢!

【问题讨论】:

    标签: c mpi


    【解决方案1】:

    它可以从代码的不同部分调用,但你必须确保通信器中的所有进程都实际调用MPI_Bcast以避免死锁。如果所有进程都遵循不同的执行路径,这可能会稍微难以确保。

    【讨论】:

      猜你喜欢
      • 2019-06-11
      • 2016-03-02
      • 2013-03-08
      • 2012-04-26
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2019-05-29
      相关资源
      最近更新 更多