Научная статья на тему 'Параллельная реализация алгоритма вычислений базисов Гребнера и Жане на уровне редукции полиномов'

Параллельная реализация алгоритма вычислений базисов Гребнера и Жане на уровне редукции полиномов Текст научной статьи по специальности «Математика»

CC BY
87
28
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЗИС ГРEБНЕРА / БАЗИС ЖАНЕ / ПАРАЛЛЕЛИЗАЦИЯ / МАСШТАБИРУЕМОСТЬ / GR.OBNER BASES / JANET BASES / PARALLEL CALCULATION / SCALABILITY

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

В предыдущих работах был представлен алгоритм для параллельного вычисления базисов Гребнера и Жане, работающий в терминах параллельного вычисления нормальных форм. Реализация выглядела многообещающе, но столкнулась с проблемой «голодания»(т.е. в некоторые моменты времени загружено мало вычислительных ядер машины). В этой работе представлен один подход повышения масштабируемости и избежания «голодания». Представлены данные по ускорению вычислений на восьмиядерной SMP машине.

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

Reduction-Level Parallel Computations of Gr.obner and Janet Bases

In previous papers we presented algorithm for parallel calculation of Gr.obner and Janet bases that works in terms of parallel normal forms computations. The realization was quite promising but faced problem of "starvation" (e.g. in some moments of time only few processors was fully loaded). In this talk one approach to raise scalability and avoid "starvation" will be presented. Experimental results of parallel computations on eight core SMP machine will be shown. Work was partially supported by the RFBR grant 07-01-00660 and by the grant 1027.2008.2 of the Ministry of Education and Science of the Russian Federation.

Текст научной работы на тему «Параллельная реализация алгоритма вычислений базисов Гребнера и Жане на уровне редукции полиномов»

Вестник РУДН Серия Математика. Информатика. Физика. № 3 (2). 2010. С. 19-24

УДК 004.421.2:004.032.24:512.714+

Параллельная реализация алгоритма вычислений базисов Гребнера и ^Кане на уровне редукции

полиномов

Д. А. Янович

Лаборатория информационных технологий Объединённый институт ядерных исследований ул. Жолио-Кюри д.6, Дубна, Московская область, 141980, Россия

В предыдущих работах был представлен алгоритм для параллельного вычисления базисов Гребнера и Жане, работающий в терминах параллельного вычисления нормальных форм. Реализация выглядела многообещающе, но столкнулась с проблемой «голодания»(т.е. в некоторые моменты времени загружено мало вычислительных ядер машины). В этой работе представлен один подход повышения масштабируемости и избежания «голодания». Представлены данные по ускорению вычислений на восьмиядерной SMP машине.

Ключевые слова: базис Гребнера, базис Жане, параллелизация, масштабируемость.

1. Введение

1.1. Основные обозначения и определения

Будем использовать следующие обозначения:

X = {х\,..., хп} — множество полиномиальных переменных;

К = 0>[Х] — кольцо многочленов с рациональными коэффициентами;

1й(Р) — идеал кольца К, порождённый многочленами Р С К;

М — множество мономов, т.е. произведение степеней переменных из X с целыми неотрицательными показателями;

degi(и) — степень переменной Хг в мономе и £ М;

deg(и) = ^2™=1 degi(и) — полная степень монома и;

У--допустимый порядок на мономах, такой что Х\ У х2 У ••• У хп;

и | V — обычное отношение делимости монома V мономом и. Если и | V и deg(и) < deg(u), т.е. если и является собственным делителем V, будем записывать это условие как V □ и;

1т (/) и И(/) — старший моном и старший одночлен многочлена f £ К \ {0}, соответственно;

1т (Р) — набор старших мономов полиномиального множества Р С К \ {0}.

Для каждого 1 ^ % ^ п разобьём конечное множество многочленов Р £ К \ 0 на группы, индексированные неотрицательными целыми числами й\,... ,йг

№,...,^] = {/ £ Р | ф =degJ (1т (/)), 1 < з < г}.

Переменная х1 является 7-мультипликативной (мультипликативной по Жане) [1] для многочлена / £ Р, если deg1(1m(/)) = max{deg1(1m (д)) | д £ Р}. Для 1> 1 Xi является J-мультипликативной для $ £ ..., di-1], если

^г(1т(/)) = | 9 £ ^и...^^^.

В дальнейшем будем обозначать через MJ (/,С) С X и NMJ (/,С) = X \ MJ(/, С) множество /-мультипликативных и /-немультипликативных переменных для / £ С соответственно.

Работа частично поддержана грантом РФФИ 07-01-00660 и грантом 1027.2008.2 Министерства образования и науки РФ.

Данное разделение переменных на немультипликативные и мультипликативные переменные порождает инволютивной деление мономов [2,3]. Это деление — деление Жане — определяется по заданному конечному набору многочленов Р и порядку на мономах у следующим образом: если мономы и £ 1т(Р), V и т связаны соотношением т = и ■ V и при этом моном V содержит только мультипликативные (по Жане) переменные для и, то и является делителем Жане или 3-делителем монома т. В этом случае будем записывать отношение инволютивной делимости по Жане как и | J т.

Конечное множество Р ненулевых многочленов является 3-авторедуцированным (или авторедуцированным по Жане), если каждый моном, входящий в f £ Р, не имеет /-делителей среди 1т (Р) \{1т (/)}. 3-нормальная форма NFJ(р, Р) многочлена р £ Р по отношению к /-авторедуцированному множеству Р определяется как

где ац £ К, д^ £ Р, тц £ Ь(1т (д^), 1т (Р)), 1т (тцд^) < 1т (р) и р не содержит мономов, имеющих Жане делителя среди 1т (Р).

Вычитание из многочлена р указанных в выражении для NFJ(р, Р) слагаемых под знаком суммы называется мультипликативным приведением (редукцией) р многочленами из Р. Когда 1т (/) (/ £ Р) не имеет /-делителей среди элементов 1т (Р), многочлен f находится в головной 3-нормальной форме по отношению к Р. Этот факт будем записывать как / = HNFJ (/, Р).

Для заданного идеала I С К и порядка на мономах у конечное 7-автореду-цированное множество ненулевых многочленов С С К, порождающее I, является его базисом Жане, если выполнено следующее [2]

Произведение х^ ■ / многочлена / £ Р и х^ £ NMJ(/, Р) называется немультипликативным продолжением f. Тем самым для базиса Жане любое его немультипликативное продолжение приводится (редуцируется) мультипликативно к нулю.

Базис Жане является базисом Гребнера, хотя и не обязательно авторедуцированным в смысле гребнеровских редукций [2]. Подобно редуцированному базису Гребнера, минимальный базис Жане с нормированными на единицу старшими коэффициентами, определяется единственным образом по идеалу и порядку на мономах [4].

Приведём сокращённый вариант параллельного алгоритма для вычислений базисов Гребнера и Жане (подробное описание, теоретические доказательства его корректности и практические результаты вычислений можно найти в [5-8]). Также в работах [5,8] можно найти обзор результатов попыток параллелизации в мировой науке.

Ассоциируем каждый полином f в алгоритме с тройкой р = [f, и, vars}, где pol (р) = f — сам полином, anc (р) = и — лидирующий моном предка f из Т, nmp (р) = vars — набор переменных (возможно пустой). 1: Т := 0 Q := F G := 0 2: while Q = 0 do

3: 5 := 0 Р := [ qi £ Q | i < Kthr, qi - min £ Q } 4: Q := Q \ P

5: create min[card (P),Kthr} WorkerThread(P, T, S, NFL, mutex) 6: wait for return of all threads 7: Q := Q U S

8: T := T U [p | lm(pol(p)) = min(lm(Q))} Q := Q \ [rf 9: Q := Q U [p ■ Xi | Xi £ nmp (p)} 10: if lm (pol (p)) = anc (p)

(Vf £ G)(Vxz £ NMj (f,G))[NFj (Xi ■ f,G) = 0].

1.2. Предыдущие результаты

11: for all { г G Т | ¿m(pol (г)) □ lm (pol (р)) } 12: Q := Q U {г}; Т := Т \ {г}

13: od

14: create min{card (Т), Kthr} WorkerThread(T, T, S, PNF, mutex)

15: wait for return of all threads

16: T := S

17: fi

18: od

Схематично алгоритм состоит из трёх шагов:

3-7 Параллельное вычисление нормальных форм полиномов с точностью до лидирующего монома.

8-13 Обновление набора полиномов, которые необходимо редуцировать в ходе алгоритма.

14-16 Параллельное вычисление полной нормальной формы новых элементов базиса.

2. Профилирование и оптимизация

После того, как в нашем распоряжении появился восьмиядерный SMP-сервер, были проведены эксперименты по определению масштабируемости реализации описанного алгоритма. К сожалению, при высоком теоретическом значении, мы получили низкое практическое. Фактически, реализация на любом количестве задействованных ядер ускорялась не более, чем в два раза на большинстве тестовых примеров из баз [9,10].

Для исследования причин подобного поведения необходим был профилировщик потоков. Испытания общеизвестных инструментов показали их недостаточную эффективность, информативность и сильное влияние на время вычислений. В результате был самостоятельно написан подобный инструмент с использованием подсистемы /proc/pid/stat ядра Linux со следующими характеристиками:

— размер: около 30 строк C-кода в основной программе, 1, 5 Kb кода на языке Python для разбора результатов и построения графиков загрузки;

— влияние на производительность: один системный вызов fork(), +1% нагрузки на CPU (при профилировании восьми потоков).

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

Рассмотрим подробнее вычисление нормальной формы: 1: while Зр £ Т : р \Lf do 2: f := reduce(f,p) 3: od

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

3. Результаты

Эффективность двух подходов к параллелизации, измеренная на 2xXeon-5410@ 2.33Ghz, 8 ядер, 16Gb RAM. В колонке 1thr — время вычисления последовательной версии алгоритма, в колонке NF вычисления проведены до уровня редукций полиномов, в колонке RD — до уровня редукций термов. Колонка up — ускорение вычислений в разах.

Как видно из табл. 1, более глубокая параллелизация не всегда полезна — нарастают накладные расходы (ожидание на мьютексах, обращения к общей области памяти и т.п.).

Таблица 1

Эффект различных оптимизаций параллельных вычислений

Пример l thr NF up RD up

cyclic8 4050.68 l23l.0l 3.29 l280.64 3.l6

discret3 649l.38 l079.3l 6.0l l079.24 6.0l

ecoll 7l4.53 l46.86 4.87 l66.68 4.29

eco12 7808.l6 l287.37 6.07 l860.08 4.20

extcyc6 l94.l7 37.88 5.l3 40.5l 4.79

hcyclic8 2l36.40 l230.0l l.74 l233.00 l.73

hf855 544.09 l8l.l6 3.00 l88.94 2.88

ilias13 27l2.76 564.93 4.80 569.67 4.76

ilias k 3 l57.37 36.l0 4.36 37.l5 4.24

jcf26 75.65 ll.0l 6.87 l0.93 6.92

katsuralO 2ll9.75 649.08 3.27 68l.ll 3.ll

noon8 336.88 l68.94 l.99 206.58 l.63

noon9 236l5.50 l4590.20 l.62 l6594.30 l.42

redcyc7 544.27 ll5.4l 4.72 lll.57 4.88

redecoll ll0.59 3l.08 3.56 33.7l 3.28

redeco12 l0l9.84 26l.92 3.89 282.64 3.6l

reimer7 879.98 524.l2 l.68 5l8.68 l.70

Всего 54426.l3 22460.50 2.42 252l6.l2 2.l6

Если провести профилирование потоков после применения оптимизаций, то в «хорошем» случае получим картину загрузки сервера, представленную на рис. 1.

Рис. 1. График нагрузки на CPU при вычислении примера jcf

На рис. 1 графики (сверху вниз) визуализируют вычисления полных нормальных форм, вычисления нормальных форм с точностью до лидера, вспомогательные вычисления. Видно, что машина полностью загружена и эффективность высока.

Но найденная оптимизация не покрывает все примеры: один из примеров серии noon (рис. 2) выглядит как «плохой» случай — очень много участков, где нагрузка на процессор низка.

1.0 0.0

200.0

100.0

200.0

200.0

Рис. 2. График нагрузки на CPU при вычислении примера noon8

4. Планы на будущее

Дальнейшие работы будут посвящены повышению эффективности вычислений. Первоочередной задачей будет поиск дополнительных оптимизаций для примеров с поведением, характерным для noon8.

Литература

1. Janet M. Leçons sur les Systèmes d'Equations aux Dérivées Partielles. Cahiers Scientifiques. IV. — Gauthier-Villars, Paris, 1929.

2. Gerdt V. P., Blinkov Y. A. Involutive Bases of Polynomial Ideals // Math. Comp. Sim. — 1998. — Vol. 45. — Pp. 519-542.

3. Гердт В. П., Блинков Ю. А. Инволютивные деления мономов // Программирование. — 1998. — № 6. — С. 22-24.

4. Gerdt V. P., Blinkov Y. A. Minimal Involutive Bases // Math. Comp. Sim. — 1998. — Vol. 45. — Pp. 543-560.

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

5. Gerdt V. P., Yanovich D. A. Parallelism in Computing Janet Bases // Proceedings of CAAP'01, JINR E5,11-2001-279. — Dubna: 2002. — Pp. 93-103.

6. Янович Д. А. О распараллеливании алгоритма вычисления инволютивных базисов Жане // Программирование. — 2002. — № 2. — С. 16-21.

7. Gerdt V. P., Yanovich D. A. Parallel Computation of Involutive and Grobner Bases. // «Computer Algebra in Scientific Computing/CASC 2004» / Ed. by E. V. V. V. G. Ganzha, E. W. Mayr; Institute of Informatics, Technical University of Munich. — Garching, 2004. — Pp. 185-194.

8. Янович Д. А. Оценка эффективности распределенных вычислений базисов Гребнера и инволютивных базисов // Программирование. — 2008. — № 4. — С. 32-40.

9. Bini D., Mourrain B. Polynomial Test Suite. — 1996. — http://www-sop.inria. fr/saga/POL.

10. Verschelde J. The Database with Test Examples. — http://www.math.uic.edu/ ~jan/demo.html.

24

SHOBHH A.

UDC 004.421.2:004.032.24:512.714+

Reduction-Level Parallel Computations of Grobner and Janet

Bases

D. A. Yanovich

Laboratory of Information Technologies Joint Institute for Nuclear Research Joliot-Curie 6, 141980 Dubna, Moscow region, Russia

In previous papers we presented algorithm for parallel calculation of Grobner and Janet bases that works in terms of parallel normal forms computations. The realization was quite promising but faced problem of "starvation" (e.g. in some moments of time only few processors was fully loaded). In this talk one approach to raise scalability and avoid "starvation" will be presented. Experimental results of parallel computations on eight core SMP machine will be shown. Work was partially supported by the RFBR grant 07-01-00660 and by the grant 1027.2008.2 of the Ministry of Education and Science of the Russian Federation.

Key words and phrases: Grobner bases, Janet bases, parallel calculation, scalability.

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