ТаЬ 1 ТзЬ 2 | Та.3 |
Чиого занятым людей 44сло незанятых Занятость I
247667 99261 54.8854
Д1Реор1е 534573
1Л - 16 лет 72545 16-18 лет И 48310
1В-21ЛВТ И 67059 21 23 пет Ш 71352
25-35 лет V 49493 35 - 45 лет ® 55947 45 - 55лет 0 62813
65и более ® 34856
Рис. 7. Результат моделирования.
Выводы
В работе предложен вариант решения важной социально-экономической задачи, связанной с обеспечением устойчивого функционирования рынка труда, с помощью программного продукта «ЕМРОТ». Рынок формализуется в виде модели самоорганизации, представляющей собой систему обыкновенных линейных дифференциальных уравнений, записанных в нормальной форме Коши. На основании полученных сведений об устойчивости системы дифференциальных уравнений можно судить о состоянии рынка труда.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Семенчин Е.А., Зайцева И.В. Математическая модель самоорганизации рынка труда для двух отраслей экономики // Экономика и математические методы. №40(2). 2004. С. 137-139.
2. Семенчин Е.А., Зайцева И.В. Математическая модель самоорганизации рынка труда для нескольких отраслей // Обозрение прикладной и промышленной математики. № 10(3). 2003. С. 740-741.
3. Васильев А.Н. Модель самоорганизации рынка труда // Экономика и математические методы. 2001. Том 37. № 2. С. 123-127.
4. Притула Т.К. Исследование устойчивости четырехвидовой модели взаимодействия приведением к системам двух уравнений // Наука. Инновации. Технологии. 2014. № 3. С. 17-24.
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
НАУКА. ИННОВАЦИИ. ТЕХНОЛОГИИ, №4,2016
УДК 004.021 Исупов К.С. [Isupov K.S.]
АЛГОРИТМЫ ОЦЕНКИ МОДУЛЯРНЫХ ЧИСЕЛ В АРИФМЕТИКЕ С ПЛАВАЮЩЕЙ ТОЧКОЙ*
Algorithms for estimating modular numbers in floating-point arithmetic
В системе остаточных классов (СОК) операции сложения, вычитания и умножения выполняются параллельно по различным цифрам (остаткам) модулярных чисел. Благодаря этому СОК используется для получения максимальной производительности во многих приложениях высокоскоростной компьютерной арифметики. Однако, СОК имеет свои недостатки, особенно в отношении таких вопросов, как оценка величины модулярных чисел. Традиционные техники для оценки величины в СОК, которые основаны на китайской теореме об остатках или преобразовании к системе со смешанными основаниями, приводят к довольно медленным и неэффективным реализациям. Для того, чтобы решить эту проблему был предложен метод интервально-позиционных характеристик (ИПХ). В данной работе рассматриваются прямые и пошаговые алгоритмы вычисления ИПХ в арифметике с плавающей точкой фиксированной разрядности. Для каждого из алгоритмов оценивается сложность (в терминах элементарных арифметических операций) и точность.
In the residue number system (RNS), the operations of addition, subtraction, and multiplication are executed in parallel for different digits (residues) of the modular numbers. Therefore, RNS is used for reaching the maximum performance in many high-speed computer arithmetic applications. However, RNS has disadvantages, especially in issues like estimating the magnitudes of modular numbers. Traditional methods for estimating the magnitudes in RNS that are based on the Chinese remainder theorem, or on the Mixed-Radix Conversion, result in rather slow and inefficient implementation. For solving this problem, the interval floating-point characteristic (IFC) method was proposed. This paper describes direct and stepwise algorithms for IFC computation in fixed-precision floating-point arithmetic. Time complexity (in terms of the elementary arithmetic operations) and accuracy are assessed for each algorithm.
Ключевые слова: система остаточных классов, оценка величины, точность, высокая производительность, алгоритмы. Key words: residue number system, magnitude estimation, accuracy, high performance, algorithms.
Введение
Система остаточных классов (СОК) [1—3], являющаяся непозиционной альтернативой двоичному преставлению чисел, популярна во многих приложениях высокоскоростной компьютерной арифметики, таких как цифровая обработка сигналов [4], криптография [5], обнаружение и исправление многократных ошибок кодирования [6, 7]. СОК задается набором попарно взаимно простых модулей {тът2,...,т„}. Динамический диапазон определяется произведением М = _mi. Любое целое X от 0 до М- 1 представляется в СОК своими остатками (вычетами) от деления
* Работа подготовлена в рамках II Международной конференции «Параллельная компьютерная алгебра и ее приложения в новых инфоком-муникационных системах».
на модули, т.е. я-кортежем (хьх2,...,хя), где х, =Хтос1 т1 или, то же самое, х, = Щ , Уникальность такого представления обеспечивается китайской теоремой об остатках [3], на основе которой определяется традиционный способ восстановления двоичной формы числа:
Х =
УхЛМ:11 м.
^^ I I I I mi г
(1)
где М = М! т., а\М 1 [ - мультипликативная инверсия М по
1 471-
отношению к т.
В СОК такие операции как сложение и умножение выполняются параллельно по остаткам операндов:
2 = Хор7-
г1 = I ор л = \х2 ору2\тг,
г, = \х» °РУп\т„-
В результате трудоемкие операции над числами большой (1о§^М) разрядности эффективно разбиваются на группы малоразрядных (\ogjv.) операций над остатками, выполняемых параллельно. Это делает весьма привлекательными методы многоразрядной арифметики на основе СОК. Однако они имеют свои недостатки, особенно в отношении таких операций, как сравнение, определение знака, контроль переполнения и пр. Пусть, например, в системе с модулями 3, 5, 7 представлены числа X 1.0,6 и 7 = (2,4,0), которые нужно сравнить. Классический способ сделать это состоит в вычислении двоичных представлений чисел согласно (1) с последующим их анализом. Так, после преобразования X = 55, У = 14, откуда X > У. Но такой способ является затратным, так как требует выполнения сложных операций умножения и сложения больших чисел и редукции по модулю М. К числу других методов оценки величины в СОК относятся преобразование к смешанной системе (\ЖС) [2, 3], монотонные функции [8], контроль четности [9] и пр. Однако часто они оказываются непрактичными, так как требуют большого объема вычислений и/ или хранения больших подстановочных таблиц.
Еще одним способом, позволяющим оценить величину числа, представленного в СОК, является интервальная оценка его относительной величины [10]. В этой статье рассматриваются различные алгоритмы вычисления такой оценки, выполняется анализ их быстродействия.
Интервальная оценка относительной величины в СОК
В основе интервальной оценки относительных величин лежит замечание, что для сравнения чисел и выполнения ряда других немодульных процедур не требуется знать точную величин}' операндов, а доста-
точно лишь иметь информацию о диапазонах ее изменения. Причем, чтобы исключить необходимость работы с большими числами в диапазоне [0, М). имеет смысл оперировать масштабированными относительно М значениями [11], изменяющимися в диапазоне [0, 1). В частности, возвращаясь к рассмотренному выше примеру, для сравнения X и Y не обязательно восстанавливать их двоичные представления. Достаточно, к примеру, достоверно знать, что Х/М находится в интервале от 0,5 до 0,7, a Y/M - в интервале от 0,1 до 0,3. Тогда можно с уверенностью сказать, что X > Y
Подобную информацию дает интервально-позиционная характеристика (ИПХ, англ. IFC - Interval Floating-Point Characteristic) I(X/M) = [ X/M. X/MI. которая для заданного X представляет собой интервальную функцию от остатков хьхь... ,х„, в общем случае удовлетворяющую неравенствам Х/М < XIM < Х/'М. Вопросы применения ИПХ для немодульных вычислений рассмотрены в [10].
Границы ИПХ хранятся в виде чисел с плавающей точкой фиксированного точности (разрядности) и вычисляются с использованием направленных округлений: Х/М - с округлением вниз (toward - / ). Х/М ~ с округлением вверх (toward + > ). Направленные округления обеспечивают автоматический учет погрешностей, что позволяет контролировать корректность результатов немодульных операций путем анализа специальных условий, исключающих ситуации, когда точности 1(Х/М) недостаточно для однозначной оценки ATM. Погрешности ИПХ отражаются в ее диаметре
diam I(X/M) = Х/М - XlM. (2)
Чем меньше диаметр (2), тем точнее 1(Х/М) локализует Х/М. Другой, в ряде случаев более удобной, мерой точности ИПХ является ее относительная ошибка
щхао_*EfflO. (3)
Х/М
От быстродействия и точности вычисления ИПХ зависит эффективность сравнения чисел в СОК и других связанных операций.
Далее для операций, выполняемых с округлением вниз и вверх, будут использоваться нотации RD() и RU(), соответственно. Предполагается, что границы ИПХ представлены двоичными числами с плавающей точкой. Точность (разрядность) границ ИПХ строго фиксирована и составляет к бит. Все вычисления, кроме целочисленных модулярных операций, выполняются в ^-битной двоичной арифметике с плавающей точкой. Будем полагать, что такая арифметика обладает следующим свойством [12]: для любой элементарной операции op е {+, -, х, для любого направленного режима округления ° е {RD, RU) и для любых чи-
сел с плавающей точкой а, Ъ, таких, что а ор Ь не приводит к переполнению или потере значимости, справедливо соотношение о(аорЬ) = (аорЬ) (1 + 5), где |8| < и, и = 2"
Прямые алгоритмы вычисления ИПХ
Разделив обе части выражения (1) на М и применив направленные округления, получим следующие выражения для границ ИПХ:
££ £»=1 I Х1 I ЦI т, (4)
Х/М =
т.
Х/М =
RU
м-1
(5)
т,
На рис. 1 представлен прямой алгоритм вычисления ИПХ на основе (4) и (5). В этом алгоритме r[ov.(X) и ги№{Х) представляют собой значения ранга числа X, соответствующие нижней и верхней границам ИПХ. Если они равны, то ИПХ является корректной. В противном случае выполняется процедура Adjust, которая анализирует причины вычисления некорректной ИПХ и «исправляет» одну из границ. Если модулярные числа распределены равномерно в диапазоне, то вероятность того, что rlaV(X) / raw(X) на шаге 12, крайне мала. Кроме этого, данная процедура одинакова для всех представленных в данной работе алгоритмов. Поэтому она не принимается в расчет при сравнении эффективности алгоритмов.
Последовательная реализация алгоритма 1 требует выполнения In элементарных операций фиксированной точности (/? целочисленных умножений, п целочисленных делений с остатком для вычисления пар (s, с), п целочисленных сложений для вычисления h и 4/7 операций с плавающей точкой для нахождения slow и ,supp). Однако, пары (s, с) могут быть вычислены параллельно для всех i, 1 < i < п, а для вычисления /г, ,s'i,JW и ,vlipp может быть использована каскадная схема суммирования. В этом случае для вычисления ИПХ потребуется, с точностью до константы, 3 log2w элементарных операций.
Используя в отношении алгоритма 1 прямой анализ ошибок округления, с учетом определенных выше свойств машинной арифметики, получим следующую границу диаметра (2):
diam I(X/M)<n22l~k. (6)
Улучшить границу (6) возможно путем применения компенсационного метода суммирования (Kahan summation formula) для вычисления ,V|OW и ,vupp [13, 14]. Данный метод значительно уменьшает вычислительную погрешность по сравнению с наивным подходом. Уменыпе-
Алгоритм 1. Input: X = (хъ х2,..., хп). Output: I(X/M) = [Х/М. Х/М
1: -Slow s
upp
h*r- О 2: for % 1 tO П do
3: (S,c) <r- (\xi\Mrl\
хАмгЛ
h<r- h + c
•Slow RD (Slow + RD(s/m,;))
•Supp RU (.Supp end for
nowPO L^lowJ + h
^upp(A') [«upp] + h
X/M<-\s lowli XIM | Supp 11 ifriow(X) ^ rupp(X) then
ADJUST(X/M, X/M)
end if
return X/M, ATM
Рис. 1.
Прямой алгоритм вычисления ИПХ.
ние погрешности достигается введением дополнительной переменной для хранения нарастающей суммы погрешностей. При этом погрешность результатной суммы не зависит от числа слагаемых. Алгоритм вычисления ИПХ с использованием компенсационного суммирования представлен на рис. 2.
Как показано в работе [14], компенсационное суммирование позволяет вычислить сумму п чисел у\,у2,...,у„ с абсолютной ошибкой Е„, удовлетворяющей неравенству
\Еп\ < [2и + 0(«и2)]хХ|^,!. (7)
¿=1
Поскольку л1ок, Л'ирр < п, то, применяя (7) к алгоритму 2 и пренебрегая членами второго порядка, получим следующую оценку диаметра ИПХ:
¿ттГ(Х/М)<п22~к. (8)
Таким образом, погрешность алгоритма 2 в п/2 раз ниже погрешности алгоритма 1. Число операций в последовательной версии алгоритма составляет около 14«. В таблице 1 приведена схема распараллеливания алгоритма 2 на примере вычисления нижней границы ИПХ для числа в четырехмодульной СОК. Общее число операций при параллельной реализации алгоритма, включая расчет к, составит около 11 х ^2п.
Алгоритм 2. Input: X = ff ь x2,ж„). Output: I(X/M) = [X/M. X/M
2
3
4
5
6
7
8 9
10 11 12
13
14
15
16
17
18
19
20 21 22
23
24
(S, Щ
■5low :upp <r
Xi I Mf1!
S
RD(s/mi) RU(s/mi)
C\ i Co i 0 for i <-— 2 to n do
§1 c) h <-Vi
zi
Ci
■5low ^
У2 <r-
Z2
c2
■5upp <
end for
flow(A') •
(Ымг1\ 1 , \
1 tTJj )
\J Ч г 1 гщ! rrii mt )
h + с RD (RD{s/rrii) - ci) RD (Sbw + 2/i)
RD (RD(Zl - slow) - yi) -
RU (Rll{s/mt) - c2) RU (supp + y2)
RU (RU(s2 - supp)
- г2
- Ы
r,
upp
(Щ
X/M
JUM
-
— L«uPP
I <5low 11
Is,
J +h J + h
upp 11
tffiow(A') ± Л then adjuskX/M, X/M) end if
return X/MJUM
Рис. 2.
Алгоритм вычисления ИПХ с компенсационным суммированием.
Другая модификация алгоритма 1 связана с отбрасыванием целой части на каждой итерации суммирования при вычислении slow и .vll|;i|;i. Этот подход реализуется алгоритмом 3, представленным на рис. 3. Для алгоритма 3 справедлива следующая оценка диаметра ИПХ:
diam I (Х/М) < пТ к. (9)
По сравнению с алгоритмом 1 погрешность уменьшается в п раз. Выполнение алгоритма 3 требует в среднем 14« операций (получение целой и дробной частей числа с плавающей точкой рассматриваются как отдельные операции). При распараллеливании требуется около 101og2« операций. Таким образом, временные затраты возрастают приблизительно в два и три раза (для последовательной и параллельной версий алгоритма, соответственно) по сравнению с алгоритмом 1. С точки зрения быстродействия, точности и простоты распараллеливания алгоритм 3 является предпочтительнее алгоритма 2.
Табл. 1.
СХЕМА ПАРАЛЛЕЛЬНОГО ВЫЧИСЛЕНИЯ ЖМ С КОМПЕНСАЦИОННЫМ СУММИРОВАНИЕМ
s, = rd
s, =rd
IM;1 {
s, =rd
x, IM,1
s, =RD
•v, МГ
>1 = s2 Уз = *4
= RD(.v, Z3 = RD (5,+х,)
С1 = RD((z1-51)-J1) сз = RD((z, - л, )->',)
«5 = -3
>• RD(.s ; с. C-) Zj = RD(.v, -!->■ ) Ci =RD((z1-J1) ~yx)
Алгоритм 3. Input: X = {хъх2,ж„). Output: I(X/M) = [ATM, A/M'
1: Slow Supp 4— ri0W(A ) •<— Гupp (A) 0
2: for i — I tO П dO
s, с
X ; МГ
x A Mr
Ci RD (Slow + RD(s/r?i?:)) Co -f- RU (supp + RU(s/r?ii))
Slow ^ kill Supp «"Hi
now(A') riow(A') + LciJ + С
Гирр(А) Г upp (A") + [c2J + С
end for
A/M <- siow A/M sUpp
Ifriow(A) ^ rupp (A') then Adjust (ATM, ATM) end if
return ATM, A .1/
Рис. 3.
Алгоритм вычисления ИПХ с отбрасыванием целой части при суммировании.
Пошаговые алгоритмы вычисления ИПХ.
Как следует из (6), (8) и (9), при использовании прямого алгоритма и его модификаций диаметр ИПХ не пропорционален величине числа. Это является основным недостатком рассмотренных алгоритмов, так как если число X, для которого вычисляется ИПХ, мало по сравнению с М, то относительная ошибка (3) оказывается неприемлемо большой. Данного недостатка лишены рассматриваемые далее алгоритмы, в которых для достижения заданной точности вычислений используется пошаговая техника.
Пошаговый подход предполагает, что границы ИПХ представлены нормализованными двоичными числами с плавающей точкой и состоит в том, что если X слишком мало по сравнению с М. то вначале итерационно находится смещенная ИПХ - характеристика числа X х 21', относительная ошибка которой не превышает заданного предела. Далее смещенная характеристика без погрешности масштабируется коэффициентом 21', в результате чего диаметр искомой ИПХ уменьшается в 2Г> раз. Такая техника позволяет вычислить ИПХ с любой заданной точностью, при условии, что результат лежит в пределах нормализованного машинного диапазона. Для реализации пошагового подхода фиксируется точность 6 < 1, константа | = п22] |: / е < 1/4, рассчитываются и сохраняются в подстановочных таблицах кортеж смещений
(Ю)
где ч=[1(^2(1/22'\|/')1- ё=+1°ё2V) /'(2+1о§2¥)]• и матрица смещенных мультипликативных инверсий
5 =
521 522
Л1 Sg2
2п
gn
Г1 х IМ:
(П)
Вычисления выполняются в соответствии с алгоритмом, приведенным на рис. 4.
Шаг 1 алгоритма 4 представляет собой рассмотренный ранее прямой алгоритм. На шаге 9 проверяется достижение заданной точности. Можно доказать, что, в условиях справедливости оценки (6), если Х/М>\|/, то Ы(Х/М) < е/(1 —в). Если требуемая точность не достигнута, то выполняется уточняющий цикл, где осуществляется подбор необходимого смещения, при котором достигается заданная точность вычислений. Способ задания кортежа (10) обеспечивает, с одной стороны, что условие завершения цикла будет выполнено, а с другой, что при вычислении смещенной верхней границы Х^М не произойдет переполнения вследствие цикличности диапазона, обусловленной редукцией по модулю 1. Далее,
Алгоритм 4. Input: X = {wi,X2, • • •, хп) ^ 0. Output: 1(Х/М), для которой 5I(X/M) < г/( 1 — s), где ж фиксировано.
г.у Л/. Х/М) «н StraightforwardIFC(A') ir Л Л/ > ф then
return Х/М, Х/М end if г <- 0 repeat
i г + 1
.V; Л/
ru /щ
9: Until Xi/M > ф 10: Xj/M 11: Х/М <
12: Х/М
13: return Х/М, Х/М
Xj/M / 2Vi
X, л/ / SF*
i> Алгоритм 1
Рис. 4.
Пошаговый алгоритм вычисления ИПХ с заданной точностью.
после отбрасывания целых частей сумм, границы смещенной ИПХ масштабируются /-м элементом кортежа У-21'. В арифметике с плавающей точкой операция деления на степень двойки выполняется посредством изменения значения порядка (экспоненты) делимого, без модификации его мантиссы, поэтому не приводит к увеличению относительной ошибки.
Если выполнение уточняющих итераций не требуется, то алгоритм 4 обладает такой же вычислительной сложностью, что и алгоритм 1, т.е. требует в среднем 1п и операций, при последовательной реализации
и при распараллеливании на п потоков, соответственно, предполагая, что г1ащ(Х) = г,щ{Х) на шаге 12 алгоритма 1.
При максимальном числе уточняющих итераций дополнительно потребуется выполнить, соответственно, Зя(§+1) и 1) элементарных операций при после-
Алгоритм 5. Input: X = (;/:. х-,...., хп) / 0. Output: 1(Х/М), для которой $I(X/M) < s/( 1 — г), где s фиксировано.
1: (A/M, A/M ) <b- STRAIGHTFORWARDIFC(A) 2: tor all 1 <i<g in parallel do
3: ХЦМ ru (eu ru(i2>^l /
> Алгоритм 1
J,
(Ai/M >гр)? 1 : 0
Pi <r-end for
Выбрать i и A'¡/M соответствующие первому pi = 1
7: АЖ
lîl){>:; lïl)( XjSjj ../,/;
8: A/M <- A; .1/ / 2l'!
9: Ш A; .1/ / 2l'! 10: return A/M, A/M
Рис. 5. Параллельный алгоритм вычисления ИПХ с заданной
точностью.
довательных вычислениях и при использовании каскадной схемы суммирования для расчета Х^М и Х{!М.
Стоит заметить, что все итерации уточняющего цикла могут быть выполнены параллельно, с формированием и последующим анализом признаков достижения заданной точности. Параллельная версия алгоритма представлена на рис. 5.
При максимальном числе уточняющих итераций для выполнения алгоритма 5 с распараллеливанием уточняющего цикла на g потоков потребуется приблизительно \Ъп операций. Если дополнительно распараллеливать вычисления по модулям СОК при подсчете сумм в алгоритме 1 и на шагах 3 и 7 алгоритма 5, то потребуется около 51о^п операций. При такой полностью параллельной реализации алгоритма необходимо, чтобы устройство позволяло запускать п х g потоков, выполняющихся одновременно.
Отметим, что в пошаговых алгоритмах могут быть применены рассмотренные ранее методы уменьшения
погрешностей при суммировании, что позволит уменьшить величину g и снизить количество уточняющих итераций. Однако при этом увеличивается сложность каждой итерации. Поэтому такой подход видится нецелесообразным, во всяком случае, для алгоритма 5.
Идентификация причин вычисления некорректной IIIIX
На шаге 12 алгоритма 1, лежащего в основе всех остальных алгоритмов, выполняется проверка равенства rlow (X) и rupp (X), и если эти числа не равны, то ИПХ является "некорректной". При этом выполняется процедура Adjust. Эта процедура в общем случае может быть реализована следующим образом:
Шаг 1. Вычисляется истинный ранг числа г (X).
Шаг 2. Числа rlow (X) и г {X) сравниваются с г (X) и выполняется корректировка одной из границ ИПХ по следующим правилам:
— Если г (X) = rlow(X), то некорректно вычислена верхняя граница Х/М. В этом случае следует принять X !М =
где Ц-^- - заранее вычисленная с высокой точностью константа, такая, что -Ц—1 < Ц^-.
' ' м м
— Если г {X) = rupp§i), то некорректно вычислена нижняя граница Х/М. В этом случае следует принять Х/М = ИМ. где ИМ- заранее вычисленная с высокой точностью константа, такая, что 1 !М> ИМ.
Легко доказать, что, если rlow (X) Ф r,w(X). то один из приведенных случаев будет иметь место. Для вычисления г(Х) может быть использована техника, основанная на теореме о ранге суммы [1]. При использовании подстановочных таблиц сравнительно небольшого размера эта техника позволяет вычислить г(Х) за п итераций, на каждой из которых выполняются только целочисленные операции небольшого размера.
В заключение, приведем другие способы разрешения проблемы вычисления некорректной ИПХ:
Способ 1 (редукция модулярного диапазона). Если ограничить диапазон возможных значений чисел так, чтобы гарантировать, что Х/М вычисляется корректно (не происходит переполнения вследствие цикличности диапазона, обусловленной редукцией по модулю 1), то проверка корректности ИПХ (равенства rlow (X) и rupp (X)) может быть исключена. Это позволит получить корректный ре-
зультат при вычислении ИПХ даже для очень малых чисел в СОК, избежав дополнительных накладных затрат.
Способ 2 (использование избыточного модуля). Может быть использован один избыточный модуль т„. небольшого размера. Избыточный вычет хя+1 должен обрабатываться также как и все остальные вычеты. Тогда, если riow Ю Ф f (X), то необходимо вычислить смещенную ИПХ /(Л' /•.). характеризующую величину числаХ в расширенном наборе модулей {т^т^,..., ю„+\} с диапазоном Е = I Щ. Если для I(X Е) равенство rlow (X) = rupp (X) по-прежнему не выполняется, то X - маленькое число, локализованное вблизи нуля, то есть, некорректно вычислена нижняя граница Х/М. Если вышеуказанное равенство выполняется, то либо X располагается вблизи М, либо, X - маленькое число, но за счет меньшей погрешности 1(Х'Е) вычислена корректно. В любом из двух последних случаев искомая корректная ИПХ 1{Х/М) вычисляется из 1{Х/Е) делением границ на избыточный модуль.
Выводы
Все рассмотренные варианты вычисления интерваль-но-позиционной характеристики чисел, представленных в СОК, требуют выполнения только целочисленных операций по модулям т, и операций с плавающей точкой фиксированной разрядности. Они могут быть легко реализованы на устройствах, поддерживающих стандартную двоичную арифметику с плавающей точкой, как программным способом, так и аппаратно.
При работе в больших динамических диапазонах предпочтительными являются пошаговые алгоритмы, так как они, в отличие от прямых, позволяют получить результат с заданной точностью вне зависимости от величины входных данных. Если числа распределены равномерно в диапазоне СОК, то выполнение уточняющих итераций потребуется лишь в редких случаях, поэтому в среднем быстродействие пошаговых алгоритмов сравнимо с быстродействием прямых алгоритмов. Полностью параллельная реализация пошаговой техники на п х g потоках даже при максимальном числе уточняющих итераций обладает сложностью ()(\ogji). что на порядок меньше по сравнению с традиционными методами оценки величины в СОК, например, MRC. Полностью параллельную реализацию целесообразно применять на вычислительных архитектурах, обладающих большими возможностями параллельной обработки, таких как современные GPU и FPGA.
Рассмотрены различные варианты разрешения неоднозначных ситуаций, которые могут возникнуть при вычислении ИПХ. Для большинства практических случаев, по крайней мере, при равномерном распределении модулярных чисел в динамическом диапазоне, вычисленная ИПХ будет корректной (равенство г1ош (X) = г (X) будет выполняться) и ее корректировка не потребуется. Поэтому общий вариант, основанный на вычислении функции ранга модулярного числа, характеризующийся сложностью 0(п), кажется вполне приемлемым. Он не накладывает ограничений на диапазон СОК и не требует исполь зования избыточных модулей.
БЛАГОДАРНОСТИ
Работа выполнена при финансовой поддержке РФФИ в рамках научного проекта № 16-37-60003 мол_алк.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Акушский И.Я., Юдицкий Д.И. Машинная арифметика в остаточных классах. М.: Сов. радио, 1968.
2. Szabo N.S., Tanaka R.I. Residue Arithmetic and its Application to Computer Technology. New York: McGraw-Hill, 1967.
3. Parhami B. Computer Arithmetic: Algorithms and Hardware Designs. New York: Oxford Univ. Press, 2000.
4. Albicocco P., Cardarilli G.C., Nannarelli A., Re M. Twenty years of research on RNS for DSP: Lessons learned and future perspectives// Proceedings of the 2014 International Symposium on Integrated Circuits (ISIC). Singapore, 2014. P 436-439.
5. Esmaeildoust M., Schinianakis D., Javashi H., Stouraitis Т., Navi K. Efficient RNS implementation of elliptic curve point multiplication over GF(p) // IEEE Trans. VLSI Syst. 2013. Vol. 21. № 8. P. 1545-1549.
6. Goh V.T., Siddiqi M.U. Multiple error detection and correction based on redundant residue number systems // IEEE Trans. Commun. 2008. Vol. 56. № 3. P. 325-330.
7. Червяков Н.И., Нагорнов Н.Н. Коррекция ошибок при передаче и обработке информации, представленной в СОК, методом синдромного декодирования // Наука. Инновации. Технологии. 2015. № 2. С. 15-40.
8. DimauroG., ImpedovoS., Pirlo G. A new technique for fast number comparison in the residue number system // IEEE Trans. Comput. 1993. Vol. 42. № 5. P. 608-612.
9. Yang J.-H., Chang C.-C., Chen C.-Y. A high-speed division algorithm in residue number system using parity-checking technique // International Journal of Computer Mathematics. 2004. Vol. 81. №6. P. 775-780.
10. Князьков B.C., Исупов K.C. Немодульные вычисления в системах остаточных классов с интервально-позиционными характеристиками / ВятГУ. Киров, 2015. 92 с. Библиогр. 54 назв. Деп. в ВИНИТИ РАН 26.03.2015, № 61-В2015.
11. Hung C.Y., Parhami В. An approximate sign detection method for residue numbers and its application to RNS division // Computers & Mathematics with Applications. 1994. Vol. 27. № 4. P. 23-35.
12. Muller J.-M., Brisebarre N.. de Dinechin E, Jeannerod C.-P, Lefevre V., Melquiond G., Revol N., Stehle D., Torres S. Handbook of Floating-Point Arithmetic. Boston: Birkhauser, 2010.
13. Goldberg D. What Every Computer Scientist Should Know About Floating-Point Arithmetic//ACM Computing Surveys. 1991. Vol. 23. №. 1. P. 5-48.
14. Higham N.J. The accuracy of floating point summation // SIAM Journal on Scientific Computing. 1993. Vol. 14. №4. P. 783-799.
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
НАУКА. ИННОВАЦИИ. ТЕХНОЛОГИИ, №4, 2016
удк 621.395.7 Лавровская Т.В. [Lavrovska T.V.],
Рассомахин С.Г. [Rassomakhin S.G.], Малофей А.О. [Malofey А.О.]
АНАЛИЗ МЕТОДА ЛИНЕЙНОГО ЦЕЛОЧИСЛЕННОГО ДЕКОДИРОВАНИЯ ПСЕВДОСЛУЧАЙНЫХ КОДОВ*
Methods of analysis of linear integer decoding pseudo-random codes
Научно-технический и социально-экономический прогресс в корне изменили жизнь миллионов людей, предоставив безграничные возможности для получения и обмена информацией. Однако в связи с этим из года в год возрастает количество технических средств обработки и передачи информации, которые работают в сетях беспроводной связи. Эта проблема приводит к необходимости разработки технологий для рационального использования радиочастотного ресурса. На сегодняшний день псевдослучайное кодирование является практически единственным способом для обеспечения требуемого уровня помехозащищенности конфиденциальной информации, циркулирующей в сети со случайными и умышленными угрозами. Теоретической основой, подтверждающей корректность данного тезиса, является работа К. Шеннона. Приведены преимущества использования псевдослучайных кодов, которые позволят существенно снизить канальные затраты на передачу, но позволят существенно повысить скорость. Однако на сегодняшний день эта технология не применяется, так как декодирование таких кодов, связано с использованием правила максимального правдоподобия, которое для блоков длиной 20-30 канальных символов является вычислительно нереализуемым. В статье предложен метод декодирования псевдослучайных кодов на основе применения метода ветвей и границ.
Scientific and technical and social and economic progress changed life of millions of people, it has given boundless opportunities for receiving and information exchange. However, in this regard the number of technical means of processing and information transfer increases from year to year. This problem results in need of development of technologies for rational using of radio-frequency resource. Today pseudorandom coding is almost only way for support of required level of noise protection of confidential information. Advantages of use of pseudorandom codes which will allow to lower channel costs of transmission, but will allow to increase speed significantly are given. But today this technology isn't applied because decoding of such codes is connected to use of the rule of maximum likelihood. For blocks 20-30 channel characters is computationally infeasible. The method of decoding of pseudorandom codes on the basis of application of a method of branches and boundaries is offered.
Ключевые слова: псевдослучайные коды, линейный конгруэнтный генератор, евклидово пространство кода, метод ветвей и границ, системы передачи информации.
Key words: pseudorandom codes, linear congruent generator, Euclidean space of a code, method of branches and borders, systems of information transfer.
Работа подготовлена в рамках II Международной конференции «Параллельная компьютерная алгебра и ее приложения в новых инфоком-муникационных системах».