Risposte:
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.