gpt4 book ai didi

c++ - 将处理器结果保存到 MPI 中的一个数组

转载 作者:行者123 更新时间:2023-11-28 06:43:12 25 4
gpt4 key购买 nike

我有一个函数,它根据等级将一些数字存储在数组中,完成后我想要一个更大的数组,其中包含所有处理器的结果。假设我有 4 个处理器,我正在按以下方式运行我的程序

     mpirun -np 4 storesArrays.out

这是我的代码

int main(int argc, char *argv[])
{
MPI_Init(&argc, &argv);

int currRank;
MPI_Comm_rank(MPI_COMM_WORLD, &currRank);

int numRanks;
MPI_Comm_size(MPI_COMM_WORLD, &numRanks);

int *currArray;
currArray = generateValues(currRank,numRanks);
MPI_Finalize();
}

现在我想创建一个数组来存储每个处理器的 currArray。问题是如果我在 main 中初始化数组,它每次都会用每个处理器初始化它。有办法吗?

最佳答案

有两种方法:

使用 MPI_Gather,它将每个处理器的数据收集到一个“主”处理器。

或者,如果每个处理器都需要所有处理器的数组,则使用 MPI_Allgather。

关于c++ - 将处理器结果保存到 MPI 中的一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25540247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com