МОДУЛЯРНЫЕ ВЫСОКОТОЧНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙ


Цитировать

Полный текст

Аннотация

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

Полный текст

С ростом производительности современных ЭВМ расширяется спектр и размерность решаемых на ЭВМ задач, повышаются требования к точности компьютерных вычислений. Большинство компьютерных вычислений проводятся в арифметике с плавающей точкой с жестко ограниченной длиной мантиссы, что приводит к появлению неустранимых ошибок округления. В настоящее время существует множество библиотек, поддерживающих высокоточные вычисления ZREAL (Россия), MP ARITH (Германия), GMP (США) и др., применение которых сдерживается сильной зависимостью роста времени выполнения арифметических операций от точности вычислений. Одним из способов решения данной проблемы является использование модулярной арифметики [1], которая обеспечивает вычисление задач большой алгоритмической сложности. Модулярной системе счисления присущи возможность глубокого распараллеливания вычислений и отсутствие обмена данными в процессе вычислений [2]. При аппаратной реализации этих операций на программируемых логических интегральных схемах (ПЛИС) обеспечивается параллельное выполнение операций над элементами векторов [3]. В отличие от позиционной системы счисления ошибка в одной позиции вектора не влияет на расчеты в других позициях вектора. Этот факт позволяет проектировать устройства с повышенной отказоустойчивостью и с коррекцией ошибок [2; 3]. В модулярной арифметике успешно применяются нейронные сети (НС) [2-8]. Разные модели нейросе-тевых алгоритмов различаются по требованиям к ресурсам системы. Наряду с универсальными моделями НС были исследованы несколько модификаций специальных нейросетевых алгоритмов, разработанных для выполнения преобразования чисел из позиционной системы счисления (ПСС) в систему остаточных классов (СОК). Нейронная сеть конечного кольца (НСКК) представляет специализированный механизм преобразования чисел из ПСС в СОК и обратно [4-6]. Применение НСКК обеспечивает преобразования из одной системы счисления в другую быстрее классических методов и отличается меньшим количеством узлов сети и простотой их организации [4-8]. Например, при использовании НСКК прямого распространения с модульными операциями в каждой ступени для преобразования числа A = 253 по модулю 5 понадобилось 6 операций: три операции сложения и три операции сокращения по модулю. Структурная схема НСКК подробно рассмотрена в [5] и включает входной слой, скрытые слои и выход ной слой. В работе исследовались высокоточные вычисления с числами большой разрядности. Поэтому при разработке алгоритма перевода чисел из ПСС в СОК были выбраны различные основания системы счисления - система счисления с основанием 2 и с основанием 232. По результатам моделирования НСКК продемост-рировали лучшие показатели по сравнению с универсальными НС как по скорости и точности выполнения операции преобразования чисел из ПСС в СОК, так и по требуемым для его реализации ресурсам. Специализированные алгоритмы преобразования чисел из ПСС в СОК являются эффективным решением проблемы обеспечения высокоточных вычислений, особенно при их аппаратной реализации [3]. Архитектура НСКК прямого распространения с модульной операцией только на финишной ступени является эффективнее по затратам оборудования и ресурсов по сравнению с НСКК прямого распространения с модульными операциями в каждой ступени. Нейроны скрытого слоя представляют собой обычные сумматоры и не требуют реализации операций сокращения по модулю. Основной акцент в работе был сделан на обеспечение высокоточных вычислений за счёт повышения разрядности обрабатываемых чисел, что потребовало увеличение значения основания системы счисления, которое ведёт к уменьшению размера массива весов и объёма используемой памяти. Для перевода из системы остаточных классов в позиционную систему счисления используется также нейронная сеть [2]. Для реализации выбранного алгоритма преобразования чисел из ПСС в СОК и обратно был выбран язык программирования C++, так как основная программа предназначена для работы на высокопроизводительном кластере с использованием технологии MPI [8] со следующими характеристиками: - пиковая производительность системы - 19 TFlops; - количество вычислительных узлов - 288; - количество вычислительных ядер - 2304; - каждый узел содержит 4-ядерные процессоры Quad-CoreIntelXeon® 5345 EM64T (тактовая частота 2,33 ГГц, процессорный КЭШ - 8 M6, оперативная память - 2 GB). Экспериментальные вычисления проводились на одном вычислительном узле кластера. Реализация распараллеливания программы выполнена с помощью библиотеки MPICH2. Для реализации НСКК при переводе из ПСС в СОК использовалась библиотека 72 Математика, механика, информатика GMP и компилятор фирмы Intel. Для экспериментального моделирования разработан комплекс программ высокоточных вычислений в системе остаточных классов. Использованы числа в формате с фиксированной запятой с изменяемой разрядностью данных (в пределах от 64 до 2048 бит с шагом 64) и изменяемой размерностью массива обрабатываемых данных (в пределах от 104 до 109), который осуществляет операции сложения, вычитания и умножения [8]. Разрядность преобразуемых и обрабатываемых данных задавалась пользователем как аргумент программы в пределах от 64 до 2048 с шагом 64. Основаниями СОК выбраны самые большие 31-разрядные простые числа, так как вычисления с большими основаниями происходят быстрее, но необходимо учитывать возможность переполнения стандартного диапазона процессора (64 бита). В первой серии экспериментов использовался формат чисел с фиксированной точкой, количество кото рых составляло 1000. Количество оснований определялось разрядностью данных. Так, например, для 64битных данных было использовано 5 оснований, для 2048-битных - 133 основания. Затраты времени для перевода из ПСС в СОК, представленные на рис. 1, показывают выигрыш в 3 раза по сравнению с классическими методами только на повышенной разрядности чисел (более 62048) и увеличении размера основания до 232. На рис. 2 приведен график зависимости времени перевода чисел из СОК в ПСС с использованием НСКК с К = 232 и К = 264. Общее количество переводимых данных составляет 1000. Разрядность изменяется от 2048 бит до 65536 бит с шагом 2048 бит. Результаты экспериментов показывают, что затраты времени преобразования чисел из СОК в ПСС соответствуют затратам времени при использовании классических методов. Рис. 1. График зависимости перевода чисел из ПСС в СОК Рис. 2. График зависимости перевода чисел из СОК в ПСС 73 Вестник СибГАУ. № 4(50). 2013 Эксперименты демонстрируют [8], что время перевода чисел из ПСС в СОК и обратно из СОК в ПСС зависит от разрядности и объёма входных данных (рис. 1, 2). Выигрыш по быстродействию в формате с плавающей точкой наблюдается только при использовании чисел повышенной разрядности (более 2048 разрядов). В экспериментах разрядность изменялась от 2048 бит до 65536 бит с шагом 2048 бит. Таким образом, для обеспечения высокоточных вычислений целесообразно повысить разрядность обрабатываемых данных, использовать перевод чисел в систему остаточных классов и произвести распараллеливание задач, при аппаратной реализации использовать ПЛИС. При использовании нейросетевых технологий перевод чисел из ПСС в СОК и обратно необходимо производить с помощью нейронной сети конечного кольца, которые не требуют специальной библиотеки для работы с длинными числами в отличие от классических методов перевода чисел. Время выполнения операций сложения, вычитания и умножения для чисел с фиксированной запятой в системе остаточных классов значительно меньше, чем время выполнения аналогичных операций, вычисленных в позиционной системе счисления с использованием библиотеки GMP. Сложение и вычитание чисел в СОК выполняется быстрее примерно на 30 %, чем в ПСС, а умножение в СОК в несколько раз быстрее, чем в ПСС. Применение чисел с плавающей запятой дает эффект только при повышенной разрядности чисел.
×

Об авторах

Владимир Сергеевич Ростовцев

Вятский государственный университет

Email: rostov_kirov@mail.ru
кандидат технических наук, доцент кафедры ЭВМ Российская Федерация, 610000, Киров, ул. Московская, 36

Егор Иванович Зорин

Вятский государственный университет

Email: cvc575@gmail.com
выпускник кафедры ЭВМ Российская Федерация, 610000, Киров, ул. Московская, 36

Егор Александрович Грачёв

Вятский государственный университет

Email: rook.mail@mail.ru
выпускник кафедры ЭВМ Российская Федерация, 610000, Киров, ул. Московская, 36

Список литературы

  1. Акушский И. Я., Юдицкий Д. И. Машинная арифметика в остаточных классах. М. : Советское радио, 1968.
  2. Червяков Н. И. Методы и принципы построения модулярных нейрокомпьютеров // 50 лет модулярной арифметике : тр. Юбилейной Междунар. науч.-техн. конф. (23-25 ноября 2005, Москва, Зеленоград). Зеленоград : Изд-во МИЭТ, 2006.
  3. Евдокимов А. А. Реализация модулярных нейронных вычислительных структур на базе ПЛИС // 50 лет модулярной арифметике : тр. Юбилейной Междунар. науч.-техн. конф. (23-25 ноября 2005, Москва, Зеленоград). Зеленоград : Изд-во МИЭТ, 2006.
  4. Червяков Н. И., Сивоплясов Д. В. Нейронная сеть конечного кольца прямого распространения с модульной операцией на финишной ступени // Вестник СевКавГТУ. Сер. «Физико-химическая». 2004. № 1 (8). С. 159-161.
  5. Пат. РФ № RU 2279132 C2 Нейронная сеть конечного кольца / Н. И. Червяков, В. А. Галкина, Ю. А. Стрекалов, С. В. Лавриненко. Опубл. 27.06.2006.
  6. Пат. РФ № RU 2317584 С1 Конвейерная нейронная сеть конечного кольца / Н. И. Червяков. Опубл. 20.02.2008.
  7. Сахнюк П. А., Шапошников А. В. Оптимизация структуры нейронных сетей конечного кольца // Нейрокомпьютеры: разработка, применение. 2001. № 10. С. 13-18.
  8. А. с. о регистрации программы для ЭВМ № 2013613857. Программный комплекс моделирования модулярных вычислений на базе нейронной сети конечного кольца. / В. С. Ростовцев, Е. А. Грачёв, Е. И. Зорин. № 20136611269 ; заявл. 27.02.2013 ; опубл. 17.04.2013.

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

© Ростовцев В.С., Зорин Е.И., Грачёв Е.А., 2013

Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution 4.0 International License.

Данный сайт использует cookie-файлы

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

О куки-файлах