Решение линейных уравнений большой размерности

108 views
Skip to first unread message

snnwolf

unread,
Apr 20, 2008, 1:44:05 PM4/20/08
to matrixprogramming_ru
Уважаемые математики, помогите!
Есть задача решение системы уравнений
H * X = S
Где H, X, S - комплексные
А размерность H - 3610х3610 и сильно разряженная, ну и соответственно
размерность S - 1х3610.
Задача вприципе решается использованием ф-ции zgels_, но
очччччеееееенннннннь медленно.
Можете подсказать, куда рыть для увеличения производительности?
Заранее спасибо.

Evgenii Rudnyi

unread,
Apr 20, 2008, 4:06:46 PM4/20/08
to matrixprog...@googlegroups.com

Если матрица разреженная, то можно попробовать решатель для разреженных
матриц. Я в последнее время работаю с MUMPS. Мне нравится

http://graal.ens-lyon.fr/MUMPS/

Я сам использую только версия для действительных чисел, но в MUMPS есть
также версия для комлексных чисел.


Yurii

unread,
Apr 21, 2008, 4:59:14 AM4/21/08
to matrixprogramming_ru
> ...сильно разряженная...
все зависит от причин разреженности матрицы. Например, если задача
возникает на деревьях (вид графа), то решение может потебовать всего
порядка n операций, где n - порядок м-цы. В свое время я занимался
такого типа задачами (расчет токов короткого замыкания на графах).
Есть неплохая книга: С. Писсанецки "Технология разреженных матриц".
zgels_ необходимо использовать из библиотеки Intel MKL. Это будет
намного быстрей. Кроме того, в этой библиотеке рассматриваются и
разреженные м-цы. Эта библиотека бесплатна под Linux (как и
компиляторы). При этом лучше всего решать задачи не под IA32, а под
EM64T. Тогда решение будет получаться быстрей. Правда, требуется 64-
битная ОС. Под ней можно решать и для IA32.

KSergP

unread,
Apr 29, 2008, 2:55:44 AM4/29/08
to matrixprogramming_ru
я бы вообще посоветовал использовать итерационные методы!
и такие библиотеки как SPARSKIT

Michael Ermakov

unread,
Apr 13, 2013, 8:45:29 AM4/13/13
to matrixprog...@googlegroups.com, kse...@mail.ru
SPARSKIT несомненно хорошая библиотека,
проблема однако возникает в том, что для моих уравнений для приемлемой сходимости приходится использовать предобуславиватель, составляющий 90% LU разложения. Поэтому решил попробовать MUMPS.
 

вторник, 29 апреля 2008 г., 10:55:44 UTC+4 пользователь KSergP написал:

Michael Ermakov

unread,
Feb 20, 2014, 1:33:06 AM2/20/14
to matrixprog...@googlegroups.com, kse...@mail.ru
Опыт использования MUMPS для моей задачи продемонстрировал, что MUMPS гораздо более эффективен, чем SPARSKIT. Это связано c reodering, символьной факторизацией и использованием многоядерности.

суббота, 13 апреля 2013 г., 16:45:29 UTC+4 пользователь Michael Ermakov написал:
Reply all
Reply to author
Forward
0 new messages