我有一个由10台计算机和2个变量组成的C++集群: - result: 大小为int 100; - result_final:(仅在主机上)大小为int 1000; 我的问题是如何将“result”的数据片段汇聚起来并创建“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);