Размещение параллельных подпрограмм в мультимикроконтроллерах с учетом отказов

Входные регистры G1 и G2 хранят настроечные векторы соединений ППУ между собой. Настроечные векторы вычисляются аналитическим модулем распознавания структурных дескрипторов конфликтов, сам модуль не входит в состав операционной части. Основу однородной структуры операционной части составляет вычислительно-коммутационный блок, содержащий собственно ППУ, входной мультиплексор (МХ) с двумя входами, выходной де-мультиплексор (БМХ) с двумя выходами (г — индикатор номера продукционного устройства). Введение двух коммутирующих узлов в вычислительно-коммутационный блок обеспечивает гибкую настройку соединений конвейерных или параллельных видов с объединением необходимого на текущем уровне количества ППУ.

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

ЛИТЕРАТУРА

Каляев А. В., Левин И. И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. М.: Изд-во „Янус-К", 2003. 380 с.

Евгений Анатольевич Титенко

Сведения об авторе канд. техн. наук, доцент; Курский государственный технический университет, кафедра программного обеспечения вычислительной техники; E-mail: johntit@mail.ru

Рекомендована кафедрой программного обеспечения вычислительной техники

Поступила в редакцию 12.09.08 г.

УДК 681.3

Д. Б. БОРЗОВ

РАЗМЕЩЕНИЕ ПАРАЛЛЕЛЬНЫХ ПОДПРОГРАММ В МУЛЬТИМИКРОКОНТРОЛЛЕРАХ С УЧЕТОМ ОТКАЗОВ

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

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

В настоящее время все большее распространение получают отказоустойчивые мульти-микроконтроллеры [1], при этом повышаются требования к их быстродействию.

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

привести к существенному увеличению времени восстановления системы и снижению коэффициента ее готовности. Отказываться из-за этого от переразмещения задач перед рестартом восстановленной системы нецелесообразно, так как возросшие коммуникационные задержки могут привести к потере системной производительности, превышающей ожидаемый выигрыш от применения параллельной многопроцессорной обработки комплекса взаимодействующих подпрограмм [2—4]. В связи с этим для уменьшения времени восстановления мультимикроконтроллера следует многократно снизить затраты времени на планирование размещения задач. Для этого необходимо создать метод сокращения вычислительной сложности процедур планирования размещения задач в процессорных модулях мультимикроконтроллера.

Множество обрабатываемых подпрограмм описывается графом взаимодействия задач [5]: G=<X, Е>, где Х — множество вершин графа G, вершины х1 е X которого соответствуют

подпрограммам, а взвешенные дуги еу е Е определяют объемы данных

М =

2

тч

NхМ '

где N = п = |х|; ту — объем передаваемых данных между /-м и у-м процессорными модулями [6].

Мультимикроконтроллерную систему будем представлять топологической моделью в виде графа Н=<Р1, У>, где р = {Р и Ь}, здесь Р — множество процессорных модулей мультимикроконтроллера, организованных в матрицу |Р|пхп, где |Р| = N = п2 — число процессорных модулей мультимикроконтроллера, V — множество межмодульных связей, задаваемых матрицей смежности хМ размером п2 хп2 [7]; Ь — дополнительно введенные резервные

1

ИМ хМ

модули мультимикроконтроллерной системы:

1п

Дополнительные модули (1) образуют столбец, записываемый в крайнем правом столбце матрицы Р.

В отсутствие отказов мультимикроконтроллерной системы размещение пакета подпрограмм (задач), описываемых графом G, может быть аналитически описано следующим образом:

в = Х5 ^ Р, где ^ = 1, N!, к = 1, п, q = 1, п .

Здесь ^ — номер очередной перестановки задач {xqk} по процессорным модулям {Pqk}, соответствующий 5-му варианту размещения. Мощность множества у = (в5} всевозможных отображений равна числу всевозможных перестановок задач {xqk} в матрице X: = N!.

Резервные процессорные модули /1, /2,..., /г в случае полной работоспособности всех процессоров мультимикроконтроллера остаются незадействованными. Для описания множества длин ёу кратчайших маршрутов передачи данных в пределах мультимикроконтроллера введем матрицу минимальных расстояний

/

2

которую можно построить по матрице смежности.

Пусть ¥ — множество всевозможных отображений вида . Тогда задачу размещения

*

можно сформулировать как поиск такого отображения в [7], что

V = Т {р^ , Рху)

где Тр(раЬ, рху ) — коммутационная задержка при передаче данных между процессорными модулями раЬ и рху, соответствующая отображению Р и вычисляемая как произведение

Тв

Процесс планирования размещения задач может быть выполнен, например, по методу, описанному в статье [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

и

рп,1 рп,2 ... рп, к рп, к+1 ... рп, п

где е = 1, N!, к = 1, п, д = 1, п , г = 1, п, ^ = 1, п; символом ^ обозначен возможный отказ процессора рг {.

В данном случае при отказе процессора рг 1 необходимо оперативно заменить его на один из ближайших свободных резервных процессоров /1, ¡2,..., /г. Возможен вариант замены [1], при котором все подпрограммы х

е к, ^ к+1,..., ^ , назначенные ранее на процессоры рчк, рчк+1, •••, рчп, переназначаются на один из ближайших свободных резервных процессоров, расположенных правее. В этом случае, например, задание хе , назначенное ранее процессору рч п, назначается ¡ч, хе 1 — процессору рчп и т.д. В то же время все задания

•, хе остаются без изменений.

, к-1

Рассмотрим справедливость приведенного отображения (4) на примере. Пусть имеется гипотетический вариант размещения, заданный моделью в виде матрицы |Р|^, где

„2 02

Выражению (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

Пусть также задано множество межмодульных связей 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) левая матрица представляет собой МОИ гипотетического варианта размещения, правая матрица — соответствующая ей ММР (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

Б =

0 1 2

1 0 1

Тогда вариант размещения с учетом (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

В результате подпрограмма, ранее назначенная на процессорный модуль р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 г.