СЕКЦИЯ: КОМПЬЮТЕРНАЯ АЛГЕБРА
УДК 519.6
ТЕМПОРИРОВАННЫЙ ГРАФ ДЛЯ ПАРАЛЛЕЛЬНОГО ВЫЧИСЛЕНИЯ ПРИСОЕДИНЕННОЙ МАТРИЦЫ
© А.А. Бетин
Ключевые слова: параллельный алгоритм, рекурсивный алгоритм, граф алгоритма, вершины дерева, матричный алгоритм.
Аннотация
В статье описывается граф параллельного рекурсивного алгоритма нахождения присоединенной матрицы. Граф образован вершинами пяти типов. Приведено строение каждой вершины и вычислительные алгоритмы в этих вершинах.
Присоединенная матрица - это транспонированная матрица алгебраических дополнений. Если детерминант матрицы обратим, то обратная матрица может быть вычислена как присоединенная матрица, деленная на детерминант.
в и)- обра-
тимая матрица и Л ее обратимый блок, то можно разложить на множители ее обратную матрицу
Л"1
Известно следующее разложение на множетели обратной матрицы. Если А
' I ~А~1С ' ' I 0 I 0 ' 1 1—1 о
0 I 0 {Б-ВА^СУ1 —В I 0 I
Применение детерминантных тождеств позволяет вычислять присоединенную матрицу с помощью аналогичного разложения присоединенной матрицы[1].
Пусть Л -- коммутативная область, .А = (а*.,) - квадратная матрица порядка п над областью К. Будем использовать следующие обозначения, - определитель подматрицы А, полученной окаймлением углового минора матрицы А порядка к — 1 строкой г и столбцом j. Введем матрицу, построенную на этих минорах Ак = (сек^) Обозначим Ак''^г - подматрицу Ак, стоящую на пересечении строк
з +1, й + 2, - - - , £ и столбцов р+1,р + 2, ■■■ ,д, где 0 < в < £ < п, 0 < р < д < п. Справедлива следующая теорема.
Теорема Пусть квадратная матрица А порядка п — к над кольцом Яп разбита на блоки
А - квадратный блок прядка в — к, (1 < к < в < п), ак и а13 не равны нулю, тогда присоединенная матрица (ак)~п+к+1 А,^'к’п* раскладывается на множители.
' (а8)-1»”/ -(а8)"1^ ' I 0 I 0 ' Р 0 '
0 / о 1Г ?г 1 О -Б а8/ 0 I
где Р = (ак) з+к+гдк+^,к,в*^ Q _ ^ак^ п+в+1дз+1;в,п* д _ Циничная матрица и справедливо тожде-
ство
Л8+1;*,п* = (ак)-1(а8£) _ ВРС),
при этом а“ = 1 и А$- присоединенная матрица для матрицы А. Здесь символ * обозначает присоединенную матрицу А* = А~где1А.
Обобщением этой теоремы на случай вырожденного блока А является следующая теорема [2].
Пусть Вп - модуль над К размерности п, М Е впхп - оператор, действующий в Яп. Ищется обобщенная присоединенная матрица А, такая, что матрица 5 = АМ имеет ступенчатый вид, в частности, если М обратима, то Б единичная матрица.
Пусть полугруппа Рп образована матрицами, у которых число единичных элементов совпадает с рангом матрицы, а остальные элементы равны нулю. Полугруппа £)„ образована диагональными матрицами порядка п с элементами 0 и 1 на диагонали, |_0„|=21г и единичная матрица I - единица в Оп и в Рп. На введем частичный порядок: I < J <=> J — I Е £)„ и чертой будем обозначать инволюцию на Оп : I = I — I. Для каждой матрицы Е Е Рп определим диагональные матрицы: 1е — ЕЕТ Е £>„, = ЕТЕ Е Для матрицы Е матрица 1е является левым аннулятором, а
матрица Ле - правым аннулятором.
Обозначим множество ступенчатых матриц порядка п: Бп = {5 |З.Е е Рп, 3<1 Е 1?\0 : 5 =
1еБ, с1Е = SJE}■ Другими словами, для каждой ступенчатой матрицы £ 6 Бп найдется матрица Е Е Рп такая, что множества нулевых строк у матриц Б и Е совпадают, и каждый ненулевой столбец матрицы с1Е совпадает с одноименным столбцом матрицы б1. Будем записывать: Е — Е$, Б Е Бп.
Введем определение. Отображение Аео^ : Лпхп х (Д\0) —+ (Нпхп)3 х (Д\0)
(А, 5, Ев, в) = Аех±(М, е£0),
(14)
при п = 2к назовем расширенным присоединенным отображением пары (М,до), если оно определено рекурсивно следующим образом.
При М = 0: Аехг(0, д0) = (д01, 0,0,4).
При ^ = 0иМ = а/ 0: Аехг(а, до) = (д,о, а, а, а).
При к > 0 и М ф 0 разобьем матрицу М на четыре равных блока М = (Мг]). i,j £ {1, 2}. Пусть
обозначим
Пусть
Обозначим
Пусть
Обозначим
(Лц, >5ц, Ец, Йц) — Аех^Мц,<1 о),
М\2 = АххМхх/да, М1Х = Мо^ц/йо, М22 = (М22 ~ МцЕТ^М^,) /&а.
{А\2, Е\2, д\2) = Аех±{1\\М^2) ^и);
(А-1%, ^21, ^21,^21) = Аехг{М11,йц).
•^22 = Л21Л^22^12/(^и)2; <4 — ^21^12/^11
(Л22, $22, -^22, ^22) = Аехг(121М$2, <18). м\1 = 5цУ21М1, М^2 = 5x2^21 + (/цМ^2^цЙ21 — ЗпЯ&АахМ^ВДаи)2. М^2 = M12Y12Hdsd.11), М|2 = ^22 +
Ь = (Ип - /пМ^^АцЛцйзг/С^!)*,
(3 = (1^12^21 — /21-М22-Е^(^11)А22/Йя1
Р = + МЪЕ%2А22/<1я,
С — А'іііМ^Е 12^-12^0 + М2іЕі1<1і2(Ііі)Аіі/(і1і^о)
( (£ + те/(йцгі21)М2 ~РА21/(ёпЛ21) \ \ —(50/(^11^21^12) <3^21/(^11^21) /
/ М\х(І22ІА-2 1 М±2 \ р -~ ( -Еи Е12 \ V -521^22/^21 М%2 ) ’ \ Е21 Е22 )
Тогда
{А,5, Е, (І22) = Аехі(М, йо).
Здесь использованы обозначения
1г] - ЕцЕ%, - Е?ЕФ ¥г] = гіуі - і,і є {1,2}.
Теорема Для произвольной матрицы М е лпхп расширенное присоединненое отображение (А, 3, Е,(1) = АеХ1(М, 1). определяет расширенную присоединенную невырожденную матрицу А, ступенчатую матрицу 5 и матрицу £5, такие, что АМ — Б и с1Е — 57в-
В опрделении расширенного определенного отображения содержится алгоритм вычисления присоединенной матрицы, который может быть программно реализован в параллельной вычислительной системе. Алгоритм является рекурсивным. Графом алгоритма является дерево. Опишем граф алгоритма.
Граф алгоритма состоит из вершин пяти типов:
1 - главная вершина - корневая вершина дерева алгоритма (А, 5*, Еа,<1) = Аехг{М, с^о);
2 - вершина типа А* В;
3 - вершина типа “г^йо;
4 - вершина типа АВ + С-О;
5 - вершина типа гДе В,С,И матрицы, йо, ск числа.
Для хранения результатов вычисления, промежуточных результатов и результатов вычисления вершин, используется массив объектов гезаиИв, для хранения входных данных используется массив объектов рагатэ.
Все деревья исходящие из одной вершины разбиты на пучки. Деревья в одном пучке вычисляются параллельно, пучки пронумерованы и вычисляются в соответствии со своими номерами. Пучок, состоящий из одного дерева, является простым вычислительным блоком в вершине и вычисляется в том процессоре, в котором находится данная вершина.
Описание вершин будем вести следующим образом: выражения в круглых скобках будут обозначать пучки деревьев, которые вычисляются параллельно, каждое число в скобках будет обозначать тип вершин, числа между скобками - номера вычислительных блоков. Для обозначения входных и выходных данных для вершины будем использовать запись {А^, В^, Е^, с?ц} = Рг{М, с£о), где переменные в фигурных скобках являются результатом вычисления вершины, о) - означает функцию, вы-
числяемую вершиной типа 1, а аргументы обозначают входные данные.
Приведем строение каждой вершины, начиная с порстых.
Вершина второго типа вычисляет матричное произведение Ах В. Она имеет строение 0(4444)1.
У этой вершины один пучек из четырех поддеревьев. Каждое поддерево - это вершина типа АВ + СП.
1 : объединяем матрицы 5$, 5 =
Вершина третьего типа вычисляет Она имеет строение 0(5555)1.
Ао ^4і с _ ( Во В\ В3 Вл
РгАА'2- Во, Аз, В2, с?о, ^1) {£3} — Ръ{А2, В\, А3, В3, йо, с1{) ); матрицы А,пВ3 получены в нулевом вычислительном блоке.
Вычислительные блоки в третьей вершине:
0 : разбиваем матрицы Л и В на четыре равных блока А = ^ ^ ^ , В =
1 : объединяем матрицы £*, 5 = ( ?° л1 ) ■
V *4 у
Вершина четвертого типа вычисляет АВ + СО. Имеет строение (22)1.
У этой вершины один пучек из двух поддеревьев. Каждое поддерево - это вершина типа А* В.
(2, 2) - ({До} = Р5(А, В) №} = Р5(С, £>))
Вычислительные блоки в четвертой вершине:
1 : В — Ро Р1',
Вершина пятого типа вычисляет ~^-(1о + ~ц?-<1о. Имеет строение (33)1.
У этой вершины один пучек из двух поддеревьев. Каждое поддерево - это вершина типа —^-йо.
(3,3) = ({Яо} = Рз(Д-В,<*0,<*1) №} = Рз(С, Айо,(*!));
Вычислительные блоки в пятой вершине:
1 : В, — Ро Рл .
Вершина первого типа имеет следующее строение: 0(1)1(33)2(211)3(22333)4(33323)5(12)6(323)7(33)8(32)9 Пучки деревьев для вершин первого типа следующие:
' (1) = ({Аг^ьРп^и} =Р1(М,£г0));
(33) = ({М12} = Р3(Аи,М1,1,й0) {М2\} =Рз(М2,Г11,х1)); (211) = ({У} = Р2(А1ЬМ 1) {Л21,521,£21,й21} = Р1(М^1,й11) {А12, Б12, Е12, с112} = Р1(Х4^11)); (22333) = ({Л1} = Р2(Л12,А11){М121Л1} = Р2(А21,МЪ) {У3} - Р3(Б11,Х6,1,ё11) {Уе} = Р3(М2,Х13,1,й!12));
(33323) = ({У18} = Р3(М221,Х10,1,йп) {У} = Р3(Х9,Х10,1,с111) {М|2} =
Рз(У2,¥12,Х9,Х10,-с12п) {У4} = Р2(уз,М}2) {У14} - Р3(5ц, Х1Ъ йп, <*о));
(12) = ({А22,522, £22,^22} - Рг(Х5^з) {У5} = Р2(Х7,У12));
(323) - ({М3,} =Р3(М122,У22,1,-сг5) {А2} = Р2(А22,А21) {У6} = Р3(Х8,У22,1,-Сг5)); (33) - ({Уз} - Рз(Х2и, Хг2,1, йя) {У15} = Р3(М22, Хг2,1, Лз)); (32) = ({РР2} - Р3(Р,С,1,сг12){У19} = Р3(Р,С)).
Вычислительные блоки в первой вершине:
гл лт М 1спйII\ И /Г Ъ /Г ( 0 1
0 : Л — ——; разбиваем входную матрицу М на четыре равных олока, М = !
1 : Ж] = —Ас] -Х13 = £ц^ц; Й2! = йц * с2ц;
2 : Х2 = ЕцМ}2; Х± = гпуо1ииоп(Ец) * АР^1;
3 : М\2 * 5ц - У1; У12 - ЕиБ 12 - <й2/12; Х6 = Е21А21; Хи = Е21А21] У21 = Е21Б21 - <121121-,
4 : .Х9 = /; 1М-,1,; Х-\о ~ -^12^-11
5 : Х5 ~ тъю1ипоп(Е21) * М222; (1н = ; Х7 = О = У1°+^'18;
ь ■ П'Т с122; М2, = У5 + (512 * <Ы; У22 - Е22Б22 ~ De^ =1= /22; Ь = (Л1~^*ап ; *8 = 121М^: М% - -4*Де<: М,3 - ^4^1-
7 : М22 — Уе + 522; -Х12 — £^22^2; Хі4 — і2\М22і
8 ; Р = А27Уі3. ^ = Уі4+^і^ ■ дд! ^ р. ддз = р.
22 5
^13 . Г — ^14+Ь/15 . РР1 _ 7?. -
(І2
9 : РЛО = ^±^5 5 = І от (М3!, М^2, М| і, М22); А = join(RR0, ЯЯІ, ЯР2, ЯШ); Е
а\2
]от(Ец, Р]2, Е21, Е22);
На основании этого графа написана программа, которая находится в стадии тестирования.
Работа выполнена при частичной поддержке гранта РФФИ (проект 08-07-97507) и программы "Развитие потенциала высшей школы"(проект 2.1.1/1853).
Список литературы
1. Малашонок Г.И. Матричные методы вычислений в коммутативных кольцах. // Монография. Тамбов: Изд-во ТГУ им. Г.Р. Державина, 2002. 214 с. С.78-82.
2. Малашонок Г.И. О вычислении ядра оператора, действующего в модуле. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 13, вып. 1, 2008. С. 129-131.
Поступила в редакцию 20 ноября 2008 г.
УПРАВЛЕНИЕ ПАРАЛЛЕЛЬНЫМ ВЫЧИСЛИТЕЛЬНЫМ ПРОЦЕССОМ
© Г.И. Малашонок
Ключевые слова: параллельный вычислительный процесс, управление вычислительным процессом, алгоритмы компьютерной алгебры.
Аннотация
Предлагается новая схема управления параллельным вычислительным процессом для рекурсивных символьно-численных алгоритмов.
1 Введение
Одной из главных проблем теории программирования сегодня остается проблема разработки эффективных параллельных SPMD-программ. Задача эффективной организации параллельного вычислительного процесса для каждого класса алгоритмов, и даже для каждого отдельного алгоритма, сегодня, как и раньше, решается “вручную”, исходя из особенностей алгоритма.
Еще с девяностых годов одним из основных подходов является использование стандарта MPI. Команды посылки и приема сообщений, используемые в MPI, требуют от программиста описания каждого отдельного акта обмена сообщениями между процессорами. Трудоемкость такого программирования очень высока. Этот факт является основной причиной малого числа параллельных программ, созданных за прошедшее время.
Развиваются автоматизированные средства создания параллельных программ, такие как High Performance Fortran, Фортран-DVM и Си-DVM [1] . Известны подходы, в которых осуществляется конструирование программ из типовых алгоритмических структур [2] - [5] и из частичных проектных решений (design patterns) [6]. Системы программирования, которые используют типовые проектные решения, - это FrameWorks [7], DPnDP [8, 9], Enterprise [10], CO2P3S [11]. Известен опыт создания динамических параллельных систем в Институте программных систем РАН, разработанный здесь пакет, носит название Т-системы [12].
Однако, ни одна из этих систем не может быть использована для разработки эффективных программ для решения задач компьютерной алгебры. MPI остается единственным надежным и эффективным средством для параллельного программирования.
Для создания параллельной системы компьютерной алгебры необходимо разработать схему организации параллельных вычислений, ориентированную на рекурсивные алгоритмы. Для этого была предложена LLP схема [13] организации параллельного вычислительного процесса. В основе схемы лежит рекурсивное темпорированное дерево алгоритма. Это дерево алгоритма, у которого множество поддеревьев, исходящих из каждой вершины, разбито на подмножества, называемые далее пучками деревьев, вычисляемых параллельно (одновременно). При этом номер пучка соответствует очередности вычислений пучка. Весь вычислительный процесс по дереву алгоритма развивается от корня к листьям, а затем обратно. В результате такого вычислительного процесса результат вычислительной задачи формируется в корневой вершине.