p-1 1 1 p-1
All-to-one Reduction
. . . . . .
M M M M One-to-all Broadcast
. . . . . . 0 1 p-1 0 1 p-1 All-to-one Reduction Figure 4.1 - - PDF document
One-to-all Broadcast M M M M . . . . . . 0 1 p-1 0 1 p-1 All-to-one Reduction Figure 4.1 One-to-all broadcast and all-to-one reduction. 3 3 2 7 6 5 4 1 0 1 2 3 2 3 3 Figure 4.2 One-to-all broadcast on an eight-node
p-1 1 1 p-1
All-to-one Reduction
M M M M One-to-all Broadcast
2 3 3 2
1 2 3 4 5 6 7
1 3 3
1
1 2 3 4 5 6 7
2 2 1 1 3 1
4 8 12
4 8 12
1 5 9 13
2 6 10 14
3 7
11 15
All-to-one reduction
1 2 3
One-to-all broadcast
3 10 15
4 4 4 4 4 4 4 4 3 3 3 3 2 2 1
1 2 4 5 6 8 9 11 14 7 13 12
1 3 2
(001)
4 5 7 6
3 3 3 1 2 2 (000) (011) (100) (101) (111) 3 (010) (110)
3 1 2 3 4 6 7 5 1 2 2 3 3 3
1
p
M -1 M 0 M 0 M 1 M 0 M 1 M 0 M 1
p
M -1
p
M -1
p
M M
All-to-all reduction
p-1 1 1 p-1
All-to-all broadcast
7 (4) 7 (3) 7 (2) (3,2,1,0,7,6,5) (1,0,7,6,5,4,3) (2,1,0,7,6,5,4) (0,7,6,5,4,3,2) (5) (4) (3) (2) (1) (6) (7) (0) (7,6) (6,5) (5,4) (4,3) (3,2) (2,1) (1,0)
(0,7) 7 (0) 7 (7) 7 (6)
1 6 7 2 3 4 5
2 (7) 2 (0) 2 (1) 2 (4) 2 (3) 2 (5)
1 6 7 2 3 4 5
1 (0) 1 (1) 1 (2) 1 (6) 1 (5) 1 (4) (7,6,5,4,3,2,1) (6,5,4,3,2,1,0) (5,4,3,2,1,0,7) (4,3,2,1,0,7,6)
1 6 7 2 3 4 5
7 (1) 7 (5) 2 (2) 2 (6) 1 (7) 1 (3)
7 1 2 5 3 4 8 6
(3,4,5) (3,4,5) (3,4,5)
1 2 5 3 4 8 7 6
(6) (8) (3) (4) (5) (0) (1) (2) (7)
(a) Initial data distribution
(0,1,2)
(b) Data distribution after rowwise broadcast
(6,7,8) (6,7,8) (6,7,8) (0,1,2) (0,1,2)
(0,...,7) (0,...,7) (0,...,7) (0,1, (0,...,7)
(b) Distribution before the second step
(0,...,7) 6,7) (4,5, 6,7) (4,5, 6,7) (4,5, 6,7) (4,5, 2,3) (0,1, 2,3) (0,1, 2,3) (0,1, 2,3)
1 3 2 4 5 7 6
(c) Distribution before the third step
1 3 2 4 5 7 6
(d) Final distribution of messages
(0,...,7) (0,...,7) (0,...,7)
1 3 2 4 5 7 6
(0) (2) (4) (1) (5) (3) (7) (6)
(a) Initial distribution of messages
1 3 2 4 5 7 6
(0,1) (2,3) (2,3) (0,1) (6,7) (6,7) (4,5) (4,5)
1 6 7 2 3 4 5
(c) Distribution of sums before third step
1 3 2 4 5 7 6 1 3 2 4 5 7 6
(3) (7) (6) (4) [4] (6+7) (6) [4] (4+5) (2) [2] (2+3) [2] (4+5) (0+1) [0+1] (0+1) [0] (0) [0] (2+3) (5) (1) [6] [7] [3] [5] [1] [6] [2+3] [4+5] [6+7]
1 3 2 4 5 7 6 1 3 2 4 5 7 6
[0+ .. +7] [0+ .. +6] [0+1+2] (0+1+ 2+3) [0+1+2] (4+5) [0+1+2+3+4] [0+ .. +5] [4] (4+5) 2+3) (0+1+ [0] 2+3) (0+1+ [0] [0+1] [0+1+2+3] [0+1+2+3] (4+5+6+7) [4+5+6+7] (4+5+6) [4+5+6] [4+5] [0+1] (0+1+2+3)
(a) Initial distribution of values (d) Final distribution of prefix sums (b) Distribution of sums before second step
M -1 M 0 M 1
M 1
p
M -1 M 0
p
Scatter
p-1 1 1 p-1
Gather
2,3) (0,1, (4,5,
1
6,7)
3
(b) Distribution before the second step
2 4 5 7 6 1 3 2 4 5 7 6
(0,1,2,3, 4,5,6,7)
1 3 2 4 5 7 6 1 3 2 4 5 7 6
(6,7) (4) (5) (7) (6) (0,1) (2,3) (4,5) (0) (2) (1) (3)
(d) Final distribution of messages (a) Initial distribution of messages (c) Distribution before the third step
p
p
p
p
1 p-1
1,0
p
1,1
p
p
p
p-1 1
0,1 1,0 1,1
p
p
3
1 2
({2,0}, ({1,0}) ({0,1} ... {0,5}) ({1,2} ... {1,0}) ({0,2} ... {0,5}) ({2,1}) ({3,2}) ({5,2} ... {5,4}) ({5,1} ... {5,4}) ({4,1} ... {4,3}) ({4,2}, {4,3}) ({3,1}, {3,2}) ({2,3}, {2,4}, {2,5}, {2,0}, {1,0}) {1,5}, {1,4}, ({1,3}, {0,5}) {0,4}, ({0,3}, ({5,3}, {5,4}) {2,1}) ({4,3}) {4,2}, {4,3}) {5,4}) {5,3}, {5,2}, {5,1}, ({5,0}, 1 {4,1}, {3,2}) {3,1}, ({3,0}, ({4,0}, {2,1})
1 2 3 4 5
({3,4} ... {3,2}) ({2,4} ... {2,1}) ({1,4} ... {1,0}) ({4,5} ... {4,3}) ({3,5} ... {3,2}) ({2,5} ... {2,1}) ({0,4}, {0,5}) ({1,5}, {1,0}) ({0,5}) ({5,4}) 3 3 1 2 3 4 5 1 2 3 4 5 2 3 4 5 2 4 3 5 1 1 1 2 4 5 5 4 2
{2,0},{2,3},{2,6}) {1,0},{1,3},{1,6}, {5,0},{5,3},{5,6}) {4,0},{4,3},{4,6}, ({3,0},{3,3},{3,6}, {8,0},{8,3},{8,6}) {7,0},{7,3},{7,6}, ({6,0},{6,3},{6,6}, {8,1},{8,4},{8,7}) ({6,1},{6,4},{6,7}, {7,1},{7,4},{7,7}, {8,2},{8,5},{8,8}) {7,2},{7,5},{7,8},
1 2 5 3 4
({6,2},{6,5},{6,8},
8
beginning of first phase
7 6
(b) Data distribution at the beginning of second phase
{4,4},{4,7}, {5,1},{5,,4}, {5,7}) ({0,2},{0,5}, {0,8},{1,2}, {1,5},{1,8}, {2,2},{2,5}, {2,8}) ({3,2},{3,5}, {3,8},{4,2}, {4,5},{4,8}, {5,2},{5,5}, {5,8}) ({3,1},{3,4}, {3,7},{4,1}, {2,7}) {2,1},{2,4}, {1,4},{1,7}, {0,7},{1,1}, ({0,1},{0,4}, ({0,0},{0,3},{0,6},
1 2 5 3 4 8 7 6
{1,1},{1,4},{1,7}, ({0,0},{0,3},{0,6}, ({3,0},{3,3},{3,6}, {4,1},{4,4},{4,7}, {5,2},{5,5},{5,8}) {8,2},{8,5},{8,8}) {7,1},{7,4},{7,7}, ({6,0},{6,3},{6,6}, {2,2},{2,5},{2,8}) ({1,0},{1,3},{1,6}, {0,1},{0,4},{0,7}, {0,2},{0,5},{0,8}) {1,2},{1,5},{1,8}) {2,1},{2,4},{2,7}, ({2,0},{2,3},{2,6}, {3,1},{3,4},{3,7}, {3,2},{3,5},{3,8}) ({4,0},{4,3},{4,6}, {4,2},{4,5},{4,8}) ({5,0},{5,3},{5,6}, {5,1},{5,4},{4,7}, {6,1},{6,4},{6,7}, {6,2},{6,5},{6,8}) ({7,0},{7,3},{7,6}, {7,2},{7,5},{7,8}) ({8,0},{8,3},{8,6}, {8,1},{8,4},{8,7},
(a) Data distribution at the
({0,0} ... {0,7}) ({4,1},{6,1}, {4,5},{6,5}, {5,1},{7,1}, {5,5},{7,5}) ({1,0} ... {1,7}) ({4,0} ... {4,7}) ({5,0} ... {5,7}) ({3,0} ... {3,7}) ({2,0} ... {2,7}) ({7,0} ... {7,7}) ({6,0} ... {6,7})
(a) Initial distribution of messages
6 7 5 4 2 3 1
{1,0},{1,2},{1,4},{1,6}) ({0,0},{0,2},{0,4},{0,6}, {3,4},{3,6}) {3,0},{3,2}, {2,4},{2,6}, ({0,6} ... {7,6}) ({2,0},{2,2}, ({6,0},{6,2},{6,4},{6,6}, ({6,1},{6,3},{6,5},{6,7},
1 3 2 4 5 7 6
({1,1},{1,3},{1,5},{1,7}, {0,1},{0,3},{0,5},{0,7}) {7,0},{7,2},{7,4},{7,6}) {7,1},{7,3},{7,5},{7,7}) ({4,1},{4,3}, {4,5},{4,7}, {5,1},{5,3}, {5,5},{5,7})
1 3 2 4 5 7 6
(b) Distribution before the second step (d) Final distribution of messages
({0,0} ... {7,0}) ({0,1} ... {7,1}) ({0,5} ... {7,5}) ({0,4} ... {7,4}) ({0,7} ... {7,7}) ({0,3} ... {7,3}) ({0,2} ... {7,2}) {1,0},{1,4},{3,0},{3,4}) {0,1},{0,5},{2,1},{2,5})
1 3 2 4 5 7 6
({0,0},{0,4},{2,0},{2,4}, ({1,1},{1,5},{3,1},{3,5}, ({6,2},{6,6},{4,2},{4,6}, {7,2},{7,6},{5,2},{5,6}) ({7,3},{7,7},{5,3},{5,7}, {6,3},{6,7},{4,3},{4,7}) ({0,2},{2,2}, {0,6},{2,6}, {1,2},{3,2}, {1,6},{3,6})
(c) Distribution before the third step
2 6 6
(a) (d)
1 3 2 4 5 7 6 1 3 2 4 5 7 6 7
(c) (f)
1 3 2 4 5 7 6 1 3 2 4 5 7 6 4 6 7 1 5 7 6 4 5 3 5 4 4 2 3 5 6 1 3 2 2 1 7 3 1
(b) (e) (g)
1 3 2 4 5 7 6 1 3 2 4 5 7 6 1 3 2 4 5 7
11
(14) (13) (12) (8) (0) (2) (10) (9) (6) (5) (4) (1) (15) (3) (7)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(12) (13) (14) (11)
1 2 3 4 5 6 7 8 9 10 12 13 14 15
(3) (7) (11)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(3) (7) (1) (4) (5) (6) (2) (0) (11) (8) (9) (10) (14) (13) (12) (15)
(1) (4) (5) (6) (9) (10) (2) (0) (8) (12) (13) (14) (15) (11) (3) (7) (15) (1) (4) (5) (6) (9) (10) (2) (0) (8)
1 2 3 4 5 6
7
(7) (0) (3) (4) (6) (1) (2) (5)
1 2 3 4 5 6 7
(2) (3) (0) (1) (4) (7) (5) (6)
1 2 3 4 5 6 7
(3) (6) (7) (0) (5) (4) (1) (2)
1 2 3 4 5 6 7
(4) (7) (0) (3) (1) (2) (6) (5)
First communication step of the 4-shift Second communication step of the 4-shift
1 3 2 4 5 7 6 1 3 4 5 7 6 2 3 1 2 4 5 7 6 1 3 2 4 5 7 6
(g) 7-shift (f) 6-shift (d) 4-shift (e) 5-shift
6
(c) 3-shift (a) 1-shift (b) 2-shift
1 3 2 4 5 7 6 1 3 2 4 5 7 6 1 3 2 4 5 7