两个MPI依次广播
two MPI broadcasts one after another
我想发送两个数组:double A
和 int B
在 MPI 中使用广播(我使用的是 C++)。通常,communicator.Bcast
块用于读者,但不用于作者。所以,如果我这样做了:
communicator.Bcast(A, a_len, ...)
communicator.Bcast(B, b_len, ...)
有些进程可能会首先检索第二条消息,然后事情就会变得一团糟。
我想知道,什么是解决该问题的好、干净的解决方案?我应该使用派生 datatypes/MPI_Pack 吗?看起来很难看。我可以以某种方式强制在广播中使用 TAG 吗?
MPI 保证通信器上的集体调用按照它们发出的顺序进行处理。所以不,读者不会首先检索第二条消息——那个例子是保存。
仅供参考,MPI C++ 接口已被弃用 - 最好直接使用 C API 编写新代码。
我想发送两个数组:double A
和 int B
在 MPI 中使用广播(我使用的是 C++)。通常,communicator.Bcast
块用于读者,但不用于作者。所以,如果我这样做了:
communicator.Bcast(A, a_len, ...)
communicator.Bcast(B, b_len, ...)
有些进程可能会首先检索第二条消息,然后事情就会变得一团糟。
我想知道,什么是解决该问题的好、干净的解决方案?我应该使用派生 datatypes/MPI_Pack 吗?看起来很难看。我可以以某种方式强制在广播中使用 TAG 吗?
MPI 保证通信器上的集体调用按照它们发出的顺序进行处理。所以不,读者不会首先检索第二条消息——那个例子是保存。
仅供参考,MPI C++ 接口已被弃用 - 最好直接使用 C API 编写新代码。