¿Compilar PETSc con una biblioteca externa BLAS / LAPACK afecta significativamente el rendimiento en matrices dispersas, o solo usa esas bibliotecas para matemáticas de matriz densas?
10
¿Compilar PETSc con una biblioteca externa BLAS / LAPACK afecta significativamente el rendimiento en matrices dispersas, o solo usa esas bibliotecas para matemáticas de matriz densas?
Respuestas:
PETSc utiliza BLAS para algunas primitivas de vector, pero generalmente están limitadas por el ancho de banda de la memoria y no hay mucha variación en la "optimización", por lo que tiende a no hacer mucha diferencia de rendimiento.
También utiliza Lapack para algunos análisis, como las estimaciones de Lanczos o Arnoldi de valores propios y valores singulares, pero estos generalmente no son sensibles al rendimiento.
Las operaciones densas de "nivel 3" generalmente solo aparecen en un contexto sensible al rendimiento cuando se utilizan solucionadores directos dispersos de bibliotecas de terceros (por ejemplo, MUMPS, SuperLU, UMFPACK), en cuyo caso el llenado eventualmente conduce a problemas densos que son lo suficientemente grandes como para beneficiarse de llamando a BLAS.
Si confía en estos solucionadores directos dispersos aplicados a grandes problemas, entonces vale la pena construir con una implementación BLAS ajustada, de lo contrario, hace muy poca diferencia.
fuente