30 Dense Matrix Algorithms
(p) Iteration k = 0 ends(n)
(j)(i)
(h)(g) Iteration k = 1 starts(e)
(d)(c)(b)
(m) Iteration k = 2 starts
(l)(k)
(o)
(f)
(a) Iteration k = 0 starts
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(2,2)(2,1)
(3,1) (3,2)
(4,1) (4,2)
(1,4) (2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(1,1)
(2,2)(2,1)
(3,1) (3,2)
(4,1) (4,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(1,1)
(2,2)(2,1)
(3,1) (3,2)
(4,0) (4,1) (4,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(1,2)
(0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(1,1)
(2,2)(2,1)
(3,0) (3,1) (3,2)
(4,0) (4,1) 1 1 0 0 0
0
1 1
0
0
0
(0,4)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(1,1)
(2,2)
(1,0)
(2,0) (2,1)
(3,0) (3,1) (3,2)
(4,0) (4,1) (4,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(1,1)
(2,2)
(1,0)
(2,0) (2,1)
(3,0) (3,1) (3,2)
(4,0) (4,1) (4,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(1,1)
(2,2)(2,0) (2,1)
(3,0) (3,1) (3,2)
(4,0) (4,1) (4,2)
1(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(0,0)
(1,1)
(2,2)
(1,0)
(2,0) (2,1)
(3,0) (3,1) (3,2)
(4,0) (4,1) (4,2)
1 1
0
(2,0)
(3,0) (3,0)
(4,0) (4,0)
1
(0,4)
(1,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)(3,2)
(4,2)
(0,4)
(1,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(4,3)
(3,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(2,2)
(3,2)
(4,1) (4,2)
1 1
0
1 1
0 0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
(4,4)
(0,2)
(0,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(4,3)
(3,3)
(2,2)
(4,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(2,2)
(3,2)
(4,1) (4,2)
(0,4)
(1,4)
(2,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(2,3)
(4,3)
(3,3)(3,1) (3,2)
(4,1) (4,2)
(0,4)
(1,4)
(2,4)
(4,4)
(3,4)
(0,2)
(1,2)
(0,1) (0,3)
(1,3)
(2,3)
(4,3)
(3,3)
(2,2)(2,1)
(3,1) (3,2)
(4,1) (4,2)
1 1
0
1 1
0 0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
Communication for k = 1
(0,1)
(4,0) (4,4)
(3,1)
(4,1)
(4,2)
0
0 0
0
1 1 1
0 0
0 0
Communication for k = 2
Computation for k = 0
Computation for k = 1
Computation for k = 2
0
(2,2)
(1,3)
(2,3)
(1,4)
(1,2)
(3,3)
(2,3) (2,4)
(3,3)
(2,4)
Communication for k = 0
0
(4,2)
(3,2)
(4,3)
Figure 8.1Pipelined Cholesky factorization on a 5×5 matrix on 25 processors.