我的问题很简单,MPI_Scatter 函数定义是:
#include <mpi.h>
void MPI::Comm::Scatter(const void* sendbuf, int sendcount,
const MPI::Datatype& sendtype, void* recvbuf,
int recvcount, const MPI::Datatype& recvtype,
int root) const
'sendcount' 和 'sendtype' 是多余的吗?在这种情况下会发生:sendcount!=recvcount?
编辑:也许需要对这个问题进行一些澄清。我知道原因可能是,对于根来说,数据是一些“结构 X”,而对于接收者来说,数据是一些“结构 Y”,这在某种程度上也是有意义的(这一切都符合“好的”)。
如果是这样的话......我不明白为什么需要再次说要接收的预期数据的总大小与发送的数据大小相同。如果只是投射数据视图的问题,我只会进行投射。实际上,缓冲区是一个(void *)。