Библиографическое описание:

Романчук В. А. Разработка методологических основ программной оптимизации систем нейрокомпьютерной обработки информации // Молодой ученый. — 2015. — №15. — С. 56-61.

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

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

 

Введение. Программирование нейрокомпьютера — это обучение его на выполнение той или иной задачи, в связи с чем известные методы оптимизации и распараллеливания нейрокомпьютерной программы не могут быть ипользованы [1]. В свою очередь, интерес же к нейрокомпьютерам и нейрокомпьютерным системам постоянно увеличивается, их применяют в различных сферах: космос, военная промышленность, дорожное движение и др., в связи с чем, возникает необходимость разработки математического, алгоритмического и программного обеспечения создания и оптимизации программ для нейрокомпьютеров и систем на их базе. Следует также отметить, что нейрокомпьютерные системы обладают очень высоким уровнем распараллелирования, в связи с чем наиболее важна задача именно распараллеливания и оптимизации вычислительных систем на базе нейропроцессорных устройств [1–3].

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

Пусть  — некоторый -й алгоритм обработки информации для реализации его на на нейропроцессорной платформе. Введем множество операций . С учетом введенного множества операций этот алгоритм обработки информации представляет собой кортеж, состоящий из операций  длиной , т. е.:

.                                                                    (1)

Исходя из математического смысла нейрокомпьютерной обработки множество операций нейрокомпьютера рационально разделить на 2 подмножества [4–11]:

1. Множество операций первого типа, представляющих математическую модель формального нейрона, и состоящее из одной операции :

                                                                                               (2)

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

,                                                                                          (3)

где  — количество возможных видов векторных операций эмуляции нейрона в нейропроцессоре.

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

                                                                                (5)

Тогда алгоритм (1) можно записать следующим образом:

                   (6)

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

Множество микрокоманд также можно разделить на 2 подмножества:

,                                                                                                (7)

,                                                           (8)

где  — число сочетаний исходя из (3) для конкретного нейропроцессора. Для того, чтобы определить , необходимо найти количество сочетаний команды притом, что часть функциональных блоков и часть может быть незадействована, т. е. количество возможных вариантов, если задействован один функциональный блок, если два, и т. д.:

,                                                                                (9)

где  — число сочетаний из  элементов по .

,                                                            (10)

где  — количество возможных микрокоманд, возможных для реализации вспомогательных операций второго типа, определяемых согласно (5).

Тогда, для каждой операции первого типа:

,                                            (11)

Под программой  понимается кортеж микрокоманд:

,             (12)

длиной .

В данном пункте на основании алгебраического подхода предлагается методика разбиения программы  на множество подпрограмм  исходя из числа нейропроцессорных вычислительных модулей (НПВМ)  [78].

Исходя из специфики и принципов функционирования нейрокомпьютеров, количество команд  гораздо больше команд  (не превышает 1 %), более того команды второго типа «делят» кортеж микрокоманд на сегменты, так как являются вспомогательными для подготовки данных (рисунок 1).

Рис. 1. Сегменты программы для нейрокомпьютера

 

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

,                                                       (13)

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

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

-                   одинаковое функциональное назначение — эмуляция нейрона;

-                   одинаковое время выполнения команды, равное одному такту нейропроцессора;

-                   воздействие на один и тот же набор аппаратных ресурсов;

-                   аппаратная реализация нейрокомпьютера предполагает один и тот же путь потока данных и потока команд.

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

.                                                                 (14)

Тогда справедливо утверждение о том, что отношение  двух произвольно взятых микрокоманд  и ,удовлетворяющим (14), есть отношение эквивалентности.

Отношение эквивалентности — это бинарное отношение, для которого выполнены следующие условия: рефлексивность, симметричность, транзитивность.

Рассмотрим каждое из этих условий:

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

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

.                                         (15)

Другими словами выполняется условие симметричности двух нейромикрокоманд.

3.                  Если команда  функционально равна команде , а команда  функционально равна , тогда команда  функционально равна  и параллельна команде , т. е.

.      (16)

Таким образом, справедливо условие транзитивности нейромикрокоманд.

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

                                                                                 (17)

Тогда всю программу  можно разделить на кортеж сегментов:

                                            (18)

Под подпрограммой нейропрограммы  будем понимать кортеж сегментов:

                                                 (19)

На рисунке 2 показано сегментирование и программы .

Рис. 2. Сегментирование программы

 

Рассмотрим две произвольно взятые подпрограммы  и , каждая из которых представляет собой некоторый сегмент (рисунок 2), то есть представляет собой множество команд эмуляции нейрона, каждая из которых эквивалентна другой, произвольно выбранной команде, и вспомогательные команды, подготавливающие данные для обработки и являющиеся неотъемлимой частью множества команд первого типа:

.              (20)

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

.                                                                              (21)

Справедливо утверждение о том, что отношение структуры обработки  есть отношение эквивалентности. Тогда задача разбиения программы на множество подпрограмм преобразуется в задачу рационального последовательного объединения сегментов  в множество подпрограмм :

             (22)

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

                                               (23)

Пусть число команд  в программе , определяемой как (18) равно , число команд некоторого сегмента  равно .

Цель разбиения программы на подпрограммы состоит в достижении одинакового времени обработки для всех этапов, то есть, в данном случае, в достижении одинакового количества команд  для всех подпрограмм. Тогда необходимо определить среднее число  команд  в подпрограмме:

.                                                                                                         (24)

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

То есть, если верно условие ,                                    (25)

где  определяет номера сегментов, уже включенных в подпрограмму:

 — номер первого сегмента в подпрограмме ;

 — номер последнего сегмента в подпрограмме .

Тогда ;                                                                (26)

Если условие (25) неверно, то

                                                                         (27)

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

 

Литература:

 

1.                  Галушкин А. И. Нейронные ЭВМ — перспективное направление развития вычислительной техники — М.: Препринт, 1991.-615 с.

2.                  Головкин Б. А. Вычислительные системы с большим числом процессоров. М.: Радио и связь, 1995. — 320 с.

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

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

5.                  Романчук В. А., Ручкин В. Н. Разработка программного комплекса для моделирования и анализа нейропроцессорных систем обработки изображений // Цифровая обработка сигналов. — Рязань: Информационные технологии, 2010. — № 1. — С.53–58.

6.                  Романчук В. А., Ручкин В. Н. Оценка результатов моделирования вычислительных систем на базе нейропроцессоров // Известия тульского государственного университета. Технические науки. — Тула: Издательство ТулГУ, 2013. — Вып.9–2 — С.194–203.

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

8.                  Романчук В. А., Ручкин В. Н. Разработка алгоритмов определения вида структуры нейропроцессорной системы на основе описания связей ее элементов // Информатика и прикладная математика: межвуз. сб. науч. тр. — Рязань: РГУ имени С. А. Есенина, 2011. — Вып.17. — С.106–109.

9.                  Романчук В. А. Инновационный программный комплекс моделирования вычислительных систем на базе нейропроцессоров «НейроКС» // Современные научные исследования и инновации. — Декабрь, 2012 [Электронный ресурс]. — URL: http://web.snauka.ru/issues/2012/12/19407.

10.              Романчук В. А. Разработка алгоритмов определения связей элементов вычислительной структуры на базе нейропроцессоров // Информатика и прикладная математика: межвуз. сб. науч. тр. — Рязань: РГУ имени С. А. Есенина, 2011. — Вып.17. — С.102–105.

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

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

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

Похожие статьи

Повышение контроля целостности навигационного обеспечения в алгоритмах обработки информации навигационных систем летательных аппаратов при использование BOC-радиосигналов

Разработка структурной схемы автономной системы контроля целостности навигационных данных спутниковых радионавигационных систем в навигационных комплексах наземных подвижных объектов на основе оптимальных алгоритмов обработки информации

Разработка и совершенствование методов получения и обработки информации для задач управления крупным предприятием

Методика контроля защищенности автоматизированной системы обработки конфиденциальной информации от несанкционированного доступа к информации

Применение программной системы Digital Security Office для проведения аудита безопасности информационной системы обработки персональных данных

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Повышение контроля целостности навигационного обеспечения в алгоритмах обработки информации навигационных систем летательных аппаратов при использование BOC-радиосигналов

Разработка структурной схемы автономной системы контроля целостности навигационных данных спутниковых радионавигационных систем в навигационных комплексах наземных подвижных объектов на основе оптимальных алгоритмов обработки информации

Разработка и совершенствование методов получения и обработки информации для задач управления крупным предприятием

Методика контроля защищенности автоматизированной системы обработки конфиденциальной информации от несанкционированного доступа к информации

Применение программной системы Digital Security Office для проведения аудита безопасности информационной системы обработки персональных данных