УДК 519.852.64 (045)
Р.С. Суровцев, С.П. Куксенко, Т.Р. Газизов
Ускорение многократного решения СЛАУ с частично изменяющейся матрицей
Рассматривается использование блочного ЬИ-разложения для ускорения многократного решения системы линейных алгебраических уравнений (СЛАУ) с частично изменяющейся матрицей при вычислении емкостной матрицы системы проводников и диэлектриков. Приведены зависимости времени решения СЛАУ от относительного числа подынтервалов проводник-диэлектрик, при разном числе проводников. Выявлены возможности ускорения до 35 раз. Описаны структуры, для которых возможно ускорение.
Ключевые слова: система линейных алгебраических уравнений, блочное ЬИ-разложение, вычисление емкостной матрицы.
В большинстве современных систем компьютерного моделирования для решения различного рода задач требуется решение систем линейных алгебраических уравнений (СЛАУ). При моделировании в диапазоне параметров требуется многократное решение СЛАУ, приводящее к длительным вычислениям. Однако есть задачи, приводящие при изменении параметра не к полному изменению матрицы СЛАУ, а лишь к изменениям только определенных её элементов. Одной из них является задача вычисления методом моментов матрицы коэффициентов электростатической индукции произвольной системы проводников и диэлектриков [1]. Границы проводник-диэлектрик делятся на подынтервалы, последовательно нумерующиеся от 1 до Ыс, а диэлектрик-диэлектрик - от #с+1 до N. Из параметров подынтервалов вычисляются элементы матрицы СЛАУ (рис. 1).
При изменении диэлектрической проницаемости диэлектрика(ов) меняется только часть элементов на главной диагонали матрицы, соответствующих подынтервалам диэлектрик-диэлектрик. Этот ресурс можно использовать для уменьшения общего времени многократного решения СЛАУ. Однако при этом необходимо учесть, что на практике, когда число проводников (не считая опорного) ^опа > 1, используют одно ЬИ-разложение [2] исходной матрицы (основные затраты) с получением из него решений СЛАУ для ^опа разных векторов свободных членов (малые затраты на одно решение). ЬИ-разложение - один из способов решения СЛАУ вида Ах = Ь, при котором исходная матрица А разбивается на произведение треугольных матриц Ь и и и методом прямой и обратной подстановки находится вектор неизвестных х.
Для ускорения можно использовать блочное ЬИ-разложение. Цель данной работы - показать возможности такого ускорения. Для её достижения надо исследовать временные затраты:
1) многократного ЬИ-разложения;
2) однократного ЬИ-разложения с получением из него решений СЛАУ для ^опа разных векторов свободных членов;
3) многократного ЬИ-разложения с получением из каждого решений СЛАУ для ^опа разных векторов свободных членов.
Алгоритм и особенности блочного Ьи-разложения. Алгоритм блочного ЬИ-разложения и алгоритм полного решения СЛАУ с уже включенным в него алгоритмом ЬИ-разложения представлены в табл. 1, а наглядная реализация алгоритма блочного ЬИ-разложения - на рис. 2.
Таблица 1
Блочные алгоритмы_________________________________
Алгоритм блочного ЬИ-разложения [3] Алгоритм решения СЛАУ блочным ЬЦ-разложением [4]
1. Обозначить и11 = Ап, и12 = А12; 2. Решить Ь21А11 = А21; 3. Сформировать 8 = А 22 - Ь21и12 1. Решить Ап VI = Ьь; 4. у! = А12х2; 2. v2 = Ь2 - А2^; 5. Решить А1^1 = уь; 3. Решить 8х2 = v2; 6. хь = v1 - z1
матрицы СЛАУ
А =
"А-11 А12 ' 1 0' X '^11 ^12 '
А 21 А 22 _ _ ^21 1 _ 0 £ _
Рис. 2. Блочное ЬИ-разложение
Ау, Ьу, иу- - элементы матриц А, Ь, Ц соответственно;
8 = Ц22 = А22 - Ь21Ц12;
Ьг - элементы вектора свободных членов;
V, у, г - промежуточные вспомогательные векторы;
х - вектор неизвестных.
Алгоритм блочного ЬИ-разложения основан на матричных операциях. Такие операции предпочтительно использовать для получения ускорения, так как они занимают более высокий уровень в математических библиотеках, и поэтому все операции, в которых задействованы только матрицы, совершаются за меньшее время [5]. При многократном ЬИ-разложении, с изменяющейся матрицей (блоком) А22 в алгоритме реализуется только одна операция вычитания, так как произведение Ь21Ц12 уже посчитано и хранится в памяти компьютера.
Алгоритм решения СЛАУ с использованием блочно-сти - общий алгоритм решения СЛАУ, представляющий собой последовательность действий, на основе матрично-векторных операций, которые находятся на более низком уровне, чем матричные операции, а значит, будут реализовываться за большее время. Для уменьшения времени решения СЛАУ целесообразно преобразовать множество векторов свободных членов Ь в некоторую матрицу В. Тогда алгоритм будет работать только с матрицами, что даст минимизацию временных затрат на ЬИ-разложение.
Для исследований используются алгоритм обычного ЬИ-разложения библиотеки Бі§еп (бесплатно распространяемая библиотека линейной алгебры, написанная на языке программирования С++ и реализующая векторные и матричные операции) и блочный алгоритм, который также реализован на отдельных взятых из библиотеки Бі§еп функциях. Блочный алгоритм работает с матрицами, а алгоритм библиотеки Бі§еп работает с отдельными элементами. Отметим также, что обычное и блочное ЬИ-разложения дают совершенно разные матрицы, требующие разных затрат времени на последующее получение из них самого решения СЛАУ. Все вычислительные эксперименты выполнены на матрице N=1000.
Время многократного ЬЦ-разложения. Исследовано время, затрачиваемое на 1000 ЬИ-разложений. Время ЬИ-разложения алгоритмом библиотеки Бі§еп равно 196 с. Затраты времени на ЬИ-разложение блочным алгоритмом в зависимости от Nc/N сведены в табл. 2.
Время многократного ЬЦ-разложения
Таблица 2
Nc/N 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9
Т, с 5,72 4,1 3,34 2,5 1,79 1,19 0,71 0,281 0,11
Видно, что затраты времени на ЬИ-разложение библиотечным алгоритмом многократно превышают затраты блочного алгоритма. Отношение времен составляет от 30 до 1800 раз. Это обусловлено спецификой блочного алгоритма: один раз выполняется полный расчет элементов матриц ЬИ-разложения, а далее многократно пересчитывается только матрица и22. Причем с ростом Ыс/Ы ускорение значительно увеличивается, поскольку при этом размер блока, диагональные элементы которого изменяются, уменьшается, и все операции с ним занимают всё меньшее время. Кроме того, матричные операции блочного алгоритма реализуются быстрее, чем нематричные операции алгоритма библиотеки Б1§еп.
Время однократного Ьи-разложения с получением из него решений СЛАУ для Лсопа разных векторов свободных членов. Оценено время однократного ЬИ-разложения с получением из него решений СЛАУ для 5, 10, 15 свободных членов в диапазоне изменения #с/Ж Полученные зависимости приведены на рис. 3.
Как видно из рис. 3, минимальное время решения СЛАУ с применением блочного алгоритма в 2 раза больше времени решения библиотечным алгоритмом, а в максимумах отношение времен достигает значения 4. (Минимум в точке Ыс/Ы = 0,5 связан с делением исходной матрицы на одинаковые по размеру блоки.) Таким образом, для однократного ЬИ-разложения с получением из него решений СЛАУ для #сопа разных векторов свободных членов блочный алгоритм использовать неэффективно.
Рис. 3. Время однократного ЬИ-разложения с получением из него решений СЛАУ для 5 (а), 10 (б),
15 (в) векторов свободных членов в зависимости от Nc/N (горизонтальными линиями показано время реализации библиотечным алгоритмом)
0,4 -
-I T, c — - — - Eigen, solve 5
■v Eigen, solve 15 — - — - Block 5 / //
Block 15 Jf
1— 1 I 1 ■ 1 N JN ■ i
0,1
0,3
0,5
0,7
0,9
Время многократного ЬЦ-разложения с получением из каждого решений СЛАУ для Лсопа разных векторов свободных членов. Из табл. 2 видно, что использовать блочный алгоритм для ЬИ-разложения гораздо выгоднее, чем Бі§еп. Но использование однократного ЬИ-разложения с получением из него решений СЛАУ для ^опа разных векторов свободных членов блочным алгоритмом более затратно (рис. 3), несмотря на то, что отношение времен не превышает значения 4. Таким образом, естественно выполнить оценку времени многократного ЬИ-разложения с получением из каждого решений СЛАУ для ^опа разных векторов свободных членов. Количество повторений ЬИ-разложения взято равным 2 , где к = 8 (а), 9 (б), 10 (в). Результаты приведены на рис. 4.
0
250 200 150 -100 -50 0
Block(5)
- Block(10)
- Block(15) Eigen(5)
- Eigen(l0)
- Eigen(l5)
і—і—і—і—і—і—і—і—і
0,1 0,3 0,5 0,7 0,9 а
500 A Block(5)
500 ^ ---------Block(10)
---------Block(15)
v -------------Eigen(5)
400 \ \------------Eigen(10)
---------Eigen(l5)
300 -I 200 100 -0
1000 -900 -800 -700 -600 -500 400 300 200 100 0
' ---------Block(5)
--------Block(10)
--------Block(15)
---------Eigen(5)
--------Eigen(l0)
---------Eigen(15)
Nc /N
1 I I I I I “
0,1 0,3 0,5 0,7 0,9
0,1 0,3 0,5 0,7 0,9
б в Рис. 4. Время многократного ЬИ-разложения с получением из него решений СЛАУ для 5 (а), 10 (б), 15 (в) векторов свободных членов в зависимости от Ыс/Ы (горизонтальными линиями показано время реализации библиотечным алгоритмом)
По графикам видно, что время на решение СЛАУ блочным алгоритмом при малых #с/# превышает время на решение алгоритмом библиотеки Б1§еп в несколько раз. В зависимости от количе -ства векторов свободных членов и к кривые ведут себя по-разному. Однако со значения Ыс/Ы ~ 0,5 блочный алгоритм начинает выигрывать во времени у алгоритма библиотеки Б1§еп. Среднее ускорение блочного алгоритма по сравнению с алгоритмом Б1§еп приведено в табл. 3.
Из табл. 3 видно, что ус-
корение решения СЛАУ блочным методом возрастает, с ростом NN до 0,9 возрастает до 20 раз, а с ростом числа повторных решений СЛАУ -до 35 раз.
Т аблица 3
Ускорение блочного алгоритма
Nc/N 0,5 0,6 0,7 0,8 0,9
Tblock/Tei2en, k 8 1,3 2,4 5,5 9,2 20
Tblock/Teiaen, k 9 1,4 2,4 5 16 30
Tblock/Teiaen, k 1° 1,4 2,4 6,25 17,3 35
Заключение. Исследована возможность использования блочного LU-разложения для ускорения многократного решения СЛАУ с частично меняющейся матрицей. Показано, что до значения Nc/N^0,5 (что соответствует близким количествам подынтервалов проводник-диэлектрик и диэлектрик-диэлектрик) оно практически отсутствует, но с ростом Nc/N значительно возрастает до 35 раз.
Очевидно, что существуют практические структуры, для которых будет ускорение в десятки раз. Примером являются структуры с большим числом проводников и малым числом диэлектриков и их границ, которые можно реже сегментировать. Кроме того, даже при большом числе диэлектриков, если меняется диэлектрическая проницаемость одного, то его границы можно нумеровать последними: это легко осуществимо и может дать значительное ускорение.
Работа выполнена в порядке реализации Постановления № 218 Правительства РФ от 09.04.2010 г. «О мерах государственной поддержки развития кооперации российских высших учебных заведений и организаций, реализующих комплексные проекты по созданию высокотехнологичного производства», и договора № 13.G25.31.0017 от 07.09.2010 между ОАО «ИСС» им. акад. М. Ф. Решетнева» и Минобрнауки РФ.
Литература
1. Газизов Т.Р. Уменьшение искажений электрических сигналов в межсоединениях / под ред. Н.Д. Малютина. - Томск: Изд-во НТЛ, 2003. - 212 с.
2. Куксенко С.П. Итерационные методы решения систем линейных алгебраических уравнений с плотной матрицей / С.П. Куксенко, Т.Р. Газизов. - Томск: Томский государственный университет, 2007. - 208 с.
3. Nicolas J. Highman. Accuracy and Stability of Numerical Algorithms. - Philadelphia: SIAM, 1961. -680 p.
4. Axelsson O. Iterative solution methods. - Cambridge: University press, 1996. - 654 p.
5. Голуб Дж. Матричные вычисления / Дж. Голуб, Ч. Ван Лоун. - М.: Мир, 1999. - 549 c.
Суровцев Роман Сергеевич
Студент, каф. телевидения и управления ТУСУРа
Тел.: 8 (382-2) 42-57-67
Эл. почта: [email protected]
Куксенко Сергей Петрович
Канд. техн. наук, ст. науч. сотрудник каф. телевидения и управления ТУСУРа
Тел.: 8 (382-2) 41-34-39
Эл. почта: [email protected]
Газизов Тальгат Рашитович
Д-р. техн. наук, ст. науч. сотрудник, доцент каф. телевидения и управления ТУСУРа Тел.: 8 (382-2) 41-34-39 Эл. почта: [email protected]
Surovtsev R.S., Kuksenko S.P., Gazizov T.R.
Acceleration of multiple solutions for linear system with partially-changing matrix
The article considers the use of block LU-factorization for acceleration of multiple solutions for linear system with partially-changing matrix for capacitive matrix calculation for a system of conductors and dielectrics. There are given the dependences of time solution on relative conductor-dielectric subintervals when the number of conductors changes. The acceleration possibilities up to factor 35 are revealed. The structures, for which the acceleration is possible, are described.
Keywords: linear system, block LU-factorization, capacitive matrix calculation.