MPI按顺序合并来自所有等级的数组

时间:2013-09-21 08:09:24

标签: arrays algorithm merge mpi floyd-warshall

我是MPI的新手 我有一些由处理器生成的数组。每个处理器生成一个具有不同长度的阵列。如何将所有IN ORDER合并到一个仅存储在处理器0中的数组。

例如:

Processor 0: [1 1 1]
Processor 1: [2 2 2]
Processor 2: [3 3 3 3 3]
And my expected result is [1 1 1 2 2 2 3 3 3 3 3], not [1 1 1 3 3 3 3 3 2 2 2]

有没有人可以帮我解决这个问题。感谢阅读:)

1 个答案:

答案 0 :(得分:0)

如果提前知道每个排名贡献的大小,MPI_Gatherv将在一个集体中完成工作。

如果提前知道每个排名贡献的大小,则点对点操作(MPI_Send,MPI_Probe和MPI_Recv)将是实现此目的的直接方式。根可以序列化MPI_Recv操作,并在操作进行时分配空间。