Научная статья на тему 'Умножение файловых полиномов'

Умножение файловых полиномов Текст научной статьи по специальности «Математика»

CC BY
110
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФАЙЛОВЫЙ ПОЛИНОМ / УМНОЖЕНИЕ ФАЙЛОВЫХ ПОЛИНОМОВ / ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ / FILE POLYNOMIALS / MULTIPLICATION OF FILE POLYNOMIALS / PARALLEL ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Поздникин Алексей Геннадьевич

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

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

Multiplication of file polynomials

An algorithm for multiplication of file polynomials is described. Experimental results with that parallel algorithm on TSU cluster are stated.

Текст научной работы на тему «Умножение файловых полиномов»

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

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

172.

Pereslavtseva O.N. Experiments with a parallel algorithm for calculation of the characteristic polynomial for polynomials matrixes. Experiments with a parallel algorithm for calculation of the characteristic polynomial for polynomials matrixes on the MVS and TSU clusters are stated and discussed.

Key words: calculation of a characteristic polynomial, parallel algorithm.

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

УДК 004.421

УМНОЖЕНИЕ ФАЙЛОВЫХ ПОЛИНОМОВ1

© А. Г. Поздникин

Ключевые слова: файловый полином, умножение файловых полиномов, параллельный алгоритм.

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

1 Введение

Большинство математических систем позволяют производить операции с полиномами, которые хранятся в оперативной памяти компьютера. А когда полином не помещается в оперативную пямять, такие системы оказываются непригодными. Так как объёмы используемой оперативной памяти обычно меньше дисковой, то можно хранить полиномы в файлах на жёстком диске. Полином, записанный в файл на жёстком диске в определённом формате, будем называть файловым.

1Работа выполнена при поддержке программы «Развитие потенциала высшей школы» (проект 2.1.1/1853)

В работе [1] описан формат хранения файловых полиномов, рассмотрены алгоритмы, реализующие выполнение основных арифметических операций с ними, и приведены результаты экспериментов. Очевидно, что время выполнения операций с файловыми полиномами, особенно операции умножения, очень быстро растет с ростом степеней исходных полиномов. Поэтому возникает задача разработки эффективного параллельного алгоритма умножения файловых полиномов.

2 Параллельный алгоритм умножения файловых полиномов

Рассматриваемый алгоритм умножения файловых полиномов является рекурсивным. В основе алгоритма лежит дихотомическое деление полиномов на части. Деление полинома на части происходит до тех пор, пока части станут таких размеров, которые позволяют выполнить умножение в оперативной памяти. Графом алгоритма является бинарное дерево. На листах дерева происходит умножение частей полиномов. В параллельном алгоритме деление на части происходит одновременно с распределением процессоров. Если свободные процессоры заканчиваются, а умножение частей полиномов по-прежнему не возможно произвести в памяти, то выполняется вызов однопроцессорного рекурсивного алгоритма.

Рассмотрим параллельный алгоритм умножения файловых полиномов А и В. Граф алгоритма изображен на рис. 1.

А В А * В = а,В+• а2В [0; 3]

Рис. 1. Граф параллельного алгоритма умножения полиномов А и В и распределение четырех процессоров на узлах данного дерева

Выбирается больший из полиномов и делится на две части, которые будут занимать в оперативной памяти примерно равные объёмы. Пусть в нашем случае полином А > В, т. е. занимает большее количество памяти, чем В. На первом шаге делим полином А на две части ах и а2 , т. е. А = аг + а2 ■ Интервал с номерами процессоров [0;3] делится на два интервала [0;1] и [2;3]. Получим два узла на слое, на которых необходимо выполнить операции умножения а\ * В и «2 * В. Эти операции не могут быть выполнены в оперативной памяти, поэтому необходимо продолжать деление полиномов на части. Для этого сравниваем а\ с полиномом В, а2 с полиномом В и выбираем из них большие. Пусть В > а! и В > а2. Тогда делим В на части Ь17 Ь2 и на следующем слое на каждом процессоре вычисляем произведения ах * Ь\, * Ь2, а2 * &ъ а2*Ь2 . Пусть мы достигли

листовых вершин, когда данные операции возможно произвести в оперативной памяти соответственно на процессорах 0, 1, 2, 3. Следующими шагами станет подъём. Сначала это сумма полиномов а\ * В = а\ * Ъ\ + а\ * Ь2 и а2 * В = а2 * 61 + а2 * Ь2 . Результатом умножения станет сумма А*В = а,1*В + а2*В.

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

По приведенному выше алгоритму был разработан программный комплекс. Эксперименты проводились на кластере из 14 процессоров Intel Xeon 3 ГГц, 1 Гб. В экспериментах использовались полиномы от двух переменных, полученные случайным образом, с целыми 8 -разрядными коэффициентами, с количеством мономов 16 * 104. Принято, что максимально допустимое количество мономов в полиномах, когда операцию умножения возможно произвести в оперативной памяти, равно 104 .

Ускорением вычислений при переходе от по-процессорного кластера, где время вычислений равно Го, к k-процессорному кластеру, где время вычислений равно Тк, к> п о , принята функция а(Тк) — (Т0/Тк - 1 )/{к/щ - 1) * 100% .

Результаты экспериментов приведены в табл. 1. К примеру, при переходе от однопроцессорной машины к двухпроцессорному кластеру ускорение равно 88,64 %. При переходе от однопроцессорных вычислений к четырехпроцессорным ускорение равно 89,84 % . Когда мы используем 6, 10, 12, 14 процессоров, ускорение заметно снижается. Это связано с тем, что числа 6, 10, 12, 14 не являются степенями двойки, а у нас используется граф алгоритма в виде бинарного дерева.

Таблица 1

Значения времени выполнения операции умножения полиномов на п процессорах и ускорения вычислений на п процессорах по сравнению с вычислениями на одном процессоре

Число процессоров 1 2 4 6 8 10 12 14

Время умножения, с 11156 5914 3019 2753 1688 1701 1754 1660

Ускорение 88,64 89,84 61,05 80,13 61,76 48,73 44

На следующих графиках представлена зависимость времени вычислений от количества процессоров и ускорение вычислений на п процессорах по сравнению с вычислениями на одном процессоре.

Рис. 2. График зависимости времени выполнения операции умножения полиномов от количества процессоров

Рис. 3. Ускорение выполнения операции умножения на п процессорах по сравнению с умножением на одном процессоре

4 Заключение

Реализованный параллельный алгоритм умножения файловых полиномов показал свою эффективность и может быть применён в задачах, которые используют умножение полиномов больших размеров. Так как в основе алгоритма лежит дихотомическое деление полиномов на части, для вычислений рекомендуется использовать количество процессоров п = 2к, где к — натуральное число. Оптимальное число процессоров для быстрого умножения файловых полиномов можно подобрать экспериментально, учитывая ускорение вычислений.

ЛИТЕРАТУРА

1. Поздникин А.Г. Файловые полиномы. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14, вып. 4, 2009. С.783-785.

2. Малашонок Г.И. О проекте параллельной компьютерной алгебры. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14, вып. 4, 2009. С.744-748.

Pozdnikin A.G. Multiplication of file polynomials. An algorithm for multiplication of file polynomials is described. Experimental results with that parallel algorithm on TSU cluster are stated.

Key words: file polynomials, multiplication of file polynomials, parallel algorithm.

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

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