2016-11-29 1 views
0

Моя цель - найти собственные значения и векторы входной матрицы размером mxn. Так как это прямоугольная матрица, превращает такую ​​же в квадрат-симметричную матрицу, делая транспонирования, а затем матричного умножение-с источником матрицы.Выполнение определения собственных значений с использованием библиотеки MKL

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

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

Заранее благодарен

+0

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

ответ

0

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

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

Смежные вопросы