C 原语中的 MPI MPI_Allgather

问题描述 投票:0回答:1

我正在尝试使用这个原语,但我找不到好的解决方案。

在我的示例中,我有 nProcesses,每个 ona 有一个包含 k 个元素的向量 c。我希望每个进程也具有其他进程的所有元素,因此每个进程都有一个由 k*k 元素组成的新向量。这就是我所做的

int c[k];
int mtemp[k*k];
MPI_Allgather(&c[0],k,MPI_INT,&mtemp[0],k*(nProc-1),MPI_INT,MPI_COMM_WORLD);

这样每个进程发送 k 个元素并接收 k*(nProc-1) 个元素,但是当我运行时,对于每个进程我只有 k*2 个元素的 mtemp,它们的元素和进程 0 的元素

c mpi
1个回答
0
投票

问题是

mtemp
k*nProc
而不是
k*k


此答案是由 OP AlessandroIV 在 CC BY-SA 4.0 下发布为问题 C 原语 MPI_Allgather中的 MPI 的 评论

© www.soinside.com 2019 - 2024. All rights reserved.