我是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]
有没有人可以帮我解决这个问题。感谢阅读:)
答案 0 :(得分:0)
如果提前知道每个排名贡献的大小,MPI_Gatherv将在一个集体中完成工作。
如果提前知道每个排名贡献的大小,则点对点操作(MPI_Send,MPI_Probe和MPI_Recv)将是实现此目的的直接方式。根可以序列化MPI_Recv操作,并在操作进行时分配空间。