A compilação do PETSc com uma biblioteca externa BLAS / LAPACK afeta significativamente o desempenho em matrizes esparsas ou apenas usa essas bibliotecas para matemática densa de matriz?
10
A compilação do PETSc com uma biblioteca externa BLAS / LAPACK afeta significativamente o desempenho em matrizes esparsas ou apenas usa essas bibliotecas para matemática densa de matriz?
Respostas:
O PETSc usa o BLAS para algumas primitivas de vetor, mas elas geralmente são limitadas pela largura de banda da memória e não há muita variação na "otimização"; portanto, tende a não fazer muita diferença de desempenho.
Ele também usa Lapack para algumas análises, como estimativas de Lanczos ou Arnoldi de autovalores e valores singulares, mas geralmente eles não são sensíveis ao desempenho.
As operações densas de "nível 3" geralmente só aparecem em um contexto sensível ao desempenho ao usar solucionadores diretos esparsos de bibliotecas de terceiros (por exemplo, MUMPS, SuperLU, UMFPACK); nesse caso, o preenchimento eventualmente leva a problemas densos que são grandes o suficiente para se beneficiarem. chamando BLAS.
Se você contar com esses solucionadores diretos esparsos aplicados a grandes problemas, vale a pena construir com uma implementação BLAS ajustada, caso contrário, fará pouca diferença.
fonte