Научная статья на тему 'О параллельном вычислении дискретного преобразования Фурье и проведённых экспериментах'

О параллельном вычислении дискретного преобразования Фурье и проведённых экспериментах Текст научной статьи по специальности «Математика»

CC BY
269
58
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПАРАЛЛЕЛЬНАЯ КОМПЬЮТЕРНАЯ АЛГЕБРА / ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ / БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ / ПОЛИНОМИАЛЬНЫЕ АЛГОРИТМЫ / COMPUTER ALGEBRA / DISCRETE FOURIER TRANSFORM / FAST FOURIER TRANSFORM / POLYNOMIAL ALGORITHMS

Аннотация научной статьи по математике, автор научной работы — Лапаев Алексей Олегович

Предлагается алгоритм параллельного вычисления многомерного дискретного преобразования Фурье полинома нескольких переменных в простом поле. Приводятся результаты экспериментов на кластере МСЦ РАН.

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

A parallel computation of multidimensional discrete Fourier transform and experiments' results

Algorithm of parallel computation of multidimensional discrete Fourier transform of polynomial of many vars if described. Experiments' results on MVS cluster are stated.

Текст научной работы на тему «О параллельном вычислении дискретного преобразования Фурье и проведённых экспериментах»

который в точках i"1,..., t"Tl равен значению полинома

w(*r,-,« = Л№.-. С).

Получен искомый полином fj{xi,...,xn). Вычисляя последовательно все полиномы /j(xi,х„), г = 0,1,s, получим искомое разложение: f{xь хп) = П fj(x 1,жп).

j

ЛИТЕРАТУРА

1. Панкратьев Е.Г. Элементы компьютерной алгебры. Учебное пособие. М. Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007.

Malaschonok G.I., Ivashov D.S. An algorithm of factorization of polynomials of several variables. Key words: factorization of polynomials, computer algebra.

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

УДК 004.421

О ПАРАЛЛЕЛЬНОМ ВЫЧИСЛЕНИИ ДИСКРЕТНОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ И ПРОВЕДЁННЫХ ЭКСПЕРИМЕНТАХ1

© А. О. Лапаев

Ключевые слова: параллельная компьютерная алгебра, дискретное преобразование Фурье, быстрое преобразование Фурье, полиномиальные алгоритмы.

Предлагается алгоритм параллельного вычисления многомерного дискретного преобразования Фурье полинома нескольких переменных в простом поле. Приводятся результаты экспериментов на кластере МСЦ РАН.

1 Введение

Пусть / £ Ър[х 1,х2, ■ ■ ■ ,ха], р — простое число. Пусть наибольшая степень переменной хг в полиноме / равна щ — 1, щ = 2м*. Обозначим п = П\П2 ■ ■ ■ щ. Тогда полином / можно записать в виде:

711 —1П2 —1 п<* — 1

/=££■•■ Ё /<1*з~*х1х2 ¿1=0 ¿2=0 ¿<¿=0

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

Пусть простое число р такое, что каждое из чисел щ делит р—1. Тогда в Ър существует корень из 1 степени щ , который будем обозначать . Введём определение дискретного преобразования Фурье полинома / .

Определение. Дискретным преобразованием Фурье (ДПФ) для полинома / называется (/-мерная таблица чисел ?(/) = (/л....?,,), где 1 < ^ ^ щ, 1 ^ ^‘2 ^ п2, ..., 1 < й «С щ, где

П\— 1п2~ 1 Пл — 1

кп-и= Е Е • ■ ■ Е а«..*."?• • ■ ■(Ц ¿1=0 ¿2=0 1(1=0

Правая часть (1) содержит п слагаемых. В левой части находится элемент с?-мерной таблицы, всего таких элементов п. Следовательно, общее число операций для вычисления ДПФ полинома / будет 0(п2). Рассмотрим способ быстрого вычисления дискретного преобразования Фурье.

Запишем формулу (1) в виде:

ПЛ-1 П(1 — \ 1 пк-1 П1-1

кн-и = Е "Г Е “&л'‘ • • • Е ■ • • Е ¿<¡=0 *(¿-1=0 Іk = 0 11=0

При фиксированных параметрах выражение

711—1

\ л / . , ,лп

31,г2,гз,-,^ Jг\l2^^Лdшd

¿1=0

— -й элемент одномерного дискретного преобразования Фурье на пх точках, которое может быть посчитано по алгоритму Соо1еу-Тикеу [1] за 0{п\ п\) операций.

Обозначим

«*+1-1

т?к+1 _ \ ' рк Зк+1^к+1

*к+1=0

При последовательном вычислении Р2, ..., ^ элемент ^ будет содержать ДПФ полинома /.

Схема распараллеливания будет состоять из (1 последовательных шагов, каждый из которых выполняется параллельно. Схему вычисления каждого шага можно представить в виде бинарного дерева, у которого данные распределяются от корневой вершины к листовым, а результат вычислений собирается снова в корневой вершине. На каждом шаге параллельно вычисляются одномерные ДПФ, при этом все вычисления происходят в листовых вершинах. При переходе к следующему шагу меняется порядок переменных, а после шага ё будет получен искомый ё-мерный вектор дискретного преобразования Фурье. Приведём алгоритм.

2 Алгоритм

Будем проводить вычисления в следующем порядке: на шаге к параллельно вычисляются п/пк дискретных преобразований Фурье при фиксированных значениях индексов 3\ ■ ■ ■ ]<1-к-13<1-к+1 ■ • • Зл ■ Пусть Рк — результат вычислений к-го шага, и пусть = / .

Приведем схему вычислений на шаге к. В корневой вершине (¿-мерный массив, полученный на предыдущем шаге, делится на две равные части по индексу. И каждая часть отправляется в соответствующую дочернюю вершину. В дочерних вершинах повторяется разделение это массива по тому же индексу на две половины. Такой процесс выполняется рекурсивно до тех пор, пока имеются свободные процессоры либо пока возможно деление по данному индексу, т. е. число процессоров, вовлеченных в вычисления, меньше п/пк. На листовом уровне вычисляются одномерные ДПФ и результат возвращается в обратном порядке. После чего, при переходе к следующему шагу вычислений, порядок индексов массива меняется \ул-к+2]1 ■ ■ ■ За-к+\] на [](1-к+\]1---Зс1-к\ ■ Отметим, что на шаге к требуется не больше, чем п/щ процессоров.

Пусть имеется т компьютерных модулей (КМ) с номерами 1,,т. Пусть к = 1.

1)КМ с номером 1 получает с£-мерный массив и список свободных КМ. Вычисляются степени ш1^кХ\М~к+^ ■ Массив коэффициентов и список свободных процессоров делятся пополам. Одна половина массива коэффициентов и списка свободных процессоров вместе с массивом степеней отсылается КМ с номером (п/2 + 1), а вторые половины остаются в данном КМ.

2)Каждый КМ, получивший свою часть задачи, продолжает такое деление дальше. Процесс продолжается до достижения листового уровня либо исчерпания всех свободных процессоров.

3)Выполняется параллельное вычисление одномерных преобразований Фурье.

4) Каждый КМ пересылает результат обратно по дереву тому процессору, от которого получил данные.

5) КМ 1 собирает результат и меняет порядок индексации результирующего массива с \Эй-к+2]\---$(1—к+'\\ На \^с1—к+^1--^с1—к\-

6)Увеличивается номер шага к. Если к = с1 + 1, то конец всех вычислений, иначе переходим на п.1.

3 Результаты экспериментов

По приведённому выше алгоритму был разработан программный комплекс. Эксперименты проводились на кластере МСЦ РАН.

При переходе от вычислений на .ь'о процессорах к вычислениям на в, в > .5о, процессорах ускорение достигает максимально возможных 100%, когда ^ . Ускорение равно

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

Определение. Ускорением вычислений при переходе от ,50 -процессорного кластера, где время вычислений равно Тао, к 5 -процессорному кластеру, где время вычислений равно Т5 , 5 > я о , назывется функция

_ 1

а(Гв) = -5—у • 100%.

50

Таблица !

Время выполнения параллельного алгоритма ДПФ для полиномов двух переменных

Количество переменных = 2

Время, мс

Степень 511 1023 2047 4095 8191

Процессоры

1 817 6838 47466 371882 2919529

2 608 3918 31059 190410 2267073

4 424 1755 11470 79170 715310

8 374 1109 4220 30643 210488

16 323 730 2785 11514 83500

32 294 649 1792 6372 36665

64 367 576 1454 4732 18416

128 454 571 1341 3749 11462

256 516 1083 1423 4571 12469

Таблица!

Ускорение параллельного алгоритма ДПФ для полиномов двух переменных при переход от одного процессора к нескольким

Ускорение, %

Степень 511 1023 2047 4095 8191

Процессоры

1 - - - - -

2 34,38 74,53 52,83 95,31 28,78

4 30,9 96,54 104,61 123,24 102,71

8 16,92 73,8 146,4 159,09 183,86

16 10,2 55,78 100,96 208,65 226,43

32 5,74 30,76 82,22 185,04 253,64

64 1,95 17,26 50,23 123,16 250,05

128 0,63 8,64 27,08 77,32 199, 77

256 0,23 2,08 12,69 31,51 91,43

Таблица

Время выполнения параллельного алгоритма ДПФ для полиномов трех переменных

Количество переменных = 3

Время, мс

Степень 31 63 127 255

Процессоры

1 345 6916 212756 8140475

2 263 3446 111121 2955568

4 175 1731 45085 1055536

8 129 888 12420 358084

16 86 490 4726 127972

32 68 290 2466 66859

64 58 316 1495 17918

128 433 184 945 7554

Таблица 4

Ускорение параллельного алгоритма ДПФ для полиномов трех переменных при переходе от одного процессора к нескольким

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

Ускорение, %

Степень 31 63 127 255

Процессоры

1 - - - -

2 31,18 100,7 91,46 175,43

4 32,18 99,85 123,97 123,74

8 32,92 96,98 230,43 310,48

16 20,08 87,43 293,45 417,41

32 13,14 73,7 175,08 289,54

64 7,85 33,15 224,3 719,55

128 -0,16 28,817 176,49 847,75

По результатам вычислительных экспериментов можно сделать вывод о высокой эффективности параллельного алгоритма БПФ для больших вычислительных задач. Лучшее ускорение составляет 847 %. Это можно объяснить тем, что при увеличении количества процессоров части задачи на каждом процессоре становятся достаточно малы для того, чтобы поместиться в кэш.

ЛИТЕРАТУРА

1. Ноден П., Китте К. Алгебраическая алгоритмика (с упражнениями и решениями). // Пер. с франц. М.: Мир, 1999.

2. Кнут Д. Э. Исскуство программирования, т.2. Получисленные алгоритмы, 3-е изд. М.: Издательский дом «Вильямс», 2001.

3. Кормен, Томас X., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штойн, Клиффорд. Алгоритмы: построение и анализ, 2-е издание: Пер. с англ. М.: Издательский дом «Вильямс», 2005.

4. Лапаев А. О. О вычислении многомерного дискретного преобразования Фурье в простом поле. Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14, вып. 4, 2009. С.729-731.

5. Лапаев А.О. Параллельное вычисление дискретного преобразования Фурье полинома в простом поле. Материалы 9-й международной конференции-семинара «Высокопроизводительные параллельные вычисления на кластерных системах». Владимир — 2009. С. 272-273.

6. Малашонок Г.И., Лапаев А.О. Статистическая схема распараллеливания вычисления определителя, присоединённой матрицы и решения систем линейных уравнений в кольце целых чисел. XI Державинские чтения ИМФИ им. Г.Р. Державина. Тамбов, 3 февраля 2006. С. 53-56.

Lapaev А.О. A parallel computation of multidimensional discrete Fourier transform and experiments results. Algorithm of parallel computation of multidimensional discrete Fourier transform of polynomial of many vars if described. Experiments’ results on MVS cluster are stated.

Key words: parallel computer algebra, discrete Fourier transform, fast Fourier transform, polynomial algorithms.

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

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