La compilation de PETSc avec une bibliothèque BLAS / LAPACK externe affecte-t-elle de manière significative les performances sur des matrices clairsemées, ou utilise-t-elle uniquement ces bibliothèques pour les mathématiques matricielles denses?
La compilation de PETSc avec une bibliothèque BLAS / LAPACK externe affecte-t-elle de manière significative les performances sur des matrices clairsemées, ou utilise-t-elle uniquement ces bibliothèques pour les mathématiques matricielles denses?
Réponses:
PETSc utilise BLAS pour quelques primitives vectorielles, mais celles-ci sont généralement limitées par la bande passante mémoire et il n'y a pas beaucoup de variance dans "l'optimisation", donc cela n'a pas tendance à faire beaucoup de différence de performances.
Il utilise également Lapack pour certaines analyses telles que les estimations Lanczos ou Arnoldi des valeurs propres et des valeurs singulières, mais celles-ci ne sont généralement pas sensibles aux performances.
Les opérations denses de "niveau 3" n'apparaissent généralement que dans un contexte sensible aux performances lors de l'utilisation de solveurs directs clairsemés provenant de bibliothèques tierces (par exemple MUMPS, SuperLU, UMFPACK), auquel cas le remplissage entraîne finalement des problèmes denses suffisamment importants pour en bénéficier. appelant BLAS.
Si vous comptez sur ces solveurs directs clairsemés appliqués à de gros problèmes, cela vaut la peine de construire avec une implémentation BLAS réglée, sinon cela ne fait que très peu de différence.