УДК 519.688
ПОЛИНОМИАЛЬНЫЕ ВЫЧИСЛЕНИЯ В СИСТЕМАХ КОМПЬЮТЕРНОЙ АЛГЕБРЫ PARCA И FORM: СРАВНИТЕЛЬНЫЙ
АНАЛИЗ
© А. Г. Поздникин
Ключевые слова: полином, сложение полиномов, умножение полиномов, алгоритмы с использованием жесткого диска, система компьютерной алгебры РахСА, система компьютерной алгебры FORM.
Приводится сравнительный анализ систем параллельной компьютерной алгебры FORM и PARCA. Представлены таблицы с результатами экспериментов в двух системах для одних и тех же полиномиальных вычислений, которые проводились на одном компьютере. В первой серии экспериментов использовались полиномы, которые размещались в оперативной памяти. Во второй серии экспериментов полиномы размещались на жестком диске, т. к. превышали по размеру оперативную память. Приводятся данные о времени вычислений и объеме памяти на жестком диске, которые необходимы для выполнения операций сложения, умножения и скалярного умножения небольших векторов над полиномами для каждой системы.
1 Введение
Во всех системах компьютерной алгебры имеются операции для полиномиальной арифметики. Большинство таких систем могут оперировать с полиномами только в случае, когда входные данные и промежуточные результаты помещаются в оперативную память.
Однако если оперативной памяти недостаточно, то некоторые системы дают возможность использовать жесткий диск для хранения полиномов. Такая возможность имеется в системах компьютерной алгебры FORM [1, 2] и РагСА [3-5).
Отметим, что система FORM была разработана специально для вычислений в области физики высоких энергий, она написана на C++.
Система компьютерной алгебры РагСА является системой общего назначения, ориентированной на применение параллельных вычислительных систем и имеющей Web-интерфейс для свободного доступа пользователей по интернету. В ней реализованы алгоритмы и программы для операций над полиномами и другими математическими объектами, которые нельзя хранить в оперативной памяти [6-8]. Эта система написана на Java.
В параграфе 2 описывается внутреннее представление полиномов в оперативной памяти и на жестком диске в системе РагСА.
В параграфе 3 приводятся и обсуждаются результаты экспериментов в системах FORM и РагСА.
2 Внутреннее представление полиномов в системе РагСА
В системе РагСА для хранения одного полинома в оперативной памяти используются два одномерных массива coeffs и powers. В массиве coeffs записаны ненулевые коэффициенты полинома, а в массиве powers - степени по каждой переменной. Мономы хранятся в полиноме в обратном лексикографическом порядке. Например, полином / = 2х2у2+ху2-4х хранится в виде массивов coeffs = {2,1, -4} и powers = {2,2,1,2, -4,0} .
Если полином не помещается в оперативную память, то он представляется в виде суммы полиномов - отдельных частей этого полинома. Эти части поочередно записываются в один файл на жестком диске, который называется файловым полиномом.
В системе РагСА имеется весь необходимый инструментарий для применения таких полиномов в вычислительных задачах. Для пользователя это просто две разные формы хранения полиномов, которые он может выбирать по своему усмотрению [5-8).
3 Эксперименты
Были проведены две серии экспериментов по три группы в каждой серии. В экспериментах первой серии все операции с полиномами производятся в оперативной памяти, в экспериментах второй серии используется жесткий диск. В каждой серии экспериментов решались задачи трех типов: сложение полиномов, умножение полиномов и скалярное произведение векторов с тремя полиномиальными компонентами.
Эксперименты проводились на машине Intel(R) Соге(ТМ)2 Duo Т8100, 2.1GHz, 2 Гбайта ОЗУ, дисковое пространство 62 Гбайта, ОС Linux 2.6.31.
Для экспериментов использовались плотные полиномы с целыми коэффициентами, каждый коэффициент занимал 128 байт.
Ниже в таблицах мы используем следующие обозначения. Обозначаем через tp время вычисления в системе FORM, tp время вычисления в системе РагСА, Vp объем жесткого диска, использованный системой FORM, Vp объем жесткого диска, использованный системой РагСА, Numb.of Monoms количество мономов в полиномах.
Результаты экспериментов первой серии приведены в табл. 1 и 2.
Результаты экспериментов второй серии, в которых использовался жесткий диск, приведены в табл. 3, 4 и 5.
В некоторых случаях в таблицах стоят прочерки. Это означает, что для системы FORM не удалось провести эксперимент с полиномами такого размера. При умножении с использованием жесткого диска было превышение объема внешней памяти. При сложении - не удалось стартовать операцию сложения, причину этого выявить не удалось.
Отметим, что самые большие по размеру полиномы, которые удалось сложить в системе FORM, приведены в конце левого столбца табл. 1 и в начале табл. 3. При этом в табл. 1 можно видеть сравнение с системой РагСА при вычислениях в ОЗУ, а в табл. 3 -сравнение с системой РагСА при вычислениях с использованием жесткого диска.
Эксперименты показали, что выполнение операций сложения и умножения полиномов, а также умножение полиномиальных векторов в оперативной памяти, реализованные в системе РагСА, требуют меньше времени, чем эти же операции в системе FORM (табл. 1 и 2). Причем по умножению выигрыш небольшой. Если в полиноме менее тысячи мономов, то время примерно одинаковое, а если, например, 14 тысяч мономов, то выигрыш составляет порядка 40%. По сложению выигрыш несколько больше. Если в полиноме менее 100
тысяч мономов, то выигрыш примерно в 10 раз, а при максимальном размере в 1000 тысяч мономов, для которого удалось провести эксперимент в системе FORM, выигрыш в системе РагСА составляет только 25%.
Таблица 1
Время, которое требуют операции в оперативной памяти ____________сложение полиномов умножение полиномов
Numb, of Monoms tp, с tP, с tp/tp
40000 0,17 0,017 од
50000 0,24 0,018 0,08
60000 0,29 0,02 0,07
70000 0,35 0,023 0,07
80000 0,41 0,027 0,07
600000 6,8 2,4 0,35
700000 7,5 2,7 0,36
800000 8,8 3,5 0,4
900000 9,4 5,4 0,57
1000000 10,5 7,7 0,73
Numb.о f Monoms tp, с tp, с tp/tp
300 0,33 0,317 0,96
400 0,64 0,562 0,88
500 1,07 0,872 0,81
600 1,59 1,265 0,8
700 2,18 1,693 0,78
10000 570 349 0,61
11000 699 426,5 0,61
12000 856 502,5 0,59
13000 1015 589,7 0,58
14000 1201 700,5 0,58
Таблица 2
Время вычисления выражения JJ\ * U2 + Vi * V2 + Z\ * Z2 , где U\, С/2, V\, V2, Z\,Zz - полиномы
Numb, of Monoms tp, с tp, с tp/tp Numb.of Monoms tp, с tp, с tp/tp
200 0,47 0,44 0,94 4000 249 172,7 0,69
300 1,17 1,009 0,86 5000 397 262 0,66
400 2,15 1,713 0,8 6000 584 378,8 0,65
500 3,39 2,668 0,79 7000 794 512,2 0,65
600 4,96 3,799 0,77 8000 1059 669,8 0,63
700 6,77 5,094 0,75 9000 1363 846 0,62
Таблица 3
Время выполнения операции сложения полиномов с использованием жесткого диска
Numb, of Monoms tp, с tp, с VF, Гб Vp, Гб
1000000 10,5 31,7 0,613 0,553
1100000 - 38,6 - 0,609
5000000 - 242 - 2,8
10000000 - 464 - 5,4
15000000 - 745 - • 8
Таблица 4
Время выполнения операции умножения полиномов с использованием жесткого диска
Numb.o f Monoms tp, с tP, с Vf, Гб VP, Гб
25000 4160 2962 40 6,8
30000 - 4200 >62 8,1
35000 - 5430 >62 9,5
Таблица 5
Время вычисления 11\ * 112 + * У2 + Zl * Z2 с использованием жесткого диска,
^1, 112, У\~, У21 Zl, Z2 - полиномы
Numb.ofM onoms tp, с tP, с Vf , Гб VP, Гб
15000 4117 3832 26,4 13
20000 - 6614 >62 16,3
25000 - 8852 >62 20,4
Операции с полиномами, которые нельзя выполнить в оперативной памяти, в системе FORM требуют значительно большего объема дискового пространства, чем в системе РагСА. В табл. 3-5 только первые строчки содержат результаты экспериментов в системе FORM. Например, для умножения полиномов с 25000 мономами системе FORM требуется более 40 Гб дискового пространства, а системе РагСА - всего 6,8 Гб. При этом проигрыш алгоритма в системе FORM по времени составляет 40%. Для умножения полиномов с количеством мономов 30000, 35000 системе FORM не хватило диска объемом 62 Гбайта.
4 Заключение
Проведенные эксперименты позволяют утверждать, что система РагСА не уступает по эффективности полиномиальных вычислений системе FORM. И, кроме того, она использует меньший объем внешнего накопителя при проведении вычислений с большими полиномами.
ЛИТЕРАТУРА
1. http://www.nikhef.nl/ ~form/
2. Heck A.J.P., Vermaseren J.A.M. FORM for Pedestrians. Draft: Amsterdam, October 2000.
3. Malaschonok G.I. ParCA2: Arcitecture and Experiments. Mathematical Modeling and Computation Physics (MMCP’2009) // Book of Abstracts of the International Conference (Dubna, July 7-11, 2009). Dubna: JINR, 2009. P. 175.
4. Malaschonok G.I. On the project of parallel computer algebra // Tambov University Reports.Natural and Technical Sciences. V. 14. Issue 4. 2009. P. 744-748.
5. Malaschonok G.I. Architecture of РагСАЗ project // International conference Polynomial Computer Algebra. St.Petersburg, PDMI RAS, 2010. P. 44-47.
6. Поздникин А.Г. Об одном подходе к арифметике сверхбольших полиномов // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 15. Вып. 6. 2010. С. 1767-1770.
7. Поздникин А.Г. Файловые полиномы // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 14. Вып. 4. 2009. С. 783-785.
8. Поздникин А.Г. Параллельные полиномиальные вычисления с использованием внешней памяти // Вестник Тамбовского университета. Сер. Естественные и технические науки. Том 15. Вып. 4. 2010. С. 1426-1435.
БЛАГОДАРНОСТИ: Работа выполнена при поддержке программы «Развитие потенциала высшей школы» (проект 2.1.1/10437).
Поступила в редакцию 12 ноября 2010 г.
UDK 519.688
POLYNOMIAL COMPUTATIONS WITH SYSTEMS OF COMPUTER ALGEBRA PARCA AND FORM: THE COMPARATIVE ANALYSIS
(c) A. G. Pozdnikin
Key words: polynomial computations, polynomial multiplication, system of computer algebra ParCA, system of computer algebra FORM.
The comparative analysis of systems of parallel computer algebra FORM and ParCA is proposed. The results of experiments with polynomial calculations in these two systems are presented in the form of tables. The first series of experiments is devoted to polynomials which stored in RAM. The second series of experiments is devoted to polynomials which stored hard disk. The calculation time and size of memory on a hard disk which are necessary for performance of operations of addition, multiplication and scalar multiplication of vectors with polynomials are presented.