Массовый параллелизм в многочисленных приложениях сложной обработки видео, изображений, коммуникации, безопасности и других видов сигналов присутствует в основном на уровне данных (Data Level Parallelism – DLP). Реализация DLP в большинстве современных процессоров осуществляется в виде одиночного потока команд и множественного потока данных – как SIMD (векторная архитектура). Перечисленные выше многие приложения также обладают и значительным параллелизмом на уровне инструкций (Instruction Level Parallelism – ILP). В этом случае с помощью параллельного задания нескольких скалярных операций и/или SIMD-операций осуществляется параллельное выполнение на уровне инструкций ILP. Однако SIMD – архитектура может оказаться не самым лучшим решением для приложений с варьируемым DLP, что приводит к снижению производительности и возрастанию энергопотребления [1–4].
В современных вычислительных системах для реализации ILP и DLP используется VLIW архитектура [2,3]. Одними же из методов ускорения развития альтернативных повышению частоты способов увеличения быстродействия являются использование высокопараллельной вычислительной техники, например, нейропроцессоров и разработка принципиально новых и хорошо распараллеливающихся алгоритмов с элементами интеллектуальной компиляции. Такая концепция направлена на упрощение аппаратного обеспечения и извлечения как можно больше ”скрытого параллелизма” на уровне команд, используя большую ширину ”выдачи” команд (WIW–Wide Issue Width) и длинные (глубокие) конвейеры с большой задержкой (DPL – Deep Pipeline Latency).
Кроме того, в настоящее время специалисты [4,5] ожидают появления суперскалярного VLIW-процессора с масштабируемым параллелизмом, объединяющим явный статический параллелизм с неявным динамическим. Однако пока нет видимых способов совмещать статическое и динамическое переупорядочивание, так как в таких системах по отношению к существующим классическим ”RISC–inside CISC–outside” архитектурам можно добиться лишь путем переноса интеллектуальных функций из аппаратного обеспечения в программное посредством такого компилятора. Поэтому, вариантом повышения быстродействия в нейрокомпьютерных системах является выбор наиболее рациональной многопроцессорной вычислительной структуры для реализации текущего алгоритма. В данной работе исследуются возможности и предлагается вариант выбора наиболее рациональной нейрокомпьютерной структуры на основе явного и неявного кластерного параллелизма.
На основе исследований авторов [6] предлагается следующая модель структуры интеллектуальной компиляции, включающей в себя следующие шаги.
1. Анализ исходных алгоритмов функционирования проектируемой микронейропроцессорной системы (МНПС) и представление группы независимых операций согласно явному параллелизму в очень длинные слова инструкций c целью упаковки, обеспечения быстрого запуска и более эффективного их исполнение функциональными модулями (ФМ) (микропроцессорами или ядрами) МНПС некоторой структурой.
2. Продукционная модель экспертной системы наблюдения за операциями из разных базовых блоков с целью помещения этих операций в одну и ту же длинную инструкцию и, тем самым, обеспечения большего параллелизма ФМ.
3. Прокладка «маршрута» по всей программе – трассировки.
4. Осуществление оптимизации планировщиком вычислений на уровне всей программы, а не ее отдельных базовых блоков.
5. Прогнозирование компилятором наиболее подходящего маршрута и планирование прохождения, рассматривая его как один большой базовый блок.
6. Повторение процесса п.4 для всех других возникших после этого программных веток до самого конца программы.
7. Выполнение компилятором различных «интеллектуальных шагов» в виде развертывания программного цикла, исполнения IF – преобразование для удаления всех логических переходов из подвергающихся трассировке секций, перемещения их с одного места на другое до обнаруженного ветвления, с возможностью формирования отката назад.
Исходными данными для анализа являются алгоритмы функционирования МПС, представляемые посредством конечного кортежа операций выражением:
длиной
, и микропроцессорная система, рассматриваемая как совокупность устройств на основе выбранной элементной базы – chipset со множеством команд
конкретного комплекта СБИС. Здесь под МК подразумевается внутренний язык микропроцессорной нейрокомпьютерной системы со своей производительностью, стоимостью, количеством СБИС и др.
Каждый алгоритм может представлять собой кортеж алгоритмов, в том числе и стандартных: отбраковки, сжатия, калибровки, автоконтроля и других. Тогда в процессе проектирования [5] выбирается элементная база и решается математическая задача нахождения отображения множества операций во множество команд МК:
. (1)
Причем, в общем случае под понимается оптимальное количество команд, реализующее операцию
. Далее в зависимости от решения задачи (1) проектирования каждому
-му алгоритму обработки ставится в соответствие программа обработки
в виде кортежа команд:
посредством определяемого отображения:
. (2)
При этом рассматриваемая программа характеризуется длиной программы
, определяемой общим числом команд, входящих в программу, временем выполнения программы и др.
Выражение (2) определяет однопроцессорный вариант МНПС и практически в общем виде представляет процесс компиляции.
Далее для осуществления задачи распараллеливания используется понятие кластера Clk, и решается задача разбиения программы обработки . С этой целью воспользуемся понятием равенства кластеров CLl и CLk обработки информации: CLl = Clk., под которым понимается равенство длин указанных кластеров |CLl| = |CLk| и совпадение их с точностью до команды MKi(k)=MKi(l), PR(j)=<MKi,MK1,…MKj>:
. (3)
При этом выражение (3) является критерием качества разбиения на кластеры исходной программы с точностью до команды, что и является метрикой кластеризации.
Далее процесс распараллеливания кластеров рассматривается как отношение параллельности выполнения кластеров двумя различными микропроцессорными модулями:
проектируемой вычислительной системы.
Таким образом, структурная организация проектируемой вычислительной системы обработки информации ставит в соответствие некоторой - й программе обработки
совокупность независимых и неравных кластеров
, число которых равно числу классов эквивалентности
, а кратность (
) определяется порядком класса эквивалентности (
):
. (4)
В работе авторами показывается, что полученное разбиение (4) на кластеры отвечает свойствам рефлексивности, симметричности и транзитивности и, следовательно, является отношением эквивалентности. В результате однозначно определяется разбиение программы на классы эквивалентности кластеров, что является процедурой явного параллелизма. Кроме того, выражение (4) определяет качественные структурные связи между кластерами. Поэтому оно определяет и маршрут передачи данных либо внутри кластера либо между кластерами. Таким образом варианты решения задачи (4) представляются в виде продукционной модели экспертной системы.
3. Продукционная модель экспертной системы наблюдения за операциями и формирования маршрута. В результате решения задачи (4) возможны следующие варианты маршрута передачи данных, которые составляют основу продукционной модели для дальнейшего анализа с учетом исходных данных.
Число классов эквивалентности равно , и порядок каждого
-го класса равен
. Тогда
-му алгоритму обработки данных ставится в соответствие совокупность данных, определяемых согласно (4), и, как нетрудно видеть, этот случай является наиболее общим и предполагает отношения не только между элементами внутри кластера, как в векторной структуре, но и между элементами различных кластеров согласно Instruction Level Parallelism ILP.
Рассматриваемые ниже варианты обработки информации оказываются возможными в зависимости от построения конкретной -й структуры данных
, а точнее от передачи данных между кластерами в виде маршрута Mi передачи данных.
Пусть обмен информацией между представителями кластеров , осуществляется последовательно друг от друга. Тогда если кластеры внутри
-го класса обмениваются последовательно, то имеем уже известный последовательный маршрут передачи данных.
Если для элементов внутри -го класса требуется информация одновременно, тогда получаем последовательно – параллельный обмен (ILP + DLP) или маршрут передачи данных.
Если при обработке информация требуется одновременно для всех кластеров, тогда для общего случая (Data Level Parallelism DLP) обработки информационных данных или параллельный маршрут Mi||передачи данных.
В общем случае имеем матричный обмен информационных данных: каждый с каждым. В результате имеем матричный маршрут передачи данных.
Прокладка «маршрута» предполагает соединение всех кластеров согласно получаемых маршрутов: последовательный, параллельный, последовательно — параллельный, параллельно – последовательный (DLP +ILP) и матричный.
4. Алгоритм неявного параллелизма многокритериального нечеткого выбора с целью выполнения различных «интеллектуальных шагов»:
На практике процесс проектирования интеллектуального компилятора является сложной многокритериальной задачей выбор маршрута из полученного многообразия. Эксперт или аналитик на основании обобщенной оценки каждой альтернативы выбирает наилучшую по совокупности противоречивых критериев: 1. Быстродействие (); 2. Объем микропрограммной памяти (
); 3. Число микропроцессорных модулей (
); 4. Время простоя (Tпр,). 5. Потребляемая энергия (Р); 6. Надежность (Q); 7. Адаптация (A); 8. Стоимость (С) и др. Для конкретизации выбора все вышеперечисленные критерии предлагается распределять в виде кортежа в порядке важности технического проектирования и в дальнейшем называть стратегией выбора.
Пусть требуется воспроизвести знание — правило 3: Если и обмен информацией между кластерами в классах осуществляется последовательно, то маршрут — последовательный. Данное знание—правило моделируется произведением нечетких множеств RI,I = FстрI * GпарI или продукцией.
Предложенная авторами [5] методика многокритериального выбора имеет в своей основе нечеткие множества, элементами которых являются лингвистические переменные (ЛП) или термы с характеристическими функциями принадлежности
, определенными на отрезке
:
. Эксперт оценивает маршрут и критерии с помощью понятий нечеткой логики вышеперечисленными переменными.
В предлагаемой методике используются два вида бинарных нечетких переменных: «оценка значения критерия» и «оценка эффективности маршрута или трафика»
с использованием унарнойлингвистической переменной – «оценка качества значения критерия»
и «оценка качества эффективности маршрута»
, соответственно.
Значения бинарных лингвистических переменных «оценка значения критерия» и «оценка эффективности маршрута» строятся методом нечеткого алгоритма высказывания правил вида: «если А, то В». Два и более правила нечетких высказываний объединяются связкой «иначе»: «если А, то В, иначе С»= или V( «если А, то В, иначе С») =
.
Заключение. Предложена структура продукционной модели экспертной системы наблюдения за операциями и формирования маршрута на основе модели анализа явного параллелизма предлагаемой кластеризации нейрокомпьютерной системы. Описывается экспертная система интеллектуальной компиляции. В статье демонстрируется алгоритм неявного параллелизма многокритериального нечеткого выбора. Приводится описание алгоритма «оценки значения критерия» по различным техническим характеристикам согласно стратегии проектирования: быстродействие, объем микропрограммной памяти, число микропроцессорных модулей и др. Описывается алгоритм «оценки эффективности маршрута.
Библиографический список
- Романчук В.А. Разработка алгоритмов определения связей элементов вычислительной структуры на базе нейропроцессоров // Информатика и прикладная математика : межвуз. сб. науч. тр. – Рязань : РГУ имени С.А.Есенина, 2011. – Вып.17. – С.98–102.
- Романчук В.А., Ручкин В.Н. Разработка алгоритмов определения вида структуры нейропроцессорной системы на основе описания связей ее элементов // Информатика и прикладная математика : межвуз. сб. науч. тр. – Рязань : РГУ имени С.А.Есенина, 2011. – Вып.17. – С.103–106.
- Романчук В.А. Оптимизация программных и аппаратных средств сложных вычислительных систем на базе нейропроцессоров [Электронный ресурс] // Моделирование, оптимизация и информационные технологии, 2015. – №1(8). -URL: http://moit.vivt.ru/wp-content/uploads/2015/03/Romanchuk_1_15_1.pdf.
- Андреева А.Ю., Романчук В.А. Применение нейрокомпьютерных технологий в методах управления сложными объектами [Электронный ресурс] // Современная техника и технологии, 2015. – № 4. – URL: http://technology.snauka.ru/2015/04/6557.
- Романчук В. А. Разработка методологических основ программной оптимизации систем нейрокомпьютерной обработки информации // Молодой ученый. — 2015. — №15. — 56-61.
- Романчук В.А. Системный анализ архитектуры нейропроцессора [Электронный ресурс] // Современная техника и технологии, 2015. – № 8. – URL: http://technology.snauka.ru/2015/08/7695.
- Романчук В.А. Инновационный программный комплекс моделирования вычислительных систем на базе нейропроцессоров “НейроКС” // Современные научные исследования и инновации. – Декабрь, 2012. – URL: http://web.snauka.ru/issues/2012/12/19407.
- Танненбаум Э., Ван Стен М. Распределенные системы. Принципы и парадигмы. Спб.: Питер, 2003. – 877 с.
- Макаров Д.В., Романчук В.А. Облачные SaaS, IaaS, PaaS системы для искусственного интеллекта // Современная техника и технологии. № 5. 2015. URL: http://technology.snauka.ru/2015/05/6731 (дата обращения: 01.09.2016).
- Топорков В.В. Модели распределенных вычислений. М.: ФИЗМАТЛИТ, 2004. 320 с.