Parallel processing 如何在MPI中构建并行二叉树?

Parallel processing 如何在MPI中构建并行二叉树?,parallel-processing,mpi,binary-tree,Parallel Processing,Mpi,Binary Tree,我想用MPI中的4个处理器构建一个二叉树。在根目录下,所有处理器一起工作,下一级我将处理器分为2个组,在叶目录下,每个处理器负责构建本地树 我使用mpi_comm_slpit将当前的通信器分为两部分。但问题是我如何追踪亲子关系?像串行编程一样,我们使用指针指向左向右的子对象?我如何在MPI中处理它?谢谢 [1-4] <-- root [1-2] [2-3] [1] [2] [3] [4] 无需分割通讯器。在二叉树中,功是2^n,其中n是级别。根据您是向上

我想用MPI中的4个处理器构建一个二叉树。在根目录下,所有处理器一起工作,下一级我将处理器分为2个组,在叶目录下,每个处理器负责构建本地树

我使用mpi_comm_slpit将当前的通信器分为两部分。但问题是我如何追踪亲子关系?像串行编程一样,我们使用指针指向左向右的子对象?我如何在MPI中处理它?谢谢

     [1-4]        <-- root
 [1-2]   [2-3] 
[1] [2] [3] [4] 

无需分割通讯器。在二叉树中,功是2^n,其中n是级别。根据您是向上还是向下移动,空闲处理器或处理器数量会增加,请尝试想象一下。例如,如果你从顶部开始,你可以将你的工作按根划分为2。现在W1到根proc0,W2到proc1。下一步proc0和proc1将W1和W2分成两部分。W11到proc0、W12到proc3、W21到proc1、W22到proc4等等


希望这有帮助。与交流者玩耍会使事情复杂化

拆分默认通信器可能会使事情变得过于复杂。绘制一个4节点二叉树的图片,标记节点0-3。声明将二叉树分解为4个处理器的标准方法,编写一个函数,以便处理器知道它自己的秩,可以确定它在二叉树中的位置。继续沟通。谢谢。我明白你的意思。