в столбце і матрицы . равен 1. Поэт ому (Бо + dJ )(Бо — ¿.1) = 0. Так как ненулевые столбцы матрицы (Бо — ¿7 линейно независимы, то ранг ее равен рангу .7. Ранг Бі = Бо + <Ы равен рангу ., следовательно тапк(Б1) + тапк(Б0 — ) = п. Поэтому столбцы матрицы Б0 + порождают ядро
оператора БІ5 следовательно они порождают и ядро оператора М.
Следовательно ядро оператора М порождается ненулевыми столбцами матрицы Б1 — Л. А это все ненулевые столбцы матрицы . .
кетп(М) = зрап(Ет АМ — ¿I).
БЛАГОДАРНОСТИ: Работа выполнена при поддержке РФФИ, проект 04-07-90268.
Поступила в редакцию 15 декабря 2007г.
О вычислительных экспериментах с параллельными алгоритмами умножения полиномов и матриц в LLP схеме
© Ю.Д. Валеев
LLP схема - это параллельная технология, которая позволяет распараллеливать рекурсивные однопроцессорные алгоритмы. Она подробно изложена в [1-3]. LLP схема предназначена для распараллеливания однопроцессорных алгоритмов как с плотными, так и с разреженными данными. Это достигается за счет использования планировщика, который отслеживает свободные и занятые процессоры и автоматически перераспределяет задания от загруженных к свободным. От других систем автоматического распараллеливания ее отличает то, что граф алгоритма в ней представляется в виде взвешенного дерева, а каждый алгоритм является вершиной дерева. Для того чтобы распараллелить однопроцессорный алгоритм с помощью LLP, нужно реализовать его в виде вершины дерева и описать его граф.
LLP схема написана на языке Java и реализована с использованием технологий mpiJava, MPI. С использованием LLP схемы были реализованы параллельные программы для умножения полиномов и матриц.
Программы протестированы на 16 процесорном кластере лаборатории алгебраических вычислений с процессорами Intel Xeon 3000 и памятью 1Гб.
1 Результаты тестирования LLP алгоритма умножения полиномов
Был протестирован параллельный алгоритм умножения полиномов с использованием схемы LLP. Тестировались полиномы трех переменных в конечном поле и в кольце целых чисел.
1. Полиномы в кольце Zp[x]. В таблице приведены времена выполнения умножения в миллисекундах. Через дробную черту указано, во сколько раз время вычисления при данном количестве процессоров больше по сравнению с временем вычисления при 16 процессорах. Программа умножения запускалась на 2, 4, 8 и 16 процессорах. Эксперименты проводились для полиномов от трех переменных с одинаковыми максимальными степенями при переменных х, у, z: 20, 25, 30, с плотностью 50 и 100%.___________________________________________________________________
Плотность 50% Плотность 100%
m\p 2 4 8 16 m\p 2 4 8 16
20 5710/4.17 3250/2.38 2040/1.49 1370/1 20 14470/6.55 7800/3.53 4320/1.95 2210/1
25 16320/6.16 8620/3.25 4870/1.84 2650/1 25 45080/7.01 23610/3.67 12630/1.96 6430/1
30 45180/7.14 23310/3.68 11810/1.87 6330/1 30 132020/6.98 68430/3.62 36350/1.92 18900/1
Рис. 1. Графики зависимости ускорения от количества процессоров для полиномов над кольцом Ж,р[х] с плотностью 50 и 100%
В левой части рис.1 изображено 3 графика зависимости ускорения от количества процессоров для различных значений максимальных степеней полиномов. Под ускорением, понимается во сколько раз уменьшилось время вычисления по сравнению с временем на 2 процессорах. 1 график для максимальной степени равной 20. 2 график для 25. 3 для 30. На рисунке также изображены 2 прямые линии. Верхняя определяет идеальное ускорение, т.е. при увеличении числа процессоров во столько же раз будет уменьшено время. Нижняя линия означает ускорение вдвое меньшее, чем идеальное.
2. Полиномы в кольце Z[х,у,г\. В таблице приведены времена выполнения умножения в миллисекундах. Программа умножения запускалась на 2. 4. 8 и 16 процессорах. Полиномы брались от трех переменных с одинаковыми максимальными степенями при переменных х.у.г: 20.25.30. с плотностью 50% и 100% и количеством бит в коэффициентах 64. 128.
1. Таблица для полиномов с плотностью 50%.
\nbits 64 | 128
т\рТОС8 2 4 8 16 2 4 8 16
20 11940/4.39 6130/2.25 3740/1.38 2720/1 16220/4.37 9000/2.42 5620/1.51 3710/1
25 35910/5.05 18710/2.63 10190/1.43 7110/1 52250/4.90 28110/2.64 16550/1.55 10660/1
30 105930/5.65 54150/2.89 28610/1.53 18740/1 152620/5.75 77640/2.93 46940/1.77 26540/1
Рис. 2. Графики зависимости ускорения от количества процессоров для полиномов над кольцом Ж[х] с плотностью 50% и количеством бит в коэффициентах 64 и 128 2. Таблица для полиномов с плотностью 100%.
\nbits 64 | 128
т\ртос8 2 4 8 16 2 4 8 16
20 28960/6.18 14550/2.73 7810/1.47 5330/1 43330/5.34 27140/3.34 13400/1.65 8120/1
25 96380/5.83 49550/3.00 25170/1.52 16540/1 149630/6.12 100320/4.11 45590/1.86 24430
30 262850/5.00 137830/2.62 69820/1.32 52650/1 425370/6.05 278100 /3.95 123000/1.75 70420/1
Рис. 3. Графики зависимости ускорения от количества процессоров для полиномов над кольцом Z[x] с плотностью 100% и количеством бит в коэффициентах 64
1.1 Результаты тестирования LLP алгоритма умножения матриц
Тестировалось параллельное умножение матриц с использованием LLP схемы. Матрицы генерировались случайным образом Для тестов были взяты следующие параметры:
• Размер матрицы: 1024, 2048.
Матрицы брались в формате LQTSM, элементы матриц 64 битные числа. LQTSM формат хранения разреженных матриц, в котором матрицы хранятся в виде кватернарного (четверичного) дерева.
В таблице указано время вычисления в миллисекундах и во сколько раз время вычисления больше по сравнению с временем вычисления при 16 процессорах.
Таблица 1. Размера матриц 1024x1024.
%\ процессоры 2 4 8 16
10 7110/2.9 4110/1.7 2750/1.1 2430/1
30 14120/4.2 7460/2.2 4970/1.5 3340/1
50 18080/4.6 9520/2.4 5770/1.5 3900/1
70 21170/4.9 11240/2.6 7060/1.6 4300/1
100 26700/5.4 12980/2.6 7440/1.5 4930/1
Таблица 2. Размер матриц 2048x2048.
%\ процессоры 2 4 8 16
10 47900/4.8 25500/2.6 14690/1.5 9930/1
30 97500/5.7 50080/2.9 28070/1.6 17010/1
50 131760/6.0 68530/3.1 36440/1.6 22090/1
70 156710/6.1 80260/3.1 46940/1.8 25540/1
Рис. 4. Графики зависимости ускорения от количества процессоров для матриц порядка 1024 и 2048
На рис. 4 слева изображено 4 графика зависимости ускорения от количества процессоров для различных значений плотности для матриц порядка 1024. 1 график - для плотности 30%, 2 график - для 50%, 3 - для 70%, 4 - 100%. График для матриц порядка 1024 и плотности 10% не рассматривается, т.к. время вычисления при этих параметрах является достаточно маленьким.
На рис. 4 справа 1-й график отражает зависимость ускорения от количества процессоров для матриц порядка 2048 и плотности 10%, 2 - для плотности 30%, 3 - 50%, 4 - 70%.
2 Заключение
Эксперименты для полиномов над Zp[x] показывают, что ускорение находится в диапазоне: 4.0-7.2 для плотности 50% и 6.5-7.1 для полиномов плотности 100%.
Для полиномов из кольца Z[x, y, z] ускорение находится в диапазоне 4.3-5.8 для полиномов плотности 50% и количеством бит в коэффициентах 64 и 128, и в диапазоне 5.0-6.2 для полиномов плотности 100% и при тех же размерах коэффициентов.
LLP схема для полиномов над кольцами Zp[x] и Z[x] показывает хорошее ускорение, которое близко к теоретически лучшему ускорению, равному 8.
LLP схема для алгоритма умножения матриц для размера 1024 дает ускорение в диапазоне 4.25.4, для матриц размера 2048 - 4.8-6.1. Ускорение для матричного умножения находится в области между теретически лучшим ускорением и 50% ускорением.
Литература
1. Малашонок Г. 11.. Валеев Ю.Д., Зуев М.С. Параллельная компьютерная алгебра. Введение. Тамбов: Изд-во ТГУ им. Г.Р. Державина, 2006. 102 с.
2. Малашонок ГЛ.. Валеев Ю.Д. Динамическое распределение заданий в вычислительном кластере по графу алгоритма //XI Державинские чтения. Тезисы докладов. Тамбов: Изд-во ТГУ им. Г.Р.Державина, 2006. С. 38-47.
3. Малашонок ГЛ.. Валеев Ю.Д. Рекурсивное распараллеливание символьно-численных алгоритмов // Вестн. Тамб. ун-та. Сер.: Естеств. и техн. науки. Тамбов, 2006. Т. 11, вып. 4. С. 536-549.
Поступила в редакцию 3 декабря 2007г.
Об оценке коэффициентов характеристического полинома
© О.Н.Переславцева
Пусть А - коммутативное кольцо, А = (а*-) - квадратна матрица порядка п с элементами а* € А, i = 1 ,...,п, ] = 1,..., щ Е - единична матрица порядка щ Е (х) = ёе^А — хЕ) -
А
Одной из важных задач, связанных с вычислением характеристических полиномов целочисленных матриц, является задача нахождения верхней оценки для коэффициентов характеристического полинома. Такую оценку необходимо знать, например, для модулярной реализации алгоритма вычисления характеристического полинома матрицы с помощью китайской теоремы. Можно воспользоваться неравенством Адамара для определителя матрицы, т.е. для свободного члена характеристического полинома. Однако свободный член не является обязательно наибольшим по модулю коэффициентом характеристического полинома.