4------1-----1-----------1-----------------------h x
256 512 1024 2048
Рис. 3. Выбор лучшего алгоритма одностороннего обращения
Литература
1. Малашонок Г. II., Зуев М. С. Обобщенный алгоритм вычисления обратной матрицы // XI Державинские чтения. Тез. докл. Тамбов: Изд-во ТГУ им. Г.Р.Державина. 2006. С. 48-50.
2. Gustavson F. G. High-performance linear algebra algorithms using new generalized data structures for matrices // IBM Journal for Research and development. January 2003. V. 41. Issue 1. P. 31-55.
3. Gustavson F. G. Recursion leads to automatic variable blocking for dense linear-algebra algorithms // IBM Journal for Research and development. November 1997. V. 41. Issue 6. P. 737-756.
4. Lorton K. P.. Wise D. S. Analyzing Block Locality in Morton-Order and Morton-Hybrid Matrices // Proc. MEDEA Workshop’06. New York: ACM Press', 2006. P. 5-12.
5. Reiley W. C., van de Geijn R. A. POOCLAPACK: Parallel Out-of-Core Linear Algebra Package. Technical report CS-TR-99-33. Austin. TX, USA: University of Texas at Austin. 1999.
Поступила в редакцию 15 декабря 2007г.
О вычислении ядра оператора, действующего в модуле
© Г.И. Малашонок
Пусть Я - область с единицей, Яп - модуль над Я размерности и, М € Япхп - оператор, действующий в Я”. Считается фиксированным базис модуля и оператор представлен матрицей. Требуется найти ядро оператора. Предлагается алгоритм, состоящий из двух этапов. Сначала находится обобщенная присоединенная матрица А, такая, что матрица S = АМ имеет ступенчатый вид. Затем по матрице £ находится ядро оператора М. Введем некоторые обозначения.
Пусть полугруппа Рп образована матрицами, у которых число единичных элементов совпадает с рангом матрицы, а остальные элементы равны нулю. Полугруппа Бп образована диагональными матрицами порядка и с элементами 0 и 1 на диагонали, |Еп| =2” и единичная матрица I - единица в Бп и в Рп. Па Бп введем частичный по рядок: I < 7 ^ 7 — I € Юп и чертой будем обозначать инволюцию на Пп : I = I — I. Для каждой матрицы Е € Рп определим диагональные матрицы: 1е = ЕЕТ € Юп, = ЕтЕ € Юп. Для матрицы Е матрица 1е является левым аннулятором, а
матрица 1е - правым аннулятором.
Обозначим множество ступенчатых матриц порядка и: Бп = |ЗЕ € Рп, Эй € Д\0 : ^ =
1е¿Е = Б1е}. Другими словами, для каждой ступенчатой матрицы £ € Бп найдется матрица
Е € Pn такая, что множества нулевых строк у матриц $ и Е совпадают, и каждый ненулевой столбец матрицы ¿Е совпадает с одноименным столбцом матрицы $. Будем записывать: Е = Е^, $ € $п.
Отображение АеХ : Дпхп х (Я\0) ^ (Япхп)3 х (Я\0)
(А,$,Е5 ,й) = Аеж4 (М,йо),
(1)
при и = 2й назовем расширенным присоединенным отображением пары (М, ¿о), если оно определено рекурсивно следующим образом.
При М = 0: Аеж^О, ¿о) = (¿о1,0, 0, ¿о).
При к = 0и М = а = 0 Аеж4(а, ¿о) = (¿о, а, а, а).
При к > 0 и М = 0 разобьем матрицу М на четыре равных блока М = (М^-), г,^ € (1, 2}. Пусть
(А1Ь $1Ь Е1Ь ¿11) = Ае*ДМ11^о^
обозначим
Пусть
Обозначим
Пусть
Обозначим
М]_2 = АцМ^о, М21 = М21^ц/^о, М22 = (М22 — М21ЕпМ12)/^о.
(А12, $12, Е12, ¿12) = Аеж^цМ^, ¿11),
(А2Ь $2Ь Е2Ь ¿2^ = ¿1^.
М22 = А21М22^12/^11)2, ¿з = ¿21¿12/¿11
(А22, $22, Е22, ¿22) = Аеж4(-121М|2, ¿я).
М121 = $^/¿11, Мх22 = $12¿21 + (1цМ^1^21 — ^^^^^/(¿п)2.
М?2 = М^/^п), М232 = $22 + Е^УЪМ,
Ь = (Ын — 1иМ12ЕТ2)А12 All¿22/(¿1l)2,
Я = (I¿12¿21 — I21M22ET2¿11)A22/¿s,
Е = $11Е21 ¿22 + M12E22A22/¿s,
С = A21(M212E12A12¿0 + M21ET1¿12¿11)A11/(¿21¿0), А=
(Ь + ЕС/№^21)^12 —ЕА21/(¿11¿21) — ^^/(¿1^2^12) ЯА21/№^21)
$ =
М21 ¿22/¿21 М32 $21 ¿22 /¿21 М22
Е=
Ец Е12
Е21 Е22
Тогда
(А, $, Е, ¿22) — Аежг
(М, ¿о).
Здесь использованы еще обозначения
Г = Е • Ет 7 = Ет Е • У - = ¿- I - Ет $ •
-‘г? — Е*^ Ег^, — Ег^Е^, Ег^ ,
Теорема 1. Для произвольной матрицы М € Дпхп расширенное приеоединненое отображение (А, $, Е, ¿) = Аеж4(М, 1). определяет расширенную присоединенную невырожденную матрицу А, ступенчатую матрицу $ и матрицу Ев, такие, что АМ = $ и ¿Е = $Ее.
Доказательство теоремы не приводим.
Пусть для матрицы М найдена ступенчатая матрица $ тогда $1 = Ет$ - другая ступенчатая матрица, отличающаяся от $ только перестановкой строк, при этом ЕтАМ = Ет$ и $1 Ее = ¿Ее. Рассмотрим матрицу $1 = $о + ¿Е Отметим, что $^ = 0, так как по определению ступенчатых матриц, если строка £ у матрицы $о те нулевая, то столбец £ у нее нулевой, а диагональный элемент
в столбце ¿матрицы Е равен 1. Поэт ому ($о + ¿7 )($о — ¿Е) = 0. Так как ненулевые столбцы матрицы ($о — ¿7) линейно независимы, то ранг ее равен рангу Е. Ранг $1 = $о + ¿7 равен рангу Е, следовательно гаик($1) + гаик($о — ¿1) = и. Поэтому столбцы матрицы $о + ¿1 порождают ядро $1 М
Следовательно ядро оператора М порождается ненулевыми столбцами матрицы $1 — ¿I. А это все ненулевые столбцы матрицы ./.
кеги(М) = враи(Ет АМ — ¿I).
БЛАГОДАРНОСТИ: Работа выполнена при поддержке РФФИ, проект 04-07-90268.
Поступила в редакцию 15 декабря 2007г.
О вычислительных экспериментах с параллельными алгоритмами умножения полиномов и матриц в LLP схеме
© Ю.Д. Валеев
LLP схема - это параллельная технология, которая позволяет распараллеливать рекурсивные однопроцессорные алгоритмы. Она подробно изложена в [1-3]. LLP схема предназначена для распараллеливания однопроцессорных алгоритмов как с плотными, так и с разреженными данными. Это достигается за счет использования планировщика, который отслеживает свободные и занятые процессоры и автоматически перераспределяет задания от загруженных к свободным. От других систем автоматического распараллеливания ее отличает то, что граф алгоритма в ней представляется в виде взвешенного дерева, а каждый алгоритм является вершиной дерева. Для того чтобы распараллелить однопроцессорный алгоритм с помощью LLP, нужно реализовать его в виде вершины дерева и описать его граф.
LLP схема написана на языке Java и реализована с использованием технологий mpiJava, MPI. С использованием LLP схемы были реализованы параллельные программы для умножения полиномов и матриц.
Программы протестированы на 16 процесорном кластере лаборатории алгебраических вычислений с процессорами Intel Xeon 3000 и памятью 1Гб.
1 Результаты тестирования LLP алгоритма умножения полиномов
Был протестирован параллельный алгоритм умножения полиномов с использованием схемы LLP. Тестировались полиномы трех переменных в конечном поле и в кольце целых чисел.
1. Полиномы в кольце Zp[x]. В таблице приведены времена выполнения умножения в миллисекундах. Через дробную черту указано, во сколько раз время вычисления при данном количестве процессоров больше по сравнению с временем вычисления при 16 процессорах. Программа умножения запускалась на 2, 4, 8 и 16 процессорах. Эксперименты проводились для полиномов от трех переменных с одинаковыми максимальными степенями при переменных х, у, z: 20, 25, 30, с плотностью 50 и 100%.___________________________________________________________________
Плотность 50% Плотность 100%
m\p 2 4 8 16 m\p 2 4 8 16
20 5710/4.17 3250/2.38 2040/1.49 1370/1 20 14470/6.55 7800/3.53 4320/1.95 2210/1
25 16320/6.16 8620/3.25 4870/1.84 2650/1 25 45080/7.01 23610/3.67 12630/1.96 6430/1
30 45180/7.14 23310/3.68 11810/1.87 6330/1 30 132020/6.98 68430/3.62 36350/1.92 18900/1