Параллельный алгоритм вычисления характеристического полинома и его временная сложность

УДК 519.688

ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ВЫЧИСЛЕНИЯ ХАРАКТЕРИСТИЧЕСКОГО ПОЛИНОМА И ЕГО ВРЕМЕННАЯ

СЛОЖНОСТЬ

© О.Н. Переславцева

Ключевые слова: характеристический полином; метод гомоморфных образов; параллельный алгоритм; сложность алгоритма.

Описывается параллельный алгоритм вычисления характеристических полиномов матриц для кольца целых чисел и кольца полиномов с восстановлением на листовых вершинах. Даются оценки времени вычислений и оценки времени пересылки рассматриваемого алгоритма. Приводятся и обсуждаются результаты экспериментов. Даются рекомендации по использованию вычислительного кластера для вычисления характеристического полинома. Алгоритм входит в состав библиотеки алгоритмов системы МаЛраг.

1 Введение

В работе рассматривается параллельный алгоритм вычисления характеристических полиномов матриц. В основе схемы распараллеливания лежит метод гомоморфных образов, применяемый как к кольцам полиномов многих переменных, так и к кольцу целых чисел. Граф параллельного алгоритма — дерево, которое состоит из корневой вершины и листовых вершин, каждая из которых связана ребром с корневой вершиной. Входные данные поступают на каждую листовую вершину. За каждой листовой вершиной закрепляется некоторое число простых модулей, по которым происходит вычисление характеристических полиномов. Кроме этого за каждой листовой вершиной закрепляется множество коэффициентов характеристического полинома, которое будет восстанавливаться на этой вершине. Перед восстановлением происходит обмен данными между листовыми вершинами. Восстановленные коэффициенты передаются сразу с листовых вершин в корневую вершину. Этот алгоритм приводится во втором параграфе.

В третьем параграфе доказываются две теоремы о временной сложности параллельного алгоритма — об оценке времени вычислений и оценке времени пересылки.

В четвертом параграфе приводятся результаты экспериментов, проведенных на кластере МУЭЮОк Межведомственного Суперкомпьютерного Центра РАН. Построены графики зависимости времени вычислений от количества процессоров. Определяется ускорение вычислений при увеличении числа процессоров, принимающих участие в вычислениях. Обсуждаются результаты экспериментов. Даются рекомендации по использованию вычислительного кластера для вычисления характеристических полиномов в зависимости от размера матрицы и характера ее коэффициентов.

530

2 Параллельный алгоритм вычисления характеристического полинома с восстановлением на листовых вершинах

Пусть к — количество процессоров кластера с номерами 0, 1, 2,..., (к — 1) и на нулевом процессоре имеется исходная матрица А над полиномами из кольца Z[x 1, . Пусть множество М , которое содержит необходимый список простых

чисел, имеется на каждом процессоре.

Параллельный алгоритм вычисления характеристического полинома матрицы [1].

Этап 1. Вычисление количества модулей.

Нулевой процессор посылает исходную матрицу на все процессоры (процедура MPI Beast).

Процессор с номером 1, 2,..., (к — 1) получает исходную матрицу (процедура MPI Beast).

Каждый процессор находит верхнюю оценку наибольшего по абсолютной величине числового коэффициента элементов характеристического полинома матрицы и верхние оценки наибольших степеней элементов характеристического полинома матрицы по каждой переменной. Для числовых матриц используются оценки, полученные в работе [2], для полиномиальных матриц оценки получены в работах [3-5].

Каждый процессор по найденным оценкам и заданному множеству числовых модулей М вычисляет необходимое для данной задачи количество числовых модулей и количество полиномиальных модулей по каждой переменной. В качестве полиномиальных модулей ПО переменной Хг берём ПОЛИНОМЫ Xi, Xi~ 1, ж* — 2,..., г — 1, . . . , t .

В результате этапа 1 на каждом процессоре будет получена входная матрица, а также количество h числовых модулей и количество тi,... ,mt полиномиальных модулей по каждой переменной.

Этап 2. Решение задачи в гомоморфных образах в конечном поле.

Каждый процессор вычисляет число г = hrnirr^    mt — количество точек, в которых необходимо решить задачу в гомоморфных образах в конечном поле.

Обозначим через т остаток от деления г на к.

Процессор с номером 0, 1, 2,..., т — 1 выполняет вычисление характеристического полинома матрицы в конечном поле в [|J + 1 точке.

Процессор с номером т, га + 1,..., к выполняет вычисление характеристического полинома матрицы в конечном поле в [|J точках.

Задача равномерно распределяется по всем процессорам, так как число точек отличается не более, чем на один.

Для вычисления характеристического полинома матрицы в конечном поле используется алгоритм Данилевского [6].

В результате этапа 2 вычислены характеристические полиномы во всех г точках.

Этап 3. Восстановление элементов характеристического полинома матрицы в исходном кольце.

Нулевой процессор разбивает один из полиномов на к частей, посылает полученный шаблон разбиения полинома на все процессоры (процедура MPI Beast).

Процессор с номером 1, 2,..., (к — 1) получает от нулевого процессора шаблон разбиения полинома (процедура MPI Beast).

Каждый процессор разбивает каждый из полученных полиномов на к частей в соответствии с шаблоном разбиения.

г -й процессор, г = 0,1,... ,к — 1, посвшает j -е части всех своих полиномов j -му процессору, j = 0,..., А; - 1, j ± i.

г-й процессор, г = 0,1,... ,к — 1, получает г-е части от всех процессоров.

Таким образом, на каждом процессоре будут получены остатки по всем модулям для всех коэффициентов соответствующей части характеристического полинома.

Каждый процессор восстанавливает соответствующую частв характеристического полинома. При этом исполвзуется алгоритм Нвютона [7].

В резулвтате на каждом процессоре будет получена соответствующая частв характеристического полинома.

Этап 4. Сбор результата на нулевом процессоре.

Каждый процессор посылает свой результат нулевому процессору (процедура MPI Gather).

Нулевой процессор получает полиномы от всех процессоров (процедура MPI Gather). Затем нулевой процессор объединяет полученные данные в искомый характеристический полином матрицы.

В результате на нулевом процессоре получен характеристический полином данной матрицы.

Рассмотренный алгоритм даёт равномерную нагрузку на узлы кластера и обеспечивает хорошую масштабируемость.

3 Время вычисления характеристического полинома

Время вычисления характеристического полинома при использовании многопроцессорной ввшислительной системы складывается из времени, необходимого для вычислений на листовых вершинах, и времени пересылки данных между процессорами. Исследуем их.

Теорема 1. Пусть А Е Znxn[a;i,... ,xt] — полиномиальная матрица, у элементов которой а — наибольший по абсолютной величине числовой коэффициент, s — наибольшее количество мономов, degi — наибольшая степень по переменной ж* , г = 1,... ,t. Пусть к — количество процессоров.

Тогда время, необходимое для вычисления характеристического полинома матрицы А с использованием параллельного алгоритма с восстановлением на листьях, без учета времени пересылки данных между процессорами равно

1 f Tn,k = 6>

1= 1

Доказательство.

Время вычислений на каждом процессоре складывается из времени решения г задач в конечном поле, которое находится на этапе 2, и времени, необходимом для восстановления коэффициентов характеристического полинома, которое происходит на этапе 3.

1. Оценим время Т2 , которое требуется каждому процессору для решения г задач в конечном поле.

532

Решение одной задачи в конечном поле требует выполнения 0{п3) операций в поле [6].

Если количество числовых модулей равно то, количество полиномиальных модулей первого порядка по всем переменным — т\,..., , то г = т"от‘,"ш‘ .

Согласно работе [2] длина в битах наибольшего по абсолютной величине числового коэффициента характеристического полинома будет /3 = п(к^2 п + ^2 а + ^2 я) — к^2 я бит. Если выбирались 32-битные числовые модули, то то — Ц и тг = п • (1едг +

2. Оценим время Тз , которое требуется каждому процессору для восстановления коэффициентов характеристического полинома.

Пусть Г{хх, ...,хиу) = /„(II,..., х1)уп+.. .+/о(хг,..., хг) — характеристический полином матрицы А. Тогда на этапе 3 каждый процессор будет восстанавливать | ПОЛИНОМОВ /г(хх, ... , £*) . КаЖДЫЙ ИЗ ПОЛИНОМОВ /г{х\, ... ,х^, г = 0,1,..., п имеет П!=1(п  с1едг + 1) числовых коэффициентов. Таким образом, на каждом процессоре будет восстанавливаться <7 = | П!=| (п ' ^е9г + 1) числовых коэффициентов.

Восстановление одного числа с использованием китайской теоремы об остатках [7] требует выполнения <Э(п2) операций в кольце. Тогда на этапе 3 получим

Из (2) и (3) следует, что Тп<к = в (±п4+4(к^2 п + к^2 а + к^2 я) П*=1

Следствие 1. Время, необходимое для вычисления характеристического полинома целочисленной матрицы А £ 2/1Хп на к процессорах с использованием параллельного алгоритма с восстановлением на листьях, равно

Следствие 2. Пусть с помощью параллельного алгоритма для заданного размера матрицы П\ на к\ процессорах задача вычисляется за время Т. Тогда для матрицы размера п2 с аналогичными элементами задача вычислится за то же время Т на

процессорах.

Теорема 2. Пусть А Е ЪпУ-п[х1,... ,х^ — полиномиальная матрица, у элементов которой а — наибольший по абсолютной величине числовой коэффициент, в — наибольшее количество мономов, degi — наибольшая ст,епень по переменной х* , г = 1,... ,£ . Пусть к — количество процессоров.

Тогда время, необходимое для пересылки данных между процессорами при вычислении характеристического полинома с использованием параллельного алгоритма с

1, I 1,..., Ь.

Тогда г = з^(п(к^2 п + к^2 а + к^2 з) - к^2 в) П!=1(п ' ^9* + 1) и

восстановлением на листьях, равно

TSn,k = в ^nt+2

Доказательство.

Время, которое в алгоритме тратится на пересылку, складывается из времени TSi рассылки исходной матрицы на все процессоры, которое выполняется на этапе 1, времени Т5з обмена между процессорами частями полиномов на этапе 3 и времени ТS4 сбора на нулевом процессоре фрагментов характеристического полинома от всех процессоров на этапе 4.

Время пересылки данных пропорционально их объему.

1. Оценим время TS] , которое необходимо для рассылки исходной матрицы на все процессоры.

Данная матрица имеет п2 элементов, каждый из которых является полиномом, содержащим s мономов. Тогда время одной пересылки исходной матрицы с одного процессора на другой пропорционально n2s log2 а .

Рассылка исходной матрицы на все процессоры происходит с помощью процедуры MPI Beast. Проведенные в работе [8] эксперименты показали, что время, затраченное на выполнение процедуры MPI Beast, пропорционально времени раздачи данных по бинарному дереву. Следовательно,

TSi = 6>

2. Оценим время Т5'з обмена между процессорами частями полиномов на этапе

3.

Если количество числовых модулей равно то , полиномиальных по каждой переменной — mi,..., mt, то всего полиномов будет г = rn°^v-'—.

Согласно работе [2] длина в битах наибольшего по абсолютной величине числового коэффициента характеристического полинома будет /3 = n(log2 п + log2 а + log2 s) — log2 s бит. Если выбирались 32-битные числовые модули, то m0 = и тпг = п- degi + 1, i 1

Тогда всего будет г = ^(n(\og2n + log2a + log2 s) - log2s)n!=i(^ • degi + 1) полиномов от одной переменной степени п с коэффициентами длиной 32 бита.

Каждый процессор получает по одному фрагменту каждого из г полиномов. Каждый фрагмент является полиномом, содержащим п/к мономов с числовыми коэффициентами длиной 32 бита. Следовательно,

TS3 = в

г=1

3. Оценим время ТБа сбора на нулевом процессоре фрагментов характеристического полинома от всех процессоров на этапе 4.

Всего фрагментов будет к. Каждый фрагмент является полиномом, содержащим п/к мономов с числовыми коэффициентами длиной /5 = п(^2 п + ^2 а + к^2 в) — ^2 в бит. Тогда

ТБа = в

Из

534

4 Эксперименты

Алгоритм программно реализован [9, 10], и с полученными программами проведены эксперименты. Эксперименты проводились на кластере МУЭЮОк Межведомственного Суперкомпьютерного Центра РАН. В экспериментах использовались плотные числовые и полиномиальные матрицы. В таблицах приведены зависимость времени вычисления от количества процессоров и ускорение вычислений с ростом числа процессоров.

В эксперименте 1 использовались числовые матрицы размера 1500 х 1500 с 20-разрядными коэффициентами. Результаты эксперимента приведены в таблице 1.

Таблица 1

Время и ускорение по сравнению с 32 процессорами вычисления характеристического полинома с использованием параллельного алгоритма, п = 1500 , Ь = 20 бит

Количество Время, Идеальное Ускорение Эффективность,

процессоров с ускорение %

32 2118

64 1034 2 2,0 102

128 496 4 4,3 107

256 235 8 9,0 113

512 154 16 13,8 86

1024 102 32 20,8 65

Как показывают эксперименты, результаты которых приведены в таблице 1, эф-фективноств находится в пределах от 65 до 113%. Эффективность более 100 % объясняется тем, что с увеличением количества процессоров растёт суммарный объём их оперативной и кэш памяти, поэтому всё большая часть данных задачи умещается в оперативной памяти и не требует подкачки с диска.

В эксперименте 2 использовались полиномиальные матрицы размера 512 х 512 с линейными полиномами одной переменной с 7 -разрядными коэффициентами. Результаты эксперимента приведены в таблице 2.

Таблица 2

Время и ускорение по сравнению с 64 процессорами вычисления характеристического полинома с использованием параллельного алгоритма, п — 512 , с1ед = {1} , Ъ = 7 бит

Количество Время, Идеальное Ускорение Эффективность,

процессоров с ускорение %

64 13457

128 7089 2 2 95

256 3225 4 4 104

512 1894 8 7 89

1024 950 16 14 89

2048 525 32 26 80

Как показывают экспериментв1, результаты которых приведены в таблице 2, эффективность находится в пределах от 80 до 100%.

В эксперименте 3 использовались полиномиальные матрицы размера 128 х 128, 256 х 256, 400 х 400 с линейными полиномами одной переменной. Зная, что с помощью параллельного алгоритма характеристический полином для матрицы размера 512 х 512, элементы которой являются линейными полиномами одной переменной, вычисляется за 525 секунд на 2048 процессорах, найдем с помощью формулы (4) количество процессоров, на котором за то же время вычислятся характеристические полиномы для матриц размера 128 х 128 , 256 х 256 , 400 х 400 с линейными полиномами одной переменной.

Согласно (5) за время Т ~ 500 секунд характеристические полиномы матриц размера 128 х 128, 256 х 256 , 400 х 400 вычислятся соответственно на 2, 57, 615 процессорах. Это согласуется с результатами экспериментов, представленных в таблице 3.

Таблица 3

Время вычисления характеристического полинома полиномиальной матрицы, элементы

которой — линейные полиномы

Размер Количество Время,

матрицы процессоров с

128 2 538

256 57 471

400 615 465

С помощью теоремы 1 можно прогнозировать время вычисления характеристического полинома для данной исходной матрицы и количества процессоров. Используя результаты экспериментов, построим графики зависимости прогнозируемого времени вычислений характеристических полиномов числовых и полиномиальных матриц от размера матриц. Построенные графики изображены на рисунках 1-2. На графиках отмечены точки, которые получены экспериментально.

Т

'I'

Рис. 1. Время вычисления характеристического полинома для числовой матрицы, элементами которой являются 7-разрядные двоичные числа, используя к процессоров 536

Т

Рис. 2. Время вычисления характеристического полинома для полиномиальной матрицы, элементами которой являются линейные полиномы одной переменной с 7-разрядными двоичными коэффициентами, используя к процессоров

ЛИТЕРАТУРА

1. Переславцева О.Н. Параллельный модулярный алгоритм вычисления характеристического полинома матрицы в кольце полиномов многих переменных // Вестник Тамбовского университета. Сер. Естественные и технические науки. Тамбов, 2012. Том 17. Вып. 2. С. 588-590.

2. Pemet С., Storjohann A. Faster algorithms for the characteristic polynomial // ISSAC. 2007.

P. 307-314.

3. Переславцева О.Н. О вычислении коэффициентов характеристического полинома // Вычислительные методы и программирование. 2008. Т. 9. С. 366-370 (http://num-meth.srcc.msu.ru/).

4. Переславцева О.Н. О вычислении характеристического полинома матрицы // Дискретная математика. Тамбов, 2011. Т. 23. Вып. 1. С. 28-45.

5. Pereslavtseva O.N. Calculation of the characteristic polynomial of a matrix // Discrete Mathematics and Applications. 2011. V. 21. N 1. P. 109-129.

6. Данилевский A.M. О численном решении векового уравнения // Матем. сб. 1937. Т. 2(44). N1. С. 169-172.

7. Компьютерная алгебра: Символьные и алгебраические вычисления: пер. с англ. / под ред. Б. Бухбергера, Дж. Коллинза, Р. Лооса. М.: Мир, 1986.

8. Переславцева О.Н. Распараллеливание алгоритмов с применением китайской теоремы об остатках // Вестник Тамбовского университета. Серия: Естественные и технические науки. Тамбов, 2009. Т. 14. Вып. 4. С. 779-781.

9. Malaschonok G.I. Project of Parallel Computer Algebra // Tambov University Reports. Series: Natural and Technical Sciences. Tambov, 2010. V. 15. Issue. 6. P. 1724-1729.

10. Малашонок Г.И. Компьютерная математика для вычислительной сети // Вестник Тамбовского университета. Сер. Естественные и технические науки. Тамбов, 2010. Том 15. Вып. 1. С. 322-327.

БЛАГОДАРНОСТИ: Работа выполнена при поддержке гранта РФФИ № 12-07-00755-а.

Поступила в редакцию 20 декабря 2013 г.

Pereslavtseva O.N. Parallel algorithm for computing the characteristic polynomials of polynomial matrices and algorithm’s computational time.

There is produced a parallel algorithm for computing the characteristic polynomials of 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 computation time and experiments.

Key words: characteristic polynomial; method of homomorphic images; parallel algorithm; computation time.

Переславцева Оксана Николаевна, Тамбовский государственный университет имени Г.Р. Державина, г. Тамбов, ассистент кафедры математического анализа, e-mail: oxana.pereslavtseva@gmail.com.

Pereslavtseva Oxana Nikolaevna Tambov State University named after G.R. Derzhavin, Assistant Professor of Mathematical Analysis Department, e-mail:

oxana.pereslavtseva@gmail.com.