Доклад: Арифметика сверхбольших натуральных чисел в параллельных вычислительных системах
В . Умножение
Алгоритм умножения несколько сложнее в реализации, но напоминает собой умножение в столбик.
Система инициализирует двойных слов. При этом распределение ячеек памяти при инициализации можно представить в виде таблицы 1:
Таблица 1. - Распределение ячеек памяти при инициализации
![]() | … | ![]() | 0 | … | ![]() | … | ![]() | 0 | 0 |
![]() | … | ![]() | 0 | … | ![]() | … | ![]() | 0 | 0 |
![]() | … | ![]() | |||||||
![]() |
Сначала вычисляются одновременно числа, представляющие собой умножение
на число
, по следующему алгоритму: устройство
В1 . Считывает данные из ячеек памяти.
В2 . Выполняет умножение (
, j
).
В3 . Записывает в младшие байты слов:,
.
В4 . Записывает в старшие байты слов: .
В5 . Для каждой -ки происходит сложение по алгоритму А .
После шага В5 в старших байтах слов будут содержаться (таблица 2):
Таблица 2. - Распределение ячеек памяти после операции умножения
![]() | … | ![]() | ![]() | … | ![]() | … | ![]() | ![]() | … | 0 |
![]() | … | ![]() | ||||||||
![]() | … | ![]() |
Результат умножения формируем из сложением со сдвигом на
разрядов.
Количество шагов варьируется от 1 до , в то время как последовательное вычисление произведения займет
шагов.
Предлагаемые алгоритмы могут быть реализованы на однородных вычислительных средах, систолических структурах, нейронных сетях.
Литература
1.Юров В. Assembler. – СПб.: Издательство «Питер», 2000.
2.Акритас А . Основы компьютерной алгебры с приложениями. – М: Мир, 1994.
3.Макоха А.Н ., Ионисян А.С . Компьютерная эмуляция арифметических операций над целыми и рациональными числами в СОК. // Вестник СГУ. – Ставрополь: Изд-во СГУ, вып. 20, 1999.