УДК 004.383.3
МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ И КЛАСТЕРИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ НА БАЗЕ НЕЙРОПРОЦЕССОРОВ
В. А. Романчук, В.Н. Ручкин
Предложены модель разбиения нейропрограммы на множество подпрограмм, методика идентификации связей между подпрограммами и выбора структуры нейро-процессорной системы, что обеспечивает полный цикл логического проектирования вычислительных систем на базе нейропроцессоров. Предложена методика сегментирования нейромикропрограммы, позволяющая выявлять возможность организации кластеров для рационального выполнения нейромикропрограмм.
Ключевые слова: вычислительная система, логическое проектирование, кластеризация, нейропроцессор, нейрокомпьютер, стратегия проектирования.
Нейрокомпьютер - устройство переработки информации на основе принципов работы естественных нейронных систем [1].
Принципиальные преимущества нейрокомпьютера
1. Высокий уровень параллелизма операций. Проблема эффективного параллелизма решается долгое время для процессоров, работающих в соответствии с принципами фон Неймана, но задача до сих пор не решена в полной мере, что связано с законом Гроша и гипотезой Минского. Ней-роинформатика предоставляет универсальные мелкозернистые параллельные архитектуры для решения различных классов задач, для которых строится абстрактная нейросетевая реализация алгоритма решения, которая затем реализуется на конкретных параллельных вычислительных устройствах - нейрокомпьютерах.
2. Надежность системы, которая определяется свойствами:
однородностью системы - элементами нейронной сети, которые
одинаковы и просты;
избыточным количеством связей, при котором можно пренебречь "ненадежными элементами";
"голографичностью" - способностью сохранения свойств и работоспособности системы при разрушении части системы.
3. Высокая энергоэффективность. Эффективность достигается за счет использования однотипных аппаратных ресурсов, предназначенных для эмуляции элементарных нейронов.
Основным операционным блоком нейрокомпьютера является нейропроцессор - аппаратнореализуемая нейронная сеть. Этот блок не производит вычислений, как это делает арифметико-логическое устройство машин фон Неймана, а трансформирует входной сигнал в выходной в соответствии со своей топологией и значениями коэффициентов межнейронных связей [2].
В связи с аппаратными особенностями нейрокомпьютеров имеется ряд концептуальных и фундаментальных отличий при проектировании вычислительных систем различной структуры на базе нейропроцессоров.
Цель работы. Целью работы является разработка математической модели логического проектирования и кластеризации вычислительных систем различной структуры на базе нейропроцессоров.
Модель разбиения нейропрограммы на множество
подпрограмм. Пусть РЯ'(^ - некоторая микропрограмма, написанная на
языке нейроассемблера. Тогда под нейромикропрограммой РЯ(^ понимается кортеж микрокоманд, каждая из которых может быть двух типов:
1. Микрокоманда МК(1) реализации операций описания формального нейрона
0(1) = f (I атхт + а0).
т=1
2. Микрокоманда МК(2) реализации вспомогательных операций второго типа для обмена данными, управления подготовки данных и др. Команда предполагает достаточно широкий набор возможных операций: операции сложения, деления, адресации, условных переходов, циклов и др.
По принципам функционирования, микрокоманда МК(2) имеет незначительные отличия от команды процессора архитектуры фон Неймана.
Исходя из специфики и принципов функционирования нейрокомпьютеров, количество команд МК(1) гораздо больше команд МК(2) (превышает 99 %), более того, команды второго типа "делят" кортеж микрокоманд на сегменты, так как являются вспомогательными для подготовки данных (рис. 1).
п
Рис. 1. Сегменты программы для нейрокомпьютера
Исходя из принципов функционирования и назначения нейрокомпьютера, количество и вид команд МК(2) зависит от кортежа команд МК(1),
то есть каждая произвольно взятая команда команды МК^р, то есть
МК(2)
п
зависит от некоторой
"МКП2 £ ЯР(]): МКП2 = f (МК(11); I = 1, N
где N2 - количество команд второго типа.
222
Также каждой команде МК(1) может соответствовать одна или несколько операций МК(2), подготавливающих данные для выполнения МК(1).
Рассмотрим отношение двух произвольно взятых микрокоманд МКк1 и МК(1), каждая из которых представляет собой комплекс несвязанных между собой команд МК(1) = {мК1(1), МК^,..., МК7(1),..., МК^],
число которых зависит от конкретного нейрокомпьютера. При этом, рассматривая две команды в виде "черного ящика", имеем: одинаковое функциональное назначение - эмуляция нейрона; одинаковое время выполнения команды, равное одному такту нейропроцессора; воздействие на один и тот же набор аппаратных ресурсов; аппаратная реализация нейрокомпьютера предполагает один и тот же путь потока данных и потока команд.
Введем понятие функционального равенства микрокоманд
МК^к1 = мКр, под которым будет подразумеваться равенство времени исполнения команды ТМК(1) = ТМК(1) и равенство используемых командой аппаратных ресурсов ^МК(1) = ^МК(1), т е.
к I
МКк! = мк\1) =
Мр = М}1)
КМК£> = кмк®' (2)
Тогда справедливо утверждение о том, что отношение Е двух произвольно взятых микрокоманд МК^1 и мКр, удовлетворяющих (2), есть
отношение эквивалентности.
Отношение эквивалентности - это бинарное отношение, для которого выполнены следующие условия: рефлексивность, симметричность, транзитивность.
Рассмотрим каждое из этих условий.
1. Всякая микронейрокоманда МК^1, являющаяся отражением модели нейрона, может выполняться параллельно самой себе, что подразумевает сама архитектура нейросети и нейрокомпьютера, т.е. МКк1 ЕМК^р. Таким образом, справедливо условие рефлективности команд "МКк1 е РЯ(■>); к = й.
2. Если команда МК^1 функционально равна команде МК(1), то и
команда МК^1 функционально равна команде МК/(1) и одновременно с
ней может выполняться, что предполагается исходя из парадигмы нейро-компьютинга т.е.
"МК^,Мк\1) е РЯ(Л): МКРEROk ® МК/(1)ЕМК^^.
(3)
Другими словами, выполняется условие симметричности двух нейромик-рокоманд.
3. Если команда МК^1 функционально равна команде МК(1), а команда МК(1) функционально равна МК^Р, тогда команда МК^1 функционально равна МКт(1) и параллельна команде МК(1)
т.е.
"МК^, МК/(1) е PR(Л) ® МК^ ЕМК®.
т. (4)
Таким образом, справедливо условие транзитивности нейромикро-команд.
Введем понятие сегмента БО нейромикропрограммного кода, пора-зумевающего кортеж команд МК(1) и связанных вспомогательных команд подготовки данных МК(2):
Л')
БО}" =<< МК1
(2) МК(2)
2
,...,Мк(2) >,<МК1(1),Мк21),...,мкт1) >,
'(2^(2)
>, < (2)
,<мк^\мк^,...,мкУ2 >>;г = 1,м
(5)
>( Л)
можно разделить на кортеж сегментов,
Тогда всю программу РЯУ определяемых как (5):
РЯ(Л) ®<БО^,802л),...,БО' >;т = 1М;"Л = . (6)
Тогда под подпрограммой нейромикропрограммы ЯО^ будем понимать кортеж сегментов, определяемых как (5):
_ _ (7)
ЯО\1)
=< БО}7'),БО2),...,БО^Л) >;I = 1,Ь;"Л = 1,N .
На рис. 2 показано сегментирование программы РЯ
(Л)
Рис. 2. Сегментирование нейромикропрограммы
224
Понятие сегмента при реализации его на вычислительном узле, имеющем несколько вычислительных машин, является понятием кластера, в связи с чем рассматриваемая модель является и моделью кластеризации вычислительных систем на базе нейропроцессоров.
Рассмотрим две произвольно взятые подпрограммы ЯО ^ и ЯОк,
каждая из которых представляет собой некоторый сегмент (рис. 2), то есть представляет собой множество команд эмуляции нейрона, каждая из которых эквивалентна другой, произвольно выбранной команде, и вспомогательные команды, подготавливающие данные для обработки и являющиеся неотъемлимой частью множества команд первого типа:
ЯО^) =<МК1,МК2,...,МК{,...,МК1 >;МК{ = [МК(1\МК\2)} ,
(8)
"МК^, МК7(1) е ЯО^) е Е: МК^ ЕМК^ .
Рассмотрим отношение ЯО^^Ок структуры , которое указывает на то, что любые две произвольно взятые подпрограммы ЯО^ и ЯОк,
удовлетворяющие (8), могут выполняться одновременно на разных нейро-процессорных вычислительнтых модулях (НПВМ) под управлением микрокоманд, принадлежащих указанным подпрограммам, т.е.
"ЯО1, ЯОк е РЯ(Л : ЯО^ЯОк . (9)
Тогда справедливо утверждение о том, что отношение структуры обработки есть отношение эквивалентности.
1. Всякая программа обработки информации ЯО1, удовлетворяющая (8), в связи с взаимной эквивалентностью атомарных операций подпрограммы может выполняться параллельно самой себе, т.е. ЯOlSwЯOl. Таким образом, справедливо условие рефлективности подпрограмм "ЯО1 е РЯ(■>).
2. Если подпрограмма обработки информации ЯО1 равна подпрограмме ЯОк, то подпрограмма обработки ЯОк равна подпрограмме обработки ЯО1 и одновременно с ней может выполняться, т.е.
"ЯО1, ЯОк е РЯ(Я : ЯOlSwЯOk ® ЯО^ЯО1. (10)
Другими словами, выполняется условие симметричности двух подпрограмм обработки.
3. Если подпрограмма обработки информации ЯО1 равна подпрограмме обработки ЯОк, а подпрограмма ЯОк равна ЯОд, тогда подпрограмма обработки ЯО1 равна и параллельна подпрограмме обработки ЯОд, т.е.
"ЯО1, ЯОк е РЯ) е Sw : ЯО^ЯОк, ЯОк5м>ЯОд ® ЯО^ЯОд. (11)
Таким образом, справедливо условие транзитивности подпрограмм обработки информации.
Тогда задача разбиения программы на множество подпрограмм преобразуется в задачу рационального последовательного объединения
сегментов < БОт >; т = 1,М в множество подпрограмм {ЯО(Я)};1 = 1, Ь :
ря (/) ®< бар), бо2] ), >( / )!
>
® {ЯОу;};т = 1,М;I = 1,Ь;V/ = 1,N (12)
То есть задача разбиения заключается в нахождении значения Ы выражения (7) для всех подпрограмм ЯО); I = 1, Ь, где число подпрограмм равно числу НПВМ Ь = q:
ЯО\Я) =<БО^),БОу),...,50\/) >;I = 1,Ь;V/ = 1,N, Ь = q .
В редких случаях, когда число сегментов М меньше, чем значение
Ь = q, рационально разделить некоторый сегмент БО(/ на два и более сегмента:
;С0 сг-СО
(13)
М < q: БО)
(/)
БОЦ),БОЦ),...,^ >.
(14)
Пусть число команд МК(1) в программе РЯ(/), определяемой как
(6), равно
МК
(1) ря
число команд некоторого сегмента БО^ равно
МК
(1)
Цель разбиения программы на подпрограммы состоит в достижении одинакового времени обработки для всех этапов, то есть в данном случае в
МК(1) для всех подпро-
достижении одинакового количества команд
41)
грамм. Тогда необходимо определить среднее число МКРЯ команд МК в подпрограмме:
(1)
мкРЯ
МКРЯ
q
(15)
Далее добавление нового сегмента к подпрограмме возмож-
но лишь тогда, когда разность значения МКР(1Я) и суммарного количества команд МК(1), уже добавленных в подпрограмму ЯО(^) сегментов, боль-
ше, чем
МК
(1) РЯ
То есть если верно условие
- 1е
, (16)
МК® - I
РЯ
II=1Ь
'е МК(1)
7
>
2
где '' определяет номера сегментов, уже включенных в подпрограмму: 'Ь - номер первого сегмента в подпрограмме ЯО(^); 'е - номер последнего
сегмента в подпрограмме ЯО^).
Тогда
Яо(л) ® Я0(]) + Бо(л); 'е ® 'е +1. (17)
Если условие (16) неверно, то
Я0(+1 ® ЯОЩ + БО(]);'Ь = г;1п = г. (18)
Начальными условиями для решения задачи (13) являются 'Ь = 1; 1п = 1
Таким образом, в соответствии с выражениями (15) - (18) нейро-микропрограмма РЯ(л) может быть рационально разделена на подпрограммы РЯ(л) ® {Я0(л)};' = 1,Ь;"л = 1,N, для которых верно отношение структуры обработки информации .
В итоге имеем ряд подпрограмм, где каждая подпрограмма
- это отображение некоторой вычислительной подзадачи из множества Т = {Т\,Т2,...,Тт}, связанных отношением предшествования р, которое задается следующим образом: "Т,Т/ е Т,Т р Тл - подзадача
Т использует результаты выполнения задачи Тл, и поэтому может
быть запущена только по окончанию задачи Т. Аналогично может быть введено отношение предшествования для подпрограмм: "ЯОг, ЯОл е ЯО, ЯОг р ЯОл.
Необходимо отметить, что если выполняется отношение предшествования для Т р Тл, то и оно выполняется и для соответствующих им подпрограмм ЯОг р ЯО л :
Т р Тл ® ЯОг р ЯО л . (19)
Произвольная вычислительная задача J может быть формально описана в виде ориентированного графа:
J = (Т ,У, w, Бг, ), (20)
227
где T- множество вершин-подзадач; Y = {(u, v)|u, ve T & v p u} - множество дуг, определяющих зависимости по данным; w - отображение, определяющее оценку объема передаваемых данных в байтах по соответствующей дуге (между подзадачами); Sy - размер входных данных для вершин-источников; Fy - оценку размера выходных данных для вершин-стоков.
Входные данные вершин-источников подготавливаются владельцем задачи заранее, до запуска задачи, и передаются узлу-диспетчеру А в момент отправки задачи на исполнение. Эти данные могут быть оформлены в виде файлов или записей в базе данных. По окончании вычислений выходные данные вершин-стоков возвращаются пользователю [3, 5, 9].
Каждая подзадача Tj представляет собой параллельную неинтерактивную программу, способную работать в пакетном режиме. Будем считать, что каждая подзадача целиком выполняется в рамках выделенного ей вычислительного узла. Процессы подзадачи Tj запускаются локальным
планировщиком одновременно на всех выделенных вычислительных ядрах, во время работы они обмениваются сообщениями между собой. Ресурсы, выделенные подзадаче, освобождаются при завершении всех ее процессов [6, 7].
Идентификация связей между подпрограммами. Цель этапа состоит в определении зависимостей между всеми подпрограммами
PR(j) ® {ROр)};l = 1,L;"j = 1,N, полученнными на предыдущем этапе. То есть, цель - нахождение всех отношений предшествования между подпрограммами {RO( j)}.
Результаты идентификации связей между подпрограммами {RO(j)}; l = 1, L; "j = 1, N нейропроцессорной вычислительной системы (НПВС) будем представлять в виде матрицы связи НПВМ M = [Mj ]. Ее
размерность q х q, где q - число НПВМ.
Каждый элемент матрицы может принимать значения Mij = {'-',' ri; y'}:
' ri (no) - между подпрограммами RO^) и Roj) (j > i) нет отношения предшествования —,(ROi p ROj);
' y' (yes) - между подпрограммами RO^j) и RO() есть отношение предшествования ROi p ROj; j > i;
'-' - между подпрограммами не может быть отношения предшествования, так как i > j.
Для примера рассмотрим матрицу связей для пяти подпрограмм
[ЯО1};' = 1,5:
X п п п
п
X X у у п М = X X X п п X X X X у X X X X X Для того чтобы определить элементы матрицы М , введем вспомогательную матрицу М' = [М^ ] размерности q х Е, в которой число столбцов Е - это количество аппаратных ресурсов процессора (регистры, ячейки памяти и т.п.). Например, для нейропроцессоров семейства КМ640х Е = 44 (дополнительно заносятся области памяти, занятые переменными).
Элементами матрицы могут быть Му = {'-',' g',' д',' где '-' - ресурс не использовался в подпрограмме ЯОг(л); ' - ресурс был изменен в подпрограмме ЯОг(л); ' g- ресурс был использован в подпрограмме ЯОг(л); ' gs' (get+set) - ресурс был использован, а затем изменен в
одной и той же подпрограмме {ЯОг( л)}.
Для примера рассмотрим матрицу М для пяти подпрограмм [ЯО1};' = 15:
М' =
д -- g
Д
gs
Случай, когда элемент сначала присваивается в подпрограмме, а затем используется, не рассматривается, т.к. важен только случай присваивания элемента в текущей подпрограмме, т.е. случай с обозначением ' б'.
Данная матрица содержит состояние каждого элемента процессора
в каждой подпрограмме ЯОг( л) и позволяет определить элемент матрицы Мгл следующим образом:
((М'гк ='б') л (М^ ='g') V (М\к ='gS)) л ((М'пк ='Б') V V (М'пк ='gs,)) ®® Му ='у';п = г +1,].
д
д
М ='&') А (Мук ='g') V (М\к ='gs,)) л ((МПк ='У) V
V Мк =' gs,)) ®® Му =' У; п = 7+17. (22)
Тогда целью алгоритма идентификации связей является заполнение элементов матрицы связей НПВМ.
С целью определения состояния ресурса процессора Я в подпрограмме Яо77 = Р предлагается использовать математический аппарат конечных автоматов. Пусть К = (Б, 2 ,Ж, 8,1, Б-) - конечный автомат описания (рис. 3), где Б - множество состояний автомата К; 2 - множество входных сигналов автомата К; Ж - множество выходных сигналов автомата К; 8 - функция переходов автомата К; 1 - функция выходов автомата К; Б- - начальное состояние автомата К.
Множество состояний Б автомата К: Б-р состояние, определяющее значение М'яр ='-'; Б 2- состояние, определяющее значение М'яр ='я'; Бз - состояние, определяющее значение МЯр =' g'; £4- состояние, определяющее значение М'яр =' gS;
Входной алфавит 2 автомата К: 2-- ресурс Я поменял значение; 22- значение ресурса Я было использовано; 23- значение элемента Я было сначала использовано, потом присвоено.
Выходной алфавит Ж автомата К: Ж- =1(5-); Ж2 = 1(Б2);
Жз =1(Бз); Ж4 = 1(ЗД.
Рис. 3. Представление конечного автомата идентификации состояния аппаратного ресурса НПВМ
Таким образом, результатом реализации этапа является некоторая матрица М = [Му ], описывающая отношения предшествования подпрограммами {Яо}7)}; I = ; "у = .
Выбор структуры НПВС. На данном этапе необходимо определить структуру НПВС. Рассмотрим введенное ранее понятие структуры , под которым понимается отношение параллельности выполнения
подпрограмм ЯОц,ЯОг2 между г^-м и г^-м процессорными модулями
ЯАЯ^; "Яц, Яг2 е РЯ() [1, 5 - 10]. Тогда необходимо определить структуру Бw е Б; w = 1,Ж
из
множества
всевозможных
структур
Б = {Б1,Б2,...,Бw...,Б^}, позволившую некоторой л -й программе РЯ(л), определяемую как поставить в соответствие множество подпрограмм
{ЯО(л)}; ' = 1,Ь . Эта структура описывается типом, числом процессорных модулей q и матрицей отношений предшествования.
Если рассмотреть все возможные структуры, то могут получиться уже известные структуры обработки: конвейерная, векторная, конвейерно-векторная, векторно-конвейерная и множество неизвестных структур, которые можно классифицировать путем введения лингвистических переменных, например, почти - векторная, почти - конвейерная и т.п.
1. ЯОг Р ЯО+1 Р ... Р Я0q .
В этом случае выходная информация каждой подпрограммы ЯОг является входной для следующей ЯОг+1; г = 1, q; входная первой программы ЯО1 является входной, а последней Я0q - выходной всего устройства.
В этом случае назначая q процессорных модулей на обработку информации, имеем структуру конвейерного типа. Отличием матрицы для данной структуры является наличие значений ' у по диагонали над главной диагональю матрицы. В остальных ячейках должны быть значения ' п'. Пример матрицы конвейерной структуры для пяти НПВМ:
- у п п п
М
у п п
- у п
- - у
Структура имеет смысл при распределении слоев нейронной сети на разные НПВМ, то есть имеем "вертикальное" разделение.
2. 0ЯОг Р ЯО+)& 0ЯО1+1 Р ЯОг+2),...,0Я0q-l Р Я0q).
То есть входная информация требуется одновременно для всех подпрограмм, тогда назначая q процессорных модулей на обработку информации, получаем структуру векторного типа, в которой все q НПВМ будут функционировать одновременно.
Отличием матрицы для данной структуры является то, что все значения ячеек равны ' п'. Пример матрицы векторной структуры для НПВМ:
М
Структура имеет смысл при разделении нейронной сети на сегменты нейронов, которые могут выполняться на разных НПВМ, то есть имеем "горизонтальное" разделение.
3. Объединим все смежные подпрограммы, в которых информация
передается параллельно, в К множеств: Ог = {ЯО^,...,ЯО^},"г = 1,К.
Тогда О = О1,...,Ок}. Число подпрограмм в каждой группе различно
Ыог. =| {О/ }|, "г = 1, К . Тогда, если
для
каждого
множества
ЯО.м РЯО.м+1 Р... Р КО^, то есть все подпрограммы ЯОг
(л)
М
ЯО (л)
внутри множеств О!, г = 1, К, обмениваются информацией последовательно, то структура является конвейерно-векторной и представляет собой структуру, в которой по принципу конвейерной системы обрабатываются векторные структуры.
Число НПВМ
q = !1{Ог }|. (23)
г=1
Отличием матрицы для данной структуры является то, что все значения ' у' сгруппированы в прямоугольные контуры, которые упорядочены в матрицы по типу лестницы и нет рядов и строк матрицы без хотя бы одного значения ' у'. Пример матрицы векторной структуры для пяти НПВМ:
- у у у п
- - п п у
М = - - - п у
--- у
Структура имеет смысл при разделении общей нейронной сети комплекса самостоятельных ИНС, которые могут выполняться на разных НПВМ, то есть имеем "горизонтальное" разделение на различные ИНС.
Если в каждом множестве О1 число подпрограмм равно 1, т.е.
IО11=| О2 |=... =| Ок |= 1, то имеем структуру конвейерного типа.
4. Объединим все смежные подпрограммы, в которых информация передается последовательно, в V множеств: 07 = {ЯО^,...,ЯО^}, "7 = IV. Тогда О = {О-,...,0v}. Число подпрограмм в каждой группе различно для каждого множества N07. =| {О7}|,"7 = IV. Тогда, если ~(ЯО7М РЯО.М+1)&0ЯО.М+1 РЯО.М+2),...,0(ЯОш-1 рЯO7N), то есть всем подпрограммам ЯО^,...,ЯОN внутри множества О.,7 = IV информация необходима одновременно, то структура является векторно-конвейерной и представляет собой структуру, в которой по принципу векторной системы обрабатываются конвейерные структуры.
Число НПВМ
V
(24)
ч = НО- }|.
7=1
Отличием матрицы структуры является то, что все значения ячеек равны ' П, кроме некоторых (не всех) значений ' У над главной диагональю матрицы. Пример матрицы векторно-конвейерной структуры для пяти НПВМ:
М
У п п п
- п п п
- - У п --- п
Структура имеет смысл при резком увеличении количества нейронов ИНС на следующих слоях сети, в этом случае рационально разделить ИНС по векторному принципу, но на некоторых слоях.
Если в каждом множестве О7 число подпрограмм равно 1, т.е.
IО11=| О2 |=... =| 0v |= 1, то имеем структуру векторного типа.
5. Во всех остальных случаях (например, если группы обмениваются информацией последовательно, а некоторые классы внутри группы -параллельно, некоторые - последовательно) имеем НПВС произвольной структуры.
Таким образом, были рассмотрены все варианты возможных многопроцессорных структур и определено количество процессорных модулей для каждого варианта структуры.
Заключение. Таким образом, были предложены модель разбиения нейропрограммы на множество подпрограмм, методика идентификации связей между подпрограммами и выбора структуры нейропроцессорной системы, что обеспечивает полный цикл логического проектирования
вычислительных систем на базе нейропроцессоров. Предложена методика сегментирования нейромикропрограммы, позволяющая выявлять кластеры для рациональной организации вычислительной системы.
Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта №14-07-00261 а.
Список литературы
1. Эволюция автоматизированного проектирования электронно-вычислительных средств. / В.П. Корячко, С.В. Скворцов, А.И. Таганов, А.П. Шибанов // Радиотехника, 2012. № 3. С. 97 - 103.
2. Ручкин В.Н., Романчук В. А., Фулин В. А. Когнитология и искусственный интеллект. Рязань: Узорочье, 2012. 260 с.
3. Романчук В.А., Ручкин В.Н. Разработка программных средств анализа нейропроцессорных систем // Вестник РГРТУ. Рязань: РГРТУ, 2010. Вып. 32. № 2. С. 61 - 67.
4. Романчук В.А., Ручкин В.Н. Разработка программного комплекса для моделирования и анализа нейропроцессорных систем обработки изображений // Цифровая обработка сигналов. Рязань: Информационные технологии, 2010. №1. С.53 - 58.
5. Карпов В.С., Ивутин А.Н., Суслин А.А. Подход к реализации методики оценки надежности ПО на основе комплексных метрик // Известия Тульского государственного университета. Технические науки. 2009. Вып. 4. С. 116 - 125.
6. Экспертная система нечеткой кластеризации нейропроцессорных систем / В.Н. Ручкин, В. А. Романчук, В. А. Фулин, А.А. Пролыгина // Известия тульского государственного университета. Технические науки. Тула: Изд-во ТулГУ, 2014. Вып. 6. С. 162 - 167.
7. Романчук В. А. Оптимизация программных и аппаратных средств сложных вычислительных систем на базе нейропроцессоров // Моделирование, оптимизация и информационные технологии. №1(8) 3. 2015. [Электронный ресурс] URL: http://moit.vivt.ru/wp-content/uploads/2015/03/ Ro-manchuk 1 15 1.pdf (дата обращения: 08.08.2015).
8. Романчук В. А. Логическое проектирование вычислительных систем на базе нейропроцессоров // Современные научные исследования и инновации. № 12. 2014. [Электронный ресурс] URL: http://web. snauka.ru/ issues/2014/12/41496 (дата обращения: 09.08.2015).
9. Кластеризация и восстанавливаемость нейропроцессорных систем обработки данных / В.К. Злобин, Д.В. Григоренко, В.Н. Ручкин, В. А. Романчук // Известия Тульского государственного университета. Технические науки. Вып. 9. Ч. 2. Тула: Изд-во ТулГУ, 2013. С. 125 - 135.
10. Ivutin A.N., Larkin E.V. Estimation of Latency in Embedded RealTime Systems // 3rd Mediterranean Conference on Embedded Computing MECO - 2014. Budva, Montenegro. P. 236-239.
Романчук Виталий Александрович, канд. техн. наук, доц., v.romanchiik a rsH. edu.ru, Россия, Рязань, Рязанский государственный университет им. С.А. Есенина,
Ручкин Владимир Николаевич, д-р техн. наук, проф., v.ruchkina rsu.edu.ru, Россия, Рязань, Рязанский государственный университет им. С.А. Есенина
MATHEMATICAL SOFTWARE LOGIC DESIGN AND CLUSTERING COMPUTING SYSTEMS BASED ON NEUROPROCESSORS
V.A. Romanchuk, V.N. Ruchkin
A model of splitting the program into a plurality of sub-programs, the method of identification links between routines and structure selection neuroprocessor system that provides a full cycle of the logical design of computing systems based on neuroprocessors is proposed. The method of segmenting neyromikroprogrammy, allowing to identify the possibility of organizing clusters for rational execution of the program. The reported study was funded by RFBR according to the research project №14-07-00261.
Key words: computer system, logical design, clustering, neuroprocessors neurocomputer strategy design.
Romanchuk Vitaliy Alexandrovich, candidate of technical sciences, docent, v. romanchuk a rsu. edu. ru, Russia, Ryazan, Ryazan State University,
Ruchkin Vladimir Nikolaevich, doctor of technical sciences, professor, v. ruchkin@,rsu. edu. ru, Russia, Ryazan, Ryazan State University