Входные регистры G1 и G2 хранят настроечные векторы соединений ППУ между собой. Настроечные векторы вычисляются аналитическим модулем распознавания структурных дескрипторов конфликтов, сам модуль не входит в состав операционной части. Основу однородной структуры операционной части составляет вычислительно-коммутационный блок, содержащий собственно ППУ, входной мультиплексор (МХ) с двумя входами, выходной де-мультиплексор (БМХ) с двумя выходами (г — индикатор номера продукционного устройства). Введение двух коммутирующих узлов в вычислительно-коммутационный блок обеспечивает гибкую настройку соединений конвейерных или параллельных видов с объединением необходимого на текущем уровне количества ППУ.
Таким образом, разработана структура операционной части мультипроцессора, отличающаяся поддержкой ветвящихся вычислительных процессов и имеющая в своем составе два параллельно работающих яруса продукционных процессорных устройств на основе структурного распознавания дескрипторов конфликтов и динамической упреждающей реконфигурации яруса ППУ под следующий шаг вычислений по структуре графа задачи.
ЛИТЕРАТУРА
Каляев А. В., Левин И. И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. М.: Изд-во „Янус-К", 2003. 380 с.
Евгений Анатольевич Титенко
Сведения об авторе канд. техн. наук, доцент; Курский государственный технический университет, кафедра программного обеспечения вычислительной техники; E-mail: johntit@mail.ru
Рекомендована кафедрой программного обеспечения вычислительной техники
Поступила в редакцию 12.09.08 г.
УДК 681.3
Д. Б. БОРЗОВ
РАЗМЕЩЕНИЕ ПАРАЛЛЕЛЬНЫХ ПОДПРОГРАММ В МУЛЬТИМИКРОКОНТРОЛЛЕРАХ С УЧЕТОМ ОТКАЗОВ
Рассмотрена проблема размещения параллельных подпрограмм в мультимик-роконтроллере с учетом возможного отказа его процессорного модуля, сформулированы методика и алгоритм планирования размещения задач.
Ключевые слова: размещение, мультимикроконтроллер, отказ, реконфигурация, параллельная подпрограмма, процессор.
В настоящее время все большее распространение получают отказоустойчивые мульти-микроконтроллеры [1], при этом повышаются требования к их быстродействию.
В случае отказа одного из процессоров мультимикроконтроллера необходимо быстро восстановить его функционирование путем реконфигурации структуры с отключением неисправного процессора и заменой его резервным, расположенным обычно вне поля обрабатывающих процессоров. В результате существенно изменяются конфигурации связей между процессорами мульти-микроконтроллера и возрастает длина маршрутов передачи данных. Длина маршрута может быть уменьшена путем оперативного переразмещения задач. Процедуры планирования размещения являются комбинаторными, имеют большую вычислительную сложность и поэтому могут
привести к существенному увеличению времени восстановления системы и снижению коэффициента ее готовности. Отказываться из-за этого от переразмещения задач перед рестартом восстановленной системы нецелесообразно, так как возросшие коммуникационные задержки могут привести к потере системной производительности, превышающей ожидаемый выигрыш от применения параллельной многопроцессорной обработки комплекса взаимодействующих подпрограмм [2—4]. В связи с этим для уменьшения времени восстановления мультимикроконтроллера следует многократно снизить затраты времени на планирование размещения задач. Для этого необходимо создать метод сокращения вычислительной сложности процедур планирования размещения задач в процессорных модулях мультимикроконтроллера.
Множество обрабатываемых подпрограмм описывается графом взаимодействия задач [5]: G=<X, Е>, где Х — множество вершин графа G, вершины х1 е X которого соответствуют
подпрограммам, а взвешенные дуги еу е Е определяют объемы данных (в байтах), передаваемых между задачами при следующих соотношениях между индексами: / = ( - 1)п + к . Граф G может быть описан матрицей обмена информации (МОИ)
М =
2
тч
NхМ '
где N = п = |х|; ту — объем передаваемых данных между /-м и у-м процессорными модулями [6].
Мультимикроконтроллерную систему будем представлять топологической моделью в виде графа Н=<Р1, У>, где р = {Р и Ь}, здесь Р — множество процессорных модулей мультимикроконтроллера, организованных в матрицу |Р|пхп, где |Р| = N = п2 — число процессорных модулей мультимикроконтроллера, V — множество межмодульных связей, задаваемых матрицей смежности хМ размером п2 хп2 [7]; Ь — дополнительно введенные резервные
1
ИМ хМ
модули мультимикроконтроллерной системы:
1п
(1)
Дополнительные модули (1) образуют столбец, записываемый в крайнем правом столбце матрицы Р.
В отсутствие отказов мультимикроконтроллерной системы размещение пакета подпрограмм (задач), описываемых графом G, может быть аналитически описано следующим образом:
в = Х5 ^ Р, где ^ = 1, N!, к = 1, п, q = 1, п .
Здесь ^ — номер очередной перестановки задач {xqk} по процессорным модулям {Pqk}, соответствующий 5-му варианту размещения. Мощность множества у = (в5} всевозможных отображений равна числу всевозможных перестановок задач {xqk} в матрице X: = N!.
Резервные процессорные модули /1, /2,..., /г в случае полной работоспособности всех процессоров мультимикроконтроллера остаются незадействованными. Для описания множества длин ёу кратчайших маршрутов передачи данных в пределах мультимикроконтроллера введем матрицу минимальных расстояний (ММР)
/
2
О =|| ^ , N = п2 = |р|,
которую можно построить по матрице смежности.
Пусть ¥ — множество всевозможных отображений вида . Тогда задачу размещения
*
можно сформулировать как поиск такого отображения в [7], что
V = Т {р^ , Рху)
(2)
где Тр(раЬ, рху ) — коммутационная задержка при передаче данных между процессорными модулями раЬ и рху, соответствующая отображению Р и вычисляемая как произведение
Тв(Ра,Ь, Рху ) = . (3)
Процесс планирования размещения задач может быть выполнен, например, по методу, описанному в статье [6].
В случае отказа, например, процессора рг 1 (г = 1, п, ^ = 1, п ) мультимикроконтроллер-
ной системы размещение пакета задач, описываемых графом G, может быть аналитически описано следующим образом:
X ^ Р1 =
ли
•4,2
л1,к
51, к+1
Л1, п
хс хс
,1 ^Л
Лп,1
п,2
хс хс
•е2,к •е2,к+1
Хе Хе
Лд ,к Лд, к+1
еп ,к еп, к+1
У ^
^ <
р1,1 р1,2 ... р1, к р1,к+1 р2,1 р2,2 ... р2,к р2,к +1
р\, п
рг,п
рд,1 ра ,2
н
ра,к ... ра,п-1
и
(4)
рп,1 рп,2 ... рп, к рп, к+1 ... рп, п
где е = 1, N!, к = 1, п, д = 1, п , г = 1, п, ^ = 1, п; символом ^ обозначен возможный отказ процессора рг {.
В данном случае при отказе процессора рг 1 необходимо оперативно заменить его на один из ближайших свободных резервных процессоров /1, ¡2,..., /г. Возможен вариант замены [1], при котором все подпрограммы х
е к, ^ к+1,..., ^ , назначенные ранее на процессоры рчк, рчк+1, •••, рчп, переназначаются на один из ближайших свободных резервных процессоров, расположенных правее. В этом случае, например, задание хе , назначенное ранее процессору рч п, назначается ¡ч, хе 1 — процессору рчп и т.д. В то же время все задания
•, хе остаются без изменений.
, к-1
Рассмотрим справедливость приведенного отображения (4) на примере. Пусть имеется гипотетический вариант размещения, заданный моделью в виде матрицы |Р|^, где
„2 02
|Р| = N = п2 = 22 = 4 :
Выражению (5) соответствует ММР:
Р =
(5)
Б =
<1,1 <2,1 <3,1 <4,1
<1,2 <2,2 <3,2 <4,2
<1,3 <2,3 <3,3 <4,3
<1,4 <2,4 <3,4
<4 4
(6)
Пусть также задано множество межмодульных связей V, соответствующее отображению
(4), описанное матрицей МОИ: М =
'0 15 0
т
4х4
которой ставится в соответствие ММР (6):
М =
15 0 4 3
0 10 0 4
7 3 10 0
^ Б =
1 0 1 2
2 1 0 1
(7)
В выражении (7) левая матрица представляет собой МОИ гипотетического варианта размещения, правая матрица — соответствующая ей ММР (6).
В случае, например, отказа процессорного модуля р3, на который назначена подпрограмма, необходимо провести оперативное переназначение подпрограмм с учетом ближайшего резервного процессорного модуля /2. В данном случае предлагается вариант замены, когда подпрограмма, назначенная ранее на процессор р3, переназначается (фактически — сдвигается) на один модуль правее с учетом резервного модуля /2 [1]. В результате получаем вариант топологической модели мультимик-
Р1
I I I
Р2
-----♦
"1
Р3 Р4
роконтроллера, представленный на рисунке.
Для топологической модели, представленной на рисунке, получаем модель мультимик роконтроллера, заданную следующей матрицей Р :
Р = \Р1 Р2 0 I
1 0 Р3 Р4 У
Соответствующая матрица ММР с учетом (8) выглядит следующим образом:
0 12 3
(8)
Б =
0 1 2
1 0 1
(9)
Тогда вариант размещения с учетом (8), (9) будет задаваться следующим отображением:
М =
0 15 0 7 0 1 2 3
15 0 10 3 1 0 1 2
Б = - >
0 4 0 10 2 1 0 1
7 3 4 0 3 2 1 0
(10)
В результате подпрограмма, ранее назначенная на процессорный модуль р4 с кратчайшим расстоянием 1, переназначается на резервный процессор с соответствующим расстоянием 3. Следовательно, как видно из выражения (10), после введения резервного процессорного модуля требуется новое оперативное переразмещение задач. Кроме того, в статье [6] было показано, что подпрограммы (подзадачи), которым соответствует наибольший объем передачи данных, предпочтительнее назначать на процессорные модули, которым соответствуют минимальные кратчайшие расстояния Б для уменьшения общего времени решения задачи.
Как видно из рассмотренного примера, в результате отказа процессорных модулей мультимикроконтроллера из-за перераспределения подпрограмм на резервные процессоры происходят значительное изменение топологии мультимикроконтроллерной системы и увеличение кратчайших маршрутов, вследствие чего ухудшается общее качество размещения подпрограмм, и как следствие — увеличивается общее время решения задачи. Следовательно, необходимо проводить новое планирование размещения подпрограмм фактически в новой топологической модели мультимикроконтроллера. Эту задачу можно выполнить с помощью метода, представленного в работе [6].
Предложенный способ планирования размещения с учетом отказа мультимикрокон-троллерных процессорных модулей позволит уменьшить время восстановления работоспособности мультимикроконтроллера, благодаря чему существенно уменьшается время простоя и повышается производительность системы.
1. Зотов И. В. Организация и синтез микропрограммных мультимикроконтроллеров. Курск: Изд-во „Курск", 1999. 368 с.
2. Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. СПб: БХВ-Петербург, 2002. 608 с.
3. Tanenbaum A. S. Distributed Operation Systems. Prentice-Hall, 1994. 648 p.
4. Корнеев В. В. Параллельные вычислительные системы. М.: Нолидж, 1999. 340 с.
5. Оре О. Теория графов. М.: Наука, 1968. 352 с.
6. Борзов Д. Б. Метод снижения коммуникационной задержки путем субоптимального размещения задач в матричных базовых блоках кластера // Телекоммуникации. 2008. № 4. С. 21—25.
7. Борзов Д. Б., Аль-Мараят Б. И., Типикин А. П. Акселератор планирования размещения задач в кластерных вычислительных системах высокой готовности // Изв. вузов. Приборостроение. 2008. Т. 51, № 2. С. 29—33.
СПИСОК ЛИТЕРАТУРЫ
Дмитрий Борисович Борзов
Сведения об авторе канд. техн. наук; Курский государственный технический университет, кафедра вычислительной техники; E-mail: borzovdb@kursknet.ru
Рекомендована кафедрой вычислительной техники
Поступила в редакцию 12.09.08 г.