Влияет ли компиляция PETSc с внешней библиотекой BLAS / LAPACK существенным образом на производительность разреженных матриц, или он использует эти библиотеки только для математики с плотной матрицей?
10
Влияет ли компиляция PETSc с внешней библиотекой BLAS / LAPACK существенным образом на производительность разреженных матриц, или он использует эти библиотеки только для математики с плотной матрицей?
Ответы:
PETSc использует BLAS для нескольких векторных примитивов, но они, как правило, ограничены пропускной способностью памяти и не сильно отличаются по «оптимизации», поэтому не имеют большого значения для производительности.
Он также использует Лапака для некоторого анализа, такого как оценки собственных значений и сингулярных значений Ланцоша или Арнольди, но они, как правило, не чувствительны к производительности.
Плотные операции «уровня 3» обычно появляются только в контексте, чувствительном к производительности, при использовании разреженных прямых решателей из сторонних библиотек (например, MUMPS, SuperLU, UMFPACK), и в этом случае заполнение в конечном итоге приводит к плотным проблемам, которые достаточно велики, чтобы извлечь выгоду из звонит BLAS.
Если вы полагаетесь на эти разреженные прямые решатели, применяемые для решения больших проблем, то стоит построить с настроенной реализацией BLAS, в противном случае это не имеет большого значения.
источник