【发布时间】:2012-05-08 17:19:45
【问题描述】:
我有一个由 10 台计算机和 2 个 C++ 变量组成的集群 - 结果:大小 int 100; - result_final : (仅在主机上) size int 1000; 如何收集“结果”的碎片并创建“result_final”,因为它们的大小不同。 谢谢!
int *rcounts = (int *) malloc(commSize * sizeof(int));
int *displs = (int *) malloc(commSize * sizeof(int));
for (i = 0; i < commSize; ++i) {
displs[i] = commRank * result_size * size;
rcounts[i] = result_size * size;
}
MPI_Gatherv(h_result, result_size * size, MPI_INT, h_result_final, rcounts,
displs, MPI_INT, 0, MPI_COMM_WORLD);
【问题讨论】:
-
如果您向我们展示您编写的代码,这里的人会有所帮助。如果你不在这里的人会添加无用的 cmets(比如这个)。