НАУЧНЫЕ СТАТЬИ И ДОКЛАДЫ • АВИОНИКА, АВТОМАТИКА И ПРИБОРОСТРОЕНИЕ
УДК 629.7.05:681.324
М. И. АХМЕТОВ, В.Н.ЕФАНОВ ПРИНЦИПЫ
РАЗРАБОТКИ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ БОРТОВЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ
Рассматриваются проблемы создания высокопроизводительных бортовых вычислительных систем реального времени и принципы их решения с использованием многопроцессорных структур с параллельной архитектурой. Предлагается аналитическая модель для описания вычислительных процессов, протекающих в многопроцессорной вычислительной системе. Приводится методика диспетчеризации вычислительных процессов в бортовой многопроцессорной системе на базе модифицированного генетического алгоритма, механизм адаптации которого направлен на достижения компромисса между скоростью сходимости и качеством получаемого локально-оптимального решения. Бортовые вычислительные системы; многопроцессорные структуры; параллельная архитектура; аналитическая модель; макрокоманда; арифметико-логический граф; диспетчеризация; генетический алгоритм
Мощным стимулом к возрождению отечественной авиационной индустрии может стать разработка летательных аппаратов пятого поколения, создаваемых в соответствии с программой «Перспективный авиационный комплекс фронтовой авиации» (ПАК ФА). При этом одной из главных составляющих, обеспечивающих боевую эффективность перспективного многофункционального истребителя, является бортовое радиоэлектронное оборудование (БРЭО). Тендер на разработку БРЭО для ПАК ФА выиграли две российские авиаприборостроительные компании: научно-производственный центр «Технокомплекс» и корпорация «Аэрокосмическое оборудование». Кафедра авиационного приборостроения УГАТУ уже в течение ряда лет активно сотрудничает с корпорацией «Аэрокосмическое оборудование» в области создания авионики нового поколения [1-5]. В данной статье обобщены результаты исследований, направленных на разработку высокопроизводительных бортовых информационно-вычислительных систем реального времени.
ПРОБЛЕМЫ СОЗДАНИЯ БОРТОВЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ НА БАЗЕ МНОГОПРОЦЕССОРНЫХ СТРУКТУР С ПАРАЛЛЕЛЬНОЙ АРХИТЕКТУРОЙ
Бортовой измерительно-вычислительный комплекс как система реального времени
включает в себя датчики, регистрирующие события на объекте, модули ввода-вывода, преобразующие показания датчиков в цифровой код, пригодный для обработки этих показаний на процессорах, и, наконец, сами процессоры с программой, реагирующей на события, происходящие на объекте. Система реального времени ориентирована на обработку внешних событий. Причем реакция системы на событие должна быть своевременной, т. е. в течение времени, критического для этого события (meet deadline). Величина критического времени для каждого события определяется объектом и самим событием, и, естественно, может быть разной, но время реакции системы должно быть предсказано (вычислено) при создании системы. Отсутствие реакции в предсказанное время считается ошибкой для систем реального времени. Кроме того, система должна успевать реагировать на одновременно происходящие события. Даже если два или большее число внешних событий происходят одновременно, система должна успеть среагировать на каждое из них в течение временных интервалов, критических для этих событий.
Специфика бортовых систем реального времени (БСРВ) заключается в том, что они не допускают никаких задержек реакции системы ни при каких условиях, так как:
результаты могут оказаться бесполезными в случае опоздания;
может произойти катастрофа в случае задержки реакции;
стоимость опоздания может оказаться бесконечно большой.
Таким образом, БСРВ представляет собой аппаратно-программный комплекс, реагирующий в предсказуемые моменты времени на непредсказуемый поток внешних событий.
Именно это приводит к коренным отличиям в структуре БСРВ, функциях ее ядра, построении устройств ввода-вывода по сравнению с системами реального времени общего назначения. Такие системы, особенно многопользовательские, ориентированы на оптимальное распределение вычислительных ресурсов между пользователями и задачами (системы разделения времени). В БСРВ подобная задача отходит на второй план — все отступает перед главной задачей — успеть среагировать на события, происходящие на объекте.
Еще одно отличие состоит в том, что системы общего назначения по своей природе должны быть универсальными, чтобы не зависеть от конкретных технических или программных средств или продуктов отдельных производителей. Применение БСРВ всегда связано с аппаратурой, объектом, событиями, происходящими на объекте, т. е. применение БСРВ всегда конкретно.
Отмеченные отличия оказывают существенное влияние на архитектуру и свойства операционных систем (ОС). Рассмотрим, какие параметры имеют ключевое значение с точки зрения оценки свойств ОС БСРВ.
Почти все производители систем реального времени приводят такой параметр, как время реакции системы на прерывание (interrupt latency). Это комплексный параметр, интегрально оценивающий способность системы вовремя отреагировать на внешние события. События, происходящие на объекте, регистрируются датчиками, информация с которых передается в модули ввода-вывода (интерфейсы) системы. Модули ввода-вывода, получив информацию от датчиков и преобразовав ее, генерируют запрос на прерывание в управляющем компьютере, подавая ему тем самым сигнал о том, что на объекте произошло соответствующее событие. Получив сигнал от модуля ввода-вывода, система должна запустить программу обработки этого события. Таким образом, время реакции системы на прерывание охватывает интервал от момента возникновения события на объекте до выполнения первой инструкции в программе
обработки этого события. При оценке величины этого параметра необходимо учесть следующее обстоятельство. Длительность интервала от момента возникновения события на объекте до генерации прерывания никак не зависит от ОС БСРВ и целиком определяется аппаратурой, а длительность интервала времени от возникновения запроса на прерывание до выполнения первой инструкции по его обработке определяется целиком свойствами операционной системы и архитектурой бортового вычислительного комплекса. Это время нужно уметь оценивать в худшей для системы ситуации, т. е. в предположении, что процессор загружен, что одновременно может происходить несколько прерываний, что система может выполнять какие-то действия, блокирующие прерывания.
Второй ключевой параметр ОС БСРВ — это время переключения контекста. В операционные системы реального времени заложен параллелизм, возможность одновременной обработки нескольких событий, поэтому все БСРВ являются многопроцессными и многозадачными. Чтобы уметь оценивать возможности системы при обработке параллельных событий, необходимо знать время, которое система затрачивает на передачу управления от процесса к процессу (от задачи к задаче), т. е. время переключения контекста.
Для систем реального времени важным параметром является размер системы исполнения, а именно суммарный размер минимально необходимого для работы приложения системного набора (ядро, системные модули, драйверы и т. д.). Следует заметить, что в условиях существующей тенденции на сближение ОС различных классов значение этого параметра уменьшается. Тем не менее, он остается важным, и производители систем реального времени стремятся к тому, чтобы размеры ядра и обслуживающих модулей системы были невелики.
Используя значения этих параметров, разработчик БСРВ должен выбрать такой механизм реального времени, который в максимальной степени устранит ограничения, связанные с особенностями архитектуры бортового вычислительного комплекса. Среди таких механизмов можно назвать различные модели межпроцессного взаимодействия, распределение памяти, принципы диспетчеризации в многозадачных и многопроцессных системах, обработку ошибок, автоматический контроль для обеспечения высокой готовности и безопасности.
В традиционных системах для организации межпроцессного взаимодействия (IPC — Inter Process communication) используется, как правило, модель «разделяемой памяти» (share memory). Большинству разработчиков хорошо известны трудности, связанные с управлением межпроцессным взаимодействием такого типа, в частности, необходимость обеспечения когерентности кэшпамятей, чтобы предотвратить опасность сбоя системы, когда один процесс изменяет данные, жизненно важные для другого процесса. Еще один недостаток межпроцессного взаимодействия через разделяемую память заключается в том, что данный метод плохо подходит для распределенных систем и характеризуется низкой степенью совместимости с механизмом управления памятью. Проблема обеспечения стабильности работы системы с IPC через разделяемую память требует достаточно длительного периода времени для отладки программного обеспечения и выявления ошибок.
В этих условиях для БСРВ более перспективной может оказаться модель межпроцессного взаимодействия через «передачу сообщений» (message passing). Согласно этой модели, процедура взаимодействия заключается в том, что один процесс посылает другому процессу сообщение. При этом может потребоваться лишь четыре системных вызова. Данный подход прост и надежен, прохождение сообщений в процессе работы системы может легко отслеживаться, что делает программное обеспечение прозрачным. Кроме того, при организации межпроцессного взаимодействия через передачу сообщений появляется возможность естественным образом распределять приложение между многочисленными центральными процессорами и процессорами цифровой обработки сигналов (DSP-процессоры). В то же время необходимо отметить, что IPC через передачу сообщений не отличается высокой скоростью. Данное обстоятельство имеет существенное значение с точки зрения организации режима реального времени. В связи с этим модель межпроцессного взаимодействия через передачу сообщений может быть рекомендована для перспективных БСРВ, использующих высокоскоростные каналы информационного обмена.
К числу базовых инструментов разработки сценария работы БСРВ относятся также механизмы назначения приоритетов процессов (задач) и алгоритмы планирования (диспетчеризации).
Чтобы гарантировать способность БСРВ вовремя реагировать на внешние события, рассмотрим формализованный способ пространственно-временной декомпозиции вычислительного алгоритма, реализуемого бортовым аппаратно-программным комплексом. Предлагаемый способ позволяет описывать в заданной вычислительной среде состояние вычислительного процесса с точностью до такта макрокоманд.
АНАЛИТИЧЕСКАЯ МОДЕЛЬ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА В МНОГОПРОЦЕССОРНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ
Основная проблема, возникающая при разработке аналитических моделей вычислительных процессов, заключается в их высокой размерности. Это связано, в первую очередь, с наличием большого числа макрокоманд, таких как арифметико-логические операции, операции чтения-записи данных в буферное ОЗУ. Число подобных операций, в зависимости от сложности вычислительного алгоритма, может достигать нескольких тысяч. Рассмотрим возможности сокращения размерностей разрабатываемых моделей, базирующиеся на исследовании особенностей реализуемых вычислительных алгоритмов и специфических алгебраических свойств множества макрокоманд.
Вычислительные алгоритмы бортовых систем относятся к рекурсивным арифметикологическим алгоритмам. Это алгоритмы, содержащие повторяющиеся операции одного и того же типа над последовательно поступающими данными. Как правило, многопроцессная и многозадачная реализация вычислительного алгоритма характеризуется конечным числом дискретных состояний (контекстов) , , , в каждом из которых вы-
полняется своя ветвь вычислительного процесса. Переключение контекста осуществляется по текущей информации о состоянии вычислительного процесса , внешней среды , а также по командам на переключение дс, поступающим из внешних систем. Аналитически процедуру переключения контекста можно выразить следующим образом:
(1)
где — символьная переменная, принимающая значения из области ,
— оператор квантования, который переменным величинам , , и дискретным сигна-
лам ставит в соответствие значение символа .
Опишем состояние каждого из характерных фрагментов вычислительного алгоритма уравнениями следующего вида:
хі (к + 1) = АіХі (к) + В;а; (к);
Уі (к) = СіХі (к); ¿ = 1,2,... , N.
(2)
Здесь векторы описывают текущее
состояние -го фрагмента вычислительного процесса на -м временном такте, векторы определяют состояние внешних воздействий, влияющих на ход вычислительного процесса, векторы содержат массивы выходных данных.
Взаимодействие отдельных фрагментов вычислительного алгоритма применительно к каждому из возможных контекстов можно описать следующим уравнением:
и(к) = ЬЕ(д)у(к) + Ь0Е0(д)д(к), (3)
где , — прямые суммы векторов
и , — вектор внешних по отноше-
нию к БСРВ воздействий, Ь = \\Ьу\\МхМ,
— блочные матрицы,
= blockdiag {Е\ (д),... , (д)} — блочно-
диагональная матрица, элементы которой являются единичными или нулевыми матрицами в зависимости от того, принимает или не принимает участие в реализации -го контекста соответствующий фрагмент вычислительного алгоритма; аналогичный смысл имеет матрица , элементы которой определяют участие в вычислительном процессе соответствующих внешних воздействий.
Объединяя (2) и (3), получим математическую модель вычислительного алгоритма в следующем виде:
х (к + 1) = Ас (д) х (к) + Вс (д) и (к);
(4)
у (к) = Сх (к).
Здесь — прямая сумма векторов ,
Ас (д) = [А + ВЬЕ (д) С],
Вс (д) = ВЬ0Е0 (д),
А = blockdiag {.4.1, А-2,.... Ад-} ,
В = blockdiag {В\, В-2, ■ ■ ■ , В^} ,
С = ЫосМ1аё {Съ С2, • • • , ОД •
Поставим в соответствие вычислительному алгоритму (4) арифметико-логический
граф, определяющий последовательность выполнения арифметических и логических операций, операций чтения-записи данных в буферные ОЗУ, вызова констант из ПЗУ и т. д. Этот ориентированный граф включает следующие типы вершин (рис. 1):
Рис. 1. Типы вершин графа
вершины-истоки, соответствующие операциям чтения из буферных ОЗУ и ПЗУ или кэш-памяти процессора (рис. 1,а);
арифметические вершины, соответствующие операциям сложения или умножения двух операндов — в том числе и умножения на логическую переменную (рис. 1,6);
логические вершины, соответствующие определенным логическим операторам (например, условный оператор), — эти операторы определяют связи между операторами по управлению, задавая состав и порядок выполнения операторов (рис. 1,в).
Рассматриваемый граф является взвешенным, т. е. его ветвям присваиваются веса. С этой точки зрения ветви делятся на два класса:
ветви с постоянными весами; ветви с логическими весами (соответствуют логическим переменным).
Поясним способ построения подобного графа на следующем примере. Пусть вычислительный алгоритм описывается следующей совокупностью арифметико-логических уравнений:
если , то выполняется первый
фрагмент
хі (к + 1) = а\Хі{к) + Ьіщ(к)',
У і (к + 1) = сі хі (к + 1);
(5)
если , то выполняется второй
фрагмент
х2{к + 1) = а2Х2{к) + <1-лхл(к) + Ь2щ(к);
х3 (к + 1) = а,4Х2(к) + а-0хъ(к) + Ь^и^к);
(
(6)
Для анализируемого примера арифметико-логический граф будет иметь вид, представленный на рис. 2.
а
б
в
Рис. 2. Арифметико-логический граф алгоритма
Перейдем теперь к исследованию алгебраических свойств множества операций, образующих вычислительный алгоритм. Обозначим результаты выполнения операций, декомпозированных до уровня макрокоманд микропроцессора, через г*, где г — номер соответствующей операции ( ). Поста-
вим в соответствие графу следующую аналитическую модель:
г = Пі г + Щи,
(7)
где г — обобщенный вектор результатов операций; V = [х(к);и(к)]Т — вектор исходных данных; Пі,П2 — матрицы, определяющие последовательность выполнения операций в соответствии с вычислительным алгоритмом в зависимости от результатов выполнения предыдущих операций и исходных данных, соответственно.
Для графа, представленного на рис. 2, векторы из системы уравнений (7) принимают
вид: г = [гь г2,... , ^і9]Т, V = [жь ж2, ж3, щ]т;
матрицы и приведены на рис. 3.
Основными характеристиками рекурсивных алгоритмов служат параллелизм и кон-вейерность. Алгоритм обладает параллелизмом уровня , если максимально возможное количество операций, выполняемых за один отсчет времени (например, за такт исполнения макрокоманды), равно ё. В свою очередь, алгоритм характеризуется конвейерно-стью длительности , если количество отсчетов времени, за которое реализуется алгоритм, равно .
Введенные понятия позволяют сопоставить свойства алгоритма с особенностями вычислительной системы, на которой он выполняется. В общем случае длительность исполнения алгоритма, выраженная в тактах макрокоманд, не может быть меньше его кон-вейерности, даже при условии, что на каждом временном такте задействуется число процессоров, равное соответствующему уровню параллелизма алгоритма. Поскольку уровень параллелизма может меняться в зависимости от такта вычислительной процедуры, то для обеспечения минимально возможной длительности исполнения алгоритма число процессоров в вычислительной системе должно быть не меньше, чем максимальный уровень параллелизма. Однако на тех тактах вычислений, для которых уровень параллелизма меньше максимального, отдельные процессоры будут незагруженными, что приводит к снижению производительности вычислительной системы.
Обозначим через уровень параллелизма на -м такте вычислительного алгоритма (
), т. е. число операций, которые могут выполняться параллельно на данном такте. Отметим, что нумерация операций в пределах одного уровня параллелизма является произвольной. Такты алгоритма также отмечены на рис. 2.
Основной результат, связанный с разработкой аналитической модели вычислительного процесса, содержится в следующей теореме.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ‘ 0 0 0 G1 '
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Сг2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (tltl-l 0 0 0
bi 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 Ъ'2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (%40i‘2 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 а до 2 0
0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 а-2 а 2 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; П2 = 0 0 ало 2 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 Ьа 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 Cl 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 С-л 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 С 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 . 0 0 0 0
Рис. 3
Разобьем полученное произведение обратных матриц на группы сомножителей, относящихся к операциям, выполняемым на одном и том же временном такте:
1 р;+1
я-1я?г!1...я2-1 = П Ц щ\ (10)
*=/ J=p;+rf;
Поскольку нумерация операций в пределах каждой совокупности, объединяющей операции, допускающие параллельное выполнение, является произвольной, то матрицы из соответствующей совокупности
являются перестановочными, т.е.
р; +1 Р;-М;
(11)
¿=р!+с11 ]=Р1+^
В свою очередь, Яг1 = 1Г + е^П^, причем произведение этих матриц дает нижнюю треугольную матрицу с единичной диагональю и с ненулевыми элементами, расположенными в строках с номерами ^' = (^ + 1,... ,|^ + сЦ). Полученные таким образом нижние треугольные матрицы могут быть выражены в виде суммы единичной матрицы и элементарных
-рг (1)
матриц , соответствующих ненулевым
строкам:
р!+с1.1 Р1+(1ч
П ^' = 1,.+ £ е,^4. (12)
^=Р;+1 ^=Р|+1
Теорема. Пусть Hj = Ir — , где —
j-я строка матрицы Пь — j-й координат-
ный вектор, г = dimz — размерность вектора г, тогда решение системы (7) может быть представлено в следующем виде:
« = П
*=/
где
Pi+d-i
(di + i)ir- иі
J=p;+1
і-1
рі = ^2dk-
k=1
n2w.
(8)
Доказательство. Тривиальное решение системы (7) имеет вид г = (1Г — П1)-1П2г!. Однако вследствие чрезвычайно высокой размерности вектора это решение оказывается неприемлемым. В то же время особенности построения вектора приводят к тому, что матрица является нижней треуголь-
ной с единичной главной диагональю, поскольку результаты операций, выполняемых на некотором г-м временном такте, могут быть получены только на основе использования результатов ранее выполненных операций. В связи с тем, что любая матрица вида может быть представлена как произведение матриц Н^, т.е. (/г —Пх)= Я2Я3 ... Нг, для обратной матрицы справедливо следующее выражение:
(.Гг
щ)"1 = н-1н;\
я;
(9)
Преобразуем последнее выражение следующим образом:
Рі+Лі
Іг + ^ ^ = {(¡’і, + 1) Іг ~
І=р;+1
Рі+(іі
Е
І=р;+1
^п'1’
— (ф, + 1) I,-
Рі+Лі
Е
І=р;+1
Я,
Объединяя полученное соотношение с (9)-(11), приходим к результату, сформулированному в теореме:
Пі)
1
п
І=І
П2» = (сіі + 1) I,.
Рі+Лі
Е
І=р;+1
Я,
П-2
Проиллюстрируем результат, содержащийся в приведенной теореме, на примере аналитического решения системы (7) для рассматриваемого алгоритма (5)-(6). Для данного примера число операций г = 19, кон-вейерность / = 7. Уровень параллелизма меняется в зависимости от вычислительного такта алгоритма следующим образом:
= {2; 5; 5; 3; 2; 1; 1}, где * = 1, 2,... , 7 (см. рис. 2). Следовательно, решение будет иметь вид
г =
П
(сіі + 1) 7і9
Рі+сі,і
Е «і
і=р;+і
П2».
Подставив численные значения величин в последнее выражение и выполнив необходимые вычисления, мы можем найти аналитические зависимости для финальных операций алгоритма — £13 и £19, не выполняя промежуточных вычислений:
213 = 01(110-1X1 + (ЗхЬхСх'Н,!,
^19 = (сяа4 + С2О-2) &2Х2 +
+ (сз«д + С2«з) 0.-2Х3 +
+ О2 (Ь-2С-2 + Ь3с3) Щ .
МЕТОДИКА ДИСПЕТЧЕРИЗАЦИИ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ В БОРТОВОЙ МНОГОПРОЦЕССОРНОЙ СИСТЕМЕ
Перейдем теперь к построению модели распределения загрузки между процессорами в многопроцессорной вычислительной системе. При этом основное внимание будем
уделять характеру распределения фрагментов алгоритма управления между отдельными вычислительными блоками. Обозначим через множество номеров
операций, составляющих алгоритм управления. Разобьем это множество на совокупность подмножеств
номеров операций, допускающих параллельное выполнение для -го отсчета времени. Иначе говоря, 0¿ — ¿-я группа параллельных операций. Пусть в состав многопроцессорного вычислителя входит процессоров. Тогда каж-
дая группа параллельных операций алгоритма может быть реализована данной совокупностью процессоров за машинных
тактов выполнения макрокоманд, если не делится нацело на 5, или за тактов — в противном случае. Здесь к{ =]ф/з] — число полных тактов ( означает целую часть дроби ), на которых загруженными оказываются все 5 процессоров. Если не делится нацело на з, то последний (к{ + 1)-й такт этой последовательности временных тактов является неполным, т. е. на нем загруженными оказываются только процессоров.
Выделим теперь в составе подмножеств
совокупности номеров операций, реализуемых -м ( ) процессором:
= {¿¿д, ¿¿,2, • • •}. В состав каждой такой совокупности входит номеров, если -
й процессор оказывается загруженным на последнем (неполном) временном такте, и номеров — в противном случае. Подобное разбиение подмножеств должно удовлетворять двум условиям:
3
1. — это условие означает, что
.7=1
все операции г-й группы параллельных операций должны быть выполнены.
2. — каждая операция выполняется только на одном из процессоров (/, к =
).
Результаты распределения загрузки определяют такие важнейшие показатели эффективности вычислительного процесса, как длительность исполнения алгоритма, выраженную в тактах макрокоманд, и среднюю загрузку процессоров . Для оптимизации этих показателей воспользуемся модифицированным генетическим алгоритмом, суть которого сводится к следующим положениям.
Каждому варианту распределение г операций вычислительного алгоритма между
процессорами поставим в соответствие вектор длиной г • в бит. Этот вектор-хромосому можно условно разбить на групп, -я из которых содержит информацию о номере процессора, выполняющего операцию с номером i. С этой целью в *-й группе зададим только один единичный бит, занимающий позицию (г — 1) • 5 + ;}. Это означает, что операция с номером выполняется на -м ( )
процессоре.
Состав начальной популяции формируется на основе случайной выборки с учетом того, что не все возможные варианты хромосом являются допустимыми. Допустимость определяется как двумя условиями, сформулированными ранее, так и тем, что процессор не может выполнять больше одной операции одновременно, т. е. в пределах одного машинного такта. Объем начальной популяции
определяется желаемой широтой поиска (2 < М < зт).
Специфика вычисления функции пригодности применительно к рассматриваемому случаю заключается в том, что критерий оптимальности включает два показателя: длительность исполнения алгоритма и среднюю загрузку процессоров . Эти показатели рассчитываются по следующим формулам:
/ кі+1 = '"Р
г=1 1=1 / кі+1 я
Е Е Е ті3
(13)
ш =
г=1 1=1 j=l
где — длительность исполнения -м процессором на -м машинном такте макрокоманды, включающей транзакции записи, чтения, пересылки и операцию обработки данных и относящейся к ¿-му шагу вычислительного алгоритма.
Как правило, время, затрачиваемое на пересылку данных, превышает длительность вычислительной операции. Поэтому величина зависит от топологии коммуника-
ционной среды и принятого протокола обмена.
Чтобы узнать, есть ли на г-м шаге вычислительного алгоритма ( ) необходимость
в передаче данных между процессорами, требуется проанализировать структуру вычислительного алгоритма. Это можно сделать с помощью матрицы смежности графа операций алгоритма. Для вершины, соответствующей некоторой операции , выполняющейся на
-м шаге, нужно найти смежные ей вершины для ( )-го шага. Затем нужно определить, на каких процессорах выполняется операция и смежные с ней операции. Если среди номеров этих процессоров есть отличающиеся, то между соответствующими процессорами необходима транзакция. Эту процедуру нужно повторить для всех операций -го шага алгоритма.
Если на -м шаге выполняется транзакция, то ее длительность можно оценить по формуле
Тг =
тп ■ V
I.
(14)
где — длина пути между процессорами, Ь — пропускная способность канала «точка-точка» (байт/с), У — объем передаваемой информации в байтах, — латентность (время, затрачиваемое на запуск процесса передачи данных, которое зависит от используемого сетевого программно-аппаратного обеспечения).
Длину пути между процессорами и можно определить с помощью матрицы , задающей топологию коммуникационной среды. Эта длина определяется как минимальная степень, в которую нужно возвести матрицу , чтобы ее элемент стал отличным от нуля
тц = ттс^,^ {Зц ф 0). (15)
Очевидно, что больше всего времени занимает транзакция между наиболее удаленными друг от друга процессорами. Следовательно, при расчете длительности исполнения алгоритма необходимо на каждом машинном такте выявить транзакцию, соответствующую самому длинному пути. Применительно к этой транзакции определяется максимальная для данного машинного такта длительность макрокоманды.
Следует отметить, что длительность исполнения алгоритма с условными переходами, как и средняя загрузка, зависит от числа контекстных переключений. В этом случае при расчете соответствующих показателей можно воспользоваться суммарными характеристиками
N
Ти = ^ Т1
к=1
ш =
N
Е шкТЩ,
к=1______
т
± и
(16)
Здесь — длительность исполнения ветви алгоритма, соответствующей -му контексту.
Для расчета функции пригодности, отвечающей введенным показателям, воспользуемся методом обобщенных рангов. С этой целью производится ранжирование особей, входящих в рассматриваемую популяцию, сначала по первому, а затем по второму показателю. В качестве функции пригодности берется сумма рангов, присвоенных данной особи. Очевидно, что у наилучшей хромосомы в популяции функция пригодности будет иметь максимальное значение. Однако если эта хромосома попадет в другую популяцию, то значение ее пригодности изменится в соответствии с теми рангами, которые она получит в новой популяции.
Следующий этап генетического алгоритма — это отбор особей в соответствии с их функцией пригодности. Процедура отбора позволяет реализовать механизм адаптации параметров алгоритма оптимизации на основе компромисса между скоростью сходимости и качеством получаемого локально-оптимального решения. Суть предлагаемого механизм адаптации сводится к тому, что вероятность отбора особей гибко меняется в зависимости от предыстории поиска. С этой целью используется нормальный закон распределения вероятности отбора. Математическое ожидание принимается равным значению функции приспособленности, наилучшей для данного поколения хромосомы популяции. Если в очередном поколении произошла смена наилучшей хромосомы, то дисперсия принимает максимальное значение, расширяя тем самым диапазон поиска. Если же на протяжении нескольких поколений более предпочтительная хромосома не находится, то дисперсия уменьшается, в простейшем случае пропорционально числу поколений
£> = Апа *-Р-д, (17)
где — максимальное значение диспер-
сии; ¡3 — коэффициент, определяющий скорость сходимости алгоритма; д — число «неудачных» поколений.
Описанный механизм формирует предпосылки для элитного отбора, сохраняющего наилучшую из найденных хромосом популяции.
Рассмотренный принцип отбора используется в двух случаях:
перед этапом кроссинговера для выбора скрещиваемых особей;
после применения всех операторов генетического алгоритма для отбора наиболее пригодных особей в следующее поколение.
Оператор кроссинговера применяется по отношению к паре хромосом, прошедших отбор. В простейшем случае реализуется одноточечный кроссинговер. Для случайно выбранной пары хромосом определяется точка
разрыва .
Она выбирается также случайно и только на границах тех участков хромосом, которые кодируют операции, допускающие параллельное исполнение. Затем биты из двух выбранных хромосом, расположенные после точки разрыва, меняются местами. В результате образуются две хромосомы потомков и среди них случайным образом выбирается один. Этот процесс повторяется для всех хромосом заранее определенное количество раз. Более гибкой является схема, когда точки разрыва выбираются отдельно для каждого участка хромосомы и кроссинговер осуществляется независимо в пределах этих участков — многоточечный кроссинговер.
Наконец, после осуществления кроссин-говера к хромосомам применяется оператор мутации. Его действие состоит в случайном изменении (на противоположное) значения каждого бита с заданной вероятностью мутации РМуТ. Использование классической схемы мутации в нашем случае неприемлемо, поскольку может приводить к недопустимым вариантам загрузки процессоров. В связи с этим предлагается осуществлять мутацию не одного бита, а всего гена, состоящего из бит и кодирующего номер некоторой операции^. Его код заменяется другой допустимой комбинацией с последующей проверкой следующего условия. Если машинный такт, на котором выполняется операция Рг, не содержит других операций, то мутация заканчивается. В противном случае значение гена, кодирующего некоторую другую операцию из этого же такта, заменяется исходным значением гена, соответствующего .
Предложенный механизм адаптации обеспечивает еще одно важное преимущество — задает логически обоснованный критерий остановки поиска. Обычно в качестве такого критерия используется либо произвольно заданное число поколений, либо желаемое значение функции пригодности, при достижении которых поиск прекращается. В нашем случае поиск прекращается, если дисперсия уменьшается до такой величины, когда вероятность изменения лучшего из найденных вариантов загрузки становится пренебрежимо малой.
ЗАКЛЮЧЕНИЕ
Современный уровень требований, предъявляемых к бортовым информационно-вычислительным системам, обуславливает чрезвычайно высокую трудоемкость задач, связанных с детальной проработкой их функционального состава и коммуникационной среды, устанавливающей принципы информационного обмена между основными устройствами бортовой аппаратуры. В связи с этим необходимо, чтобы разработка вычислительных алгоритмов, планирование совместно протекающих вычислительных процессов и выбор структурной организации аппаратной части осуществлялись в рамках единой процедуры, обеспечивающей направленное формирование архитектуры БСРВ с заданным набором свойств. С этой целью в данной статье предлагается аналитическая модель вычислительного процесса в многопроцессорной вычислительной системе, позволяющая оценивать эффективность распределения операций вычислительного алгоритма между процессорами. Поиск оптимального варианта такого распределения целесообразно осуществлять с использованием модифицированного генетического алгоритма, механизм адаптации которого направлен на достижение компромисса между скоростью сходимости и качеством получаемого локально-оптимального решения. Все это обеспечивает необходимые предпосылки для разработки высокопроизводительных бортовых вычислительных систем пятого поколения.
СПИСОК ЛИТЕРАТУРЫ
1. Бодрунов, С. Д. Авионика пятого поколения и перспективы российского авиаприборостроения / С. Д. Бодрунов, В. Н. Ефанов // Сб. тр. II Всерос. науч.-техн. конф. Нац. ассоц. авиаприборостроителей. М., 1999. С. 14-35.
2. Бодрунов, С. Д. Концепция системной интеграции БРЭО на базе интеллектуальных ин-
формационных технологий /С. Д. Бодрунов,
B. Н. Ефанов // Тез. докл. III Всерос. науч.-техн. конф. Нац. ассоц. авиаприборостроителей. СПб., 2000. С. 11-15.
3. Ефанов, В. Н. Пути повышения эффективности применения летательных аппаратов на базе быстросчетных моделей и средств искусственного интеллекта / В. Н. Ефанов,
C. Д. Бодрунов // Мир авионики: Журн. Рос. приборостроительн. альянса. 2002. № 2. С. 3336.
4. Ефанов, В. Н. Исследовательский стенд для оптимизации траекторий полета / В. Н. Ефанов, С. Д. Бодрунов // Авиационные технологии XXI века: Новые концепции летательных аппаратов и моделирование полета: Тез. докл. VII Междунар. симп. (АБТЕС‘02), Берлин, 2002. С. 35-36.
5. Ефанов, В. Н. Открытые архитектуры в концепции авионики пятого поколения / В. Н. Ефанов, С. Д. Бодрунов // Мир авионики: Журн. Рос. приборостроительн. альянса. 2004. №5. С. 4-17.
ОБ АВТОРАХ
Ахметов Марат Исканда-рович, аспирант каф. авиац. приборостроения Дипл. инж. по орг. и технол. защиты информации (УГАТУ, 2003). Лауреат стип. Нац. ассоц. авиаприборостроит. (2004). Работает над дис. в обл. интеграции бортового оборудования.
Ефанов Владимир Николаевич, проф., зав. каф. авиационного приборостроения. Дипл. инж. по пром. электронике (УАИ, 1973). Д-р техн. наук по управлению в техн. системах (УГАТУ, 1995). Исследования в обл. интеллектуализ. комплексов бортового оборудования.