Научная статья на тему 'О вычислении ядра оператора, действующего в модуле'

О вычислении ядра оператора, действующего в модуле Текст научной статьи по специальности «Математика»

CC BY
90
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О вычислении ядра оператора, действующего в модуле»

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

i Надоели баннеры? Вы всегда можете отключить рекламу.