Производительность определения собственного значения с использованием библиотеки MKL

Моя цель - найти собственные значения и векторы входной матрицы размера mxn. Поскольку это прямоугольная матрица, преобразовать ее в квадратно-симметричную матрицу, выполнив транспонирование, а затем умножение матрицы с исходным кодом< /strong> матрица.

После этого я использую библиотеку Intel MKL для определения собственных значений и векторов квадратно-симметричной матрицы. К сожалению, для квадратно-симметричной матрицы размером 1000000 x 100000 требуется время от ~35 до ~40 секунд, что не подходит для моего приложения.

Любые предложения по улучшению производительности будут действительно полезны.

заранее спасибо


person Sravan    schedule 29.11.2016    source источник
comment
Вычисление собственных значений больших матриц просто дорого. Вы либо модифицируете свой алгоритм, чтобы не нуждаться в собственных значениях, либо создаете матрицы, собственные значения которых легче вычислить, либо платите цену времени выполнения, чтобы найти собственные значения. Нет пути вокруг этого.   -  person Baum mit Augen    schedule 29.11.2016


Ответы (1)


Проблемы с большими собственными значениями обходятся дорого. Я бы предложил использовать решатель собственных значений FEAST, доступный в библиотеке MKL. Я думаю, что FEAST 3.0 недоступен с MKL, но вы можете скачать и составить его отдельно.

Он предлагает настраиваемое пространство поиска, если вам нужно только подмножество собственных пар, и распараллеливание с распределенным/потоковым соединением.

person Gavin Portwood    schedule 08.12.2016