УДК 004.383.3
РАЗРАБОТКА АЛГОРИТМА РАСПАРАЛЛЕЛИВАНИЯ ВЫЧИСЛЕНИЙ В НЕЙРОКОМПЬЮТЕРНЫХ СИСТЕМАХ
В. А. Романчук, В.Н. Ручкин
Предложено математическое описание алгоритма распараллеливания вычислений в вычислительных системах на базе специализированного аппаратного обеспечения - нейропроцессоров. Цель алгоритма распараллеливания вычислений заключается в перераспределении кортежа нейробазисных операций и упорядочивания их в кортежей операций. Для реализации алгоритма используется теоретико-множественный подход применительно к понятиям: задача, обладающая высокой степенью нейробазисных вычислений; нейробазисная операция; сегмент операций.
Ключевые слова: вычислительная система, нейрокомпьютер, распараллеливание, нейробазисные вычисления, параллельные вычисления.
В современной научной и производственной сфере достаточно актуальна задача использования систем эффективного распараллеливания операций, особенно это касается специализированной вычислительной техники, например, нейрокомпьютеров, для которых на данный момент практически нет необходимого математического, алгоритмического и программного обеспечения. При этом, для УЫШ-процессоров, к которым относят и нейропроцессоры, наибольший интерес представляет оптимизирующее преобразование, называемое планированием. В ходе планирования последовательность команд, сформированная традиционными методами компиляции, переупорядочивается, и команды группируются таким образом, чтобы обеспечить максимально быстрое параллельное исполнение. При этом учитываются связи между командами по данным и по управлению, а также аппаратные возможности параллельного исполнения команд.
Следует рассмотреть что представляет собой задача для нейрокомпьютера. Задача может быть представлена в виде искусственной нейронной сети (ИНС), которую необходимо эмулировать с использованием специализированного аппаратного обеспечения - нейрокомпьютерной системе. ИНС может быть задана в виде кортежа параметров и характеристик.
1. Множество входов ИНС Иегх = {пе/х1,....пе/хг-,..., пегхп}, где каждый вход пегх. характеризуется разрядностью ИегХ ц. и типом
ИегХИ. .
2. Множество выходов ИНС Иегу = {пег у1,....пег у.,...,пе/уп}, где каждый выход пегу. характеризуется разрядностью ИегУ^. и типом ИегУм. .
3. Множество нейронов Netn = (netni,....netnj,..., netnc}, каждый из
которых необходимо эмулировать для решения некоторой задачи Z(j).
4. Множество весовых коэффициентов W = (wi,..„Wj,..., wnc}
5. Топология ИНС. В связи с тем, что в настоящее время отсутствует формальная процедура определения топологии ИНС (число слоев, число нейронов в каждом слое, тип связей), то применяются эвристические методы, основанные на предыдущем опыте работы с аналогичными нейросете-выми задачами [1].
Все топологии можно разделить на две группы: сети с обратными связями и сети без обратных связей. Можно выделить следующие виды топологий: многослойный персептрон, рекуррентные и ассоциативные сети, самоорганизующиеся сети, радиально-базисные сети.
Топология ИНС может быть описана как множество связей между нейронами, определяющее зависимости между нейронами ИНС:
Ne = (N11, Nj2,..., Nine,..., N
ncnc
которое можно представить в виде матрицы связей нейронов, входов и выходов ИНС.
Ne ® MNet = [MNetjj ] размерности (nc + xn + yn) x (nc + xn + yn).
Данная матрица показывает топологию ИНС, число слоев ИНС, наличие или отсутствие обходных соединений, передаточные функции нейронов.
Введем понятие отношением предшествования p , которое задается следующим образом: "щ, nj е N, щ p nj - в качестве входных данных
нейрон n j использует выходные данные нейрона ni , поэтому эмуляция
нейрона n j не может выполняться без предварительной эмуляции нейрона
щ. Отношения предшествования между нейронами определяются в зависимости от наличия связей ИНС, то есть множества связей
Ne = (Nii, N12,..., Ninc,..., N
ncnc / •
Каждый элемент матрицы может принимать значения
MNetjj = ('-',' n',' y'}: 'n ('no') - между подпрограммами nj и nj (j > i) нет отношения предшествования -inl p nj);
' y'('yes') - между подпрограммами nj и nj есть отношение предшествования (nj p nj); j > i;
'-' - между нейронами не может быть отношения предшествования.
630
Для примера рассмотрим матрицу связей для шести нейронов N = {п1,.«2, «з, П4}, двух входов X = {х1, х2} и одного выхода У = {У1}, имеющих топологию перцептрона:
ЫИег-
- Х1 Х2 п1 п2 п3 п4 у1
Х1 - п у у у п п
х 2 п - у у у п п
п1 п п - п п у п
п2 п п п - п у п
п3 п п п п - у п
п4 п п п п п - у
У1
п
п
п
п
п
п -
В матрице МИег все элементы ниже главной диагонали равны ' п', так как в перцептроне нет обратных связей.
Пусть Z(у) - некоторая у -я нейросетевая задача, которая при реализации на нейропроцессорной платформе.
Введем множество операций О = {О1,02,...,О.,...,Опс}. С учетом
введенного множества операций нейросетевая задача Z(у) представляет собой кортеж, состоящий из операций 01,02,...,0т,...,0пс длиной
пс (у) |;у = 1и , т.е.
z(у) =<01,02,...,От,...,оПс >;У = 1,И.
Таким образом, число операций О^О2,. .,От,...,Опс соответствует числу эмулируемых нейронов ИНС, так как некоторая операция о1 представляет собой математическую модель формального нейрона:
п
О1 = Д £атхт + а0). (1)
т=1
Для некоторых операций О. и О у также применимо отношение
предшествования р, которое задается следующим образом: "О., О у е О, О. р О у - в качестве входных данных операция О у использует выходные данные операции О., поэтому операция О у не может выполняться без предварительной выполненной операции О..
Для программной оптимизации систем обычно рассматривают три критерия или их комбинации с некоторыми приоритетами [2]:
- минимизация времени выполнения программы;
- минимизация размера кода;
- минимизация энергопотребления.
631
Цель алгоритма распараллеливания вычислений заключается в перераспределении кортежа операций
2М =< 0Ь02,...,От,...,0Пс >;] = 1Ы
и упорядочивания их в р кортежей операций:
< °ь 02,..., 0пс >®< 0ll, 012,..., 01пс >,..., < °рЬ 0 р2,..., 0 рпс > для последующего их наиболее рационального отображения в микрокоманде:
< 011,012,...,01пс >,...,< 0р1,0р2,...,0рпс >®<мк ,мк ,...,мк >.
12 к
Введем понятие сегмента операций Б0, подразумевающего кортеж операций 0, между которыми нет отношений предшествования:
Б0г =<0гЪ0/2,...,0тс >;0-1-1 р0,20р...0р0тс. (2)
Отношение предшествования р для операций задается следующим образом: "0/, 0м е 0,0/ р 0м - в качестве входных данных операция 0 м
использует выходные данные микронейрокоманды 0/. То есть команда 0м может быть выполнена тогда, и только тогда, когда уже выполнена операция 0/ .
Тогда весь кортеж операций, реализующих задачу 2() можно разделить на кортеж сегментов, определяемых как (2):
<01,02,...,0т,...,0пс >®<^ ,Б02,...,БРр >,
причем Б01 р Б02 р ... р БРр.
Рассмотрим отношение двух произвольно взятых операций 0^ и
01 . Введем понятие равенства операций 0^ = 0\, под которым будет подразумеваться одинаковое функциональное назначение - эмуляция нейрона.
Тогда справедливо утверждение о том, что отношение Е двух произвольно взятых микрокоманд 0^ и 0^ , удовлетворяющим (1), есть отношение эквивалентности.
Отношение эквивалентности - это бинарное отношение, для которого выполнены следующие условия: рефлексивность, симметричность, транзитивность. Рассмотрим каждое из этих условий.
1. Всякая операция 0^, удовлетворяющая (1) и являющаяся отражением модели нейрона, может выполняться параллельно самой себе, что подразумевает сама архитектура нейросети и нейрокомпьютера, т.е. окЕ0.
Таким образом, справедливо условие рефлективности операций.
632
2. Если операция О^ равна операции О, , то и операция О^ равна
операции О1 и одновременно с ней может выполняться, что предполагается исходя из парадигмы нейрокомпьютинга:
"О,О : ОкЕО1 ® О1ЕОк >
т.е. выполняется условие симметричности двух операций.
1. Если операция ок равна операции О, , а операция О, равна От,
тогда команда ок функционально равна От и параллельна команде От:
"О>О, :ОкЕО, • ОкЕО, ® ОкЕО, .
Таким образом, справедливо условие транзитивности операций. Деление на сегменты состоит из следующих этапов.
1. Заполнение матрицы отношений предшествования в зависимости от типа нейропроцессора. В матрице для решения данной задачи, рассматривается только область функциональных блоков нейропроцессора, ограниченная отношениями предшествования входных и выходных данных.
2. Для каждого значения столбца МИвг^ = («1, «2,.., Ппс} выделенной области матрицы МИвг рассматриваются следующие условия.
Если для «1 все значения столбца равны 'П, то операция О^, соответствующая эмуляции нейрона п1, может быть помещена в любой (текущий) сегмент БОу:
Швгу ='«'; I = 1, N ® БОу = БОу + О1, где N - размерность матрицы МШг.
Все «I, I = 1, пс, имеющие одно и то же расположение значений ' у' в столбцах матрицы выделенной области, помещаются в отдельный сегмент БОу :
Швгу =' у'; ® БОу = БОу + О}; I = 1, пс.
Если для решения задачи необходима обратная связь, выражающаяся в отношении предшествовании между последним и первым нейроном ИНС, то значение ' у' в левом нижнем углу матрицы MNeti = («1, п 2,..., ппс} не учитывается.
3. Имея множество сегментов (501 ,Б0 2,...,БРр}, отношения предшествования можно определить следующим образом:
- если у операций сегмента Б0/ позиция самого нижнего значения ' у' в матрице больше, чем позиция самого нижнего значения ' у' у операций сегмента , то между сегментами истинно отношение предшествования б0 р б0,:
J 1
тах к(50, =' у') > тах к(50, =' у'); к = 1, N ® р Б01.
Имея кортеж сегментов, связанных отношениями предшествования, для программирования и отображения операции в множество микрокоманд процессора, необходимо разбить сегменты с целью выделения кортежа операций, выполняемых за один такт процессора следующим образом:
если число операции
so,
в сегменте SO, больше, чем макси-
sO
мальное количество эмулируемых нейронов в нейропроцессоре (MAC), то необходимо разбить этот сегмент на два, притом, что отношения предшествования между ними них не будет обозначено:
> MAC : SO, = SO,1 U SO,2.
В итоге имеем кортеж сегментов, каждый из которых может быть представлен в виде микрокоманды (или кортежа микрокоманд) с максимальным уровнем параллельности выполнения множества операций за один такт. То есть, с использованием языка программирования, зависящего от выбранного нейропроцессора, имеем кортеж сегментов:
< Oil,Oi2,..,Onc >,...,< Opi,...,Opnc >®<SO1,SO2,...,SOL >.
Заключение. Предложен алгоритм распараллеливания вычислений в вычислительных системах на базе специализированного аппаратного обеспечения нейропроцессоров, представляющий собой математические основы перераспределения кортежа нейробазисных операций и упорядочивания их в отдельные кортежи операций. Показанное разделение на сегменты позволяет разработать набор эффективных подпрограмм, когда
каждой операции O, или множеству операций
Om = {Om i, Om 2,..., Om Np} ставится в соответствие кортеж микрокоманд нейропроцессора, написанных на его внутреннем языке < MK1,MK1 ,...,MK1 >; K- минимальное количество микрокоманд, не-
1 2 K
обходимое для реализации некоторой операции O,.
Список литературы
1. Комарцова Л.Г., Максимов А.В. Нейрокомпьютеры: учеб.пособие для вузов. М.: Изд-во МГТУ им. Н.Э.Баумана, 2004. 400 с.
2. Лукашенко В.В. Анализ основных вопросов классификаций распределенных вычислительных систем // Современная техника и технологии. 2015. № 4 (44). С. 65-69.
3. Романчук В. А., Математическое обеспечение оценки производительности систем нейрокомпьютерной обработки информации // Известия Тульского государственного университета. Технические науки. 2016. Вып. 2. С. 242-251.
4. Романчук В. А. Разработка алгоритмов определения связей элементов вычислительной структуры на базе нейропроцессоров // Информатика и прикладная математика: межвуз. сб. науч. тр. 2011. Вып.17. С.102-105.
5. Романчук В.А. Инновационный программный комплекс моделирования вычислительных систем на базе нейропроцессоров "НейроКС" // Современные научные исследования и инновации. 2012. №12(20). [Электронный ресурс]. URL: http://web.snauka.ru/issues/2012/12/19407 (дата обращения: 20.01.2017).
6. Галушкин А.И. Нейронные сети: основы теории. М.: Горячая линия Телеком, 2010. 496 с.
7. Топорков В.В. Модели распределенных вычислений. М.: ФИЗМАТЛИТ, 2004. 320 с.
8. Букатов А. А., Дацюк В.Н., Жегуло А.И. Программирование многопроцессорных вычислительных систем. Ростов-на-Дону: Изд-во «ООО «ЦВВР», 2003. 208 с.
Романчук Виталий Александрович, канд. техн. наук, доцент, v.romanchukarsu. edu.ru, Россия, Рязань, Рязанский государственный университет имени С.А. Есенина,
Ручкин Владимир Николаевич, д-р техн. наук, профессор, v. ruchkina rsu. edu. ru, Россия, Рязань, Рязанский государственный университет имени С. А. Есенина
DEVELOPMENT OF ALGORITHMS OF PARALLEL COMPUTING IN NEUROCOMPUTING SYSTEMS
V.A. Romanchuk, V.N. Ruchkin
The mathematical description of the algorithm parallelization in computing systems based on dedicated hardware - neuroprocessor. The goal of the algorithm parallelization is the distribution of the tuple neurobasing operations and organize them in a tuple operations. For the implementation of the algorithm uses a set-theoretic approach to concepts: a task with a high degree neurobashing computing; nairobissa operation; segment operations.
Key words: computer system, neurocomputer, parallelization, neurobasis computing, parallel computing.
Romanchuk Vitaliy Alexandrovich, candidate of technical sciences, docent, v.romanchuk @rsu.edu.ru, Russia, Ryazan, Ryazan State University,
Ruchkin Vladimir Nikolaevich, doctor of technical sciences, professor, v. ruchkinarsu. edu. ru, Russia, Ryazan, Ryazan State University
УДК 621.313.333; 621.865
АЛГОРИТМ ИДЕНТИФИКАЦИИ, ОБЕСПЕЧИВАЮЩИЙ КАЧЕСТВО УПРАВЛЕНИЯ ОБЪЕКТОМ
С.И. Мельник, А.А. Столяров, А.А. Бортников, М.Ю. Фомичев
Рассмотрен алгоритм идентификации, основанный на регрессионном анализе с использованием метода наименьших квадратов. Выбрана структура модели в виде передаточной функции или дифференциального уравнения. Сформулированы рекомендации по выбору числа и периода измерений.
Ключевые слова: алгоритм идентификации, динамическая модель, передаточная функция, регрессионный анализ.
Успешное решение задачи управления предусматривает выбор адекватной модели объекта управления и определение ее параметров по экспериментальным характеристикам объекта. Для этих целей используются различные методы идентификации. Если объект управления, в качестве которого может использоваться многофункциональный робототехни-ческого комплекс (МРТК), имеет стационарные характеристики, то процедура идентификации проводится один раз при расчете параметров стационарного регулятора.
Нестационарные объекты требуют адаптивных способов управления, в которых используются методы текущей идентификации. В этом случае параметры модели определяются путем обработки на микропроцессоре (МП) данных, поступающих от объекта идентификации непосредственно в процессе функционирования.
Вопросам синтеза алгоритмов идентификации, для обеспечения требуемого качества управления робототехническими устройствами посвящено значительное количество работ [1,2]. При этом для текущей идентификации в реальном масштабе времени созданы рекуррентные методы. Представляет определенный интерес анализ алгоритма идентификации, основанного на регрессионном анализе с использованием метода наименьших квадратов [1 - 3].
Обычно регрессионный анализ применяют для оценки параметров статистических характеристик вида
У = ао + + «2^ 2 +... + апип, (1)
где и1, и2, ..., ип - входные воздействия; У - выходной сигнал.