УДК 519.688
ПАРАЛЛЕЛЬНЫЙ МОДУЛЯРНЫЙ АЛГОРИТМ ВЫЧИСЛЕНИЯ ПРИСОЕДИНЁННОЙ МАТРИЦЫ В КОЛЬЦЕ ПОЛИНОМОВ МНОГИХ
ПЕРЕМЕННЫХ
© А. А. Бетин
Ключевые слова: вычисление присоединённой матрицы, параллельный алгоритм, система МаЛраг.
Приводится параллельный модулярный алгоритм вычисления присоединённой матрицы в кольце полиномов многих переменных, вычисляется верхняя оценка наибольшего по абсолютной величине числового коэффициента элементов присоединённой матрицы. Обсуждается реализация алгоритмов в системе МаШраг.
1 Введение
Вычисление присоединённой матрицы в кольце полиномов - это вычислительно сложная задача, так как с ростом размеров матрицы происходит быстрый рост коэффициентов и степеней полиномов, которые являются элементами присоединенной матрицы. Уменьшить вычислительную сложность позволяет применение китайской теоремы об остатках (КТО). Такой подход позволяет прийти к большому числу независимых задач. Это обеспечивает хороший параллелизм алгоритма. Присоединенная матрица каждый раз вычисляется в некотором конечном поле. Затем искомый результат получается в результате применения интерполяционных формул с использованием схем Ньютона или Лагранжа.
Для использования КТО необходимо выбрать достаточное количество модулей, а для этого требуется найти верхнюю оценку результата. В параграфе 2 вычисляется оценка максимального по абсолютной величине числового коэффициента элемента присоединённой матрицы.
В параграфе 3 даётся параллельный алгоритм вычисления присоединённой матрицы, который использует вычисления в конечных полях.
2 Оценки для элементов присоединённой матрицы
Пусть /, д е Е[хо,...,хЦ, / содержит т ненулевых мономов, д содержит к ненулевых мономов. Обозначим через тахСое/${р) максимальный по абсолютной величине
числовой коэффициент полинома р. Тогда максимальный по абсолютной величине числовой коэффициент в произведении полиномов / и д удовлетворяет неравенству
maxCoef f{fg) ^ maxCoeff(f) ■ maxCoef f(g) ■ min{m, к}. (1)
Пусть дана матрица А размера п х п с элементами из кольца полиномов € Z[x0,xi,...,xt]. Обозначим через А присоединённую матрицу для матрицы А. Тогда А — (Aij), где Aij — алгебраическое дополнение элемента матрицы А, т.е. 4# = (—1УНЩ, где щ — это минор элемента , полученный из определителя матрицы А вычеркиванием г-ой строки и j- го столбца, i,j = 1 Обозначим через
элемент присоединенной матрицы, i,j = 1 и найдем оценку для максималь-
ного по абсолютной величине числового коэффициента у полиномов, которые являются элементами присоединенной матрицы.
Определитель матрицы А можно вычислить по формуле
det А = ^ ] (—1) aij1a.2j2 ■ • ■ Отуп) (2)
O'lvijn)
где сумма берется по всем перестановкам чисел от 1 до п: (ji,..., jn) , t — t(ji,..., jn) — четность этой перестановки.
Если А — полиномиальная матрица, то определитель det А, является суммой произведений полиномов. В соответствии с (1), получаем
maxCoef f(det( А)) ^ Е ^lji ' Clj2 ' ‘ ' Cry'n • P2j2 ' P3j3 ' ‘ ' Pnj„)
O'l.-Jn)
где Cnjn — максимальный по абсолютной величине числовой коэффициент полинома anjn , Pnjn — ЧИСЛО МОНОМОВ в полиноме anjn .
Выбрав из каждой строки матрицы максимальный по абсолютному значению числовой коэффициент Стахг > 1 = 1, • • • , И , И МаКСИМЭЛЬНОе количество МОНОМОВ Pmaxi > * = 2,..., п, получим:
Е ■ C2ji' ‘ ■ Cnj„ ' P?h ' Psj3 ''' Pnjn ^ w! • Стах i ‘ Cmax 2 ' ' ' ^moi„ " Ртах i ' Ртах 2 ' ' ' Pmaxn •
(ilr-Jn)
Следовательно,
maxCoef f(det( A)) ^ Я,! • Cmax\ • • ■ Cmaxn ' Pmaxi ‘ ‘ ' Pmaxn ■
Используя формулу Стирлинга, получаем:
maxCoef f(det(A)) ^ у/27ТП ^ ^ e ^ ^ Cmax2 ■ ■ ■ Cmaxn ' Pmaxi ' Pmax2 ' ' ' Pmaxn- (3)
Так как каждый элемент присоединенной матрицы является алгебраическим дополнением некоторого элемента исходной матрицы, то для него можно использовать оценку (3).
Для оценки максимальной степени полинома, который является элементом присоединенной матрицы, можно взять сумму максимальных степеней полиномов по каждой строке или по каждому столбцу.
3 Параллельный алгоритм вычисления присоединённой матрицы
Пусть имеется кластер с п процессорами с номерами 0, 1, 2,..., (п — 1). Исходная матрица А с элементами из кольца полиномов многих переменных Z[xo,Xl,... ,хЦ находится на нулевом процессоре.
Параллельный алгоритм вычисления присоединённой матрицы состоит из четырех этапов.
Этап 1. Определение множества модулей.
Матрица А посылается всем процессорам. Каждый процессор, получив матрицу, находит верхнюю оценку наибольшего по абсолютной величине числового коэффициента и степень полинома для элементов присоединённой матрицы по каждой переменной. По найденным оценкам вычисляется необходимое для данной задачи число числовых и полиномиальных модулей по каждой переменной. Это дает возможность найти число г — количество простых чисел р, которые нужно взять для задания конечных полей г/рг, в которых будут вычисляться присоединённые матрицы.
Этап 2. Решение задачи в гомоморфных образах в конечном поле.
Желательно раздать на каждый из п процессоров одинаковое число модулей. Если п/г - дробное число, то обозначим через т остаток от деления г на п. Каждый из процессоров с номерами 0, 1, 2,..., т — 1 выполняет вычисление присоединённой матрицы в конечном поле в + 1 точке, каждый из остальных процессоров - в точках. В результате на каждом процессоре будут получены присоединенные матрицы в разных конечных поля.
Отметим, что для вычисления присоединённой матрицы в конечном поле используется алгоритм, который приведен в [1, 2].
Все процессоры имеют одну и ту же исходную матрицу и производят вычисления по такому количеству модулей, которое может отличаться не более, чем на 1. Таким образом задача равномерно распределяется по всем процессорам.
Этап 3. Восстановление элементов присоединённой матрицы в исходном кольце.
Каждая присоединённая матрица разбивается на п частей, которые содержат примерно одинаковое число элементов одинаковым образом. Процессоры обмениваются полученными частями так, что г-й процессор получает всеьг-ые части каждой матрицы. Это обеспечивает равномерную нагрузку на процессоры на этом этапе.
Каждый процессор восстанавливает одну часть искомой присоединённой матрицы. Восстановление элементов присоединенной матрицы проводится с использованием решения Ньютона китайской задачи об остатках [3].
Этап 4. Сбор результата на нулевом процессоре.
После того, как получены искомые элементы присоединенной матрицы, каждый процессор посылает результат нулевому процессору. Нулевой процессор объединяет их в искомую присоединённую матрицу.
4 Заключение
Предложен алгоритм вычисления присоединённой матрицы в кольце полиномов многих переменных. Алгоритм был программно реализован в системе компьютерной алгебры Mathpar[6]-[8]. Важной особенностью алгоритма является равномерная нагрузку на узлы кластера, что обеспечивает хорошую масштабируемость. Если число процессоров в кластере позволяет, то можно дополнительно распараллелить и вычисление присоединенной матрица по одному модулю. Это будет эффективно только для матриц, у которых больше, чем 256 х 256 элементов, см. [4, 5].
ЛИТЕРАТУРА
1. Малашонок Г.И. Матричные методы вычислений в коммутативных кольцах. Монография. Тамбов: Изд-во ТГУ им. Г.Р. Державина, 2002. С. 78-82.
2. Малашонок Г.И. О вычислении ядра оператора, действующего в модуле. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 13. Вып. 1. 2008. С. 129-131.
3. Бухбергер Б., Калме Ж., Калтофен Э. и др. Компьютерная алгебра: Символьные и алгебраические вычисления: Пер. с англ./Под ред. Б. Бухбергера, Дж. Коллинза, Р. Лооса. М.: Мир, 1986.
4. Бетин А.А. Параллельный рекурсивный алгоритм вычисления присоединенной матрицы. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14. Вып. 1. 2009. С. 265-269.
5. Бетин А.А. Эксперименты с параллельным алгоритмом вычисления присоединённой матрицы и параллельным умножением файловых матриц. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 15. Вып. 1. 2010. С. 341-345.
6. Malaschonok G.I. Project of Parallel Computer Algebra // Tambov University Reports. Series: Natural and Technical Sciences. V. 15. Issue 6. 2010. P. 1724-1729.
7. Малашонок Г.И. Компьютерная математика для вычислительной сети // Вестник Тамбовского университета. Сер.: Естественные и технические науки. Том 15. Вып. 1. 2010. С. 322-327.
8. Малашонок Г.И. О проекте параллельной компьютерной алгебры // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14. Вып. 4. 2009. С. 744-748.
БЛАГОДАРНОСТИ: Работа выполнена при поддержке РФФИ (грант № 12-07-00755-а) и программы «Развитие потенциала высшей школы» (проект 2.1.1/10437).
Поступила в редакцию 20 февраля 2012 г.
A PARALLEL ALGORITHM FOR MODULAR CALCULATION OF AN ADJOINT MATRIX FROM POLYNOMIAL RING OF SEVERAL VARIABLES
© Andrey Andreevich Betin
Tambov State University named after G.R. Derzhavin, Internatsionalnaya, 33, Tambov, 392000, Russia, assistance lecturer of Mathematical Analysis Department, e-mail:
Key words: calculation of an adjoint matrix, parallel algorithm, system Mathpar.
We present a parallel modular algorithm for calculation of an adjoint matrix from polynomials ring of several variables, calculated an upper bound on the maximum absolute value of the numerical coefficient of the adjoint matrix elements. We discuss the implementation of algorithms in the system Mathpar.