1
Marco Lapegna – Calcolo Parallelo e Distribuito II
1
CPU multicore
Marco Lapegna – Calcolo Parallelo e Distribuito II
2
Fattorizzazione di cholesky a blocchi
A11 L11 LT11
A22 L22 LT22
0 A21 0
AT21
L21
LT21
A = L LT
A11= L11LT11 AT21= L11LT21
A21= L21LT11 A22= L21LT21+L22LT22
Marco Lapegna – Calcolo Parallelo e Distribuito II
3
Fattorizzazione di cholesky a blocchi
A11= L11LT11 L11= Chol(A11) AT21= L11LT21
A21= L21LT11 L21= A21L-T11
A22= L21LT21+L22LT22 L22LT22 =A22-L21LT21
Marco Lapegna – Calcolo Parallelo e Distribuito II
4
Fattorizzazione di cholesky a blocchi
L11 LT11
A33
0
0 A31
AT31
L21
LT21
A = L LT
A22= L22LT22 AT32= L22LT32
A32= L32LT22 A33= L32LT32+L33LT33 A11
A22 A21
A32 AT21
AT32
L31 L33 L22
L32
0
LT31 LT22LT32 LT33 0 0
0
2
Marco Lapegna – Calcolo Parallelo e Distribuito II
5
Fattorizzazione di cholesky a blocchi
A22= L22LT22 L22= Chol(A22) AT32= L22LT32
A32= L32LT22 L32= A32L-T22
A33= L32LT32+L33LT33 L33LT33 =A33-L32LT32
Marco Lapegna – Calcolo Parallelo e Distribuito II
6
Fattorizzazione di cholesky a blocchi
L11 LT11
A33
0
A31 0
AT31
L21
LT21
A = L LT
A33= L33LT33 L33= Chol(A33) A11
A22 A21
A32 AT21
AT32
L31 L33 L22
L32
0
LT31 LT22LT32 LT33 0 0
0
Marco Lapegna – Calcolo Parallelo e Distribuito II
7
Fattorizzazione LLT a blocchi
for K= 1, NB
L(K,K) = Chol( A(K,K) )
for I= K+1, NB L(I,K) = A(I,K)L(K,K)-T endfor
for I= K+1, NB for J= K+1, …
A(I,J) = A(I,J)- L(I,K) L(J,K)T endfor
endfor endfor
Marco Lapegna – Calcolo Parallelo e Distribuito II
8
Uso di BLAS/LAPACK
for K= 1, NB
L(K,K) = Chol( A(K,K) )
for I= K+1, NB L(I,K) = A(I,K)L(K,K)-T endfor
for I= K+1, NB for J= K+1, …
A(I,J) = A(I,J)- L(I,K) L(J,K)T endfor
endfor endfor
DPOTF2 DTRSM
DGEMM
3
Marco Lapegna – Calcolo Parallelo e Distribuito II
9
Esempio NB=4
1
2
10 9 7 4
8 6 3
5 2 1
3 4
5 6 7 8 9 10
Marco Lapegna – Calcolo Parallelo e Distribuito II
10
Esempio NB=4
5 6 7 8 9 10
16 15 13
14 12 11
11
12 13
14 15 16
Marco Lapegna – Calcolo Parallelo e Distribuito II
11
Esempio NB=4
19 18 17
14 15 16
17
18 19
Marco Lapegna – Calcolo Parallelo e Distribuito II
12
Esempio NB=4
20
19
20