Червяков Н - Инженерный вестник Дона

реклама
Исследования методов выполнения немодульных операций в системе
остаточных классов
Н.И. Червяков, М.А. Дерябин, А.А. Зайцев, Е.В. Воробьева, Е.С.
Карнаухова
Введение
В настоящее время в связи бурным развитием инфокоммуникационных
технологий появляются новые подходы к решению задач обработки и
передачи информации. Исследования современных подходов отечественных
и
зарубежных
специалистов
показывают,
что
одним
из
наиболее
перспективных способов решения задач, связанных с уменьшением времени
обработки данных и увеличением надежности вычислительных средств,
является использование различных методов параллельной обработки данных,
в том числе и систем счисления с естественным параллелизмом. Одно из
ведущих
направлений
исследований
в
этой
связано
с
созданием
отказоустойчивых высокопроизводительных средств обработки информации
на основе использования системы остаточных классов (СОК) [1-5].
Основным преимуществом СОК является параллельная обработка
информации, что позволяет выполнять арифметические операции без
переноса данных между каналами с различными основаниями и способствует
сокращению задержек сигналов [6]. Основным сдерживающим фактором
СОК можно считать трудность выполнения немодульных операций, таких
как деление, определение знака числа, сравнение и расширение системы
оснований [7-9].
Точные методы определения позиционных характеристик числа в
системе остаточных классов
СОК определяется набором взаимно-простых чисел
называемых
модулями.
Наибольшее
число,
которое
 p1 , p 2 , ..., p n  ,
может
быть
n
представлено в СОК с данным набором модулей, равно P  1, где P   pi
i 1
диапазон СОК [1]. Исследования показывают, что эффективная реализация
СОК с использованием технологий параллельной обработки данных
позволяет в несколько раз ускорить выполнение модулярных операций.
Однако модулярный подход добавляет ряд ограничений на возможности
действий с числами, что приводит к так называемым немодульным
операциям [2,3]. Немодульные операции в СОК, в отличие от модульных,
предполагают взаимосвязь разрядов по различным основаниям системы, что
приводит к возникновению обменов между параллельными каналами
обработки данных. Рассмотрим далее основные точные методы определения
позиционных характеристик чисел.
Метод ортогональных базисов. Пусть число A задано в СОК:
A1 , 2 , ..., n  . Основная идея метода ортогональных базисов [1, 10] состоит
в том, что число A представляется в виде
A   1 B1   2 B2  ...   n Bn
P
где B1 , B 2 , …, B n являются базисными элементами и имеют следующий
вид в СОК: B1  1, 0, ..., 0 , B2  0,1, ... , 0  , …, Bn  0, 0, ... , 1 . Для вычисления
величин B1 , B 2 , …, B n используется формула Bi 
mi P
, i  1, 2, ..., n , где
pi
n
P   pi – диапазон СОК, m i – целое положительное число, называемое
i 1
весом базиса и определяемо из сравнения
Пример.
Пусть
дана
mi P
 1mod p i  .
pi
система
оснований
p1  2, p 2  3, p3  5, p 4  7, p5  11, объем диапазона P  2  3  5  7 11  2310.
Перевести число A  (1,2,1,4,7) в позиционную систему.
Вычислим ортогональные базисы. Для этого найдем величины
P1 
Pi :
P
P
P
P
P
 1155, P2 
 770, P3 
 462, P4 
 330, P 
 210.
p1
p2
p3
p4
p5
Далее находим веса базисов:
1155 m1  1(mod 2),
m1  1(mod 2).
770 m2  1(mod 3),
m2  2(mod 3).
462 m3  1(mod 5),
m3  3(mod 5).
330 m4  1(mod 7),
m4  1(mod 7).
210 m5  1(mod 11),
m5  1(mod 11).
Вычисляем базисы:
B1  m1  P1  1  1155  1155,
B2  m2  P2  2  770  1540 ,
B3  m3  P3  3  462  1386 ,
B4  m4  P4  1  330  330,
B5  m5  P5  1  210  210 .
Далее вычисляем число A :
A  1  1155  2  1540  1  1386  4  330  7  210 2310  8411 2310  1481 .
Метод функций Эйлера. Суть метода преобразования кортежа
1 ,  2 , ...,  i  в позиционное число A , основанного на применении функций
Эйлера,
описана
далее.
Число
A
представляется
следующим
способом: A  p1l1  1 , где l1 показывает, сколько раз число p1 укладывается
в числе A . Обозначим разность между основаниями
p1 и
p 2 как
p 2,1  p 2  p1 .
В этом случае
A  p 2 l1  p 2,1l1  1 .
(1)
A   2 mod p 2 .
(2)
С другой стороны,
Сравнение
(2)
с
учетом
(1)
можно
переписать
как
p 2 l1  p 2,1  1   2 mod p 2 .
Учитывая что p 2 l1  0 mod p 2 , то получим
l1p 2,1  1   2  mod p 2
(3)
Решением сравнения (3) является выражение
  p2 1
l1  1   2 p 2,1
mod p2  ,
(4)
где   p 2  - функция Эйлера. В случае, когда p 2 является простым числом
(что не является обязательным условием при построении СОК), выражение
(4) примет вид
l1  1   2 p 2,12
p 2
mod p2  .
(5)
Переписывая (4) с учетом (5), получим
p 2 
A1  p1 p 2,12
p 2
где p 2,12
p2
  1   2  p   1 ,

2
– константа, определяемая выбором системы оснований СОК,
A – наименьший неотрицательный вычет по модулю p1  p 2 . Далее запишем
A1  p 2 p 2 l 2  A , где l2 показывает, сколько раз p1  p2 укладывается в числе
A , и т. д. После ряда преобразований, получим

Ai  p i 1  i  i 1  Ai 1

i
 pj
j 1
i
 pj
 i

  i 1 , где  i    p j  p j 1 
 j 1




i


   p j  1
 j 1

.
i
 pj
j 1
j 1
Пример. Пусть основания СОК p1  3, p 2  5, p3  7, p 4  11. Диапазон
системы P  1155 . Найдем число A  (1,2,0,8).
A1  p1 ( p1  p2 )
 3 2
3 
5

 ( p2 ) 1 
p2
(1   2 )

 1  3  (5  3)
p2

(1)  1  3  3  (1) 5  1  3  2  1  7.
5
 ( 5) 1 
5

(1  2)  1 
5
A2  p1  p2 ( p1 p 2  p3 ) ( p3 )1


7
7

p3
( 3  A1 )



7
7
 A1  3  5 (3  5  7) ( 7 )1 (0  7)  7 
p3
 15  85 (7)  7  15  0  7  7.
A3  p1  p 2  p3 ( p1 p2 p3  p 4 ) ( p4 )1

p4
( 4  A2 )

 A2 
p4



11
11
11
 3  5  7 (3  5  7  11) (11)1 (8  7)  7  105  94 9

1  7  105  2  7  217.
11
Получаем A  217.
Метод обобщенной (полиадической) системы счисления. Данный
метод предполагает использование в качестве оснований взвешенной
позиционной системы счисления [6] чисел, равных произведениям модулей
СОК [3]. Число X  P имеет вид x1 , x2 , ..., xk , 0  xi  pi в обобщенной
k 1
позиционной системе счисления, если: X  x1  x 2 p1  x3 p1 p 2  ...  x k  pi ,
i 1
где xi  0, pi  есть цифры числа X в обобщенной позиционной системе
счисления,
которые
равны:
x3   x3  x1 c13  x2 c23 mod p3 ,
x1  x1 mod p1 ,
…,
x 2   x 2  x1 c12 mod p 2 ,
xk  ... xk  x1 c1k  x2 c2 k  ... 
 xk 1 ck i , k mod pk .
Константы cij являются мультипликативными обратными величинами
для pi по модулю p j при всех 1  i  j  k , то есть cij  pi  1mod p j для
1  i  n , и могут быть вычислены, например, с помощью обобщенного
алгоритма Евклида.
Пример. Дана система оснований p1  2, p 2  3, p3  5, p 4  7, p5  11.
Диапазон P  2310. Необходимо перевести число A  (1,2,1,4,7) в ОПСС.
Вычислим константы cij :
c12 
c23 
1
1
1
 3; c14 
 2; c13 
25
2
23
1
1
 2; c 24 
35
3
 5; c 25 
7
 4; c15 
7
1
 4;
3 11
1
 6;
2 11
c34 
c 45 
1
5
 3; c35 
7
1
 9;
5 11
1
 8;
7 11
Далее, пользуясь алгоритмом, описанным выше, получаем:
x1  A 2  1;
x5 
A
p1 p 2 p3 p 4
 A
x 2   
 p1 
p2
 A 
 2; x3  

 p1 p 2 
 1;
x 4 
p3
A
p1 p 2 p3
 0;
p4
 7.
p5
Таким образом A  a5 p1 p 2 p3 p 4  a 4 p1 p 2 p3  a3 p1 p 2  a 2 p1  a1 
 7  2  3  5  7  0  2  3  5  1 2  3  2  2  1  1481 .
Все перечисленные методы обладают существенным недостатком,
сильно
замедляющим
их
выполнение
и
ухудшающим
возможности
реализации. При обработке чисел в СОК при помощи точных методов
происходит обработка значительного объема избыточной информации. Так,
например, при сравнении чисел, нам не требуется знать, насколько одно
число больше или меньше другого, а достаточно лишь получить ответ
«больше» или «меньше» [8]. Применение известных точных методов
обработки
модулярных
чисел
неизбежно
приводит
к
накоплению
избыточных сведений о величине числа в целом и существенно замедляет
скорость вычислений.
Приближенные методы определения позиционных характеристик числа
в системе остаточных классов
Метод интервальных оценок. Данный метод является приближенным
[2]. Суть метода состоит в том, что числовой диапазон P разбивается на pi
 P
P
интервалов  j
,  j  1  , при
pi 
 pi
j  1, 2, ... , pi  1. Определение номера
интервала, в котором находится рассматриваемое число, позволяет получить
оценку данного числа по его величине с точностью до величины интервала.
Процедура определения знака числа в свою очередь сводится к операции
выявления принадлежности интервала, в котором находится представленное
в СОК число, к группе положительных или отрицательных интервалов по
заданному pi , на которые разбит диапазон P . При этом число интервалов
определяется величиной
P
. Если в набор оснований не входит ни одного
pi
четного числа, то диапазон разбивается на нечетное число интервалов по
выбранному модулю pi . В данном случае имеется критический интервал,
являющийся границей между положительными и отрицательными числами.
Данный критический интервал необходимо разделить на две части, а процесс
определения знака числа при этом сводится к сравнению остатка по модулю
pi , что резко усложняет процесс выполнения немодульных операций.
Метод относительных величин. Основная идея приближенного
метода определения позиционной характеристики числа в СОК заключена в
использовании относительных величин анализируемых чисел к полному
диапазону Китайской теоремой об остатках [7]. Данная теорема является
главной
теоремой
модулярной
арифметики
и
устанавливает
связь
позиционного числа А с его модулярным представлением 1 , 2 , ..., n  , где
 i – наименьшие неотрицательные вычеты числа относительно модулей
системы остаточных классов p1 , p2 , ..., pn , следующим выражением
A
n
P
p
i 1
Pi1  i ,
pi
i
n
где P   p i , pi - модули СОК, Pi 1
i 1
относительно pi , и Pi 
pi
(6)
P
– мультипликативная инверсия Pi
P
 p1 p2 ... pi 1 pi 1... pn . Если в выражении (6)
pi
правую и левую части разделить на константу P , соответствующую
диапазону чисел, то получим приближенное значение
A

P
n

Pi 1
pi
pi
i 1
i 
n
 k i i
i 1
,
1
1
где k i 
Pi1
pi
pi
– константы выбранной системы, а  i – разряды числа,
представленного в СОК, при этом значение каждой суммы будет в интервале
0, 1 .
Пример. Пусть дана система оснований p1 = 2, p2 = 3, p3 = 5, p4 = 17, p5 =
19, объем диапазона P  2  3  5 17 19  9690 . Величины P1 
P2 
P
 4845,
p1
P
P
P
P
 3230, P3 
 1938, P4 
 570, P5 
 510 .
p2
p3
p4
p5
Восстановим число A = (0, 0, 2, 6, 8) в позиционной системе счисления,
точное значение этого числа A = 312. Найдем его приближённое значение и
округлим его до ближайшего целого числа.
Решение.
Найдем константы k i 
1
4845
k1 
2
2
Pi
1
pi
pi
:
1
3230
1
  0,5; k 2 
3
2
3

2
 0,66667 ;
3
1
1
1938 5 2
570 17 2
k3 
  0,4; k 4 

 0,11765;
5
5
17
17
1
510 19 6
k5 

 0,31579 .
19
19
Далее получаем
A
 0  0,5  0  0,66667  2  0,4  6  0,11765  8  0,31579 1  4,03222 1  0,03222 .
P
Умножим
A
на объем диапазона P=9690:
P
A
 P  0,03222  9690  312,2118  312 .
P
Преимуществами данного метода при использовании в цифровой
технике являются высокая скорость, малые аппаратные затраты и
универсальность. В отличие от точных методов, для его реализации не
требуется
обработка
избыточной
информации.
В
зависимости
от
поставленных задач, возможно варьирование точности вычислений (путем
добавления или убавления знаков после запятой при вычислениях).
Сравним скорость выполнения немодульных операций сравнения [8] и
деления [9] чисел для метода ОПСС, как самого быстрого из точных методов,
и приближенного метода относительных величин. В ходе тестирования
использовались многоразрядные числа размером в диапазоне от 255 бит до
512 бит, сгенерированные функцией random из состава математического
пакета PARI/GP. Проводилось по 1000 испытаний в программной реализации
на C#. Данные занесены в таблицу 1.
Таблица № 1
Время выполнения проблемных операций в СОК (в миллисекундах).
Немодульная
операция
ОПСС
Приближенный
метод
Сравнение чисел
1,83
0,87
Деление чисел
7,37
4,77
Из результатов, полученных при реализации исследуемых методов
выполнения немодульных операций в системе остаточных классов, можно
сделать вывод, что приближенный метод выигрывает для операции
сравнения в 2,1 раза, а для операции деления в 1,5 раза относительно метода
ОПСС.
Заключение
В ходе вышеизложенного анализа в статье показано, что все методы
могут быть разделены на две группы:
– методы точного вычисления позиционных характеристик;
– методы приближенного вычисления позиционных характеристик.
При
использовании
точных
методов
неизбежно
возникает
необходимость обработки больших объемов избыточной информации, что
сильно замедляет скорость вычислений. С целью устранения данного
нежелательного
явления
были
разработаны
методы
приближенного
определения позиционной характеристики числа в СОК. В результате чего
при программной реализации некоторых проблемных операций в системе
остаточных классов приближенный метод выигрывает для операции
сравнения в 2.1 раза, а для операции деления в 1,5 раза относительно метода
ОПСС.
Работа выполнена при поддержке гранта РФФИ 13-07-00478-а.
Литература:
1. Акушский, И.Я., Юдицкий Д.И.. Машинная арифметика в остаточных
классах [Текст] Монография / И.Я. Акушский, Д.И. Юдицкий. – М.:
Советское радио, 1968. – 440 с.
2. Червяков, Н.И., Сахнюк П.А., Шапошников А.В., Ряднов С.А.
Модулярные параллельные вычислительные структуры нейропроцессоных
систем [Текст] Монография
/
Н.И. Червяков, П.А. Сахнюк, А.В.
Шапошников, С.А. Ряднов – М.: ФИЗМАТЛИТ, 2003. – 288 с.
3. Червяков, Н.И., Сахнюк П.А., Шапошников А.В., Макоха А.Н.
Нейрокомпьютеры в остаточных классах [Текст] Монография / Н.И.
Червяков,
П.А.
Сахнюк,
А.В.
Шапошников,
А.Н.
Макоха.
–
М.:
Радиотехника, 2003. – 272 с.
4. Бабенко М.Г., Вершкова Н.Н., Кучеров Н.Н., Кучуков В.А. Разработка
генератора псевдослучайных чисел на точках эллиптической кривой
[Электронный ресурс] // «Инженерный вестник Дона», 2012, №1 (ч. 1). –
Режим
доступа:
http://ivdon.ru/magazine/archive/n4p2y2012/1408
(доступ
свободный) – Загл. с экрана. – Яз. рус.
5. Вартаньян С.А. Алгоритм и программное обеспечение декодирования
свёрточных
вестник
турбокодов
Дона»,
[Электронный
2009,
№2.
ресурс]
–
//
Режим
«Инженерный
доступа:
http://ivdon.ru/magazine/archive/n2y2009/132 (доступ свободный) – Загл. с
экрана. – Яз. рус.
6. Omondi, A. Premkumar. Residue Number Systems. Theory and
Implementation [Текст] Монография / A. Omondi. - London. Imperial College
Press, 2007. – 295 p.
7. Червяков, Н.И. Методы, алгоритмы и техническая реализация
основных проблемных операций, выполняемых в системе остаточных
классов [Текст] // Инфокоммуникационные технологии, 2011. – №4. – С.4-12.
8.
Brönnimann H., Emirisa I. Z., Panb V. Y., Piona S. Sign determination in
residue number systems [Текст] // Theoretical Computer Science, 1999. – Volume
210, Issue 1. – P.173-197.
9. Hariria A., Navib K., Rastegarc R. A new high dynamic range moduli set
with efficient reverse converter [Текст] // Computers & Mathematics with
Applications, 2008. – Volume 55, Issue 4. – P.660-668.
10. Малиновский Б.Н., Александров В.Я. Справочник по цифровой
вычислительной технике [Текст] Монография / Б.Н. Малиновский, В.Я.
Александров. – К.: Технiка, 1974. – 512 с.
Скачать