The Multiplication Method with Scaling the Result for High-Precision Residue Positional Interval Logarithmic Computations

Cover Page


Cite item

Full Text

Abstract

Introduction. The solution of the simulation problems critical to rounding errors, including the problems of computational mathematics, mathematical physics, optimal control, biochemistry, quantum mechanics, mathematical programming and cryptography, requires the accuracy from 100 to 1 000 decimal digits and more. The main lack of high-precision software libraries is a significant decrease of the speed-in-action, unacceptable for practical problems, in particular, when performing multiplication. A way to increase computation performance over very long numbers is using the residue number system. In this work, we discuss a new fast multiplication method with scaling the result using original hybrid residue positional interval logarithmic floating-point number representation.
Materials and Methods. The new way of the organizing numerical information is a residue positional interval logarithmic number representation in which the mantissa is presented in the residue number system, and information on an absolute value (the characteristic) in the interval logarithmic number system that makes it possible to accelerate performance of comparison and scaling is developed to increase the speed of calculations; to compare modular numbers, the provisions of interval analysis are used; to scale modular numbers, the properties of the logarithmic number system and approximate interval calculations using the Chinese reminder theorem are used.
Results. A new fast multiplication method of floating-point residue-represented numbers is developed and patented; the authors evaluated the developed method speed-in action, compared the developed method with classical and pipelined multiplication methods of long numbers.
Discussion and Conclusion. The developed method is 2.4–4.0 times faster than the pipelined multiplication method, and is 6.4–12.9 times faster than classical multiplication methods.

Full Text

Введение

Рост вычислительных мощностей современных компьютеров делает возможным решение прикладных задач сверхбольшой размерности с огромным количеством вычислительных операций. Неконтролируемые ошибки округления, методологически присущие стандарту вещественных чисел IEEE 754, не позволяют решить проблему точности, достоверности и воспроизводимости вычислений при решении задач данного класса [1–5]. В частности, для решения в современных постановках задач в области экспериментальной вычислительной математики [1; 2], математической физики [4], биохимии [3], астрофизики и получения достоверных результатов требуются операции с числами длиной от 100 до 1 000 десятичных цифр (с использованием специально разработанных программных библиотек высокоточных вычислений). В связи с этим актуальными направлениями исследований являются теория и способы практической реализации вычислительной математики многократной точности (высокоточная, или длинная, арифметика), оперирующей с числами произвольной длины в сверхбольших числовых диапазонах.

Для решения задач в сверхбольших числовых диапазонах в настоящее время применяются такие специализированные программные пакеты высокоточных вычислений, как ARPREC, MPFUN90, DDFUN, FMLIB, FMZM90, QD, GMP, MPFR++, NTL, PARI/GP, CLN, HPAlib, Predicates, GARPREC, GQD, MatLab, Matematica, Maple [6]. Перечисленные программные решения базируются на специально разработанных многоразрядных форматах (128-, 256-, 512-битная (и более) арифметика) в базисах классических позиционных систем счисления и правил вычислений стандарта IEEE 754. Эти решения, благодаря наличию высокоуровневых программных интерфейсов и широкого спектра реализованных библиотек математических функций, являются наиболее популярными.

Недостатком современных пакетов высокоточных вычислений является резкое снижение скорости вычислений при обработке длинных многоразрядных операндов. При выходе длины операндов за диапазон представления данных в стандарте IEEE 754 скорость вычислений снижается в десятки и тысячи раз [2; 7] из-за необходимости алгоритмической обработки цепочек межзнаковых переносов длинных операндов. В итоге время решения задачи становится неприемлемым для практической деятельности.

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

Можно выделить два направления работ, направленных на повышение скорости вычислений при выполнении расчетов в сверхбольших числовых диапазонах. Первое направление ориентировано на модернизацию и создание новых технологий гибридных вычислений и обработки данных: численная и нечисленная обработка данных реализуется в гибридных системах кодирования с использованием «гибридных» наборов операций (сигнатур) и правил их выполнения. Математические методы и их алгоритмические решения для гибридных технологий вычислений ориентируются на программную реализацию на вычислительных платформах универсального назначения и, как правило, опираются на правила выполнения операций стандарта IEEE 754. Примером успешного использования этого подхода является библиотека высокоточной модулярно-позиционной арифметики [8], где использованы системы счисления в остаточных классах (СОК), вычисления в интервальной арифметике и позиционная система счисления стандарта IEEE 754.

Вторым направлением работ для повышения скорости вычислений в сверхвысоких числовых диапазонах является разработка специализированных средств аппаратной поддержки операций над сверхбольшими операндами, разрядность которых многократно превышает разрядную сетку современных индустриальных процессоров. Популярной технологической базой для создания таких спецпроцессоров «длинной» арифметики являются программируемые логические интегральные схемы (FPGA) и системы на кристалле [9–14]. Применение таких спецпроцессоров позволяет сократить время расчетов по сравнению с программными решениями в несколько десятков раз, но недостатки, присущие позиционной длинной арифметике, сохраняются [13]. Эти методологические недостатки позиционной арифметики приводят к необходимости построения на аппаратном уровне исполнительных устройств высокой сложности, что в конечном итоге делает невозможным создание применимых технических решений. Данная проблема частично решается введением специализированных вычислительных конвейеров; однако, как показано в работе китайских ученых [12], подобный подход также ведет к резкому увеличению аппаратных затрат, поэтому на практике число ступеней сокращается до четырех сегментов.

В связи с этим при создании средств аппаратной поддержки длинной арифметики актуален подход, ориентированный на создание вычислительных платформ, поддерживающих на аппаратном уровне технологии гибридных вычислений, что позволяет сократить аппаратные затраты по сравнению с позиционной системой счисления. Серьезный вклад в развитие этого направления внесли И. Я. Акушский, Д. И. Юдицкий, В. М. Амербаев и целый ряд не менее значимых специалистов. Наиболее широко в системах гибридных вычислений используются системы счисления в остаточных классах [8; 15; 16] и логарифмические системы счисления [17–19]. Например, системы остаточных классов успешно используются для решения задач криптографии [20; 21] и цифровой обработки сигналов [22–24].

Основным недостатком систем счисления в остаточных классах является алгоритмическая сложность выполнения немодульных операций, таких как сравнение, деление, распознавание переполнения числового диапазона, масштабирование чисел, определение знака результата выполнения операции. При вычислениях в сверхбольших числовых диапазонах выполнение перечисленных операций приводит либо к сопоставимым с их программной реализацией временным затратам, либо к практически неприемлемым аппаратным затратам. Аналогичная ситуация происходит и при использовании логарифмических систем счисления, в которых для выполнения операции алгебраического сложения с высокой точностью требуется выполнить переход в позиционную систему счисления и наоборот. Соответственно, резко увеличивается время вычислений и растут аппаратные затраты на реализацию высокоскоростных преобразователей.

В данной статье рассматривается новый, более быстрый по сравнению с аналогами метод выполнения операции умножения длинных чисел с масштабированием результата за счет применения оригинальной гибридной модулярно-позиционной интервально-логарифмической формы представления чисел с плавающей точкой. Ряд результатов по модулярно-позиционным интервально-логарифмическим вычислениям опубликован авторами ранее [25].

Обзор литературы

Основной проблемой высокоточных расчетов в сверхбольших числовых диапазонах с применением вычислительных операций по правилам стандарта IEEE 754 является выполнение контроля ошибок округления, контроля переполнения диапазона и масштабирования чисел при выполнении аддитивных и мультипликативных операций. Особенно это касается длительных итерационных и автоматных вычислений с накоплением при обработке массивов данных большого объема. Накопление ошибок при некорректно организованном контроле приводит к получению недостоверных результатов. Для обеспечения требуемой точности, достоверности и воспроизводимости расчетов в настоящее время применяются вычисления с использованием длинной позиционной арифметики, реализованной в современных специализированных библиотеках высокоточных вычислений. Основным недостатком современных библиотек длинной арифметики является неприемлемое для практики увеличение времени решения прикладных задач [4; 6]. Так, в работе китайских и итальянских ученых [7] для задач оптимального управления время вычислений возрастает с 5 с при использовании стандартного типа данных двойной точности до 980 с при использовании точности в 128 бит и до 35 ч – при использовании точности в 400 бит. Аналогичные результаты представлены в работе А. Вороса [2], где время вычисления возрастает с 4 минут до 22,5 дней. В задачах криптографии проблема ускорения арифметических операций над длинными целыми числами является не менее острой, чем в задачах моделирования [13].

Задача повышения скорости вычислений при выполнении расчетов в сверхбольших числовых диапазонах частично решается за счет применения специализированных процессоров-ускорителей для поддержки вычислений с использованием длинной арифметики. Например, японские ученые [9] представили семейство процессоров на базе FPGA, реализующих длинную арифметику типа «double-double» и «quad-double». Скорость решения задачи вычисления интегралов Фейнмана [10] с использованием данных процессоров приблизительно в 80–200 раз выше, чем скорость расчета с применением программных реализаций таких вычислений. Американскими учеными [11] приведены результаты реализации на FPGA целочисленных вычислений на длинных (разрядность – 64 000 бит) операндах в сравнении с вычислениями с применением библиотеки GMP: расчеты ускорились минимум в 5 раз при операциях сложения/вычитания и в 9 раз – при операции умножения.

Для ускорения выполнения операции умножения длинных чисел (1 024–2 048 бит) китайскими учеными [12] представлен конвейерный метод на базе 64-разрядных умножителей с глубиной конвейера до четырех ступеней (увеличение числа ступеней приводит к неоправданному росту аппаратных затрат). Как показывает анализ исследований, в области аппаратных решений умножителей в основном применяются базовые алгоритмы умножения квадратичной сложности в позиционной системе счисления [13; 14], поскольку аппаратная реализация асимптотически быстрых алгоритмов затруднена [26].

Для ускорения выполнения арифметических операций (кроме операции деления) над длинными целыми числами наиболее эффективными с точки зрения аппаратных затрат являются модулярные системы счисления. Например, исследователями [23] представлено устройство эллиптической криптографии, ускоряющее выполнение операции умножения Монтгомери с использованием 40 модулярных 15-битовых каналов. В работе австралийских ученых [16] модулярный вычислитель имеет 108 модулярных каналов с разрядной сеткой в 19 бит каждый, что позволяет работать в диапазоне чисел до 2 048 бит. Другими авторами [20] представлены модулярные устройства, позволяющие работать в диапазоне 1 024–4 096 бит.

Существенным недостатком СОК является сложность выполнения немодульных операций, таких как масштабирование, сравнение и определение переполнения диапазона представления чисел. При переполнении диапазона следует либо останавливать вычисления (так как будет получен некорректный результат), либо расширять диапазон представления чисел, либо выполнять масштабирование чисел (если это возможно).

Алгоритмы масштабирования в СОК представлены в достаточно большом количестве исследований. Разработанные методы масштабирования либо предназначены для специальных наборов модулей [27; 28], либо для масштабирования используются специальные подстановочные таблицы [22; 29; 30]. Последний подход практически неприемлем для масштабирования модулярных чисел при использовании произвольных наборов модулей большой разрядности из-за огромного (до Тбайта) объема подстановочных таблиц.

Основной сложностью при выполнении масштабирования является операция расширения базиса. Методы расширения базиса были исследованы авторами статьи ранее [25]. В результате исследований было установлено, что наиболее быстрые методы расширения базиса выполняются с использованием приближенной китайской теоремы об остатках – вычисления так называемой позиционной характеристики модулярного числа. Учеными [8] представлена интервальная позиционная характеристика (ИПХ) числа, в которой использованы преимущества интервальной арифметики [31; 32]. Использование ИПХ позволяет учитывать в явном виде ошибки округления, а также определять достоверность вычисления данной величины. Главным недостатком ИПХ является необходимость использования операций с плавающей точкой с направленным округлением, в то время как все остальные операции в СОК выполняются над целыми числами малой разрядности.

Использование логарифмической системы счисления (ЛСС) позволяет упростить выполнение операций умножения и деления, включая масштабирование [17; 33]. ЛСС превосходят по скорости и энергоэффективности арифметику с плавающей точкой на низкой разрядности операндов: до 16 бит – на любом наборе арифметических операций [18], до 32 бит – с преобладанием операций умножения и деления [19]. Дальнейшее увеличение разрядности ЛСС приводит к экспоненциальному росту сложности выполнения операций сложения и вычитания, поэтому при больших разрядностях ЛСС значительно уступает позиционной арифметике и используется только в приложениях, не требующих высокой точности [19].

В данной статье предлагается объединить преимущества СОК, ЛСС и интервальных вычислений: для высокоточных вычислений в сверхбольших числовых диапазонах рекомендуется модулярно-позиционная интервально-логарифмическая форма представления чисел и апробация эффективности таких гибридных вычислений на примере выполнения операции умножения с масштабированием.

Материалы и методы

В статье предлагается новый способ представления целых и вещественных чисел для выполнения высокоточных и достоверных вычислений в сверхбольших числовых диапазонах: гибридная модулярно-позиционная интервально-логарифмическая форма представления чисел. Вещественные числа представляются следующим образом.

  1. Мантисса вещественного числа представляется в виде целого числа в системе остаточных классов набором n остатков ‹m1, m2, ..., mn› от деления позиционного значения мантиссы на каждый из n модулей {p1, p2, ..., pn}

MСОКm1,m2,,mn,

где m i =M mod  p i M p i  – i-й остаток от деления числа M по i-му модулю pi:

m i = M p i =M M p i p i , i=1, 2, ., n,

где M p i   – целая часть частного M p i  ; {p1, p2, ..., pn} – набор оснований или базис СОК. При этом диапазон представления модулярных мантисс определяется произведением всех модулей СОК, то есть   M 0;P= p 1 p 2 p n . Для кодирования цифр мантиссы используются целые числа без знака, представленные в позиционной системе счисления, но операции над цифрами мантиссы выполняются по правилам модулярной арифметики. Любая модульная операция +,,×  над двумя числами ‹x1, x2, ..., xn› и ‹y1, y2, ..., yn›, представленными в СОК, выполняется независимо по каждому модулю:

z 1 , z 2 ,, z n = x 1 y 1 p 1 , x 2 y 2 p 2 ,, x n y n p n .

  1. Характеристика абсолютной величины мантиссы вещественного числа представляется в виде логарифмического интервала (в интервально-логарифмической системе счисления):

MИЛССLM¯=logbM¯;LM¯=logbM¯,

где log b M ¯  , log b M ¯  – логарифм числа по основанию b, вычисленный с округлением к –∞ и +∞ соответственно; M – модуль числа, представленный в позиционной системе счисления. Для кодирования характеристики мантиссы вещественного числа используется двоичная позиционная система счисления, но операции над значениями характеристик чисел выполняются по правилам интервальной арифметики и логарифметики. Результат умножения двух логарифмических интервалов L X ¯ = log b X ¯ ; L X ¯ = log b X ¯   и   L Y ¯ = log b Y ¯ ; L Y ¯ = log b Y ¯ определяется следующим образом:

L Z ¯ = log b XY ¯ = log b X+ log b Y ¯ = L X ¯ + L Y ¯ ,

L Z ¯ = log b XY ¯ = log b X+ log b Y ¯ = L X ¯ + L Y . ¯

  1. Масштаб (порядок) числа представляется в позиционной системе счисления в виде целого числа со знаком; операции выполняются также в позиционной системе счисления.
  2. Знак числа представляется в позиционной системе счисления в виде одноразрядного числа со знаком; причем знак равен –1, если число отрицательное, 1 – если число положительное, и 0 – в случае равенства числа нулю. Дополнительный признак нуля вводится с целью представления интервальной логарифмической характеристики нулевого операнда, для которого невозможно вычисление логарифма.

Таким образом, число в гибридной модулярно-позиционной интервально-логарифмической форме представляется в следующем виде:

XМПИЛ-ССm1,m2,,mn,,,λ,σ,  где M = m1, m2, ..., mn – модулярная мантисса числа; λ – масштаб (порядок) числа; L _ , L ¯  – границы интервальной логарифмической характеристики мантиссы числа; σ – знак числа.

При этом позиционное значение мантиссы вещественного числа X определяется как [X · be], где e – целое число, определяемое необходимой точностью. Например, мантисса вещественного числа, представленного в формате с плавающей точкой стандарта IEEE 754 как X= 1 s ×1.f× 2 E E 0 , где s – знак числа; 1.f – нормализованная мантисса; EE0 – порядок. При переводе в гибридную форму вычисляется так:

м M= 2 t ×1.f , где t – разрядность мантиссы, определяемая конкретным типом данных.

Итак, позиционное значение данного числа определяется следующим образом:

X=σ b λ i=1 n m i P i 1 p i p i P i ,   где   P i = P p i , P i 1 p i  – мультипликативная инверсия Pi по модулю pi, определяемая из соотношения P i 1 P i p i 1  ;   i 1 , n ; n – количество модулей.

При выполнении арифметических операций над числами, представленными в виде (1), вероятен выход за границы диапазона представления модулярных мантисс. При переполнении диапазона следует выполнить масштабирование чисел.

Масштабирование модулярных чисел выполняется на основании общего алгоритма масштабирования: пусть K – коэффициент масштабирования; Y – результат масштабирования числа X коэффициентом K; тогда результат масштабирования вычисляется по формуле:

Y= X X K K ,   где |X|K – остаток от деления числа X по модулю K.

Для случая масштабирования модулярных чисел коэффициентом, взаимно простым с основаниями СОК, используется итерационный алгоритм на основе алгоритма, предложенного сингапурскими и австралийскими учеными [27; 29].

  1. Определение |X|K, или так называемый этап расширения базиса, – получение остатка xn+1от деления числа, представленного в СОК остатками x1, x2, ..., xn по модулям p1, p2, ..., pn, на число pn+1 = K.
  2. Непосредственно масштабирование по каждому модулю выполняется по формуле:

y i = x i X K p i K 1 p i p i ,   где |K1|pi – мультипликативная инверсия по модулю pi коэффициента K.

Основные алгоритмы расширения базиса, анализ их вычислительной сложности были рассмотрены авторами в прошлой работе [25]. В данной статье используется быстрый метод масштабирования на основании китайской теоремы об остатках (КТО).

Согласно КТО, позиционное значение числа X 0 , P , представленного в СОК остатками ‹x1, x2, ..., xn› по основаниям {p1, p2, ..., pn}, вычисляется по формуле:

X= i=1 n x i P i 1 p i p i P i P = i=1 n x i P i 1 p i p i P i RP,

где P i = P p i , |Pi–1 |pi – мультипликативная инверсия Pi по модулю pi; i 1 , n  ; n – количество модулей; R – позиционный индекс.

Зная значение коэффициента R, можно вычислить остаток от деления по новому основанию без перевода модулярного числа в позиционное представление:

X p n+1 = i=1 n x i P i 1 p i p i P i p n+1 p n+1 R P p n+1 p n+1 p n+1 .

Для вычисления коэффициента R авторами разработан алгоритм с использованием целочисленных интервалов на основе приближенной интервальной оценки величины:

X ˜ = i=1 n x i P i 1 p i 1 p i = X+RP P =R+ X P ,

где целую часть величины X ˜  определяет коэффициент R, а дробную – значение X/P. Процесс вычисления коэффициента R с использованием вещественных интервалов с направленным округлением и необходимые условия корректности вычислений представлены в работе К. Исупова и В. Князькова [8]; метод вычисления коэффициента R с использованием целочисленных интервалов описан в патенте [34].

Результаты исследования

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

Для вычисления произведения Z= z 1 , z 2 ,, z n , L Z ¯ , L Z ¯ , λ Z , σ Z  чисел X= x 1 , x 2 ,, x n , L X ¯ , L X ¯ , λ X , σ X   и   Y= y 1 , y 2 ,, y n , L Y ¯ , L Y ¯ , λ Y , σ Y  необходимо:

– вычислить знак произведения σZ = = σX · σY путем алгебраического умножения знаков сомножителей;

– вычислить верхнюю границу интервальной логарифмической характеристики результата   L Z ¯ = L X ¯ + L Y ¯   путем алгебраического сложения значений нижних границ L X ¯  и L Y ¯  ИЛХ операндов в позиционной системе счисления;

– вычислить верхнюю границу ИЛХ результата L Z ¯ = L X ¯ + L Y ¯  путем алгебраического сложения значений нижних границ L X ¯  и L Y ¯  ИЛХ операндов в позиционной системе счисления;

– вычислить порядок результата λZ = λX + λY путем алгебраического сложения порядков сомножителей;

– выполнить умножение модулярных мантисс путем нахождения значений z i = x i y i p i = x i y i x i y i p i p i  для всех   i 1;n ; при этом вычисления выполняются над операндами, представленными в позиционной системе счисления по правилам модулярной арифметики.

В данной статье отсутствует описание обработки исключительных ситуаций, таких как получение машинного нуля, переполнение и т. п. Более подробно метод описан в патенте [34].

Следует отметить, что поскольку мантиссы чисел, представленные в СОК, ограничены диапазоном [0; P), то при выполнении умножения двух мантисс результат может выйти за пределы диапазона представления, то есть M Z = M X M Y P  . Для того чтобы мантисса результата была представима в СОК, необходимо выполнить операцию масштабирования:

M X M Y b a ,   где   a= log b M X M Y P ; MX, MY – позиционные значения мантисс; P – позиционное значение диапазона представления; [ ] означает округление к наибольшему целому.

Рассмотрим предельный случай, когда числа из диапазона [0; P) могут появиться с равной вероятностью. Вероятность того, что произведение двух мантисс выйдет за пределы диапазона представления модулярных мантисс, то есть MX · MY P, равна

p M Z P P1 2 P1 ln P1 P 2 PlnP P 1.

Это означает, что в предельном случае каждая операция умножения требует выполнения операции масштабирования, и при использовании позиционных характеристик (как точных, так и приближенных и интервальных) для определения коэффициента масштабирования a необходимо производить трудоемкую операцию вычисления логарифма.

В случае использования ИЛХ коэффициент a рассчитывается следующим образом:

a= L X ¯ + L Y ¯ L P ,    где L X ¯  , L Y ¯  – верхние границы интервальных логарифмических характеристик чисел X и Y; L P = log b P  – константа для конкретного диапазона представления.

Таким образом, при использовании ИЛХ для вычисления коэффициента масштабирования не требуется преобразования в позиционную систему счисления и вычисления логарифма.

При умножении модулярных мантисс целесообразно выполнять масштабирование обоих операндов до непосредственного выполнения умножения; причем, если величина обоих операндов превышает значение P , следует распределять коэффициент масштабирования между операндами таким образом, чтобы отмасштабированные операнды не превышали величину P  :

b a = b a X + b a Y ,    где baX – масштабирующий коэффициент, применяемый к первому сомножителю; baY – масштабирующий коэффициент, применяемый ко второму сомножителю; aX и aY – значения, определяемые соотношениями ИЛХ операндов следующим образом.

Пусть L 1 = L X ¯ + L Y ¯ L P  , L 2 = L X ¯ L Y ¯  ; тогда a X = L 1 + L 2 2 , a Y = L 1 L 2 2  . Если только один из операндов превышает величину P  , к нему необходимо применить масштабирующий коэффициент ba.

Таким образом, если L Z ¯ L P  , необходимо выполнить масштабирование мантисс операндов, после чего выполнить умножение отмасштабированных мантисс, а также скорректировать значение порядка результата λz = λz + L1 и значение верхней и нижней границы интервальной логарифмической характеристики результата L Z ¯ = L Z ¯ L 1  , L Z ¯ = L Z ¯ L 1 .

Процесс масштабирования является итерационным, поскольку за один шаг выполняется масштабирование коэффициентом, не превышающим 2q, где q – разрядность модулей СОК.

На каждом шаге масштабирования вычисляется значение коэффициента R и остаток от деления модулярного числа на pn+1 = 2α, где α q:

x n+1 = M X 2 α = i=1 n x i P i 1 p i p i 2 α P i 2 α 2 α R P 2 α 2 α 2 α .

Затем выполняется масштабирование коэффициентом 2α:

x~i=xiMX2αpi(2α)1pipi

где   ( 2 α ) 1 p i  – мультипликативная инверсия числа 2α по модулю pi – константа для конкретного значения модуля pi.

Все вычисления производятся над целыми числами, представленными в позиционной системе счисления, по правилам модулярной арифметики.

Если aX > q, процедура масштабирования повторяется над уже масштабированной мантиссой x~1,x~2,,x~n и так далее, пока не будет выполнено полное масштабирование коэффициентом 2αX. Аналогичным образом выполняется масштабирование второго сомножителя Y.

Подробный алгоритм деления модулярной мантиссы числа, представленного в модулярно-позиционной интервально-логарифмической форме, на число 2α (масштабирование степенью двойки), также представлен в патенте [34].

Среднее время выполнения разработанного метода равно T=p M Z P t 1 + n k t 2 ,   где p(MZ ≥ P) – вероятность того, что произведение двух мантисс выйдет за пределы диапазона представления модулярных мантисс (в предельном случае p(MZ ≥ P) = 1); t1 – время выполнения операции масштабирования; t2 – время выполнения операции умножения по модулю; k – количество параллельных модулярных каналов.

Среднее время выполнения операции масштабирования определяется следующим образом:

t 1 =j t 3 + n k t 4 + n k t 5 ,  

где t3 – время выполнения операции расширения базиса; t4 – время выполнения операции вычитания по модулю; t5 – время выполнения операции умножения по модулю на константу; j – число итераций масштабирования.

Диапазон представления модулярных мантисс   P= i=1 n p i 2 nq . Минимальный коэффициент масштабирования равен 21, максимальный равен   2 nq 2 . Максимальное количество шагов масштабирования примем равным   n 2 .

Таким образом, минимальное и максимальное время выполнения операции масштабирования равны соответственно:

t 1 min = t 3 + n k t 4 + n k t 5 ,

t 1 max = n 2 t 3 + n k t 4 + n k t 5 .

Время выполнения операции расширения базиса равно [34]:

t 3 = n k t 5 + n k t 6 + t 7 ,

где t5 – время выполнения операции умножения по модулю на константу; t6 – время выполнения операции скалярного произведения вектора на вектор-константу; t7 – время выполнения операции сложения.

Время выполнения операции умножения по модулю двух произвольных чисел приблизительно в 2 раза выше, чем время выполнения стандартного целочисленного умножения; время выполнения операции умножения по модулю на константу приблизительно равно времени выполнения стандартного целочисленного умножения [13]. Таким образом, минимальное и максимальное время выполнения разработанного метода равно:

T min = n k t 5 + n k t 6 + t 7 + n k t 4 + n k t 5 + n k t 2 = 2n k t c + n k t c + t c + n k t c + 2n k t c = 6n k +1 t c ,

T max = n 2 n k t 5 + n k t 6 + t 7 + n k t 4 + n k t 5 + n k t 2 = n 2 2n k t c + n k t c + t c + n k t c + 2n k t c = 5 n 2 +4n 2k +1 t c ,

где t7 – длительность такта.

Сравним разработанный метод с конвейерным методом умножения длинных чисел с плавающей точкой (обозначим его как Lei et al [12]), а также со стандартными методами умножения (обозначим их как Schulte ‒ Swarzlander [14] и Ishii [13]). В качестве контроля рассмотрим асимптотически быстрый метод, используемый для организации некоторых целочисленных двоичных умножителей (алгоритм Карацубы [26]). В табл. 1 представлены оценки времени выполнения разработанного метода и аналогов; n – количество слов базовой длины, необходимых для представления длинного числа; k – количество параллельных модулярных каналов. В табл. 2 выполнено сравнение времени выполнения разработанного метода и аналогов для чисел разрядности 1 024 и 2 048 бит (n = 16 64-разрядных слов и n = 32 64-разрядных слова соответственно). На рис. 1; 2 представлены расчеты времени выполнения разработанного метода и аналогов для разрядности сомножителей от 256 до 2 048 бит с использованием 64-разрядных (рис. 1) и 16-разрядных слов (рис. 2) соответственно.

 

 
 
Рис. 1. Сравнение быстродействия разработанного метода с аналогами
(с использованием 64-разрядных умножителей)
 

Fig. 1. The comparison of the developed method speed-in-action with analogues
using 64 bit multipliers
 
 
 
 
 
Рис. 2. Сравнение быстродействия разработанного метода с аналогами
(с использованием 16-разрядных умножителей)
 

Fig. 2. The comparison of the developed method speed-in-action with analogues
using 16 bit multipliers
 
 

 

Таблица  1 Сравнение временной сложности разработанного метода и аналогов

Table  1 Time complexity comparison with analogues

 

Метод умножения /Multiplication method

Время выполнения, тактов /Execution time, clock cycles

Lei at al.

n 2 4 +2n+8

Schulte ‒ Swarzlander

n2 + n + 12

Ishii

 n2 + n + 7

Предложенный метод с масштабированием /Proposed method with scaling

pn+1 = 2α

Предложенный метод с масштабированием параллельный (k = n) /Proposed method with scaling parallel (k = n)

5n+6 2

 

 

 

Таблица  2 Сравнение быстродействия разработанного метода и аналогов (в тактах)

Table  2 The speed-in-action comparison (clock cycles) with analogues

 

Метод умножения /

Multiplication method

Время выполнения, тактов /

Execution time, clock cycles

Ускорение /

Speed-up

Аналоги /

Analogues

Предложенный метод (k = n) /

Proposed method
(k = n)

1 024 бит / 1 024 bit

Lei at al.

104

43

2,4

Schulte ‒ Swarzlander

284

43

6,6

Ishii

279

43

6,4

2 048 бит / 2 048 bit

Lei at al.

328

83

4,0

Schulte ‒ Swarzlander

1 068

83

12,9

Ishii

1 063

83

12,8

 

 

Обсуждение и заключение

Разработаны новые быстрые методы умножения модулярных чисел с плавающей точкой; проведена оценка быстродействия разработанных методов; выполнено сравнение с работами других авторов. Предложенные методы в 2,4–4,0 раза быстрее конвейерного метода умножения и в 6,4–12,9 раз быстрее классических методов умножения.

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

В данной статье не учитывается время выполнения операции преобразования чисел в модулярно-позиционную интервально-логарифмическую форму представления. Авторы считают, что разработанный метод умножения будет использоваться для обработки больших объемов числовой информации, поступающей уже в необходимом формате; преобразование же данных из других форматов, в том числе стандартных, может быть осуществлено в параллельном или конвейерном режимах и не будет приводить к значительным затратам времени.

Авторами рассмотрен алгоритм масштабирования коэффициентом, равным 2a; при этом интервальная характеристика представлена в виде логарифмов по основанию 2. В то же время разработанный способ представления информации и выполнения операции умножения может быть использован и при других значениях основания логарифма. Так, разработанные методы могут быть применены для операций над числами вида M · 10E. В таком случае коэффициент масштабирования будет равен 10a. Данное преимущество может быть дополнительно использовано в задачах, критичных к ошибкам округления при вводе десятичной информации.

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

 

×

About the authors

Anastasia S. Korzhavina

Vyatka State University

Author for correspondence.
Email: as_korzhavina@vyatsu.ru
ORCID iD: 0000-0001-8270-2097
ResearcherId: S-1877-2018

Senior Lecturer, Chair of Electronic Computing Machines

Russian Federation, 36 Moskovskaya St., Kirov 610000

Vladimir S. Knyazkov

Penza State University; Vyatka State University

Email: kniazkov@list.ru
ORCID iD: 0000-0003-3820-6541
ResearcherId: Т-4089-2018

Chief Researcher, Research Institute of Applied and Fundamental Research, Professor, Chair of Electronic Computing Machines, D.Sc. (Engineering)

Russian Federation, 40 Krasnaya St., Penza 440026; 36 Moskovskaya St., Kirov 610000

References

  1. Iakymchuk R., Defour D., Collange S., Graillat S. Reproducible and accurate matrix multiplication.In: Nehmeier M., Wolff von Gudenberg J., Tucker W. (eds) Scientific Computing, Computer Arithmetic and Validated Numerics. SCAN 2015. Lecture Notes in Computer Science. 2016; 9553:126-137. DOI:https://doi.org/10.1007/978-3-319-31769-4_11
  2. Voros A. Discretized Keiper/Li approach to the Riemann hypothesis. Experimental Mathematics.2018; 1-18. DOI: https://doi.org/10.1080/10586458.2018.1482480
  3. Yang L., Ma D., Ebrahim A., Lloyd C.J., Saunders M.A., Palsson B.O. solveME: fast and reliable solution of nonlinear ME models. BMC Bioinformatics. 2016; 17:391. DOI: https://doi.org/10.1186/s12859-016-1240-1
  4. Panzer E. Algorithms for the symbolic integration of hyperlogarithms with applications to Feynman integrals.Computer Physics Communications. 2015; 188:148-166. DOI: https://doi.org/10.1016/j.cpc.2014.10.019
  5. Miltenberger M., Ralphs T., Steffy D. E. Exploring the numerics of branch-and-cut for mixed integer linear optimization. In: Kliewer N., Ehmke J., Borndörfer R. (eds) Operations Research Proceedings 2017. Operations Research Proceedings (GOR (Gesellschaft für Operations Research e.V.)). Cham:Springer; 2018. p. 151-157. DOI: https://doi.org/10.1007/978-3-319-89920-6_21
  6. Bailey D.H., Borwein J.M., Kimberley J.S., Ladd W. Computer discovery and analysis of large poisson polynomials. Experimental Mathematics. 2017; 26(3):349-363. DOI: https://doi.org/10.1080/10586458.2016.1180565
  7. Pan B., Wang Y., Tian S. A high-precision single shooting method for solving hypersensitive optimal control problems. Mathematical Problems in Engineering. 2018; 2018:7908378.DOI: https://doi.org/10.1155/2018/7908378
  8. Isupov K., Knyazkov V. Interval estimation of relative values in residue number system. Journal of Circuits, Systems and Computers. 2018; 27(1):1850004. DOI: https://doi.org/10.1142/S0218126618500044
  9. Nakasato N., Daisaka H., Fukushige T., Kawai A., Makino J., Ishikawa T., et al. GRAPE-MPs:Implementation of an SIMD for quadruple/hexuple/octuple-precision arithmetic operation on a structured ASIC and an FPGA In: 2012 IEEE 6th International Symposium on Embedded Multicore SoCs. IEEE;2012. p. 75-83. DOI: https://doi.org/10.1109/MCSoC.2012.31
  10. Daisaka H., Nakasato N., Ishikawa T., Yuasa F. Application of GRAPE9-MPX for high precision calculation in particle physics and performance results. Procedia Computer Science. 2015; 51:1323-1332.DOI: https://doi.org/10.1016/j.procs.2015.05.317
  11. El-Araby E., Gonzalez I., El-Ghazawi T. A. Bringing high-performance reconfigurable computing to exact computations. In: Bertels K., Najjar W., van Genderen A., Vassiliadis S. (eds.) 2007 International Conference on Field Programmable Logic and Applications. 2007. p. 79–85. DOI: https://doi.org/10.1109/FPL.2007.4380629
  12. Lei Y., Dou Y., Zhou J. FPGA-specific custom VLIW architecture for arbitrary precision floatingpoint arithmetic. IEICE Transactions on Information and Systems. 2011; 94(11):2173-2183. DOI: https://doi.org/10.1587/transinf.E94.D.2173
  13. Ishii M., Detrey J., Gaudry P., Inomata A., Fujikawa K. Fast modular arithmetic on the Kalray MPPA-256 processor for an energy-efficient implementation of ECM. IEEE Transactions on Computers.2017; 66(12):2019-2030. DOI: https://doi.org/10.1109/TC.2017.2704082
  14. Schulte M.J., Swartzlander E.E. A family of variable-precision interval arithmetic processors.IEEE Transactions on Computers. 2000; 49(5):387-397. DOI: https://doi.org/10.1109/12.859535
  15. Asif S., Kong Y. Highly parallel modular multiplier for elliptic curve cryptography in residue number system. Circuits, Systems, and Signal Processing. 2017; 36(3):1027-1051. DOI:https://doi.org/10.1007/s00034-016-0336-1
  16. Kong Y., Lai Y. Low latency modular multiplication for public-key cryptosystems using a scalable array of parallel processing elements. In: 2013 IEEE 56th International Midwest Symposium on Circuits and Systems (MWSCAS). IEEE; 2013. p. 1039-1042. DOI: https://doi.org/10.1109/MWSCAS.2013.6674830
  17. Coleman J.N., Che Ismail R. LNS with co-transformation competes with floating-point. IEEE Transactions on Computers. 2016; 65(1):136-146. DOI: https://doi.org/10.1109/TC.2015.2409059
  18. Kouretas I., Basetas C., Paliouras V. Low-power logarithmic number system addition/subtraction and their impact on digital filters. IEEE Transactions on Computers. 2013; 62(11):2196-2209. DOI:https://doi.org/10.1109/TC.2012.111
  19. Coleman J.N., Softley C.I., Kadlec J., Matousek R., Tichy M., Pohlet Z., et al. The European logarithmic microprocessor. IEEE Transactions on Computers. 2008; 57(4):532-546. DOI: https://doi.org/10.1109/TC.2007.70791
  20. Bigou K., Tisserand A. Single base modular multiplication for efficient hardware RNS implementations of ECC. In: Güneysu T., Handschuh H. (eds) Cryptographic Hardware and Embedded Systems – CHES 2015.Lecture Notes in Computer Science. 2015; 9293:123-140. DOI: https://doi.org/10.1007/978-3-662-48324-4_7
  21. Bajard J.-C., Eynard J., Merkiche N. Montgomery reduction within the context of residue number system arithmetic. Journal of Cryptographic Engineering. 2018; 8(3):189-200. DOI: https://doi.org/10.1007/s13389-017-0154-9
  22. Czyżak M., Smyk R., Ulman Z. Pipelined scaling of signed residue numbers with the mixedradix conversion in the programmable gate array. Poznan University of Technology Academic Journals.Electrical Engineering. 2013; 76:89-99. Available at: https://yadda.icm.edu.pl/baztech/element/bwmeta1.element.baztech-5d0a87e2-2459-476f-8c7e-2d72d07072f2/c/Czyzak.pdf
  23. Asif S., Hossain M.S., Kong Y., Abdul W. A fully RNS based ECC processor. Integration. 2018;61:138-149. DOI: https://doi.org/10.1016/j.vlsi.2017.11.010
  24. Matutino P. M., Araújo J., Sousa L., Chaves R. Pipelined FPGA coprocessor for elliptic curve cryptography based on residue number system. In: Patt Y., Nandy S.K. (eds.) 2017 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS). 2017. p. 261-268. DOI:https://doi.org/10.1109/SAMOS.2017.8344638
  25. Korzhavina A.S., Knyazkov V.S. [Base extension in residue number systems: a review and cost analysis]. Sovremennyye naukoyemkiye tekhnologii = Modern High Technologies. 2017; 12:37-42.Available at: https://www.top-technologies.ru/ru/article/view?id=36868 (In Russ.).
  26. Harvey D., van der Hoeven J., Lecerf G. Even faster integer multiplication. Journal of Complexity.2016; 36:1-30. DOI: https://doi.org/10.1016/j.jco.2016.03.001
  27. Chang C.H., Low J.Y.S. Simple, fast, and exact RNS scaler for the three moduli set (2n – 1, 2n, 2n + 1).IEEE Transactions on Circuits and Systems I: Regular Papers. 2011; 58(11):2686-2697. DOI: https://doi.org/10.1109/TCSI.2011.2142950
  28. Hiasat A. Efficient RNS scalers for the extended three-moduli set (2n – 1, 2n + p, 2n + 1). IEEE Transactions on Computers. 2017; 66(7):1253-1260. DOI: https://doi.org/10.1109/TC.2017.2652474
  29. Kong Y., Phillips B. Fast scaling in the residue number system. IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 2009; 17(3):443-447. DOI: https://doi.org/10.1109/TVLSI.2008.2004550
  30. Meyer-Base U., Stouraitis T. New power-of-2 RNS scaling scheme for cellbased IC design.IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 2003; 11(2):280-283. DOI: https://doi.org/10.1109/TVLSI.2003.810799
  31. Johansson F. Arb: Efficient arbitrary-precision midpoint-radius interval arithmetic. IEEE Transactions on Computers. 2017; 66(8):1281-1292. DOI: https://doi.org/10.1109/TC.2017.2690633
  32. Revol N. Introduction to the IEEE 1788-2015 standard for interval arithmetic. In: Abate A.,Boldo S. (eds.) Numerical Software Verification. NSV 2017. Lecture Notes in Computer Science. 2017;10381:14-21. DOI: https://doi.org/10.1007/978-3-319-63501-9_2
  33. Osinin I. A modular-logarithmic coprocessor concept. In: International Conference on High Performance Computing & Simulation (HPCS). IEEE. 2017. p. 588-594. DOI: https://doi.org/10.1109/HPCS.2017.93
  34. Knyazkov V.S., Korzhavina A.S., inventors. The method of organization of multiplying operation of two numbers in floating-point modular-logarithmic format on hybrid multicore processors. Ru Patent 2666285. 2018 Sep 06. (In Russ.).

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Fig. 1. The comparison of the developed method speed-in-action with analogues using 64 bit multipliers

Download (72KB)
3. Fig. 2. The comparison of the developed method speed-in-action with analogues using 16 bit multipliers

Download (74KB)

Copyright (c) 2025 Korzhavina A.S., Knyazkov V.S.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Founded in 1990
Certificate of registration PI № FS77-74640 of December 24 2018.

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».