Научная статья на тему 'Математические модели, алгоритмическое, программное обеспечение организации и логического проектирования сложных и распределенных систем на базе нейропроцессоров'

Математические модели, алгоритмическое, программное обеспечение организации и логического проектирования сложных и распределенных систем на базе нейропроцессоров Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
320
83
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА / ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ / НЕЙРОПРОЦЕССОР / НЕЙРОКОМПЬЮТЕР / COMPUTER SYSTEM / LOGICAL DESIGN / NEUROPROCESSORS NEUROCOMPUTER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Романчук Виталий Александрович, Ручкин Владимир Николаевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Романчук Виталий Александрович, Ручкин Владимир Николаевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

MATHEMATICAL MODELS, ALGORITHMS, SOFTWARE ORGANIZATIONS AND LOGICAL DESIGN OF COMPLEX AND DISTRIBUTED SYSTEMS BASED ON NEUROPROCESSORS

The mathematical models of parallel and distributed computation-inflammatory-based systems neuroprocessors algorithmic software for calculating performance and choice of structure neurocomputing multiprocessor systems are proposed. Displaying designed software for logical design-ing complex parallel and distributed systems neurocomputing.

Текст научной работы на тему «Математические модели, алгоритмическое, программное обеспечение организации и логического проектирования сложных и распределенных систем на базе нейропроцессоров»

Fokin Andrey Gennadevich, undergraduate, actek.fokin@,gmail. com, Russia, Tula, Tula State University,

Chubukina Tatyana Sergeevna, undergraduate, oluciferus@,gmail. com, Russia, Tula, Tula State University

УДК 004.383.3

МАТЕМАТИЧЕСКИЕ МОДЕЛИ, АЛГОРИТМИЧЕСКОЕ, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ОРГАНИЗАЦИИ И ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ СЛОЖНЫХ И РАСПРЕДЕЛЕННЫХ СИСТЕМ НА БАЗЕ НЕЙРОПРОЦЕССОРОВ

В. А. Романчук, В.Н. Ручкин

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

Ключевые слова: вычислительная система, логическое проектирование, нейро-процессор, нейрокомпьютер.

В настоящее время для процессоров наступил «технологический предел», означающий, что они достигли максимального уровня повышения быстродействия. Промышленные разработки в основном направлены на повышение числа процессоров на кристалле, в связи с чем возникает проблема эффективного параллелизма, то есть трудность при создании алгоритмов, работающих эффективно на нескольких процессорах и ядрах процессора, что отражается в законе Гроша и гипотезе Минского [1]. В работе предлагается в качестве выхода из данной ситуации новая элементная база - нейрокомпьютеры. Нейрокомпьютер - вычислительное устройство нового 6-го поколения, функционирующее на основе принципов работы естественных нейронных систем, то есть головного мозга человека. Нейропроцессор (НП) - главный вычислительный блок нейрокомпьютера. В основе его работы - математическая модель нейрона, которая представляет собой элементарный объект с множеством связей, называемых синапсами по аналогии со связями между биологическими нейронами. Выходные сигналы одних нейронов поступают на входы других, образуя

209

нейронную сеть, каждая связь характеризуется своим весом. Программирование нейрокомпьютера - это не написание алгоритма, а обучение его искусственной нейронной сети (ИНС) на выполнение конкретной задачи, что реализуется путем подбора весов связей нейронной сети [2]. Один из главных недостатков нейрокомпьютеров - низкая частота, которая измеряется в количестве выполненных операций за один такт (наименьшая единица времени процессора), что решается с помощью реализации нейропроцессорных систем, в том числе облачных и распределенных. С появлением параллельных и распределенных систем на базе нейропроцессоров возникли проблемы их рациональной организации, логического проектирования и достижения высокой степени параллелизма операций.

Цель работы. Актуальным и перспективным направлением является разработка математических моделей параллельных и распределенных нейропроцессорных систем, алгоритмического и программного обеспечения их логичесой организации.

Математическая модель параллельной нейропроцессорной системы. Параллельной нейропроцессорной вычислительной системой, будем называть называется систему, элементы которых соединены на шинном уровне [3]. Элементом такой вычислительной системы является вычислительное ядро - нейропроцессор. Вычислительные ядра могут относиться как к отдельным процессорам (по одному ядру на каждом), так и к нескольким многоядерным процессорам. С целью упрощения модели они рассматриваются, как единое множество P = {Р1, P2,..., Pq}. Процессы, выполняющиеся на вычислительных ядрах, могут напрямую считывать и записывать информацию в оперативную и дисковую память данного узла, взаимодействуя с ними через системную шину или коммутатор.

Параллельная система может быть описана в виде

^ = {Р, E, А, Sw ,т ,Л}, (1)

где P = Р2,..., Pq} - множество вычислительных узлов НВПС, где каждый вычислительный узел-нейропроцессор может быть описан с помощью технических параметров

Рг ® Hр, Hki, НП, Hmi, (2)

где Нрг, Нрг, Нц, Нтг - технические параметры, отвечающие за тактовую

частоту нейропроцессора, количество ядер, объемы оперативной и дисковой (в случае необходимости) памяти для / -го нейропроцессорного вычислительного модуля (НПВМ) соответственно; Sw - структура нейропроцессорной вычислительной системы (НВПС); Е - множество направленных связей между узлами НПВС, количество которых определяется видом

структуры, то есть Е = ¥(^^); А - диспетчер (управляющий узел) НПВС; Т№: СЬ и {А} х СЬ и {А} - определяет среднюю пропускную способность между узлами НПВС; Т1: СЬ и {А} х СЬ и {А} - определяет латентность, то есть временные затраты, необходимые для инициализации сообщений, отправления и приема данных и т.п.

Отметим следующие свойства:

Так как процессоры соединены между собой на шинном уровне, то задержками передачи информацией Ttr и временем латентности Tl можно пренебречь: Ttr » 0, Tl = 0.

Можно описать также динамические параметры системы в произвольный момент времени t е [0,+ :

Ui (t) - загруженность i -го вычислительного ядра, 0 £ Ui (t) £ 1;

Иц (t) - объем доступной оперативной памяти i -го НПВМ;

Hmi (t) - объем доступной дисковой памяти i -го НПВМ.

Важной особенностью нейропроцессоров является то, что процесс обучения и функционирования - это постоянный (в каждой команде) обмен информацией между оперативной памятью и вычислительным ядром. Поэтому важен тип конфигурации внешней шины для работы с оперативной памятью в многопроцессорном режиме.

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

Возможны три типа конфигурации внешней шины для многопроцессорного режима.

1. Многопроцессорная конфигурация 1-го типа (банк 0 - "общий", банк 1 - "общий"). Данная конфигурация характеризуется тем, что доступ в память (Memory Bank 1, Memory Bank 2) может осуществляться только одним процессором - НПВМ1 или НПВМ2 - в данный момент времени (рис. 1, а).

2. Многопроцессорная конфигурация 2-го типа (банк 0 - "свой", банк 1 - "общий"). Она отличается от первой тем, что каждый процессор имеет свой банк памяти, которому другой не имеет доступа: NP1 принад-

Vu, v е CL u (А): Ttr (u, v) = Ttr (v, u), Vu, v е CL u (А): Tl (u, v) = Tl (v, u).

(3)

(4)

лежит Memory Bank 1, а NP2 - Memory Bank 2. Банк Memory Bank 3 является общим для НПВМ 1 и НПВМ 2, которые осуществляют к нему доступ поочередно через буфера Buffer 1 и Buffer 2. Арбитраж на право работать с банком Memory Bank 3 осуществляется так же, как для конфигурации 1-го типа (рис. 1, б).

3. Многопроцессорная конфигурация 3-го типа (банк 0 - "свой", банк 1 - "чужой"). Она отличается тем, что каждый процессор имеет свой банк памяти: НПВМ 1 принадлежит Memory Bank 1, а НПВМ 2 - Memory Bank 2, но существует возможность каждому процессору обратиться к чужому банку через буфер Buffer (рис. 1, в).

Рис. 1. Многопроцессорная конфигурация внешней шины 1,2 и 3-го типа

Математическая модель распределенной параллельной нейро-процессорной системы. Распределенные нейропроцессорные вычислительные системы (РНПВС), представляющие собой совокупность НПВМ или самостоятельных вычислительных систем, расположенных друг от друга на значительном расстоянии, но объединенных с помощью программно управляемых коммутаторов и системных устройств. Следует от-

212

метить, что понятия параллельной и распределенной обработки не являются эквивалентными. Частным случаем распределенной системы является ОЯГО-система. Пример функционирования РНПВС показан на рис. 2.

Рис. 2. Пример функционирования распределенной системы

Одним из свойств распределенных систем является отсутствие общей памяти, кроме случая предоставления абстракции единого адресного пространства [7-10], который в статье не рассматривается. То есть процессы, выполняющиеся на вычислительных ядрах, могут напрямую считывать и записывать информацию в оперативную и дисковую память только своего узла, взаимодействуя с ними через системную шину или коммутатор.

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

Каждый кластер CLj может быть описан следующим образом:

CLj = {Pi, Кг, Ег}, (5)

где Pj = {Pi, P¡ 2,..., Pig} - множество вычислительных узлов кластера CLj; Kj - множество коммутаторов; Ej - множество связей между ними.

Количество вычислительных узлов можества Pi может быть равно 1. В кластере CLi все вычислительные узлы множества Pi связаны с выделенным управляющим узлом Pi0 с помощью отдельной управляющей сети, которая используется для передачи сигналов управления, доставки к

213

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

Структура нейропроцессорного кластера приведена на рис. 3 [2, 4, 5].

Рис. 3. Структура нейропроцессорного кластера

С учетом понятия нейропроцессорного кластера распределенная система может быть описана в виде

В^ = [СЬ, Е, А, Sw, а, И, д,Ш ,77}

(6)

где СЬ = [СЬ\, СЬ\...,СЬГ } - множество вычислительных кластеров РНПВС; Е - множество направленных связей между кластерами РНПВС, причем некоторые связи могут быть высокоскоростными ("сильными"), а некоторые низкоскоростными ("слабыми"); А - диспетчер (управляющий узел) РНПВС; Sw - структура РНПВС; а - архитектура аппаратного обеспечения каждого узла РНПВС; И - архитектура программного обеспечения каждого узла РНПВС; Т№: СЬ и[А}х СЬ и [А} определяет среднюю пропускную способность между каждой парой вычислительных кластеров в байтах в секунду; Т1: СЬ и [А} х СЬ и [А} определяет латентность, то есть временные затраты, необходимые для инициализации сообщений, отправления и приема данных и т.п. между каждой парой вычислительных кластеров в байтах в секунду.

Обобщенная модель распределенной вычислительной системы показана на рис. 4.

г*1

управляющий узел

узел и

кластер 1

НПВМ 11 НПВМ 1ё

1 I 1. 1. 1 Р 1 г

Метогу 11 Метогу

кластер 2

НПВМ 21 НПВМ 2ё

1. 1. 1 Г 11 1. л 1 г 1 г

Метогу 21 Метогу

♦ • ♦

кластер г

НПВМ г1 НПВМ щ

.г .г : I

Метогу г1 Метогу rg

1_.

Рис. 4. Обобщенная модель распределенной вычислительной системы

Алгоритмы логического проектирования НПВС. Основным вопросом разработки алгоритмического обеспечения логической организации и кластеризации является оценка временных соотношений функционирования НПВС различного вида.

Нейромикропрограмма РЯ- это кортеж микрокоманд, где микрокоманда может быть двух типов.

1. Микрокоманда МК(1) реализации операций первого типа (1) п

= /( Xатхт + ао), представляющая программный код эмуляции ней-т=1

рона, и состоящая из одной операции.

2. Микрокоманда МК(2) реализации вспомогательных операций второго типа для обмена данными, управления подготовки данных, и др. Команда предполагает достаточно широкий набор возможных операций: операции сложения, деления, адресации, условных переходов, циклов и др.

По принципам функционирования, микрокоманда МК(2) имеет незначительные отличия от команды процессора архитектуры фон Неймана.

215

Для функционирования вычислительной системы любая программа РЯ (/) может быть представлена в виде кортежа подпрограмм ЯО, 1; 7 = 1, Ь. Задача разбиения и распараллеливания в статье не описывается. Пусть ТО, 1) - время выполнения подпрограммы ЯО( );7 = 1, Ь, определяемое как суммарное время выполнения команд первого и второго типа:

То(]) = ТоЦ) + ТО(2/). (7)

Тогда, исходя из принципов и специфики функционирования нейрокомпьютера, время выполнения вспомогательных команд стремится к о:

то2> > ®о,

Тогда ТО1У) определяется как суммарное время математического моделирования всех нейронов искусственной нейронной сети (ИНС) подпрограммы ). Пусть М, - количество команд МК(1) в подпрограмме

ЯО( 1):

ТО\/) = М, * Ик * Нт, (8)

где Нк е И - некоторая техническая характеристика, определяющая количество моделируемых нейронов за один такт; Нт е И - некоторая техническая характеристика, определяющая время выполнения одного такта нейропроцессора,

ТО(/) = М1 * Нк * Нт . (9)

Пусть Т№ - суммарное время задержек передачи данных между НПВМ в системе; 77 - суммарное время латентности при передаче данных.

Рассмотрим множества, определяющие временные задержки передачи данных и латентности при передаче данных 7г и 77 для РНПВС:

Тгт = [Щ/},

где ТЩ/ - время передачи данных между / и у НПВМ. Время передачи данных

0

т> т> (10)

Щ/ = Що + Тгг/ о,

где ТЩо - время передачи данных от Ь -го узла к управляющему узлу А,

Щ = PS * N, (11)

где PS - пропускная способность канала передачи данных (в бит/с); N -количество бит для передачи,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Е

Тг = IЩ , (12)

I =1

Т1 = [Т1у }, (13)

где Т1у - время латентности при передаче данных между Ь и у НПВМ. Время латентности

0

= (14)

Т1у = Т1Ю + Т10у

где ТЦо - время латентности при передаче данных от Ь -го узла к управляющему узлу А; Т1оу - время латентности при передаче данных от

управляющего узла А к у -му узлу,

Е

Т1 = I Т1у . (15)

I=1

= ТЩу + Т1у. (16)

То есть, в случае распределенных систем имеем некоторую величину задержек передачи в работе НПВС:

Ts = Тгг + Т1 Ф 0. (17)

При этом начальная передача данных на управляющее устройство (коммутатор) не вносит задержек, то есть Т&с » 0.

Тогда для каждого вида структуры (конвейерная, векторная и т.д.) могут быть описаны оценки производительности, на основе чего реализован алгоритм расчет производительности, логического проектирования и выбора рациональной структуры вычислительной системы на базе нейро-процессоров.

Программные средства логического проектирования вычислительных систем на базе нейропроцессоров. В качестве практических исследований была разработана программная подсистема "Конструктор ней-ропроцессорных систем" в разрабатываемой программной системе "ЫР-ЗШёю" (рис. 5).

Возможными элементами нейропроцессорной структуры могут быть процессоры КМ6403, КМ6404, КМ6405, КМ6406, а также их эмуляторы. Также реализована возможность использования в одной нейпроцес-сорной системе реальных нейропроцессоров и одного эмулятора нейро-процессора той же модели.

Логическая организация вычислительной системы на базе нейропроцессоров реализуется за несколько этапов.

1. Выбор количества нейропроцессорных модулей.

2. Выбор структуры: конвейерная, векторная, конвейерно-векторная (несколько параллельных векторных потоков обрабатываются по принци-

пу конвейера), векторно-конвейерная (параллельно обрабатываются несколько потоков, которые, в свою очередь, обрабатываются по принципу конвейера) или произвольная.

3. Если была выбрана произвольная структура, то необходим выбор активных связей между нейропроцессорными модулями.

4. Выбор используемого обеспечения (реальный нейропроцессор или эмулятор той же модели) для логического нейропроцессорного модуля.

После логической организации и проектирования нейропроцессор-ной системы, ее можно использовать для модулей контроля, управления и анализа программного комплекса КР-ЗШёю".

Рис. 5. Подсистема "Конструктор нейропроцессорных систем " в программной системе "МР-ЗШйю "

Важной особенностью разрабатываемого программного обеспечения является то, что реализована поддержка связей между распределенными вычислительными модулями системы, которые отличаются относительно медленной скоростью передачи информации. Также реализована поддержка нейропроцессорных модулей, работающих в облаке согласно принципам модели Раа8, 1аа8. Такие модули отличаются тем, что доступ к ним реализуется посредством веб-сервисов различного назначения.

В случае выбора произвольной структуры может быть произведен экспертный анализ вида системы на основе описанного математического аппарата.

Если в системе присутствуют распределенные связи, то есть нейро-процессорные модули удалены друг от друга, то в разработанной программной подсистеме линии между модулями выделяются пунктиром. В случае наличия облачного нейропроцессорного модуля, подключение к которому происходит через веб-сервис, он выделяется красным цветом.

Заключение. В статье предложены математические модели параллельных и распределенных вычислительных систем на базе нейропроцес-соров, алгоритическое обеспечение расчета их производительности и выбора их структуры. Показано разработанное программное обеспечение для логической организации сложных параллельных и распределенных нейро-компьютерных систем различной структуры.

Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта №14-07-00261 а.

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

1. Ручкин В.Н., Романчук В. А., Фулин В. А. Когнитология и искусственный интеллект. Рязань: Узорочье, 2012. 260 с.

2. Карпов В. С., Ивутин А. Н., Суслин А. А. Подход к реализации методики оценки надежности ПО на основе комплексных метрик // Известия Тульского государственного университета. Технические науки. 2009. Вып. 4. С.116-125.

3. Экспертная система нечеткой кластеризации нейропроцессорных систем / В.Н. Ручкин, В. А. Романчук, В. А. Фулин, А. А. Пролыгина // Известия Тульского государственного университета. Технические науки. Тула: Изд-во ТулГУ, 2014. Вып. 6. С. 162 - 167.

4. Романчук В. А. Оптимизация программных и аппаратных средств сложных вычислительных систем на базе нейропроцессоров // Моделирование, оптимизация и информационные технологии. 2015. №1(8) 3 [Электронный ресурс] URL: http://moit.vivt.ru/wp-content/uploads/2015 /03/ Ro-manchuk 1 15 1.pdf (дата обращения: 17.08.2015).

5. Романчук В. А. Логическое проектирование вычислительных систем на базе нейропроцессоров // Современные научные исследования и инновации. 2014. № 12 [Электронный ресурс] URL: http: //web. snauka.ru/ issues/2014/12/41496 (дата обращения: 17.08.2015).

6. Кластеризация и восстанавливаемость нейропроцессорных систем обработки данных / В.К. Злобин, Д.В. Григоренко, В.Н. Ручкин, В. А. Романчук // Известия Тульского государственного университета. Технические науки. Тула: Изд-во ТулГУ, 2013. Вып. 9. Ч. 2. С. 125 - 135.

7. Романчук В.А., Ручкин В.Н. Разработка программных средств анализа нейропроцессорных систем // Вестник РГРТУ. Рязань: РГРТУ, 2010. №2. Вып. 32. С. 61 - 67.

8. 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.

9. Романчук В. А. Моделирование нейропроцессорных систем // Отраслевые аспекты технических наук: научно-практический журнал. М.: ИНГН, 2013. №10 (34). С. 19-24.

10. Романчук В. А., Лукашенко В.В. Модель описания функционирования нейропроцессора как сложной параллельной системы // Автоматизация и управление в технических системах. 2015. № 2. [Электронный ресурс] URL: www.auts.esrae.ru/14-266 (дата обращения 17.08.2015).

Романчук Виталий Александрович, канд. техн. наук, доц., v.romanchnkarsii. edu.ru, Россия, Рязань, Рязанский государственный университет им. С.А. Есенина,

Ручкин Владимир Николаевич, д-р техн. наук, проф., v.ruchkina rsu.edu.ru, Россия, Рязань, Рязанский государственный университет им. С.А. Есенина

MATHEMATICAL MODELS, ALGORITHMS, SOFTWARE ORGANIZATIONS AND LOGICAL DESIGN OF COMPLEX AND DISTRIBUTED SYSTEMS BASED

ON NEUROPROCESSORS

V.A. Romanchuk, V.N. Ruchkin

The mathematical models of parallel and distributed computation-inflammatory-based systems neuroprocessors algorithmic software for calculating performance and choice of structure neurocomputing multiprocessor systems are proposed. Displaying designed software for logical design-ing complex parallel and distributed systems neurocomputing.

Key words:computer system, logical design, neuroprocessors neurocomputer.

Romanchuk Vitaliy Alexandrovich, candidate of technical sciences, docent, v. romanchnk a rsH. 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

i Надоели баннеры? Вы всегда можете отключить рекламу.