УДК 519.688
ПАРАЛЛЕЛЬНЫЙ МОДУЛЯРНЫЙ АЛГОРИТМ ВЫЧИСЛЕНИЯ ХАРАКТЕРИСТИЧЕСКОГО ПОЛИНОМА МАТРИЦЫ В КОЛЬЦЕ ПОЛИНОМОВ МНОГИХ ПЕРЕМЕННЫХ
© О. Н. Переславцева
Ключевые слова: вычисление характеристического полинома, параллельный алгоритм, система Ма^раг.
Приводится параллельный модулярный алгоритм вычисления характеристического полинома матрицы в кольце полиномов многих переменных. Обсуждается реализация в системе МаШраг.
Параллельная реализация алгоритмов позволяет решать задачи для матриц над полиномами сверхбольших размеров, которые были недоступны для однопроцессорных компьютеров. На первый план при этом выходят проблемы распараллеливания алгоритма решения матричной задачи. В компьютерной алгебре для параллельных вычислительных систем часто применяется модулярное распараллеливание. Этот тип распараллеливания появился как результат применения модулярной арифметики. Его преимущество состоит в том, что операции, связанные с разными модулями, могут выполняться одновременно.
Пусть п — количество процессоров кластера с номерами 0, 1, 2,..., (п — 1) и на нулевом процессоре имеется исходная матрица А над полиномами из кольца Z[x 1,..., ж*]. Пусть множество М, которое содержит необходимый список простых чисел, имеется на каждом процессоре.
Параллельный алгоритм вычисления характеристического полинома матрицы состоит из четырех этапов.
Этап 1. Вычисление количества модулей.
Нулевой процессор находит верхнюю оценку наибольшего по абсолютной величине числового коэффициента элементов характеристического полинома матрицы и верхние оценки наибольших степеней элементов характеристического полинома матрицы по каждой переменной. Можно использовать оценки, полученные в работе [1]. По найденным оценкам и множеству числовых модулей М вычисляется необходимое для данной задачи число числовых и полиномиальных по каждой переменной модулей. В качестве полиномиальных модулей ПО переменной Хг берём ПОЛИНОМЫ Ж*, ж* — 1, ж* — 2,..., г = 1,..., £.
Затем производится рассылка исходной матрицы и количества модулей на все процессоры.
Этап 2. Решение задачи в гомоморфных образах в конечном поле.
Каждый процессор, получив матрицу и количество модулей, вычисляет число г — количество точек, в которых необходимо решить задачу в гомоморфных образах в конечном поле.
Обозначим через т остаток от деления г на гг. Каждый из процессоров с номерами 0, 1, 2,, т — 1 выполняет вычисление характеристического полинома матрицы в конечном поле в + 1 точке, каждый из остальных процессоров в [£] точках. В результате на каждом процессоре имеется массив полиномов с элементами их конечного поля.
Для вычисления характеристического полинома матрицы в конечном поле используется алгоритм из работ [2-4].
Все процессоры имеют одну и ту же исходную матрицу и производят вычисления по одинаковому количеству модулей, количество может отличаться на один модуль, таким образом, задача равномерно распределяется по всем процессорам.
Этап 3. Восстановление элементов характеристического полинома матрицы в исходное кольцо.
На всех процессорах каждый из полученных полиномов разбивается на п частей, которые содержат приблизительно одинаковое количество мономов. Причём, j -я часть одного полинома содержит мономы тех же степеней, что и j -я часть другого полинома, j = 0,..., п — 1. Для j ф i мономы, содержащиеся в j -й части любого полинома, имеют степени переменных, отличные от какого-либо монома, содержащегося в г-й части.
Процессоры обмениваются полученными частями полиномов так, что г-й процессор получает все г-е части полиномов, г = 0, ...,п — 1. На каждом процессоре будут вычисляться либо г коэффициентов, либо г + 1. Тем самым будет обеспечена равномерная нагрузка на процессорах.
Восстановление элементов характеристического полинома матрицы проводится с использованием алгоритма Ньютона [5].
Этап 4. Сбор результата на нулевом процессоре.
После восстановления каждый процессор посылает свой результат нулевому процессору. Затем нулевой процессор объединяет полученные данные в искомый характеристический полином матрицы.
Предложенный алгоритм вычисления характеристического полинома матрицы в кольце полиномов многих переменных был реализован в системе компьютерной алгебры Mathpar [6]-[8].
Отметим, что рассмотренный алгоритм даёт равномерную нагрузку на узлы кластера и обеспечивает хорошую масштабируемость.
ъ
ЛИТЕРАТУРА
1. Переславцева О.Н. Вычисление характеристического полинома для полиномиальных матриц // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14. Вып. 1. 2009. С. 274-277.
2. Переславцева О.Н. О вычислении характеристического полинома матрицы // Дискретная математика. Т. 23. Вып. 1. 2011. С. 28-45.
3. Pereslavtseva О. N. Calculation of the characteristic polynomial of a matrix // Discrete Mathematics and Applications. Volume 21. Issue 1. Pages 109-129.
4. Переславцева О.Н. О вычислении коэффициентов характеристического полинома. Вычислительные методы и программирование: новые вычислительные технологии. 2008. Т. 9. № 1. С. 366-370.
5. Бухбергер Б., Калме Ж., Калтпофен Э. и др. Компьютерная алгебра: Символьные и алгебраические вычисления: Пер. с англ./Под ред. Б. Бухбергера, Дж. Коллинза, Р. Лооса. М.: Мир, 1986.
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 г.
PARALLEL ALGORITHM FOR COMPUTING OF CHARACTERISTIC POLYNOMIALS OF POLYNOMIAL MATRICES
© Oxana Nikolaevna Pereslavtseva
Tambov State University named after G.R. Derzhavin, Internatsionalnaya, 33, Tambov, 392000, Russia, assistance lecturer of Mathematical Analysis Department, e-mail:
Key words: computing characteristic polynomials, parallel algorithm, system Mathpar.
There is produced a parallel algorithm for computing characteristic polynomials for polynomial matrices. The algorithm is based on the method of homomorphic images in the ring of integers and in the ring of polynomials. We discuss the implementation of algorithms in the system Mathpar.