开发者

What is the "m-bridge technique" for partitioning binary trees for parallel processing?

How does it work? Please explain in enough detail in English or pseudocode so that I can implement in any language.

It is mentioned and briefly described in this paper: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.4.3643&rep=rep1&type=pdf

but there isn't enough detail there to implement myself. (the weights in Fig2b seem wrong? and it's not clear how they decided where to make the cuts in Fig 2c.)

I also looked up the original source paper (http://w开发者_运维问答ww-2.cs.cmu.edu/~glmiller/Publications/Papers/ReMiMo93.pdf) but couldn't figure it out from there either.

Are there better algorithms out there that fill the same need? Specifically, anything that can guarantee partitioned trees that are "almost the same size" (but more so)? The paper suggests m-bridge guarantees no partitioned tree to be bigger than 4n/p, which is not much of a guarantee if you only have 4 processors!


To make one cut:

  1. For each node in the tree, compute how many descendants that node has.
  2. The nodes with >n/2 descendants form a descending path. Descend to the bottom of the path.
  3. One of the children has between n/3 and n/2 descendants. Cut it from the rest of the tree.

To make many cuts, repeatedly cut the largest tree remaining.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜