两个MPI一个接一个地播放

时间:2016-05-29 20:11:38

标签: c++ mpi broadcast

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

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

可能会发生某些进程首先检索第二条消息并且事情会搞乱。

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

1 个答案:

答案 0 :(得分:5)

MPI保证对通信器的集体呼叫按照发布的顺序进行处理。所以不,读者不会首先检索第二条消息 - 例如保存。

仅供参考,不推荐使用MPI C ++接口 - 最好直接使用C API获取新代码。