Использует ли когда-нибудь PETSc библиотеки LAPACK для математики с разреженной матрицей?


10

Влияет ли компиляция PETSc с внешней библиотекой BLAS / LAPACK существенным образом на производительность разреженных матриц, или он использует эти библиотеки только для математики с плотной матрицей?


Вы можете использовать LU для предварительной обработки.
— Стали

Ответы:


10

PETSc использует BLAS для нескольких векторных примитивов, но они, как правило, ограничены пропускной способностью памяти и не сильно отличаются по «оптимизации», поэтому не имеют большого значения для производительности.

Он также использует Лапака для некоторого анализа, такого как оценки собственных значений и сингулярных значений Ланцоша или Арнольди, но они, как правило, не чувствительны к производительности.

Плотные операции «уровня 3» обычно появляются только в контексте, чувствительном к производительности, при использовании разреженных прямых решателей из сторонних библиотек (например, MUMPS, SuperLU, UMFPACK), и в этом случае заполнение в конечном итоге приводит к плотным проблемам, которые достаточно велики, чтобы извлечь выгоду из звонит BLAS.

Если вы полагаетесь на эти разреженные прямые решатели, применяемые для решения больших проблем, то стоит построить с настроенной реализацией BLAS, в противном случае это не имеет большого значения.


Джед, как PETSc использует LAPACK для оценки собственных / единичных значений в случае распределенных матриц? Это тогда блочная рутина или ScaLAPACK?
— Александр

Итерация Арнольди генерирует матрицу Гессенберга размерности, равную количеству итераций (скажем, 30 или 100). Собственные или особые значения матрицы Хессенберга вычисляются избыточно для каждого процесса с использованием LAPACK. Это гораздо быстрее, чем пытаться сделать это параллельно, поскольку размеры невелики и данные уже распределены с избыточностью. Похоже на Ланцоша.
— Джед Браун
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.