我想发送两个数组:double A并int B在MPI中使用广播(我正在使用C++).通常,communicator.Bcast读者的块,但不是作家.所以,如果我做了:
communicator.Bcast(A, a_len, ...)
communicator.Bcast(B, b_len, ...)
Run Code Online (Sandbox Code Playgroud)
可能会发生某些进程首先检索第二条消息并且事情会搞乱.
我想知道,对于那个问题,什么是好的,干净的解决方案?我应该使用派生数据类型/ MPI_Pack吗?看起来很难看.我可以以某种方式强制广播中使用TAG吗?