MPI_IN_PLACE
作为MPI_Scatter
的参数给出时应如何操作?应如何使用?我无法理解man MPI_Scatter
:MPI_IN_PLACE如何与MPI_Scatter一起使用?
当通信器是内部通信器时,您可以在原地执行收集操作(输出缓冲器用作输入缓冲器)。使用变量MPI_IN_PLACE作为根进程recvbuf的值。在这种情况下,recvcount和recvtype将被忽略,并且根进程不会向其自身发送数据。由于就地选项将接收缓冲区转换为发送和接收缓冲区,因此包含INTENT的Fortran绑定必须将它们标记为INOUT,而不是OUT。
我想要做的是使用相同的缓冲区,其中包含根上的数据作为每个其他进程的接收缓冲区(如MPI_Bcast
)。请问MPI_Scatter
用MPI_IN_PLACE
让我这样做?
虚拟缓冲区可以替换为NULL,因为它永远不会被读取。 – 2015-04-02 23:10:10