All-to-All Broadcast on a Balanced Binary tree
There are 8 processors: P0..P7, each contains one of the messages M0..M7 so

P0: M0, P1:M1, P2:M2, P3:M3, P4:M4, P5:M5, P6:M6, P7:M7

P0, P1, P2, &amp; P3 are on the left subtree and P4, P5, P6, P7 are on the right subtree.

Step1: 

All the processes make a copy of the message and left subtree processors exchange the copy with the corresponding processors on the right subtree. Result is that each processor now has two messages as shown below:

P0 &amp; P7: M0, M7

P1 &amp; P6: M1, M6

P2 &amp; P5:M2, M5

P3 &amp; P4:M3, M4

Step2:

Now P3 &amp; P0 would make a copy of their messages and exchange the copy. Pairs of P1, P2 and P4,P7 and P5, P6 would repeat this action. The result is shown below:

P0, P3, P4 &amp; P7: M0, M3, M4, M7

P1, P2, P5 &amp; P6: M1,  M2, M5, M6

Step3:

Now P0 &amp; P1, would make a copy of their messages and exchange the copy. Pairs of P2, P3 and P4, P5 and P6, P7 would repeat this action. The result is the final broadcast:

P0, P1, P2, P3, P4, P5, P6, P7 would all contain the messages:

M0, M1, M2, M3, M4, M5, M6, M7

Zulfi