Пупков К.А., Коньков В.Г. - Интеллектуальные исследования (Современнаяя теория управления) (1072100), страница 26
Текст из файла (страница 26)
Выбранное распределение существенно влияет на характеристики всей системы управления. Плохое распределение может дать время обработки, сравнимое со временем обработки для однопроцессорной системы; в то время, как хорошее распределение даст существенное уменьшение.
В составе комплекса проектировщик обладает возможностью выполнить сравнительный анализ нескольких вариантов распределения, отличающихся степенью «зернистости» компонент алгоритма обработки или функционалом качества распределения и тому подобное.
1. Среда синтеза и исследования - универсальная математическая платформа.
Основное свойство данной среды - обеспечить возможность эффективной работы исследователя - проектировщика с разнообразными формами математического описания сигналов и частей системы управления, различными способами обработки описаний (например, набором методов интегрирования) и способами решения типовых математических задач; составления собственных вариантов решения и тому подобное.
Среда представляет собой проблемно-ориентированную математическую платформу (УПМ), поддерживающую многообразные формы взаимодействия с исследователем - проектировщиком в процессе решения.
В дальнейшем изложение ведется применительно к математической платформе MATLAB-SIMULINK.
Одним из наиболее распространенных способов описания объектов и систем управления - обыкновенные алгебраические дифференциальные и разностные уравнения (ОАДРУ). Этот класс описания поддерживается имеющимися в составе MATLAB графическим пакетом SIMULINK. Именно по этой причине данный класс описания и представляет основной интерес.
Естественно, что данный класс не является единственным для реальных систем управления. И УМП, естественно, допускает выполнение других способов описания, в том числе и алгоритмов. Однако, комбинация различных математических структур существенно усложняет последующую манипуляцию с ними.
Графические возможности пакета соответствуют вводу и представлению в виде блок-схемы, составленной из ограниченного набора типовых звеньев. Каждое звено характеризуется функциональным преобразованием и параметрами. Хотя при проведении числовых исследований допустимо использовать все возможности MATLAB-SIMULINK, последующий переход к реализации связан с рядом ограничений. Не снижая возможности графического пакета, используется только подмножество имеющихся звеньев с небольшим добавлением элементарных звеньев 1-го и 2-го порядков. Все звенья выполняют отображение RnR1, то есть все звенья имеют только один выход. Такой вид отображения позволяет широко использовать аналитические решения для динамических звеньев, проявляет детальную структуру системы с выделением всего множества переменных, формализует процессы обработки и визуализации и так далее. Задание параметров звеньев происходит в числовом виде.
2. Препроцессор параллельного представления (ППП).
ППП предназначен для формирования файлов внутреннего представления из выходного описания SIMULINK (М-файла).
Действительно, результат работы исследовательской части выдается в текстовом виде, принятом в MATLAB (М-файл), где отражается полная структура отработанного закона управления, то есть состав модулей, их функциональное назначение (на уровне названия) и связи между ними. Препроцессор, обрабатывая MATLAB-текст (содержание которого является исходными данными для ППП), выполняет переход к внутреннему представлению.
Внутреннее представление - это представление всех принятых в исследовательской части способов описания системы и законов управления в определенном структурированном виде. Внутреннее представление формируется в виде двух рабочих файлов (D-файла и TRM-файла). D-файл содержит всю введенную информацию и допускает возможность работы с ним со стороны других программных частей. Так, можно извлечь характеристики отдельных модулей: название модуля, количество входов и выходов, и так далее.
Однако основным является то, что принятая структура данных в D-файле позволяет производить целенаправленную обработку исходной блок-схемы системы управления. Обработка блок-схемы означает:
-
Проверку принадлежности каждого блока к варианту «много входов - один выход» (исключение составляет только один блок - блок разветвления сигнала).
-
Проверку наличия алгебраических контуров (АК) - таких контуров в схеме системы, которые не допускают явного разрешения выхода относительно входа.
-
Проверку существования блоков, не входящих в библиотеку поддержки разработки. (Это связано с тем, что переход к параллельному представлению осуществляется заменой исходного блока соответствующей параллельной программой из уже готовой библиотеки). Фактически это соответствует проверке правильности синтаксиса исходного описания.
После указанных проверок происходит переход к формированию TRM-файла. TRM-файл содержит описание исходных данных в виде определенной графовой структуры (ациклический граф). Для исходных данных (блок-схема системы в классе ОАДРУ) TRM-файл содержит совокупность правых частей дифференциальных и разностных уравнений 1-го порядка. То есть TRM-файл содержит граф, имеющий параллельные компоненты, число которых соответствует числу уравнений 1-го прядка.
3. Среда транспьютерной реализации.
Данная часть (СТР) представляет собой программную оболочку, работающую над множеством своих программно-аппаратных средств следующего типа:
-
Транспьютерная плата. Она несет используемые для реализации транспьютеры разных типов или выполняет линковую связь с реальной транспьютерной сетью.
-
Транслятор языка параллельного программирования. Наиболее распространенная версия языка OCCAM2.
-
Конвертор исходного описания
-
Конфигуратор
-
Загрузчики задач
-
Оцениватель производительности транспьютерных программ
-
и так далее.
Как следует из приведенного состава СТР, она содержит все необходимые программно-аппаратные средства и элементы для тщательной обработки параллельной программы.
СТР получает исходные данные от ППП в виде файлов внутреннего представления.
В виду того, что каждому модулю в блочном описании модели соответствует уже готовый алгоритм из библиотеки, написанной на языке параллельного программирования, то полученное внутреннее представление достаточно просто трансформируется в параллельную программу. Конвертор исходного описания извлекает данные из файла внутреннего представления о блоках, связях между ними и значения внутренних параметров. Затем происходит идентификация каждого блока на предмет нахождения его аналога в библиотеке параллельных алгоритмов. В случае полного соответствия создается файл на языке параллельного программирования (OCC или PGM-файл) с тем же именем, что у файла внутреннего представления. После того как вышеуказанные файлы сгенерированы, они должны быть оттранслированы в исполняемый код (транспьютерная реализация: B8H или BTL-файл). Для этого последовательно вызываются компилятор, линковщик, коллектор (в данном случае речь идет о средствах языка OCCAM). Если ни одна из этих программ не выдала ошибки, то появляется исполняемый файл, готовый для загрузки и исполнения.
После выполнения загрузки программы с помощью сервера на один транспьютер начинается процесс ее отработки и оценки производительности. Каждая транспьютерная программа характеризуется процессорным временем, временем передачи данных по линкам и так далее.
Результаты оценки производительности обеспечивают исходные данные для решения задачи конфигурирования, то есть распределения процессов и каналов параллельной программы между процессорами и линками транспьютерной сети.
Рассмотрим более подробно отдельные моменты.
Переход от исходного описания в виде блок-схемы к параллельному представлению производится в ППП за счет подстановки в предварительно подготовленный вариант схемы готовых параллельных алгоритмов (блоков) из библиотеки.
Библиотека блоков строится на следующих положениях:
-
Каждый блок выполняет некоторую элементарную функцию;
-
Набор блоков элементарных функций определяется классом математических описаний. Для каждого класса выделяется свой набор.
-
Каждый блок имеет много входов и один выход;
-
Каждый блок имеет определенную структуру;
Так как библиотека блоков выполняется на языке параллельного программирования, то при подготовке такой библиотеки выбор языка один из важных вопросов.
Эффективное применение параллельных структур обеспечивается только при надлежащем распределении процессов (задач) на отдельные процессоры сети.
Это означает, что эффективность зависит от многих факторов:
-
структуры транспьютерной сети и характеристик ее составляющих,
-
числа процессов и их информационного взаимодействия,
-
желаемых условий или показателей работы всей сети, в основе которых лежит компромисс между вычислительной и коммуникационной видами загрузок процессоров.
Все отмеченные факторы выступают в качестве исходных данных при решении задачи конфигурирования или распределения исходных процессов по процессорам. (Наряду с термином конфигурация иногда используют и термин балансировка, подчеркивая этим получение определенного баланса между двумя видами загрузок процессора).
Большой объем исходных данных, и трудоемкость решения самой задачи конфигурирования при значительном числе исходных процессов требуют разработки как самих алгоритмов решения, обладающих высоким быстродействием, так и программной поддержкой пользователя в процессе формирования исходных данных и последующего решения. Фактически возникает потребность в создании специализированного программно-аппаратного обеспечения для решения задачи конфигурирования.
С помощью такого обеспечения вводятся и отображаются исходные данные по сети и исходным распределяемым процессам, улучшается точность некоторых исходных данных за счет предварительного экспериментирования на реальных процессорах сети, формируются показатели (критерии) функционирования; выводятся и отображаются результаты и принимаются окончательные решения по конфигурированию.
Решение включает следующие этапы:
-
Ввод исходного математического описания взаимодействующих процессов (так для процессов в классе ОДУ - это набор уравнений 1-го порядка, приведенный к определенному виду), который берется из среды описания. При этом предполагается, что исходные процессы уже могут исполняться в параллельном режиме. Но сама процедура выделения параллельно исполняемых процессов зависит от класса математического описания и здесь не рассматривается. После ввода осуществляется оценка вычислительной сложности процессов; причем для этого могут выполняться и эксперименты на реальных процессорах. Введенное описание взаимодействующих процессов приводится к представлению, на котором проводится последующее решение.
-
Ввод описания сети, то есть ее структуры и типов процессоров. Причем при отсутствии априорных сведений о характеристиках процессоров проводятся эксперименты, уточняющие их производительность и скорость передачи данных. Введенное пользователем описание трансформируется к представлению, которое также используется в последующем решении.
-
Ввод начального распределения процессов по процессорам сети и выбор показателя (критерия) эффективности функционирования сети, что делается пользователем.
-
Запуск алгоритма конфигурирования.
-
Анализ получаемого решения.
-
Переход к следующему этапу реализации.
Функционирование средств конфигурирования осуществляется пользователем через соответствующий интерфейс.
Один из факторов, на который обращается внимание, - быстродействие алгоритма (пере)распределения.
Руководствуясь этим, выполним модификацию одного статического метода распределения.
Сделаем предположение, что все n компонент алгоритма обработки выполняются параллельно (то есть не учитывается параллельно-ярусная структура алгоритма обработки) и распределяются на сеть из m процессоров. Тогда нетрудно получить следующую математическую формулировку.
(162)
Где - бинарные переменные, определяющие распределение процессов по процессорам; n - количество процессов, m - количество процессоров, wlj(x1,...,xk) - вычислительная загрузка j-го процессора, clj(x1,...,xk) - коммуникационная загрузка j-го процессора.
Общее число переменных (n+2)m+1, из них nm бинарных, общее число ограничений типа равенство (n+2m).
Примем параметр =0. Тогда вся задача (пере)распределения сводится к задаче смешанного булевого линейного программирования.
Предварительный анализ нахождения решения, используя симплекс-метод, позволяет предложить процедуру поиска решения варьированием только бинарных переменных из (*) и (**), так как все остальные оставшиеся переменные xnm+j, x(n+1)m+j за исключением одной необходимо включаются в число базовых.
Работа процедуры нахождения решения происходит последовательно по шагам, что принципиально позволяет выполнять постепенное перераспределение. Даем краткое описание процедуры.
На каждом шаге происходит поиск из группы уравнений (162) одного, для которого дополнительная переменная при некотором j=k становится равной нулю x(n+1)m+k=0. Все остальные дополнительные переменные x(n+1)m+j, jk являются неотрицательными.