О параллельных матричных алгоритмах в компьютерной алгебре М. С. Зуев

числения производятся на том вычислительном узле, на котором достигнут уровень НУ, и дальнейшее распараллеливание не производится.

Достоинством РВУ-программы является то, что в случае плотных данных все вычисления производятся столь же эффективно, как и в статических программах, а при разреженных и неоднородных данных программа дает возможность избежать простоев для освободившихся процессоров, перераспределяя на них части с самых «трудных» участков.

АПРОБИРОВАНИЕ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ

Были разработаны РВУ-программы в среде Рап!ауа ИСП РАН для некоторых алгоритмов компьютерной алгебры. Эксперименты проводились на вычислительном 16-процессорном Муппй кластере ИСП РАН.

Ниже представлены некоторые графики роста скорости вычислений при увеличении числа процессоров участвующих в вычислениях (рис. 1, 2). На этих графиках по горизонтальной шкале откладывается количество процессоров, участвующих в вычислениях, а по вертикальной шкале - величина, обратная времени вычислений. За единицу времени принято 100 с. Верхний луч соответствует 100 % роста скорости (теоретический предел), нижний луч - росту скорости, равному 50 %.

Рис. 1. Скорость вычисления произведения полиномов с целыми коэффициентами

Рис. 2. Скорость вычисления произведения полиномов в конечном поле

Вычислялось произведение полиномов трех переменных, содержащих 17000 мономов. Коэффициенты полиномов - это целые числа, не превосходящие по модулю числа 228.

Вычислялось произведение полиномов трех переменных, содержащих 17000 мономов. Коэффициенты брались из конечного поля, не превосходящего 200 000 000.

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

БЛАГОДАРНОСТИ:

1. Работа выполнена при частичной поддержке

грантов Минобразования № 02-2.0-98, РФФИ

№ 04-07-90268-Ь, «Университеты России» № 04.01.051 и «Научный потенциал» № 23-03-24.

2. Авторы выражают глубокую благодарность коллективу ИСП РАН, разработчикам среды Ра^ауа, за плодотворные обсуждения и за проведение многочисленных экспериментов с программами на вычислительном кластере ИСП РАН.

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

© Г.И. Малашонок, Ю.Д. Валеев, М.С. Зуев

Рассматриваются реализации некоторых матричных алгоритмов, предложенных в [1], в виде статических и динамических параллельных программ (см. [2]). Обсуждаются результаты вычислительных экспериментов.

Были разработаны статические и динамические программы в среде Ра1\1ауа ИСП РАН для матричных алгоритмов умножения, вычисления присоединенных и обратных. Эксперименты проводились на вычислительном 16-процессорном Муппе!: кластере ИСП РАН.

1. ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ УМНОЖЕНИЯ

Если время вычисления суммы и произведения элементов матриц примерно одинаковое, то применение схемы умножения Штрассена не приводит к ускорению вычислений, при порядке матрицы менее 1287 (см. оценки в [3]).

Поэтому в первую очередь были разработаны параллельные программы для стандартного алгоритма умножения матриц. При этом использовались две схе-

мы - простая параллельная схема умножения и рекурсивная блочная схема умножения.

2. ПРОСТАЯ ПАРАЛЛЕЛЬНАЯ СХЕМА УМНОЖЕНИЯ

Простая параллельная схема умножения матриц имеет вид:

( А Л 'А0В'

А\ А,В

5 =

Лв,

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

Каждый процессор умножает один из блоков матрицы А на матрицу В, и в результате будет получен соответствующий блок произведения матриц АВ.

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

Эксперименты с этой программой показали, что при умножении матриц порядка 1024 в конечном поле коэффициент ускорения равен 77 % при использовании 12 процессоров.

Мы называем скоростью вычислений величину, обратную времени вычислений, а коэффициентом ускорения - отношение увеличения скорости к увеличению количества процессоров.

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

На этом и следующих графиках по горизонтали откладывается количество процессоров, участвующих в вычислении, а по вертикали - величина, обратная времени вычислений. За единицу времени принято 100 секунд. Верхний луч соответствует коэффициенту ускорения, равному 100 %, это теоретический предел. Нижний луч соответствует коэффициенту ускорения, равному 50 %.

Рис. 1. Скорость вычисления произведения матриц в конечном поле при применении простой параллельной схемы умножения. Коэффициент ускорения равен 77 %

3. РЕКУРСИВНАЯ БЛОЧНАЯ СХЕМА УМНОЖЕНИЯ

Рекурсивная блочная схема умножения матриц имеет вид:

Г^00 ^0! ^ Во] ^ _ Г^оо^оо ^01^10 ^00^01 + ^01^11

+ АиВ10 АюВт +АиВи)

Для вычисления произведения блоков снова используется эта же схема.

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

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

На рис. 2 и 3 показаны результаты двух экспериментов, проведенных для динамических параллельных программ умножения матриц. В параллельных программах использовался ОТ-формат хранения коэффициентов [2].

Рис. 2. Скорость вычисления произведения целочисленных матриц в ОТ формате при применении рекурсивной схемы умножения. Коэффициент ускорения 85 %

Рис. 3. Скорость вычисления произведения матриц в конечном поле в ОТ формате при применении рекурсивной схемы умножения. Коэффициент ускорения 86 %

Эксперименты для матриц 512 порядка с небольшими целыми коэффициентами (~228) показали, что при умножении в кольце целых чисел коэффициент ускорения равен 85 %, а при умножении в конечном поле коэффициент ускорения равен 86,4 %. Использовались 2 и 14 процессоров.

4. РЕКУРСИВНАЯ БЛОЧНАЯ СХЕМА ВЫЧИСЛЕНИЯ ПРИСОЕДИНЕННОЙ И ОБРАТНОЙ МАТРИЦ

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

Вычисления производились с плотной случайной целочисленной матрицей 128 порядка, с 28-битовыми целыми коэффициентами. Была составлена

Рис. 4. Скорость вычисления обратной (присоединенной) матрицы в случае рациональных коэффициентов в ОТ формате при применении рекурсивного алгоритма. Коэффициент ускорения равен 60 %

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

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

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

ты проводились с матрицами 127-го порядка с 28-битовыми целыми коэффициентами.

ОБСУЖДЕНИЕ РЕЗУЛЬТАТОВ

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

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

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

ЛИТЕРАТУРА

1. Малашонок Г.И., Зуев М.С. О представлении матриц кватернар-ными деревьями // Вестн. ТГУ. Сер. Естеств. и техн. науки. X Державинские чтения. Тамбов, 2005. Т. 10. Вып. 1. С. 97.

2. Малашонок Г.И., Валеев Ю.Д. О некоторых подходах к построению параллельных программ // Вестн. ТГУ. Сер. Естеств. и техн. науки. X Державинские чтения. Тамбов, 2005. Т. 10. Вып. 1. С. 100.

3. Malaschonok G.I. Complexity Considerations in Computer Algebra / Computer Algebra in Scientific Computing, CASC 2004/ Techn. Univ. Munchen, Garching, Germany, 2004. C. 325-332.

4. Malaschonok G.I. Recursive Method for the Solution of systems of Linear Equations / Computational Mathematics. A. Sydow Ed. Proc. 15th I MACS World Congress. V.l. Berlin, August 1997. Wissenschaft and Technik Verlag, Berlin, 1997. P. 475-480.

БЛАГОДАРНОСТИ:

1. Работа выполнена при частичной поддержке грантов Министерства образования № 02-2.0-98, РФФИ № 04-07-90268-Ь, «Университеты России» № 04.01.051 и «Научный потенциал» № 23-03-24.

2. Авторы выражают глубокую благодарность коллективу ИСП РАН, разработчикам среды ParJava, за плодотворные обсуждения способов построения параллельных программ и за то, что ими были проведены многочисленные эксперименты с программами на вычислительном кластере ИСП РАН.

СРАВНЕНИЕ МЕТОДОВ ИСКЛЮЧЕНИЯ В КОМПЬЮТЕРНОЙ АЛГЕБРЕ

© В.Н. Казаков

Настоящий обзор методов исключения в компьютерной алгебре и их сравнительный анализ основан на работах [1-15]. Таблицы и диаграммы следуют в основном работе [5].

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

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