Beeinträchtigt das Kompilieren von PETSc mit einer externen BLAS / LAPACK-Bibliothek die Leistung auf dünn besetzten Matrizen erheblich oder werden diese Bibliotheken nur für die Mathematik mit dichter Matrix verwendet?
10
Beeinträchtigt das Kompilieren von PETSc mit einer externen BLAS / LAPACK-Bibliothek die Leistung auf dünn besetzten Matrizen erheblich oder werden diese Bibliotheken nur für die Mathematik mit dichter Matrix verwendet?
Antworten:
PETSc verwendet BLAS für einige Vektorprimitive, diese sind jedoch im Allgemeinen durch die Speicherbandbreite begrenzt und es gibt keine großen Unterschiede bei der "Optimierung", so dass dies tendenziell keinen großen Leistungsunterschied bewirkt.
Es verwendet Lapack auch für einige Analysen wie Lanczos- oder Arnoldi-Schätzungen von Eigenwerten und Singularwerten, die jedoch im Allgemeinen nicht leistungsabhängig sind.
Dichte "Level 3" -Operationen treten im Allgemeinen nur in einem leistungsabhängigen Kontext auf, wenn spärliche Direktlöser aus Bibliotheken von Drittanbietern (z. B. MUMPS, SuperLU, UMFPACK) verwendet werden. In diesem Fall führt das Füllen schließlich zu dichten Problemen, die groß genug sind, um davon zu profitieren BLAS anrufen.
Wenn Sie sich auf diese spärlichen direkten Löser verlassen, die bei großen Problemen angewendet werden, lohnt es sich, mit einer optimierten BLAS-Implementierung zu arbeiten, da dies sonst kaum einen Unterschied macht.
quelle