Информационные технологии Вестник Нижегородского университетаим. Н.И. Лобачевского, 2009, № 4, с. 172-180
УДК 681.3.07
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БЕЗОШИБОЧНЫХ ДРОБНО-РАЦИОНАЛЬНЫХ ВЫЧИСЛЕНИЙ И ЕГО ПРИМЕНЕНИЕ ДЛЯ РЕШЕНИЯ ЛИНЕЙНЫХ СИСТЕМ*
© 2009 г. М.И. Германенко
Южно-Уральский госуниверситет, г. Челябинск [email protected]
Поступила в редакцию 16.03.2009
Приведены теоретические и экспериментальные результаты по применению безошибочных вычислений для нахождения нормального псевдорешения систем линейных алгебраических уравнений. Для сокращения времени, требуемого для решения данной задачи, целесообразно использовать параллельные вычисления. Показано, что в асимптотике ускорение пропорционально числу компьютеров, на которых решается задача.
Ключевые слова: безошибочные вычисления, решение линейных систем, нормальное псевдорешение, битовая сложность безошибочного решения, распараллеливание.
Введение
Решение систем линейных алгебраических уравнений является одной из фундаментальных задач математики. В частности, она возникает при решении краевых задач для дифференциальных и интегральных уравнений, к которым сводятся реальные проблемы техники, физики, экономики, математики [1] и др.
Некоторые методы решения данной задачи, такие как метод Гаусса, метод Жордана - Гаусса, метод прогонки, прямое использование формул Крамера и др., определены в терминах точных вычислений. Но использование стандартных типов данных известных языков программирования существенно сужает множество рациональных чисел, представимых без погрешности. Таким образом, арифметические операции приходится выполнять приближенно, что часто дает неудовлетворительные результаты решения задач.
Интересно заметить, что в последнее время теория и практика решения плохо обусловленных линейных систем развивается в направлении разработки алгоритмов, устойчивых к погрешностям округления промежуточных результатов [2]. Примерами таких методов являются: метод вращений, метод сингулярного разложения и др. Они содержат операции извлечения квадратного корня, вычисление сину-
* Статья рекомендована к печати программным комитетом Международной научной конференции «Параллельные вычислительные технологии 2009» (http:// agora.guru.ru/pavt).
са, косинуса и прочих иррациональных функций, т.е. ориентированы на вычисления с приближенными числами. Методы, не ориентированные на безошибочные вычисления, как правило, не распознают случаи, когда система имеет бесконечное множество решений или не имеет их вообще, выдавая ошибочные ответы. При вычислениях с округлениями возможно, что 1) не будет найдено ни одного подходящего решения, даже если оно имеется; 2) будут найдены корни при их отсутствии; 3) будет найдено только одно решение при их бесконечном множестве. При безошибочных вычислениях все три случая легко идентифицировать.
Общеизвестные алгоритмы решения систем линейных алгебраических уравнений: метод Гаусса, метод Жордана - Гаусса, метод прогонки, - для преобразования данных используют только основные арифметические операции. Но на сегодня нам неизвестно языков программирования, представляющих программисту целочисленные типы данных с более чем 64 двоичными разрядами. Однако при использовании в указанных алгоритмах безошибочных вычислений будут исключены все возможные методические погрешности решения (так как все промежуточные операции будут выполняться точно, без округлений), останутся только погрешности, обусловленные неточностью исходных данных.
Использование популярных программ, таких как MS Excel и MathCAD, не ориентированных на безошибочные и символьные вычисления соответственно, приводит к получению невер-
ного результата даже при решении систем линейных уравнений порядка 15. Например, при решении системы Hx = He, где
H = j -jrl , e = {1} .0..., n.
I - + / +11 . . n
V J j г,j=0,...n
Очевидно, что x должен быть единичным вектором. Результаты, полученные при n = 15 с использованием программ MS Excel и MathCAD, приведены на рис. 1. Кроме того, программы даже не выдают сообщения, что полученный результат может быть неверным [3, 4].
MS Excel (n = 15) MathCAD (n = 15)
1.95 0.99
72.01 1.04
—747.44 0.96
2648.23 0.59
-4625.26 1.47
4207.05 4.28
-1710.44 -3.74
х = 524.03 х = -14.85
-996.25 56.99
974.50 -78.42
-439.50 69.18
106.75 -40.54
-12.63 20.19
0.84 -5.05
1.16 1.91
Рис. 1. Результаты эксперимента при использовании программ MS Excel и MathCAD
Используя символьное программирование, японские программисты К.Ш. Тан, В.-Х. Стиб, Й. Харди [5] разработали класс, позволяющий выполнять операции со сверхдлинными числами. Возможность обеспечения безошибочных вычислений в программах пользователя дает библиотека GMP [6]. Она разработана под операционные системы Unix, Linux и подобные малопопулярные системы в нашей стране, ее использование требует компиляции и дополнительных знаний, что затрудняет использование данной библиотеки для рядового программиста. Стоит также отметить, что для объектов GMP не предоставляется возможность их использования в параллельных вычислениях.
В настоящей работе приведены теоретические и экспериментальные результаты по применению безошибочных вычислений для нахождения нормального псевдорешения систем линейных алгебраических уравнений. Для сокращения времени, требуемого для решения данной задачи, целесообразно использовать параллельные вычисления.
1. Программное обеспечение выполнения безошибочных дробно-рациональных операций
Для обеспечения безошибочных дробнорациональных вычислений были разработаны классы rational [7] и overlong [8]. Класс overlong существенно расширяет логические возможности целочисленных вычислений: диапазон представимых чисел на 32-разрядном про/ /^16\65536 | /^16\65536\
цессоре расширяется до (-(2 ) , +(2 ) ).
Таким образом, имеется возможность представлять целые числа, имеющие более 600 000 десятичных разрядов.
Ранее доказано [9], что битовая пространственная сложность результата арифметической операции o g{+,-,/,x} над рациональными числами p, q не превосходит величины Lp o q) < < L(p) + L(q). Проведенный анализ битовой вычислительной сложности при выполнении алгоритма столбиком показал что имеет место следующее неравенство с{р о q)< L(p)• L{q). При использовании быстрого алгоритма умножения Тоома - Кука [10] вычислительная сложность умножения не будет превосходить значения
max
Класс rational дает потенциальную возможность использовать в программах пользователя безошибочное выполнение основных арифметических операций над полем рациональных чисел. По определению, тип данных rational представляет собой пару <nmr, dmr>. Здесь nmr - целочисленная переменная типа overlong, обозначающая числитель, а dmr - целочисленная переменная типа overlong, обозначающая знаменатель. Минимальный шаг дискретизации представляемых чисел существенно лучше, чем
О-1048575
у стандартных типов данных, и равен 2 .
Проведенное практическое исследование показало, что наиболее оптимальный метод сокращения - попарно сократить операнды до выполнения операции.
Для использования классов overlong и rational пользователю достаточно включить библиотеку ExactComp в проект и подключить заголовочный файл ExactComp.h в свою программу, после этого можно пользоваться объектами данных классов как объектами стандартных типов данных. Над объектами классов определены все основные арифметические операции, бинарные отношения, операторы ввода/вывода. Объем памяти, требуемый для представления объекта, зависит от значения представляемого числа.
В работе [4] показано, что битовая пространственная и вычислительная сложности сложения ^хт)-матриц А и В не превосходят величин
L(A + B )< l(a) + l(a ),
С (A + B) < nm {мa + MB) соответственно, а битовая пространственная и вычислительная сложности умножения (nxm)-матрицы А и (тх1)-матрицы В не превосходят величин
l(a • в) < nm /(m a + M B), c(a • B)< o{nm2lC* (a, b))
соответственно, где С* - битовая вычислительная сложность выбранного метода умножения. Здесь Ыа,в - число бит, требуемых для представления матрицы А (В).
Разработанный автором класс matrix [4] предназначен для облегчения программирования, а также улучшений визуального восприятия программ, использующих матричные вычисления. Память, требуемая для представления переменных-матриц, автоматически выделяется, а ненужная - удаляется. В данный класс встроены:
• основные арифметические операции с матрицами;
• методы решения систем линейных уравнений с заданной матрицей;
• нахождение обратной матрицы;
• нахождение обобщенной обратной матрицы.
В класс добавлена возможность использования параллельных вычислений. Класс matrix включен в библиотеку ExactComp.
2. Применение безошибочных вычислений для решения линейных систем
Для безошибочного вычисления как обратной матрицы A-1, так и решения x системы уравнений можно использовать метод Жордана - Гаусса. При использовании класса rational возможно исключить все методические погрешности. Известно, что алгоритм Жордана - Гаусса имеет алгебраическую пространственную сложность 0(n2) и алгебраическую вычислительную сложность О(п). Данные оценки позволяют определить количество переменных, требуемых для решения задачи, и количество арифметических операций с этими переменными.
При использовании безошибочных вычислений длина переменной зависит от представляемого ей значения, следовательно, количество переменных не позволяет оценить ресурсы, не-
обходимые для нахождения результата. Для практического использования алгоритма следует определить количество бит, требуемых для нахождения результата, а также количество операций с битами. Ответ на данный вопрос дают теоремы, изложенные ниже.
Лемма 1 [9]. Пусть А = (ау) - невырожденная целочисленная матрица п х п, т =
= тах ¿(а,). Тогда
І, j =1,2 ,..,n
i(det A) < n( log 2 n + m).
Лемма 2 [9]. Пусть A = (a,-,) - невырожденная n x n рациональная матрица, m = = max b{aij ). Тогда
i, j=1,2 ,..,n
L(det A) < n(log2 n + (n +1 )m).
Теорема 1 [13]. Пусть Ax = b - система линейных алгебраических уравнений, A - невырожденная матрица n х n с рациональными элементами, b - n-мерный вектор с рациональными элементами,
m = max^ max L(ai;-), max L(bt)
[i,y =1,2,..,« i=1,2,..,n
Тогда
n о
L(x) = ^L(xi) <2n (log2 n + (2n +1 )m).
i=1
Теорема 2 [13]. Пусть даны невырожденная (n х n)-система уравнений Ax = b с рациональными коэффициентами, являющаяся приближением некоторой (n х n)-системы уравнений Ax = b; матрицы абсолютных погрешностей: Ал = (Sj):J = 1. 2,...,ij
Ab = (j): ( = 1, 2,..., n)8j
\aij -aij\
<
bj - bj
а также верхняя оценка числа бит, требуемых для одного элемента исходных данных
m = max < max { (ay), )},
[i, j=1,2,.., n
max {(bi),L(5,-)}
i=1,2,.., n
Тогда для нахождения как решения x, так и гарантированной нормы погрешности || А х || =
=|x — x|| потребуется не более O(n4m) бит
памяти и не более O(n7m2) битовых операций.
Пусть 1 - число бит, требуемых для представления исходных данных. При ограниченном
т будем иметь 1 = О(п т). Из теоремы 2 следует, что в этом случае зависимость битовой пространственной сложности от величины 1 не превосходит величины 0(12), а зависимость битовой вычислительной сложности (при использовании быстрых алгоритмов умножения) от величины 1 не превосходит 0(15/2).
Численные методы решения краевых задач для линейных дифференциальных и интегральных уравнений сводятся к решению систем линейных алгебраических уравнений с (2к+1)-диагональной матрицей. Для решения таких систем используется метод прогонки. С одной стороны, данный метод имеет низкую алгебраическую вычислительную сложность (т. е. количество операций с числами), она равна О(п), где п - порядок системы. С другой стороны, он не позволяет решать плохо обусловленные системы. Для устранения последнего недостатка можно использовать безошибочные вычисления. Однако при безошибочных вычислениях, как и в случае алгоритма Жордана -Гаусса, адекватной оценкой сложности будет не алгебраическая, а битовая вычислительная сложность (т. е. количество операций с битами).
Теорема 3. Пусть даны невырожденная система уравнений Ах = Ь, А - трехдиагональная (п х п)-матрица с рациональными коэффициентами, Ь- (п х к)-матрица свободных членов, пусть также дана верхняя оценка числа бит, требуемых для одного элемента исходных данных
т=тах
тах тах {),Д8 і )}
і,у=1,2,..,п і=1,2, .. п
о
( 3 тп
3
(к +1)
бит памяти и не более (
О
к
3 6 т п
3
х* = а^ тт
іп|||х|| | х є А^ тіп 11Ах - Ъ|||.
Известно множество методов нахождения матрицы Мура - Пенроуза. Теоретический расчет битовой сложности алгоритмов и практические эксперименты [4] показали, что наиболее оптимальным методом для вычисления обобщенной обратной матрицы является метод Эр-мита [12].
Алгоритм Эрмита
Вход: А - исходная (пхт)-матрица системы.
Выход: А+ - матрица, псевдобратная к А.
Шаг 1. Положить С=А-АТ, В=СС.
Шаг 2. Методом Жордана - Гаусса провести редукцию матрицы (В | Е), где Е - единичная матрица, к форме
(Ег К л
г р
О О У
где Ег - единичная матрица ранга г .
Шаг 3. Методом Жордана - Гаусса провести
редукцию матрицы
ничная матрица, к форме
(
Ег
0
0
0
Q
Е
где Е - еди-
Тогда для нахождения решения потребуется не более
операции с ними.
При решении практических задач система уравнений может быть недоопределенной, переопределенной и несовместной. В этом случае за решение системы принимается ее нормальное псевдорешение
Для его нахождения можно использовать обобщенную обратную матрицу А+, называемую также матрицей Мура - Пенроуза. В этом случае х =А+Ь.
Шаг 4. Вычислить матрицу
А + = АТ • Р • £ • С.
Шаг 5. Вернуть А+.
Фрагмент листинга программы приведен на рис. 2.
Теорема 4 [4]. Пусть 1 - число бит, требуемых для кодирования всех элементов исходной матрицы А. Тогда для нахождения обобщенной обратной матрицы Мура - Пенроуза алгоритмом Эрмита потребуется не более 0(?) бит памяти и не более 0(15) операций с ними.
Для апробации разработанного программного обеспечения и анализа практической достижимости полученных оценок вычислительной сложности был проведен второй вычислительный эксперимент. Он состоял в решении систем линейных алгебраических уравнений
НХ = в, Н = ■] И = ---^--- > ,
Г *'+; - 11г^1
в={= %1 •
Матрица Н, известная как матрица Гильберта, является плохо обусловленной. Подобные системы с использованием приближенных вычислений не удается решить уже при п > 5. Были решены все системы линейных уравнений,
/У нахождение обобщенной обратной матрицы с помощью метода Эрмита Matrix ErmitMethod(Matrix А) {
Matrix Е(A.GetMO , A. GetM() ) , P (A.GetM() , A.GetMO);
Matrix Rt (A.GetMO, A.GetMO), В, C, Q (A.GetMO, A.GetMO);
// построим квадратную матрицу С = (А*А.Т()); В = С*С;
// составляем единичную матрицу Е.Fill("Е");
// добовляем справа к матрице А единичную матрицу Е B.AddMtx(Е, true);
// выполняем редукцию методом Ж-Г В.JGMethod();
// разделяем матрицу М на две, R - левая часть, Q - правая for(int i=0; i<M.GetM(); i++) for(int j=0; j<M.GetN(); j++){
// сразу транспонируем Rt (i,j) = M(j,i);
P(i,j) = M(i, j+E.GetNO);
}
Rt.AddMtx(E, true);
Rt.JGMethod();
for(int i=0; i<M.GetM(); i++)
for(int j=0; j<M.GetN(); j++) Q(j,i) = Rt(i,j+Rt.GetY());
// выполнение 4го шага алгоритма A_ = (A.T() * Q) * (P * C); return A ;
Рис. 2. Листинг программы метода Эрмита
для п = 3, ..., 250. Расчеты осуществлялись по методу Жордана - Гаусса, методу Гаусса и методу прогонки.
При решении системы методом прогонки также использовалась матрица Гильберта с ненулевыми элементами только на трех главных диагоналях. Результаты вычислительных экспериментов приведены на рис. 3 и рис. 4. Проведенные практические эксперименты являются подтверждением теоретических исследований, а также показывают не только возможность, но и необходимость безошибочного решения систем линейных алгебраических уравнений. Необходимость вызвана тем, что при приближенном решении конечный результат будет существенно отличаться от правильного, но этого можно избежать, если выполнять все операции точно.
Многие реальные задачи имеют большую размерность п, следовательно, вычислительная и пространственная сложность этих задач будет достаточно большой, поэтому и время, требуемое для решения, будет большим. Увеличить скорость решения во многих случаях позволяет использование параллельных вычислений на нескольких компьютерах одновременно, при этом сократятся как количество операций, выполняемых на одном компьютере, так и память, требуемая для хранения промежуточных результатов.
3. Программное обеспечение параллельных вычислений при решении линейных систем
Для увеличения скорости решения реальных задач адаптировали разработанные классы overlong, rational и matrix к параллельным вычислениям. При организации параллельных вычислений было принято использовать MPICH, которая поддерживает стандарт MPI и имеет GNU лицензию.
Передача класса rational между узлами внутренними средствами MPI невозможна, так как данный класс содержит два объекта класса overlong, которые, в свою очередь, содержат длину массива и указатель на массив, содержащий число. Поэтому объявить структуру rational по стандарту MPI невозможно по двум причинам:
• необходимо хранить указатель;
• каждый объект rational может иметь произвольную длину, которая может измениться при следующей математической операции, -невозможно создать универсальную структуру.
Очевидными решениями будет упаковка rational в буфер с целью дальнейшей передачи. Данный вариант позволяет обойтись одной транзакцией и поэтому взят за основу модификации. Для передачи типов overlong, rational были переопределены стандартные методы передачи данных в среде MPI.
10000
-1000
§-
100
10
/ г
/ /
J
-G ■ J-G prog
25 75 125 175 225 275
Размерность матрицы
1ООООООО
н1000000
10DC0D
юооо
юоо
/
/ " т
-J-G
- Prog
26 50 75 100 125 150
Норялок матрицы
Рис. 3. Время (секунды) решения системы методами Рис. 4. Память (число слов памяти), требуемая для реше-
Гаусса, Жордана - Гаусса и прогонки ния системы
Рис. 5. Декомпозиция данных
Наиболее предпочтительной является декомпозиция исходных данных по строкам, т.е. разрезание матрицы системы на горизонтальные полосы, содержащие примерно равное число строк (рис. 5). При этом каждая полоса загружается в соответствующий компьютер: нулевая полоса - в нулевой компьютер, первая полоса - в первый компьютер и т. д., последняя полоса - в последний компьютер.
В начале параллельной реализации производим инициализацию переменных и выделение памяти под обрабатываемый локальным процессом фрагмент матрицы системы, ведущую строку, массив модифицированных номеров, массив флагов открытых строк и буфер передачи данных. Внешний цикл функции Зо1уе() выполняется для каждой переменной системы
уравнений. При г-м выполнении тела цикла в каждом процессе из открытых строк выбирается строка ], имеющая максимальный по абсолютной величине элемент в столбце г локального фрагмента матрицы системы. Затем определяется ведущий процесс, в котором находится максимальный по модулю элемент столбца г. Если модуль максимального элемента равен 0, то выполнение программы прекращается с выводом сообщения Det = 0. В противном случае строке j ведущего процесса присваивается статус «ведущая» и устанавливается модифицированное значение гом?Щ['] = г. Далее в ведущем процессе производится нормировка ведущей строки и ее рассылка остальным процессам. Функция БиЪЫпеО осуществляет ведущее преобразование строк матрицы, состоящее в обнулении
элементов г-го столбца, не принадлежащих ведущей строке. После этого ведущая строка переводится в состояние закрытой.
Если исходными данными является («*«)-матрица, т - количество бит, требуемых для представления одного элемента исходной матрицы, и задача решается на N компьютерах, тогда ускорение параллельной реализации алгоритма Жордана - Гаусса при использовании параллельный вычислений составит [3]:
N
1 +
CN
Л
2 2 m n
процессора
'-'передачи J
Если исходными данными является (^ХИ^)-матрица, т - количество бит, требуемых для представления одного элемента исходной матрицы, тогда коэффициент ускорения параллельной реализации метода Эрмита, выполняемого на N компьютерах, не будет превышать ускоре-
ния на участке с наибольшей вычислительной сложностью [4]:
N
1 +
CN
Л
\ ■
процессора
4. Вычислительный эксперимент
Вычислительный эксперимент проводился на кластере кафедры экономико-математических методов и статистики (ЭММиС) ЮУрГУ. Данный кластер состоит из основного и восьми вспомогательных узлов, объединенных в локальную сеть посредством коммутатора Allied Telesyn AT-FS716E 100Base-TX. Примерная расчетная пиковая производительность кластера в соответствии с данными, взятыми с сайта производителя, составляет величину ПРППК = = 8-2.4-2+2-2.8-2 = 49.6 Gflops. На узлах кластера
10000.000
1000.000
10.000
1.000
1
40
80
240
120 160 200 Число уравнений
Рис. 6. Время решения систем уравнений на разных количествах процессоров
п 1 процессор п 2 процессора О 4 процессора п 6 процессоров п 8 процессоров П 10 процессоров
Рис. 7. Интерфейс страницы для безошибочных вычислений
присутствуют только средства, необходимые для функционирования среды MPI. На основном узле установлены оконные менеджеры XFCE4 и GNOME, а также другие пакеты, необходимые для написания, отладки и запуска программ.
Для апробации разработанного программного обеспечения и анализа практической достижимости полученных оценок вычислительной сложности был проведен вычислительный эксперимент. Эксперимент состоял в решении систем линейных алгебраических уравнений
Ax = b , где A = [l /( + j +l)] ” - матрица
Гильберта, b = [l] .
Результаты вычислительного эксперимента приведены на рис. 6. Проведенные вычислительные эксперименты подтвердили теоретически рассчитанные коэффициенты ускорения (при достаточно больших исходных данных скорость вычисления увеличится в N раз, где N - количество компьютеров, на которых решается задача).
Результаты аналитического исследования и проведенного вычислительного эксперимента показывают, что использование параллельного программирования существенно уменьшает время, требуемое для безошибочного решения систем линейных уравнений.
5. Интернет-приложение для решения линейных систем
Для того чтобы обеспечить возможность пользователям Интернета использовать разработанные программы, был разработан доступ к программе через web-интерфейс http://skif-ural.susu.ac.ru/app/ExactComputation (рис. 7). После ввода данных в форму производится проверка корректности данных, сжатый файл передается на кластер Южно-Уральского государственного университета СКИФ, обрабатывается, а затем результат высылается на почтовый адрес, введенный в форму.
Заключение
Разработанные классы overlong, rational и matrix позволяют решать плохо обусловленные невырожденные системы линейных алгебраических уравнений точно за время не более O(l5/2). При решении систем с приближенными данными имеется возможность оценки погрешности полученного решения.
Применение вычислений без округления позволяет использовать алгоритм Эрмита для вычисления псевдообратной матрицы за время не более O(l5). Это позволяет строить устойчивые алгоритмы решения линейных некорректно поставленных задач.
Проведенные теоретические исследования и практические эксперименты показывают возможность и необходимость безошибочного решения систем уравнений, также возможность значительного увеличения скорости при использовании безошибочных вычислений дает использование параллельных вычислительных технологий. Проведенные практические исследования показали, что при увеличении числа процессоров эффективность использования вычислительных ресурсов не уменьшается.
Разработанное программное обеспечение позволяет использовать параллельные и распределенные вычисления. В асимптотике ускорение, полученное в этом случае, пропорционально числу процессоров, на которых решается задача.
Список литературы
1. Вержбицкий В.М. Численные методы (линейная алгебра и нелинейные уравнения). М.: Высш. шк., 2000. 266 с.
2. Воеводин В.В. Ошибки округлений и устойчивость в прямых методах линейной алгебры. М.: Наука, 1969.
3. Панюков А.В., Германенко М.И., Горбик В.В. Распараллеливание алгоритмов решения систем линейных алгебраических уравнений с применением вычислений без округлений // Параллельные вычислительные технологии (ПаВТ’2007), Челябинск, 29 января - 2 февраля 2007 г. Т. 2. С. 238-249.
4. Панюков А.В., Германенко М.И. Параллельные алгоритмы безошибочного вычисления матрицы Мура - Пенроуза // Параллельные вычислительные технологии (ПаВТ'2008), Санкт-Петербург, 28 января - 1 февраля 2008 г. С. 215-223.
5. Тан К.Ш., Стиб В.-Х., Харди Й. Символьный C++: Введение в компьютерную алгебру с использованием объектно-ориентированного программирования. М.: Мир, 2001. 662 с.
6. Официальный сайт библиотеки GMP . URL: http://www.gmplib.org.
7. Панюков А.В., Силаев М.М., Германенко М.И. Класс rational // Программы для ЭВМ. Базы данных. Топологии интегральных микросхем. Официальный бюллетень Российского агентства по патентам и товарным знакам. М.: ФИПС, 1999. № 4 (29). Рег. № 990607. С. 97.
8. Панюков А.В., Силаев М.М. Класс overlong // Программы для ЭВМ. Базы данных. Топологии интегральных микросхем. Официальный бюллетень Российского агентства по патентам и товарным знакам. М.: ФИПС, 1999. № 4 (29). Рег. № 990489. С. 17.
9. Панюков А.В., Германенко М.И. Сложность нахождения гарантированной оценки решения приближенно заданной системы линейных алгебраических уравнений // Изв. Челябинского научного центра, 2000. Т. 4 (9) С. 13-17. URL: http://www.sci.urc. ac.ru/news/2000_3.
10. Кнут Д. Искусство программирования для ЭВМ. Т. 2. Получисленные алгоритмы: Пер. с англ. М.: Мир, 1977. 724 с.
11. Максимов В.П. Арифметика рациональных чисел и компьютерное исследование интегральных уравнений // Соросовский образовательный журнал. 1999. № 3.
12. Люстерник Л.А., Соболев В.И. Элементы функционального анализа. М.: Наука, 1965.
13. Германенко М.И. Аналитическое и экспериментальное исследование сложности безошибочного реше-
ния систем линейных алгебраических уравнений // Тезисы второго Международного конгресса студентов, молодых ученых и специалистов «Молодежь и наука -третье тысячелетие» / YSTM'02 (Москва, 15-19 апреля 2002 г.). М.: НТА «АПФН», 2002. Ч. 2. С. 11-12.
14. Шпаковский Г.И., Серикова Н.В. Программирование для многопроцессорных систем в стандарте MPI. Минск: БГУ, 2002.
ERROR-FREE RATIONAL CALCULATIONS SOFTWARE AND ITS APPLICATION FOR SOLUTION OF LINEAR SYSTEMS
M.I. Germanenko
Theoretical and experimental results on the application of error-free rational calculations for a normal pseudosolution of linear algebraic equation systems are presented. To accelerate problem solution, it is suitable to use parallel computing. The acceleration is shown to be asymptotically proportional to the number of computers used for solving the problem.
Keywords: error-free calculations, solution of linear equation systems, complexity of error-free solution, paralle-lization, generalized inverse matrix, Moore-Penrose Matrix, Hermit method, error-free rational calculations soft-
ware.