КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ
УДК 004.942
ИССЛЕДОВАНИЕ НЕМОДУЛЬНЫХ ОПЕРАЦИЙ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ
В статье предложено математическое описание ряда методов вычисления позиционных характеристик модулярного кода, а также рассмотрены различные аспекты их применения при выполнении немодульных операций над числами в системе остаточных классов. Разработана программа, моделирующая выполнение этих алгоритмов на ЭВМ и позволяющая производить сравнение временных затрат.
Ключевые слова: система остаточных классов, немодульные опера[email protected], ции, компьютерное моделирование. [email protected]
А.Н. ЛАВРИНЕНКО Н.И. ЧЕРВЯКОВ
Ставропольский
государственный
университет
e-mail:
Система остаточных классов (СОК) по праву служит основой проектирования параллельных вычислительных систем. Операции над числами в СОК делятся на две группы - модульные, когда действия над числами можно проводить независимо в параллельных каналах, и немодульные, когда для выполнения операции необходима информация обо всем числе.
К немодульным операциям в СОК относится: деление, расширение, определение знака, сравнение, определение переполнения, масштабирование, определение ошибки, локализация ошибки, вычисление ранга и др. Многие из этих операций могут быть реализованы на основе восстановления числа по его остаткам, выполнения необходимых действий и обратного перевода в СОК. Однако такой подход противоречит идее распараллеливания вычислительного процесса.
Анализ существующих алгоритмов выполнения немодульных операций в СОК показывает, что все операции данного класса можно разделить на простые и составные. К простым немодульным операциям будем относить те из них, которые могут использоваться как самостоятельные автономные звенья более сложных немодульных операций, называемых, в свою очередь, составными.
Деление в СОК рассматривается с двух позиций — как деление нацело и деление с остатком.
В первом случае деление без остатка можно осуществить путем модульного умножения делимого на мультипликативную обратную величину делителя ^ ^
С
U
Pi -
л
Ь-\
а
В □ '
Pi _
Исключение составляет только случай когда делитель или его сомножители являются основаниями СОК. При этом цифры частного по всем каналам, кроме совпавших, определяются по общему правилу, как указано выше, а остатки по соответствующим совпавшим
модулям должны быть доопределены путем расширения остаточного представления в СОК.
Во втором случае предлагается алгоритм деления с округлением. Для реализации данного алгоритма необходимо определить остаток и1 делимого по делителю и модульно вычесть этот остаток, в результате чего будет получена ситуация, аналогичная изложенной в первой части алгоритма [1, 2].
В качестве альтернативы указанных методов можно предложить способ деления путем замены делителя его обратной величиной, эффективно реализуемый на примере действий над обыкновенными дробями с раздельным представлением в СОК числителей и знаменателей. Данный метод обеспечивает высокую точность вычислений, но он более сложен в аппаратной реализации и требует логической модификации существующих алгоритмов.
Алгоритм деления с остатком в СОК по своей сути является частью алгоритма выполнения другой не менее важной немодульной операции — масштабирования. Разница между этими двумя операциями состоит лишь в том, что масштабирование в СОК должно применяться к более общему случаю, например, к делению чисел представленных в формате с плавающей точкой (ЧПТ), когда операции в СОК производятся непосредственно над мантиссами. Для ЧПТ характерно использование порядка числа, за счет чего можно корректировать относительную величину числа (масштабировать число, используя масштабный коэффициент) и разрешить проблему деления чисел в СОК в том случае, когда делимое меньше делителя, а также добиться минимальной ошибки округления.
Выполняя деление или масштабирование чисел в СОК, неизбежно придется проводить их сравнение. Операция сравнения чисел в СОК более сложна, чем в позиционных системах счисления.
Существует интервальный метод сравнения [1, 2], когда в качестве показателя величины числа А . . р,1, г используется номер интервала
1а
П
(1)
-Н.
/□1
где 14 □—-------, / □ / и I, □ — — постоянные коэффициенты, определен' Р:-----------------------------'' Р
„ „ р -ные системой оснований, Р1 —, - цифры СОК-представления А. При таком подходе
Р,
сравнение чисел сводится к вычислению и сравнению номеров интервалов. В случае если числа принадлежат одному интервалу, предлагается вычислить их разность и по знаку этой разности сделать вывод о сравнении чисел. Для данного метода большое значение имеет выбор дробящего модуля р1. Чем меньше р1, тем на большее число интервалов
□ Р , . Р □
у ,(7,1)1 >./ 1, р1 1 можно разбить исходный диапазон представления чисел
□ Р, Р, □
Р, и тем больше вероятность, что два сравниваемых числа не попадут в один интервал и не придется дополнительно вычислять их разность и определять её знак. С другой стороны, чем больше р1, тем меньше времени необходимо для вычисления 1а , так как от величины р1 зависит размерность чисел / , . При этом даже использование р1 2 в качестве дробящего модуля не гарантирует отсутствия совпадений номеров интервалов для близко лежащих чисел.
Другой подход к сравнению двух чисел в СОК состоит в переходе от СОК к обобщенной полиадической системе счисления (ОПСС). Существует два метода перевода из СОК в ОПСС — традиционный последовательный и модифицированный параллельный. При последовательном методе разряды ОПСС вычисляются по формуле
п
а, □ ((...(□, аху2и а2)Г2, ... а,1)Пп,(шос1^), / □ 1(2)
гДе □ к,}- ' 1
Р*
— константы, определяемые набором оснований СОК. При параллельном
Р}
методе перевода необходимо заранее получить ОПСС-представление ортогональных базисов В.. Далее путем умножения на соответствующий остаток СОК-представлениячисла производится вычисление ортогональных чисел вида
4 ийд...,п, пъ,,бл,Ц/п\п. (з)
с ъп п
А само число представляется как сумма его ортогональных чисел А А1 . При
/с I
этом может возникнуть переполнение в г-м разряде ОПСС [1, 2]. Для получения конечного результата необходимо выполнить взятие модульных вычетов от каждого разряда ОПСС по соответствующим модулям СОК с последовательным переносом целой части а из младших разрядов в старшие. В последнем разряде переполнение отбрасывается.
1 г
Р
Последовательный характер операции переноса целой части .ai является одним из
: '
наиболее существенных недостатков данного метода.
Сравнение чисел указанными методами производится в части сравнения их абсолютных величин. Однако, для интервального метода, если номера интервалов исходных чисел А и В совпадут, то их разность А-В, как и любой промежуточный результат реальных вычислений в СОК, может оказаться величиной как положительной, так и отрицательной. Поэтому следующей рассматриваемой немодульной операцией в СОК является определение знака числа.
Знак числа в СОК можно вводить двумя способами — явно и неявно [1, 2].
При явном введении знака числа используется дополнительный бит информации, идентифицирующий принадлежность числа к положительной или отрицательной части множества целых чисел из интервала (Р; Р). Тогда операцию вычитания в СОК можно заменить операцией вычитания из числа большего по модулю числа меньшего по модулю. Для данного метода характерно отсутствие временных затрат на вычисление дополнительных параметров, позволяющих определить знак числа, что компенсируется излишеством аппаратной реализации. Но в этом случае мы не сможем без сравнения чисел вычислить их разность, что неприемлемо для интервального метода сравнения.
При неявном методе введения знака числа исходный диапазон представления чисел [о, Р] разбивается на две половины — [о, Р/2) и [Р/2, Р), если среди модулей СОК есть четный, и [о, (Р-1)/2) и [(Р-1)/2, Р), если четного основания нет. Числа принадлежащие первому интервалу считаются положительными, второму — отрицательными. Все действия над числами производятся в дополнительном коде. Дополнительный код положительных чисел совпадает с их СОК-представлением, а для отрицательных чисел получается вычитанием остатков из соответствующих модулей СОК, что эквивалентно числу Р-А. Данный метод обеспечивает простоту реализации операций сложения, вычитания и умножения (за счет выполнения свойства дистрибутивности), но при делении необходимо предварительно восстанавливать СОК-представление отрицательного числа с помощью операции полярного сдвига, то есть вычислять прямой код числа. По завершении деления также необходимо восстанавливать дополнительный код результата для выполнения последующих вычислений.
При неявном введении знака числа для его определения можно использовать интервальный метод сравнения чисел по абсолютной величине с Р/2 либо с (Р-1)/2. Альтернативой ему служит метод перевода в ОПСС. При этом если выбрать р] р, ... рп
и
рп 2, то по значению старшего коэффициента ОПСС-представления (о или 1) можно определить принадлежность числа к положительной или отрицательной части диапазона
представления. НАУЧНЫ
Е ВЕДОМОСТИ
Серия История. Политология. Экономика. Информатика. 2012. №1 (120). Выпуск 21/1
113
Операции деления и масштабирования в СОК помимо сравнения чисел тесно связаны с расширением остаточного представления модулярного кода. Использование округления в процессе масштабирования требует разработки эффективных алгоритмов вычисления округляемого остатка п] . Округляемый остаток зависит от величины числа и величины делителя, которые заранее предугадать невозможно. Обозначая делитель через рп1, получаем формальное расширение диапазона представления чисел Р' I Р I рпХ. На основании этого можно вывести закономерности представления чисел из исходного диапазона [0,Р) в новой расширенной СОК с диапазоном [0,Р') .
Один из способов расширения остаточного представления чисел в СОК — метод перевода чисел в ОПСС с дополнительным финальным шагом [2]. Как известно, число в ОПСС представляется в виде
А П апР1Р2-Рп1 ап1Р1Р2-Рп2 - аъРхР2 а2Р1 .<*!> (4)
где р1 - основания ОПСС. Если основания СОК и ОПСС совпадают, то эквивалентны и
диапазоны представления чисел. В расширенной ОПСС то же число будет представлено в виде
А П ап1Р1Р2-Рп апР1Р2-Рп1 - аъРхР2 а2Рх а1 ■ (5)
Приравнивая правые части выражений (4) и (5), получаем, что апХ 0 . На основании формулы (2) получаем выражение для п]:
0 □((...(!„! ^а2)П2М ...ап)ипМ{то&р,Л), □
□
ІПІ Р ИІ п ПЦЙ
Ї □ 1 Рп 1 Рп1
11 »і п п ПФіл
/□1 Рп1 Рп 1
Рп1
(6)
Основным недостатком описанного метода является необходимость вычисления
1
констант 1.;г1, / 1 ,п, как обратных мультипликативных элементов
. Поэтому
данный метод накладывает существенные ограничения на допустимые значения рп1,
связанные с необходимостью существования (вычислимости) обратных мультипликативных элементов, используемых в алгоритме.
Другой способ расширения остаточного представления в СОК состоит в использовании такой позиционной характеристики как ранг числа [1, 2]. Согласно методу ортогональных базисов, применяемому для перевода чисел из СОК в ПСС, величина числа определяется по формуле
п
АО ПГД гЛР,
I 1
где гА - ранг числа — величина, показывающая во сколько раз в процессе перевода был превышен диапазон представления чисел Р. Путем взятия модульных вычетов от левой и
п
правой частей (7) можно получить О г □ (П П. Д. гАР)то&рп1 или
/□1
7
1
Рп 1
Серия История. Политология. Экономика. Информатика. 2012. №1 (120).ИШ1|%с№21Ц1120). Выпуск 21/1
(8)
її (I п, □, Л □ 1 , □ „ □[, і і □
п 1 'І 1 Iі 1 ' ' \ ■
)шоё р
п1
где □ , 1-І Д , 7 □ 1, 77 ,
> ''р „і
п\
Рп1 Р\
|р,1
. Алгоритм, представленный формулой (8)
для ускорения вычислении можно реализовать методом рекуррентного модульного сдваивания. Расширять остаточное представление, как и в предыдущем случае можно по нескольким модулям параллельно. Главным достоинством описанного метода служит отсутствие в его алгоритме операций вычисления обратных мультипликативных элементов, таких как константы к , что снимает ряд ограничений на допустимые значения р)Л .
Поэтому в отличие от метода на основе перевода в ОПСС, где расширение можно проводить только по модулям взаимно простым с основаниями СОК, данный метод является более универсальным.
Существует еще один метод расширения остаточного представления чисел на основе использования такой позиционной характеристики, как ядро числа. По определе-
П АП
нию ядро числа Я4 □ [] □ і □ □ , где - целые числа. Положив □1 □ □ , □
' > а “
Р ' і □ / □
Г п □ 1, можно выразить ¡1, через остатки П і:
п п
я.пЪЪяАо шоё Я0,
(9)
□ і і
□
где Яв □ Д /рп , / С 1,7? 1, ЯВп □ (Вп 1 )/рп, 11,, и Р/рп □ Рп1. Тогда
Г„1 □ □ , □ 2п2 пя,(шос!^),
где , и — коэффициенты, определяемые системой оснований. С учетом предложенного выбора констант ; можно записать выражение для и1 в виде
0,1 □ (тойрп1), (ю)
где □„ □ □и(1/П)(то(1/7п1) □ □ □(1/П)(то(1/7п1) 1„ — , □ С] | , □ С) | [1].
, ' , ' □ Р я»
Использование формулы (10) для практических вычислений малопригодно, так как в явном виде (10) она требует вычисления обратных мультипликативных элементов I—
что при заранее неизвестном рп1 требует дополнительных временных затрат, а также накладывает дополнительные ограничения на допустимые значения рп1. Более того, детальный анализ формулы (10) показывает, что путем эквивалентных преобразований она сводится к формуле
□„1 □ □П1АЛЛтос1^11), (и)
где ЯА вычисляется по формуле (9). При желании, вычисления по формуле (9) могут быть реализованы методом рекуррентного модульного сдваивания, за счет чего может быть получен существенный выигрыш в скорости выполнения операций. Основным недостатком формулы (11) является зависимость ядра числа от его остаточного представления, выражаемая формулой (9), то есть необходимость пересчета ЯА для каждого числа Л. С другой стороны формула (11) не содержит операций вычисления обратных мультипликативных элементов и может быть реализована для любого рп1.
Сравнивая формулы (8) и (11) можно заметить, что по своей структуре они имеют много общего. Для полноты изложения вопроса о вычислении немодульных характери-
р
п1
п1
п
рп1
Серия История. Политология. Экономика. Информатика. 2012. №1 (120). Выпуск 21/1
стик СОК, следует рассмотреть ряд методов вычисления ранга числа гА и провести их сравнение по трудоемкости с методом вычисления ядра числа, представленным формулой (9).
Ранг числа изначально появляется в формуле (7), как характеристика, позволяющая определить величину числа в ПСС без редукции накопленной методом ортогональ-
п
ных базисов суммы 1В1 по модулю диапазона представления чисел Р. Так как г, вхо-
Ш1
дит в формулу (7) в виде произведения гАР, то для выражения гА из (7) без непосредственного вычисления А необходимо применить редукцию обеих частей формулы (7) по некоторому модулю рп], удовлетворяющему условию (Р, рп!) 1. Тогда из формулы (7)
получаем
rA (mod/>nl ) □
I I
р
(12)
Рп 1
где ,н \А\ . В виду изложенных выше особенностей формулы (7) и полученной на её
основе формулы (12) прослеживается тесная взаимосвязь операции вычисления ранга числа и вычисления остатка , а именно: имея избыточный остаток, мы можем вычислить ранг по формуле (12) и наоборот — имея ранг, мы можем вычислить избыточный остаток по формуле (8).
Существует модификация изложенного метода. Так как ортогональные базисы Bt вычисляются по формуле
В ; □ т iPi □»?, — ,/□ 1, п,
V,
где да, Р] mod — веса базисов, то (12) можно преобразовать к виду
(13)
rA{modpnl) L
уу 1 /□1
(14)
Рп 1
т : , '
где gi □ г ,iU\n,g>n □ pnl
Pi Рп1 P
Рп 1
Для реализации еще одного метода вычисления ранга числа необходимо выразить число А формулой (7) в основной (с диапазоном Р) и расширенной (с диапазоном Р’) СОК и приравнять правые части полученных выражений, получим
□□ Р, '/□□□,В, г г □
(□I /□!
¡11-, ¡11-, П , ^ ¡11 ¡11 р ,
2 2r п\ \ \ п nr п 1
т«1 □
, . , _ т р , т
m„f »1 ■ ГА D □ А . ГЛРп\ > ГДе □, □ -------
Р
ь
г □ 1,п 1, ПА □ □ □ [2].
И далее переходя к сравнению по модулю рп1, получим формулу
ГА(тоёр х) □ |Г 4 т 'п1Сп1 I' .
' 1 ' ' 'Рп 1
Непосредственные вычисления ранга числа по формулам (12), (14) и (15) сопряжены с рядом практических трудностей:
(15)
п
п
2
п
п
г 1
1. Необходимостью заранее знать остаток п1 по избыточному модулю рп, -
2. Необходимостью проводить долгие сложные расчеты промежуточных величин,
1
неизбежно заложенные в алгоритм (
Р
в формуле (12), величины gj и , в формулах
Рп1
(14) и (15), соответственно).
3. Наличием скрытого ограничения на допустимые значения рп 1 (при многократном использовании вычисленного гА ), обозначенного в формулах (12), (14) и (15) операцией редукции по модулю рп1 в левой части сравнения.
Поясняя пункт 3), следует сказать, что в случае если истинное значение ранга числа превысит величину избыточного модуля рп1, то операция редукции приведет к получению заниженного результата, что может повлечь за собой ошибки расширения остаточного представления числа по формуле (8) для других модулей. Анализ предлагаемых алгоритмов вычисления ранга числа показал, что избыточный модуль рп1 должен быть
больше большего основания СОК — при таком подходе вычисленный единожды ранг числа можно использовать для расширения остаточного представления по нескольким избыточным модулям одновременно без дополнительного пересчета гА по каждому из
них. Более того, при изначальном расчете гА используются операции вычисления обратных мультипликативных элементов, поэтому в этом случае должно выполняться условие (РиР„1) И 1 > 7 1,/7. Несомненно, что при расширении по одному каналу должно выпол-
няться только условие взаимной простоты модулей, так как на конечный остаток и1 промежуточное сокращение гА (шоё рп1) в данном случае не повлияет. А при дополнительном расширении остаточного представления с заранее корректно вычисленным рангом все дополнительные ограничения на рп1 уже можно будет опустить.
Исходя из вышеизложенных особенностей вычисления гА, можно сделать вывод, что формулы (12), (14) и (15) малопригодны для практического вычисления и пересчета ранга числа при заранее неизвестной величине избыточного модуля рп1 . На практике
для быстрого и качественного расчета гА представляется удобным всегда иметь один избыточный канал СОК, с величиной модуля рп1 , удовлетворяющей указанным выше требованиям взаимной простоты и допустимой размерности.
Сравнивая формулы для расширения остаточного представления на основе ранга и ядра числа, приходим к выводу, что метод, использующий ЯА, выраженный формулой
(11), является более удобным для практического применения.
При изложении методов вычисления ранга числа был затронут еще один важный для СОК вопрос — использование избыточных каналов модулярного представления кода наряду с основными. Избыточные каналы в СОК, вообще говоря, могут использоваться не только для вычисления ранга числа, но и для коррекции ошибок, выявления переполнения и выполнения других важных функций.
Коррекция ошибок в СОК это вопрос отдельного комплексного исследования. Существует геометрический метод коррекции ошибок СОК-вычислений, базирующийся на том обстоятельстве, что числа в СОК могут принимать определенный разрешенный набор состояний. Множество разрешенных и неразрешенных значений чисел можно изобразить с помощью вершин многогранника в п-мерном пространстве, где п — размерность СОК. Расстоянием Хэмминга называется расстояние d между любыми двумя векторами (кодами) а1 и а2 из множества Р. Под расстоянием в данном случае понимается
число компонент, в которых эти векторы (коды) отличаются друг от друга. Согласно известным закономерностям, корректирующий код в СОК может обнаружить все совокуп-
ности из I или меньшего числа ошибок, если минимальное расстояние кода больше I, то есть
¿ШШ П11’
и может исправить эти ошибки, если минимальное расстояние кода больше удвоенного числа ошибок, то есть
^ ^тт ^ 2/1.
С практической точки зрения исправление ошибок в СОК состоит из трех этапов — обнаружения, локализации и исправления. Возможности данной операции во многом зависят от набора избыточных модулей СОК.
В процессе коррекции модулярного кода может быть установлено, что какие-либо из основных или резервных каналов СОК вышли из строя, что повлечет за собой необходимость динамического перестраивания набора оснований СОК и пересчета связанных с ним констант, используемых в описанных выше алгоритмах. Одними из таких констант являются ортогональные базисы В.. Рассмотрим метод пересчета ортогоналънъх базисов при изменении набора оснований СОК [1, 2]. При изменении набора р. в формуле (13) изменяются оба множителя, по которым вычисляется В.. Получаем формулы
а) для сокращения набора оснований СОК Р/Р* I. рк □ т* С т1рк(тоАр1) и Р1 □ Р1 /рк □
В. С| В\ . .., /' □ \ п 1; (16.1)
б) для расширения набора оснований СОК
Р/Р* □ 1/рп] □ т* □ (тос1 />,) и ^ □ 1)1рп] -
Р „1
В* □
Рп] , / □ 1»- (16.2)
Рп 1 I-
В случае б) дополнительный ортогональный базис Вп1 необходимо будет вычислить по общей формуле (13). Предложенный метод пересчета ортогональных базисов позволяет с минимальными затратами динамически пересчитывать значения В при изменении набора оснований СОК.
Последняя рассматриваемая немодульная операция в СОК — обнаружение переполнения. Переполнение диапазона представления чисел может возникнуть на любом этапе вычислений. В случае если оно не будет вовремя замечено, переполнение способно повлечь за собой последовательное распространение ошибки вычисления во всех расчетах, использующих текущий неверный результат. СОК позволяет разработать эффективный алгоритм обнаружения переполнения на основе метода перевода в ОПСС для избыточного набора оснований. Согласно этому алгоритму в упорядоченной ОПСС,
то есть при рт □ р ., / □ 1, г, / □ 1, и, избыточные цифры ОПСС являются нулевыми —
а т 0,7 1,7". Вычисление избыточных цифр ОПСС может проводиться в параллель-
ном режиме и не повлечет больших временных затрат [1, 2]. При этом необходимо заранее знать остаточное представление числа по избыточным модулям.
Таким образом, было проведено теоретическое исследование ряда методов выполнения немодульных операций в СОК и вычисления сопутствующих позиционных характеристик.
Вывод. Операции вычисления ранга и ядра числа, расширения остаточного представления в СОК, вычисления номера интервала и перевода из СОК в ОПСС можно отнести к классу простъх немодулънъх операций. На их основе реализуются такие важные операции, как деление, масштабирование, определение знака числа, ошибки и переполнения, которые в свою очередь будем относить к классу составнъх немодулънъх операций в СОК.
Серия История. Политология. Экономика. Информатика. цд
2012. №1 (120). 2Ш>1Пу<№211 /¡120). Выпуск 21/1
Компьютерное моделирование Математическая основа всех участвующих в исследовании алгоритмов была изложена выше, и компьютерное моделирование в данном случае призвано подтвердить выдвинутые гипотезы и предположения. С помощью компьютерного эксперимента было вычислено время работы изложенных алгоритмов и получены дополнительные аргументы в защиту сделанных ранее выводов.
Основной упор был сделан на исследовании простых немодульных операций в СОК, как основополагающих для реализации составных операций.
С помощью среды разработки Borland Delphi 2007 была получена программа для расчета позиционных характеристик чисел в СОК и выполнения немодульных операций над ними. В качестве своей основы в программе используется самостоятельно разработанный модуль длинной арифметики для проведения операций над длинными целыми числами в СОК, и многофункциональный динамический список для хранения и обработки наборов длинных целых чисел, моделирующий ячейки памяти СОК-регистров. В структуру указанного динамического списка был включен алгоритм динамического пересчета ортогональных базисов, что носило прикладной характер и позволило на практике проверить его работоспособность, а также была реализована возможность сортировки оснований СОК, что позволило исследовать работоспособность рассмотренных алгоритмов в зависимости от разной последовательности размещения модулей. В программе был реализован высокоточный таймер для вычисления временных затрат.
НАУЧНЫЕ ВЕДОМОСТИ
)Й Нечюду-Шаныг операции з СО< модули сок (основные):
РЗ | | рЗ |
г V/ ¿я 313 ъа пч
:1 - В7.18571013б49*12550С/117'1110'12>1В9в7С724б133/192вЗ 544 594975
Д1>я"я\ти прг.ц—лг "1“м/ Р- 5374371430956
И»ич1г» и* -лЬпр" гм-пгк«нил:
✓ I X • |
Оф I п.оекв и_дуя=н
о НЕ- ® <\СС С) Оесс
модуля сок (избыточные):
11*нтл-иг -*»Игрч "гн-в/
у ДиС«ть X > Сирифив'Д п.дулв'«
НГГ О А*<
,гп*п/глн /(*6-<тпч-ой -вчгтм СГ} < : Р~ Л172С15
1е:вэе число А “ 422775бэе8а3
От:рэе число В = 39 ТС О
МЖЛеНН«р<1Н1<1 чким
ИиН'1 |^ | 5А |
11редстаолсмис о СОК: | 1е:«вод * сип. | цмб*зкаыг [|роа#зкаа-р| [ььчислитьрмг Хм и*о]
,.1 I* ■л и «л |Л 1
» 14* ЯГ. V. г.,ж
0 87 143 9 12 593
Р/1И1 1
4ЙЯ гуммг.г.?
435 0,000376
Представление в СОК по избыточным модулам :
ГЛ.- Рл-1 Ядро
11 - ил«-
£-0«С0:056
Рлхлр' ь реди авле-пе з ССК (мд|Л"
■ р нзвесп-о „ ЛЛ(6"П I Ср:сч~ 1(А
I’7 ,л | Преим 1
ЧЧЛ •ап Г. П,00*7ГЛ
007 272 12 0,000397
I рсосна иск 202м ©а
Р7 - и»
ЯМ ЯП Г.
ГЛ 7 773 1?
Представление в (ик::
| ~о IГ. н*-/111- Н-И11 ] 1о:о.тлсгы ю
1с:сзоз : и !•_ С'арйлгсыся сспэ)
,1 ,1 -3 М* И5 |»б
1 6? 17Л ЙЧ *»Я
0 4? 7П4 0 0 0
| Срдм 1211ис (спс; |
•/Перес 1итать 1Л [ Сро:щ1и: (иптсроагщ) ]
1а “ 21.358343‘-4о
Проо:р<о |
| Ср:о си-'с (п:рссос ВО ]
А ~ 4227*5626893
Рис. Вид главного окна программы
В качестве примера набора оснований СОК были выбраны числа
/;, □ 2, р2 □ 97, ръ □ 229, р4 □ 313, р5 □ 523, р6 С 739 с рабочим диапазоном
представления Р
= 5374371420986, а в качестве избыточных модулей СОК — числа
р1 953,рн 617, /л, 19. Для интерпретации конечных результатов практического ис-
следования были взяты числа А = 422776686893 и В = 39760.
В процессе предварительных исследований выбирались разные числа и разные наборы модулей, однако для конечного представления результатов специально было подобрано их контрастное сочетание, позволяющее косвенно проследить зависимость временных затрат от размерности получаемых при работе алгоритмов чисел. Использование динамических списков хранения и обработки данных позволило в ряде случаев учитывать не одиночные, а суммарные временные затраты, например, для выполнения задан-
ной операции по всем избыточным модулям СОК, что эквивалентно усреднению вычисляемых временных затрат.
На работу каждого моделируемого алгоритма неизбежно влияют случайные факторы, которые вносят некоторую долю погрешности в тот или иной результат вычисления временных затрат при каждом выполнении заданной операции. Далее приведем один конкретный пример вычисления времени работы, соответствующий среднему наблюдаемому показателю для всех алгоритмов.
Таблица1
Сравнение временных затрат для методов вычисления ранга числа
Числа Время работы алгоритмов (с)
По формуле (12) По формуле (14) По формуле (15)
А 0,000384 0,000069 0,000068
В 0,000377 0,000061 0,000061
Таблица 2
Сравнение временных затрат для методов перевода из СОК в ОПСС
Числа Время работы алгоритмов (с)
Последовательный метод Параллельный метод
А 0,000171 0,000066
В 0,000136 0,000051
Таблица 3
Сравнение временных затрат для методов расширения остаточного представления
Числа Время работы алгоритмов (с)
Перевод через ОПСС С использованием ранга числа С использованием ядра числа
с учетом _ без учета _ Без пересчета С пересчетом
А 0,023941 0,000197 0,002001 0,000335 0,000753
В 0,019256 0,000171 0,001964 0,000158 0,000397
Таблица 4
Сравнение временных затрат для методов сравнения чисел
Числа Время работы алгоритмов (с)
Вычисление номера интервала Восстановление числа методом ортогональных базисов
А 0,000074 0,000073
В 0,000062 0,000057
Результаты сравнения временных затрат для алгоритмов вычисления ранга числа приведены в предположении, что избыточный модуль рпХ и остаток п] по нему заранее известны.
Методы перевода из СОК в ОПСС представляют собой отдельный универсальный класс операций, позволяющих одновременно проводить сравнение чисел, определять переполнение и выполнять другие немодульные операции. Поэтому результаты сравнения для этих методов были выделены в отдельную табл. 2. При подсчете времени работы метода параллельного перевода из СОК в ОПСС учитывалась параллельность суммирования ортогональных чисел, и из результатов суммирования по каждому каналу выбирался наиболее продолжительный.
Согласно представленным в табл. 3 результатам подсчета временных затрат для методов расширения остаточного представления в СОК, метод на основе перевода в ОПСС с последующим финальным шагом, при заранее известных константах ; п], сработал не-
много быстрее аналогичного метода на основе ядра числа. Однако данный метод при учете времени вычисления ; п] показал увеличение временных затрат на 2 порядка, что
явилось наихудшим показателем среди рассмотренных алгоритмов. Результат расширения методом на основе ранга числа был получен без учета дополнительных временных затрат на вычисление гА. При этом добавление наиболее оптимального показателя по данным таблицы 1 не приводит к существенным изменениям времени работы для данного метода. Совокупные временные затраты для метода расширения остаточного представления в СОК на основе ядра числа приведены в таблице 3 в двух вариантах — без учета времени пересчета ЯА для каждого из избыточных модулей и с учетом этого времени. Сравнение совокупного увеличения времени работы алгоритмов на основе ранга и ядра числа при пересчете соответствующих характеристик показывает, что временные затраты на пересчет гА и ЯА имеют одинаковый порядок малости. Однако, итоговое совокупное время работы алгоритма вычисления п] на основе ранга числа на порядок выше соответствующего времени работы алгоритма на основе ядра числа.
Таблица 4 содержит временные затраты на вычисление номера интервала числа и на восстановление позиционного представления чисел из СОК методом ортогональных базисов. Эти затраты можно сравнивать как время потраченное на однократное выполнение подготовительного этапа сравнения чисел. Дополнительно данные таблицы 4 можно сравнивать с данными таблицы 2 (в особенности с методом параллельного перевода в ОПСС) по тому же признаку. Оптимальные временные затраты для указанных методов имеют одинаковый порядок малости.
Выводы
1. Использование формул (14) и (15) позволяет на порядок сократить временные затраты на вычисление ранга числа, однако данные методы требуют вычисления и хранения избыточного набора констант gj и ., соответственно.
2. Метод параллельного перевода в ОПСС на порядок быстрее аналогичного последовательного метода.
3. При практически эквивалентном времени вычисления гА и Я.А в методе на основе ядра числа отсутствуют дополнительные расчеты с использованием всех разрядов СОК-представления, что существенно ускоряет получение конечного результата. Таким образом, метод расширения остаточного представления в СОК на основе ядра числа является наиболее перспективным.
4. Использование алгоритма на основе параллельного перевода в ОПСС более предпочтительно, так как при эквивалентных временных затратах данный метод не только позволяет одновременно выполнять другие функций в СОК, такие, например, как обнаружение переполнения, но и гарантированно не требует проведения дополнительных вычислений, как в случае совпадения номеров интервалов в алгоритме на основе 1А.
Список литературы
1. Червяков Н.И., Сахнюк П.А., Шапошников А.В., Ряднов С.А. Модулярные параллельные вычислительные структуры нейропроцессорных систем / Под. ред. Н.И. Червякова. - М.: ФИЗ-МАТЛИТ, 2003. - 288 с.
2. Червяков Н.И., Сахнюк П.А., Шапошников А.В., Макоха А.Н. Нейрокомпьютеры в остаточных классах. Кн. 11: Учеб. пособие для вузов. - М.: Радиотехника, 2003. - 272 с.
NOMODAL OPERATIONS RESEARCH IN SYSTEM OF RESIDUAL CLASSES
A.N. LAVRINENKO N.I. CHERVYAKOV
Stavropol State University e-mail:
[email protected] [email protected]
The mathematical description some kinds of methods computation posi- tional characteristics for modular code is offered in the article and different aspects of theirs using in nomodal operations executing with numbers in system of residual classes is researched too. The program modeling execution of this algorithm’s in computer and allowing to make a comparison of time expendi- ture’s is developed.
Key words: system of residual classes, nomodal operations, computing modeling.