c++ - 两个MPI依次广播

标签 c++ mpi broadcast

我想在 MPI 中使用广播发送两个数组:double Aint B(我使用的是 C++)。通常,communicator.Bcast block 用于读者,但不用于作者。所以,如果我这样做了:

communicator.Bcast(A, a_len, ...)
communicator.Bcast(B, b_len, ...)

某些进程可能会首先检索第二条消息,然后事情就会变得一团糟。

我想知道,对于这个问题,什么是好的、干净的解决方案?我应该使用派生数据类型/MPI_Pack 吗?看起来很难看。我可以以某种方式强制在广播中使用 TAG 吗?

最佳答案

MPI 保证对通信器的集体调用按照它们发出的顺序进行处理。所以不,读者不会首先检索第二条消息——那个例子是保存。

仅供引用,MPI C++ 接口(interface)已被弃用 - 最好直接将 C API 用于新代码。

关于c++ - 两个MPI依次广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37514482/

相关文章:

eclipse - java.io.FileNotFoundException : null\conf\wrapper. conf(系统找不到指定的路径)

android - 在Android上检测麦克风状态变化以检测音频记录

java - 如何创建广播接收器?

c++ - std::vector<T>::使用子范围赋值有效吗?

c++ - 如何使用Ct Qt解析此JSON?

c++ - 不同终端的不同进程与 MPI 通信

java - 如何从内存中删除粘性广播?

c++ - WinSock accept() 返回 204.204.204.204

c++ - 这些宏在编译时是否使用 gcc 计算出相同的代码?

对于大消息,MPI 卡在 MPI_Send 上