PETSc fa mai uso delle librerie LAPACK per la matematica a matrice sparsa?


10

La compilazione di PETSc con una libreria BLAS / LAPACK esterna influenza in modo significativo le prestazioni su matrici sparse o utilizza tali librerie solo per la matematica a matrice densa?


È possibile utilizzare LU per il precondizionamento.
Stali,

Risposte:


10

PETSc utilizza BLAS per alcune primitive vettoriali, ma queste sono generalmente limitate dalla larghezza di banda della memoria e non c'è molta varianza nell'ottimizzazione, quindi tende a non fare molta differenza nelle prestazioni.

Utilizza anche Lapack per alcune analisi come le stime di Lanczos o Arnoldi degli autovalori e dei valori singolari, ma questi generalmente non sono sensibili alle prestazioni.

Le dense operazioni di "livello 3" compaiono generalmente in un contesto sensibile alle prestazioni quando si utilizzano solutori diretti sparsi da librerie di terze parti (ad esempio MUMPS, SuperLU, UMFPACK), nel qual caso il riempimento alla fine porta a problemi densi che sono abbastanza grandi da trarre vantaggio chiamando BLAS.

Se fai affidamento su questi risolutori diretti sparsi applicati a grandi problemi, vale la pena costruire con un'implementazione BLAS sintonizzata, altrimenti fa poca differenza.


Jed, in che modo PETSc utilizza LAPACK per la stima di valori autigenici / singolari in caso di matrici distribuite? È quindi una routine a blocchi o ScaLAPACK?
Alexander

L'iterazione di Arnoldi genera una matrice di dimensione di Hessenberg pari al numero di iterazioni (diciamo 30 o 100). I valori eigen- o singolari della matrice di Hessenberg vengono calcolati in modo ridondante su ogni processo usando LAPACK. Questo è molto più veloce rispetto al tentativo di farlo in parallelo poiché le dimensioni sono piccole e i dati sono già distribuiti in modo ridondante. Simile per Lanczos.
Jed Brown,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.