УДК 004.04
АЛГОРИТМ ВЫЧИСЛЕНИЯ ИНТЕРВАЛЬНО-ПОЗИЦИОННОЙ ХАРАКТЕРИСТИКИ ДЛЯ ВЫПОЛНЕНИЯ НЕМОДУЛЬНЫХ ОПЕРАЦИЙ В СИСТЕМАХ ОСТАТОЧНЫХ КЛАССОВ
К.С. Исупов
Рассматривается метод выполнения и оценки достоверности немодульных операций в системах остаточных классов на основе новой интервально-позиционной характеристики значений модулярных чисел. Предлагается высокоскоростной алгоритм вычисления интервально-позиционной характеристики с априорно задаваемой точностью, приводятся результаты экспериментального исследования его быстродействия.
Ключевые слова: система остаточных классов, интервально-позиционная характеристика, немодульная операция.
Введение
Система остаточных классов (СОК, модулярная система) - непозиционная система счисления [1, 2], определяемая набором взаимно простых модулей (pb p2, ..., pn}. Числовой диапазон ограничен произведением P = ^pt , при этом всякое целое число x из интервала [0, P - 1], многоразрядное в позиционной системе, представляется в виде нескольких малоразрядных позиционных остатков (модулярных разрядов): x = (x1, x2,..., xn}, xt = | x |p = xmodpt. Число, представленное в такой форме, называется модулярным числом. Все модульные операции (сложение, умножение и пр.) над остатками по каждому основанию СОК выполняются отдельно и независимо, следовательно, в связи с их малой разрядностью, легко и быстро. Поэтому модулярные системы являются перспективной основой для высокоскоростной обработки чисел большой разрядности.
Однако сложность выполнения немодульных операций (сравнение, вычисление знака, оценка переполнения допустимого диапазона представления чисел, масштабирование и пр.) ограничивает область эффективного применения СОК классом узкоспециализированных задач, сводимых к массовому умножению и сложению. Немодульные операции требуют на порядок больше времени, чем модульные и вносят основной вклад в результатную сложность алгоритма. Позиционная величина модулярного числа определяется суммой |xBi + ... + xnBn\P, где B, - ортогональный базис СОК. Прямое вычисление этой суммы затруднено в связи с многоразрядностью ортогональных базисов. Поэтому для выполнения немодульных операций используются различные позиционные характеристики, дающие оценку значения модулярного числа: представление в системе со смешанными основаниями (MRC), ранг, ядро, диагональная функция (SQT) и пр. [1-4]. Однако алгоритмы их вычисления обладают высокой сложностью, поэтому актуальны исследования, направленные на создание эффективных методов выполнения немодульных процедур в СОК.
Целью данной работы является дальнейшее развитие метода выполнения и оценки достоверности операций сравнения, вычисления знака и контроля переполнения допустимого диапазона в СОК, основанного на использовании интервально-позиционных характеристик модулярных чисел [5].
1. Метод интервально-позиционных характеристик для выполнения
немодульных операций
Определение. Пусть E(x/P) - функция с областью значений [0, 1), определяющая точное отношение позиционной величины модулярного числа x = (x^ x2,..., xn} к произведению P модулей СОК. Интервально-позиционная характеристика (ИПХ) - замкнутый вещественный интервал I(x/P) := x/P, x/PJ c направленно округленными границами, которые удовлетворяют условию
включения: x/P < I(x/P) < x/P .
ИПХ отображает модулярный числовой диапазон на единичный отрезок (рис. 1) и ставит в соответствие каждому модулярному числу вещественный интервал, локализующий его относи-
тельное позиционное, в общем случае многоразрядное, значение Е (х /Р) = е п= хв
/р.
-Е(х/ Р)
Рис. 1. Интервально-позиционная характеристика модулярного числа
р
Границы ИПХ могут быть вычислены по формулам [5]
х/р = П I ^ / хі • р_1 і 1 і 'Рі \ Рі , х /Р = п I * і=1 / хі ■ Р"1 і і Рі \ Рі , (1)
і=1 V Рі ) 1 V Рі ) 1
где Р. 1 - мультипликативная инверсия от Р / рг (вес ортогонального базиса СОК), х^ - разряды
модулярного числа х, | |1 - дробная часть аргумента, X и Т - операторы округления «вниз» и «вверх» соответственно. Все рг1 являются константами, поэтому последовательное вычисле-
Р\
ние формул (1) выполняется за время О(п), а параллельное - за время 0(^ п). При знании /(х/Р) и /(у/Р) выполнение немодульных операций над х и у сводится к анализу их границ. Например,
сравнения модулярных чисел х и у достаточно проверить условия: если х/Р > у/Р, то х > у и наоборот, если х /Р < у /Р, то х < у.
Интервальный учет погрешностей округления, возникающих при вычислении формул (1) в арифметике ограниченной разрядности, обеспечивает достоверность получаемых результатов путем анализа формальных признаков корректности немодульной операции. Например, пересечение /(х/Р) П /(у/Р) ф 0 сигнализирует о нарушении достаточного условия достоверности сравнения чисел х и у, что позволяет использовать другой метод либо вычислить /(х/Р) и /(у/Р) с большей точностью. Аналогичным образом формулируются и другие правила выполнения немодульных операций: вычисление знака, оценка переполнения допустимого диапазона и пр. Таким образом, метод интервально-позиционных характеристик позволяет при достаточной точности вычисления ИПХ быстро и достоверно выполнить оценивание значения модулярного кода.
2. Оценка погрешностей вычисления ИПХ
При вычислении ИПХ с ограниченным числом разрядов происходит накопление ошибки округления. Мажорантой абсолютной ошибки является диаметр
diam / (х /Р) = х/Р - х/Р. (2)
Чем меньше diam /(х/Р), тем точнее /(х/Р) локализует значение модулярного числа х. При вычислении по формулам (1) значение диаметра прямо пропорционально количеству модулей СОК и обратно пропорционально количеству представимых разрядов границ ИПХ. Однако диаметр не отражает в полной мере точность вычисления ИПХ. Если произведение СОК большое, а значение модулярного числа лежит вблизи левой границы диапазона представления, то Е(х/Р) ^ 0, что приводит к накоплению значительной относительной ошибки ИПХ. Результатом этого является снижение информативности ИПХ и затрудняет использование таких «неточных» характеристик для выполнения немодульных операций. Повышению точности способствует вычисление ИПХ средствами длинной арифметики. Однако такой подход приводит к росту времени вычислений,
нивелируя основные преимущества рассматриваемого метода выполнения немодульных операций по сравнению с аналогами. Поэтому далее рассматривается алгоритмический способ разрешения поставленной проблемы.
Относительная ошибка ИПХ определяется максимумом ошибки ее границ:
5/(x/P) = max|5(x/P), 5(x/P)}, (3)
где
5(Х/Р) = (E(x/P) - Х/P)/E(Х/P), 5(Х/р) = (x/P -E(x/P))/E(x/P).
Положим E(x/P) = x /P. Тогда ошибка (3) будет определяться выражением 5/ (x /P) = 5( x /P) = diam / (x /P)/ E (x /P).
Зафиксируем s - предел допустимой относительной ошибки ИПХ. Минимальное модулярное число x, для которого 5 /(x/P) < s, определяется условиями x > diam /(x/P)P / s. Пусть k - количество представимых двоичных разрядов границ, n - количество модулей СОК. Тогда при вычислении по формулам (1) диаметр (2) не превышает n2~k. Обозначив у = n2~k / s, получим условие
x > yP, при у < 1. (4)
Таким образом, формулы (1) позволяют вычислить ИПХ с ошибкой, не превышающей s, только
для чисел из поддиапазона [yP, P - 1] и не пригодны для чисел, лежащих в промежутке [1, yP - 1].
Например, если P = 2128, n = 8, k = 53, то ИПХ числа x = 1,5• 286 будет вычислена с погрешностью 5 /(x/P) ~ 0,0026 < 2 8. Взяв меньшее модулярное число, например x = 1,5 285, получим 5 /(x/P) ~ 0,0052 > 2-8. Следовательно, для заданного предела ошибки s = 2-8 значение модулярного числа должно быть не меньше 286.
3. Итеративный алгоритм вычисления ИПХ
На рис. 2 представлен алгоритм, позволяющий вычислить ИПХ с относительной ошибкой, не превышающей априорно задаваемого предела е, не прибегая при этом к использованию чисел большой разрядности. Алгоритм основан на предположении, что границы ИПХ представлены в одном из стандартных двоичных форматов с плавающей точкой [6], т. е. в виде
х/Р = т • 2е, х/Р = т • 2е, (5)
где т и т - двоичные ^-разрядные мантиссы, а е - порядок (экспонента), что позволяет в пределах числового диапазона безошибочно выполнять их деление на натуральные степени двойки.
Основные принципы работы алгоритма состоят в следующем.
1. Заранее фиксируется максимальная относительная ошибка е и вычисляется значение у, константное при заданном числе модулей и разрядности границ ИПХ. Кроме этого, вычисляется вектор смещающих степеней двойки
V = (2^ ,2\...,2^ ),у/ = 1, 2, ...,g- 1 : V/< v+x, и матрица gxn смещенных весов ортогональных базисов СОК
M =
2v1 • |p-1
p
2Vg
->-1
'P1
p1
p1
2V1 • P'
-1
2Vg
P,
-1
Для определения элементов V/ вектора V и М/Л матрицы М задается упорядоченный g-набор натуральных чисел (VI, у2, ..., vg}, где VI = |_^2{(Р - 1)/(уР- 1)}], уя = Гlog2уPl, / = V/ + VI. При этом
обеспечивается существование пары соседей ^/-1, V/) таких, что если х • 2 ^ < уР, то
уР < х • 2^ < Р -1 для всех х из полного диапазона СОК.
2. В процессе работы алгоритма вначале по второй формуле в (1) вычисляется верхняя граница ИПХ, которая сравнивается с у. Если х/Р > у , то условие (4) выполняется, и тогда вычисляется нижняя граница по первой формуле в (1).
п
п
п
п J
( Начало )
х/Р = 1:т( V рг1 1 * 1 р1 » 1
3. В п
х /Р =
эотивном случае для вычисления ИПХ используются формулы
/=1
х/ 'М' ,/
Р/
V
х /Р =
I*
г=1
х/ •М' ,/
Р/
(6)
где Мл - элемент, стоящий на пересечении '-й строки и /-го столбца матрицы М, а V - '-й элемент вектора V. Числители в формулах (6) - это границы смещенной ИПХ, т. е. ИПХ для модулярного числа х • 2] (рис. 3).
4. Для определения индекса ', по которому выбираются строка из матрицы М и смещающая константа V у из вектора V, используемые в формулах (6), поочередно фиксируется ' = 1, 2, 3, ... и т. д. до тех пор, пока смещенная верхняя граница не будет > у. Выполнение этого условия означает, что требуемая точность вычислений достигнута, т. е. Ы(х • 2^' /Р) < 8 .
V
5. Деление вычисленной смещенной ИПХ на степень двойки V' = 2 ' при условии, что ее
границы представлены в двоичном формате с плавающей точкой, т. е. в виде (5), состоит в отыскании разности порядков е - V и выполняется без потери точности при е - V ' > ешш. Таким образом,
переход от I(х • 2^' /Р) к 1(х/Р) выполняется без увеличения относительной ошибки с пропорциональным уменьшением диаметра diam 1(х/Р) в V раз, и после деления: 8!(х/Р) < 8.
1
1
Рис. 3. Смещенная схема вычисления ИПХ
Техническим пределом эффективного использования рассмотренного алгоритма является (помимо очевидного условия у < 1) лишь ограничение минимального порядка етп в машинном формате с плавающей точкой, используемом для представления границ ИПХ. В частности, для формата двойной точности Ыпагу64 (1БЕБ-754): ет^ = -1022, для формата Ыпагу80: етп = -16382. Оба этих формата поддерживаются в большинстве универсальных аппаратных вычислительных платформ. Рассмотрим примеры применения алгоритма.
Пример 1. Пусть СОК задана модулями {7, 9, 11, 13}, для которых веса ортогональных базисов: {6, 5, 9, 10}. Требуется вычислить в четырехзначной арифметике ИПХ для числа
х = (4,7,3,12) с ошибкой 8 < 1 %. Для наглядности все вычисления будут выполняться в десятичной системе, поэтому приведенные выше положения имеют соответствующую десятичную интерпретацию.
1. Вначале вычислим Дх/Р) в соответствии с формулами (1):
|12 • 10|х
х /Р =
9 +113'9і
4-
'113
7 9 11 13
= |0,4285 + 0,8888 + 0,4545 + 0,2307^ = 0,0025 ,
х /Р =
т
|4 - 6І7 +т |7 - 5І9
т
|3 - 9|ц , т І12 -10|
'113
7 9 11 13
= |0,4286 + 0,8889 + 0,4546 + 0,2308^ = 0,0029.
Таким образом, Дх/Р) = [0,0025, 0,0029]. Точное значение относительной величины для числа х составляет Дх/Р) = 0,002775, поэтому 8 Дх/Р) = 9,91 %. Воспользуемся итеративным алгоритмом.
2. Необходимые константы для выбранной системы модулей:
(4 5 2 9 Л
у = 4-10-4 / 0,01 = 0,04, V = (101, 102, 103), М = 5 5 9 12
11 5 2 3 ,
3. Примем j = 1 и вычислим смещенную верхнюю границу ИПХ:
х - 101/Р =
т +т 17:59+
т
І3-2ІЦ +т |12-9І13
7 9 11 13
= |0,2858 + 0,8889 + 0,5455 + 0,3077^ = 0,0279 . Условие (4) не выполняется, поэтому принимаем j = 2:
’І13
х -102/Р =
Т І4 • 5І7 + т |7 - 5І9
т
|3-9|п +т |12- 12І1
7 9 11 13
= |0,8572 + 0,8889 + 0,4546 + 0,07701 = 0,2777 .
Полученная смещенная граница отвечает условию (4).
4. Вычисляем смещенную нижнюю границу: х • 10 /Р = 0,2773 .
5. Делением смещенных границ на второй элемент вектора V получается результатная ИПХ Дх/Р) = [0,002773, 0,002777] (ведущие нули не хранятся в регистрах ЭВМ). Ее относительная ошибка (3) составляет 0,072 %.
Пример 2. В системе с модулями из предыдущего примера даны числа х = (б,2,9,7) и
у = (2,5,1,10), требуется сравнить их по величине.
1. Вычисляем ИПХ операндов в соответствии с итеративным алгоритмом:
Х/Р = |0,2857 + 0,1111 + 0,3636 + 0,4615^ /102 = 0,002219,
Х/Р = |0,2858 + 0,1112 + 0,3637 + 0,4бЦ /102 = 0,002223,
у /Р = |0,4285 + 0,7777 + 0,8181 + 0,2307|1/102 = 0,002550,
У/Р = |0,4286 + 0,7778 + 0,8182 + 0,2308^ /102 = 0,002554 .
2. ИПХ не пересекаются, причем Дх/Р) < Ду/Р), поэтому х < У.
3. Выполним проверку переводом в десятичную систему: х = 20, у = 23.
4. Результаты экспериментов
Были проведены эксперименты, в ходе которых исследовались скорость работы итеративного алгоритма относительно аналогов, а также эффективность метода интервально-позиционных характеристик для выполнения немодульных операций. СОК бала задана 32 16-битными модулями с диапазоном P « 2480. В качестве тестовой платформы выступала система Pentium® DualCore T4400 2.2 GHz / 2 core / 3 Gb RAM / Intel C++ Compiler v13.0.
1. Исследование быстродействия итеративного алгоритма. Для реализации смещенной схемы был определен 11-элементный вектор V = (241, ..., 2410, 2440) и матрица M смещенных весов ортогональных базисов СОК размера 11x32. Рассматривались три алгоритма вычисления ИПХ: классический, основанный на вычислении формул (1) в стандартной 64-битной арифметике (тип Double языка C), итеративный, также использующий тип Double, и многоразрядный, основанный на вычислении формул (1) с использованием 490-битной арифметики библиотеки MPFR [7]. Результаты представлены на рис. 4.
Позиционное значение модулярного числа Рис. 4. Время работы алгоритмов вычисления ИПХ
Меткой на рис. 4 отмечена граница области значений модулярных чисел, в пределах которой классический 64-битный алгоритм приводит к вычислению неправильных ИПХ из-за антипереполнения [5] нижней границы. При этом итерационный и многоразрядный алгоритмы позволили
на всем числовом диапазоне [1, 2478] получить корректные ИПХ с относительной ошибкой
8 < 1 %. При одинаковой точности результатов время работы нового алгоритма меньше от 11 до 50 раз по сравнению с 490-битным алгоритмом.
Таким образом, разработанный алгоритм, благодаря учету конструктивных особенностей машинного представления ИПХ в виде чисел с плавающей точкой, обеспечивает высокую скорость их высокоточного вычисления, что позволяет эффективно оценивать значения модулярных чисел при выполнении немодульных операций над ними.
2. Исследование быстродействия метода интервально-позиционных характеристик (ИПХ) для выполнения немодульных операций в СОК. В ходе эксперимента выполнялись операции модулярного сравнения, вычисления знака, оценки переполнения допустимого диапазона представления чисел. Сравнение производилось с двумя аналогами: с алгоритмом потактового перехода от СОК к коду смешанной системы (MRC) [8] и с многоразрядным методом ортогональных базисов, основанным на преобразовании модулярных чисел из СОК в позиционную систему с использованием китайской теоремы об остатках (КТО). Цель экспериментов состояла в исследовании скорости последовательного выполнения основных немодульных операций перечисленными методами. ИПХ вычислялись с использованием итерационного алгоритма с установленным пределом относительной ошибки 8 < 1 %. Для реализации алгоритмов на основе КТО использовалась длинная арифметика библиотеки GMP [9]. Результаты экспериментов представлены на рис. 5.
ИПХ [ мяс У/Л кто
о
3-
о
Немодульная операция: а) сравнение, б) определение знака,
в) оценка переполнения при сложении,
г) оценка переполнения при умножении
Рис. 5. Быстродействие методов выполнения немодульных операций
Заключение
Исследован новый метод выполнения и оценки достоверности немодульных операций сравнения, вычисления знака и контроля переполнения допустимого диапазона представления чисел в системах остаточных классов, основанный на использовании интервально-позиционной характеристики для оценки значения модулярного кода. Данный метод не требует работы с многоразрядными числами и позволяет в общем случае выполнить перечисленные операции за время О(п) и 0(^ п) при параллельной и параллельной реализации соответственно, что на порядок ниже, по сравнению с известными аналогами на основе преобразования чисел из СОК в позиционные (смешанные) системы.
Разработан новый итеративный алгоритм высокоскоростного вычисления интервальнопозиционной характеристики. Разработанный алгоритм учитывает конструктивные особенности машинного представления границ вычисляемой ИПХ в виде двоичных чисел с плавающей точкой, заключающиеся в возможности их безошибочного деления на натуральные степени двойки в пределах целевого формата. За счет этого обеспечивается получение результата с априорно задаваемой точностью без использования многоразрядной арифметики, что позволяет быстро и успешно оценивать значения модулярных чисел при выполнении немодульных операций над ними. При вычислениях в 32-модульной СОК с полным диапазоном P ~ 2480 время работы алгоритма при одинаковой точности результатов ниже в среднем от 11 до 50 раз по сравнению с 490битным аналогом.
Данные эксперимента показывают, что скорость выполнения немодульных операций с использованием метода интервально-позиционных характеристик выше в среднем в 3,22 раза по сравнению с MRC-методом, и в 5,93 раза по сравнению с многоразрядным методом на основе китайской теоремы.
Литература
1. Акушский, И.Я. Машинная арифметика в остаточных классах /И.Я. Акушский, Д.И. Юдиц-кий. - М. : Сов. Радио, 1968. - 440 с.
2. Omondi, A. Residue Number Systems: Theory and Implementation / А. Omondi, B. Premkumar. -London: Imperial College Press, 2007. - 312p.
3. Модулярные параллельные вычислительные структуры нейропроцессорных систем /
Н.И. Червяков, П.А. Сахнюк, А.В. Шапошников, С.А. Ряднов. - М. : Физматлит, 2003. - 288 с.
4. Dimauro, G. A New Technique for Fast Number Comparison in the Residue Number System / G. Dimauro, S. Impedovo, G. Pirlo // IEEE Transactions on Computers. - 1993. - Vol. 42, no. 5. -P. 608-612.
5. Исупов, К. С. Методика выполнения базовых немодульных операций в модулярной арифметике с применением интервальных позиционных характеристик / К.С. Исупов // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2013. - № 3. - С. 31-45.
6. IEEE Standard for Floating-Point Arithmetic . - Introduced 2008-08-29. - New York: Institute of Electrical and Electronics Engineers, 2008. - 70 p.
7. The GNU MPFR Library. - Electronic text data. - Mode of access: http://www.mpfr.org/. -The title from the screen.
8. А. с. 608155 СССР, М. Кл2 G 06 F 7/04. Устройство для сравнения чисел, выраженных в системе остаточных классов / М.Г. Факторович, Ю.Д. Полисский. - № 2317604/18-24; заявл. 19.01.26; опубл. 25.05.78, Бюл. № 19. - 3 с.
9. The GNU Multiple Precision Arithmetic Library. - Electronic text data. - Mode of access: http://gmplib.org/. - The title from the screen.
Исупов Константин Сергеевич, преподаватель кафедры электронных вычислительных машин, Вятский государственный университет (г. Киров); isupov.k@gmail.com.
Bulletin of the South Ural State University Series “Computer Technologies, Automatic Control, Radio Electronics”
2014, vol. 14, no. 1, pp. 89-97
CALCULATION INTERVAL-POSITIONAL CHARACTERISTIC ALGORITHM FOR IMPLEMENTATION NON-MODULAR OPERATIONS IN RESIDUE NUMBER SYSTEMS
K.S. Isupov, Vyatka State University, Kirov, Russian Federation, isupo v. k@gmail. com
This paper describes the method of implementation and reliability evaluation of non-modular operations in Residue Number Systems which based on the new interval-positional characteristics values of modular numbers. High-speed iterative algorithm for interval-positional characteristic with a priori defined accuracy calculating is proposed, the results of experimental analysis of its performance is given.
Keywords: residue number system, interval-positional characteristic, non-modular operation.
References
1. Akushskiy I.Ya., Yuditskiy D.I. Machine Arithmetic in Residual Classes [Mashinnaya arifmetika v ostatochnykh klassakh]. Moscow, Sovetskoe radio, 1968. 440 p.
2. Omondi A., Premkumar B. Residue Number Systems: Theory and Implementation. London, Imperial College Press, 2007. 312 p.
3. Chervyakov N.I., Sakhnyuk P.A., Shaposhnikov A.V., Ryadnov S.A. Modular Parallel Computing Structures of Neuroprocessor Systems [Modulyarnye parallel'nye vychislitel'nye struktury neyro-protsessornykh sistem]. Moscow, Fizmatlit, 2003. 288 p.
4. Dimauro G., Impedovo S., Pirlo G. “A New Technique for Fast Number Comparison in the Residue Number System”. IEEE Transactions on Computers, 1993, vol. 42, no. 5, pp. 608-612.
5. Isupov K.S. The Method for Implementation Non-Modular Operations in Modular Arithmetic with Use of Interval Positional Characteristics [Metodika vypolneniya bazovykh nemodul'nykh operat-siy v modulyarnoy arifmetike s primeneniem interval'nykh pozitsionnykh kharakteristik]. Izvestiya vys-shikh uchebnykh zavedeniy. Povolzhskiy region. Tekhnicheskie nauki [News of Higher Educational Institutions. Povolzhsky Region. Technical Science], 2013, no. 3, pp. 31-45.
6. IEEE Standard for Floating-Point Arithmetic. Introduced 2008-08-29. New York, Institute of Electrical and Electronics Engineers. 2008, 70 p.
7. The GNU MPFR Library. Available at: http://www.mpfr.org/.
8. Faktorovich M.G., Polisskiy Yu.D. Device to Compare Numbers Expressed in Residue Number System [Ustroystvo dlya sravneniya chisel, vyrazhennykh v sisteme ostatochnykh klassov]. USSR Patent No. 608155, Byull. Izobret., no. 19 (1978).
9. The GNU Multiple Precision Arithmetic Library. Available at: http://gmplib.org/.
Поступила в редакцию 30 ноября 2013 г.