ПРИМЕНЕНИЕ МОДУЛЯРНОЙ АРИФМЕТИКИ ДЛЯ

advertisement
ПРИМЕНЕНИЕ МОДУЛЯРНОЙ АРИФМЕТИКИ
ДЛЯ РЕАЛИЗАЦИИ
ВЫСОКОТОЧНЫХ ВЫЧИСЛЕНИЙ1
© Оцоков Ш.А.
Национальный исследовательский университет
Московский энергетический институт, г. Москва
В работе показано преимущество высокоточных вычислений в модулярной арифметике по сравнению с традиционной арифметикой с
плавающей точкой при решении ряда вычислительных задач. Приводится оценки эффективности высокоточных вычислений в модулярной
арифметике при нахождении скалярного произведения векторов.
Большинство компьютерных вычислений проводится в арифметике с
плавающей точкой. Для решения многих вычислительных задач точность
вычислений с плавающей точкой, поддерживаемая современными ЭВМ достаточна. Однако, быстро растет число задач, для которых требуется более
высокая точность компьютерных вычислений в арифметике с плавающей
точкой [1]. К ним относятся, например, плохообусловленные задачи с точно
заданными исходными данными, задачи с разномасштабными коэффициентами и др. [2].
Классическим примером плохо обусловленной задачи с точно заданными исходными данными является обращение матрицы Гильберта [2].
Коэффициенты матрицы Гильберта hij определяются по формуле:
hi j 
1
i  j 1
где i, j – номера строки и столбца матрицы.
Ниже представлен пример обращения матрицы Гильберта с использованием метода Гаусса порядка 3 с точностью 3 знака после запятой, где:
H3-1 – матрица, обратная к матрице Гильберта третьего порядка, вычисленная в арифметике с плавающей точкой,
H*3-1 – точное решение,
I – единичная матрица.
1
Работа выполнена при поддержке гранта президента для молодых кандидатов наук МК65190.2010.9.

Доцент кафедры Вычислительных машин систем и сетей, доктор технических наук.
88
ПЕРСПЕКТИВЫ РАЗВИТИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Видно, что относительная погрешность в вычислении коэффициентов
превышает 100 %, не говоря уже о неправильном определении знака. Причем
с увеличением порядка исходной матрицы эти различия резко нарастают.
Традиционный подход повышения точности компьютерных вычислений связан с:
1. Увеличением разрядности процессоров и сопроцессоров (аппаратный уровень).
2. Применением библиотек высокоточных вычислений, таких как, например, ZREAL (Россия), MPARITH (Германия), GMP (США)
(программный уровень).
Ниже на рис. 1 представлена зависимость разрядности процессоров по
годам.
Из рисунка видно, что разрядность процессора, начиная с 1972 г до
1991 г, увеличилась в 4 раза, в то время как, тактовая частота более чем в
100 раз. Соответственно точность компьютерных вычислений увеличилась только лишь в 4 раза за 19 лет.
На программном уровне появляется возможность обеспечить любую
точность компьютерных вычислений.
Основной проблемой высокоточных вычислений с плавающей точкой,
реализованных на программном уровне (библиотеки ZREAL, MPARITH
GMP) является сильная зависимость времени выполнения арифметических
операций от точности. При малом объеме вычислений это не существенно, но
для задач большой размерности использование существующих библиотек
высокоточных вычислений приводит к резкому росту времени решения задач.
Элементы и устройства вычислительной техники и систем управления
89
Рис. 1. Зависимость разрядности процессоров и тактовой частоты по годам
Указанная проблема требует поиска новых способов, связанных в том
числе с применением нетрадиционных систем счисления и арифметик для
представления и обработки чисел.
Одной из арифметик является модулярная арифметика. В настоящее
время в многочисленных работах модулярная арифметика использовалась
как средство повышения быстродействия в цифровой обработке сигналов,
криптографии, нейронных сетях и др. областях. Модулярной системе счисления присущи возможность глубокого распараллеливания вычислений,
отсутствие информационных обменов в процессе вычислений при выполнении арифметических операций сложения, вычитания и умножения. Исследование модулярной системы счисления показало новую возможность
применения модулярной арифметики как средство повышения точности
вычислений и ослабления зависимости времени вычислений от точности
при решении некоторых вычислительных задач, таких как: нахождение скалярного произведения, решения дифференциальных уравнений методами
Рунге-Кутта, Эйлера, решения систем линейных уравнений методами Гаусса-Зейделя, релаксации, дискретном преобразовании Фурье и др. Одним из
существенных недостатков модулярной системы счисления является сложность деления чисел в ней. Особенность этих задач в том, что в них деление
производится на некоторые константы и общее число операций деления
меньше чем число других арифметических операций.
Ниже на рис. 2-4 приведены результаты оценки эффективности модулярной арифметики на примере вычисления скалярного произведения
двух m-координатных векторов. Скалярное произведение определялось с
90
ПЕРСПЕКТИВЫ РАЗВИТИЯ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
использованием библиотеки высокоточных вычислений MPArith при различной длине мантиссе числа с плавающей точкой и в модулярной арифметике. Из рис. 2 видно, что при увеличении длины мантиссы числа с плавающей точкой (что соответствует увеличению точности вычислений) возрастает время вычисления скалярного произведения.
Скалярное произведение векторов в модулярной арифметике вычислялось на многоядерном графическом ускорителе.
Рис. 2. Зависимость времени вычисления скалярного произведения
от длины мантиссы в библиотеке MPArith
Рис. 3. Зависимость времени вычисления скалярного произведения
в модулярной системе счисления от числа модулей
Зависимость времени вычисления скалярного произведения от числа
модулей в модулярной арифметике на графическом ускорителе представлена на рис. 3.
Из рис. 3 видно, что при увеличении числа модулей (что соответствует
увеличению точности вычислений) время вычисления скалярного произведения почти не изменяется, т.е. имеет место эффект слабой зависимости
времени выполнения арифметических операций от точности.
Элементы и устройства вычислительной техники и систем управления
91
Зависимость коэффициента абсолютного ускорения от длины мантиссы представлена на рис. 4. Коэффициент абсолютного ускорения Eff определяется следующим образом:
E ff 
T1
T2
где T1 – время вычислений с использованием библиотеки MPArith,
T2 – время вычислений в модулярной арифметике при той же точности.
4,5
4
3,5
3
Eff
2,5
2
1,5
1
0,5
0
200
400
600
800
1000
1200
1400
Длина мантиссы
Рис. 4. Зависимость коэффициента абсолютного ускорения
от длины мантиссы
Из рис. 4 видно, что начиная с длины мантиссы 500 происходит ускорение высокоточных вычислений в модулярной арифметике. Для длины
мантиссы меньше чем 500 Eff меньше единицы. Это объясняется накладными расходами присущими вычислениям в модулярной системе счисления. При решении некоторой задачи в модулярной системе счисления вначале исходные данные преобразуется в модулярную систему счисления,
далее в ней проводятся все вычисления, а результаты этих вычислений обратно преобразуются в позиционную систему счисления.
Список литературы:
1. David H. Bailey. High-Precision Computation and Mathematical Physics
/ Lawrence Berkeley National Laboratory. – 2009.
2. Дзегеленок И.И., Оцоков Ш.А. Алгебраизация числовых представлений в обеспечении высокоточных суперкомпьютерных вычислений // Вестник МЭИ. – 2010. – № 3. – С. 107-116.
Download