АППАРАТНЫЕ СРЕДСТВА ПЛАНИРОВАНИЯ РАЗМЕЩЕНИЯ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ В МУЛЬТИПРОЦЕССОРНЫХ СИСТЕМАХ
Борзов Д.Б.
Юго-Западный государственный университет Кандидат технических наук, Кафедра вычислительной техники
Борисенко Ю.В.
Юго-Западный государственный университет Кандидат технических наук, инженер защиты и оценки интеллектуальной собственности
Чернецкая И.Е.
Юго-Западный государственный университет Доктор технических наук, Кафедра вычислительной техники HARDWARE ALLOCATION A PARALLEL PROGRAM IN MULTIPROCESSOR SYSTEM Borzov D.B., Southwest State University, Kursk Candidate of Technical Sciences
Borisenko J.V., Southwest State University, Kursk, Candidate of Tech-nical Sciences, Protection and valuation of intellectual property engineer
Chernetskaya I.E., Southwest State University, Kursk Doctor of Technical Sciences АННОТАЦИЯ
Описывается проблема размещения параллельных программ в мультипроцессорных системах. Делается вывод о необходимости применения специализированных аппаратных средств планирования размещения при использовании критических систем, таких как системы наблюдения, слежения, наведения, атомные объекты и т.д. ABSTRACT
Describes a problem of parallel programs allocation in multiprocessor sy^ems. The conclusion about the need for specialized hardware allocation us-ing critical sy^ems such as surveillance sy^ems, tracking, targeting, nuclear facilities, etc. Ключевые слова: процессор, размещение, программа, отказ, планирование, критическая система, резерв. Keywords: processor, allocation, program, failure, planning, critical sy^em reserve.
В настоящее время мультипроцессоры являются наиболее распространенным классом вычислительной техники, как правило, являющиеся системами высокого параллелизма, включающие в своем составе сотни процессорных модулей [1, 512-522]. В случае использования мультипроцессорных систем (МС) в объектах критического назначения (системы слежения, наблюдения, управления, атомные объекты различного назначения и т.п.), требования к производительности, отказоустойчивости и быстродействию возрастают.
В МС могут возникать отказы и сбои внутренних процессорных модулей и/или каналов связи. В этом случае уменьшается внутренняя коммуникационная задержка, производительность и время реакции системы. Одним из вариантов решения может быть внутреннее отказоустойчивое переразмещение процессорных модулей и/или каналов связи [2-3].
Работа является продолжением исследований [4, 45-48; 5, 28-31]. Как показал анализ, в случае отказов в применение программных средств неприменимо из-за длительного времени решения. В связи с этим целесообразным является применение специализированных аппаратных средств отказоустойчивого планирования размещения.
Структурная схема мультипроцессорной хост-системы представлена на рисунке 1. На нем каждый из процессорных ядер системы (ПЯ1, ПЯ2,..., ПЯМ) включает в себя устройство управления и арифметико-логическое устройство, ПЗУ, подключаемые к общей шине МС. Предлагаемые специализированные аппаратные средства планирования размещения программ предлагается использовать как периферийные устройства, к которым можно также отнести внешнюю память и устройства ввода-вывода.
Рис. 1. Структурная схема мультипроцессорной хост-системы
В [2,3] авторами предлагается в случае необходимости тов в линейных, условных и циклических участках после-выполнения задачи размещения/переразмещения, первона- довательных программ. В этом случае на следующем этапе чально выполнять задачу выявления независимых фрагмен- при выполнении задачи размещения или отказоустойчивого
переразмещения взаимодеиствие соседних процессорных модулей МС будет сведено к минимуму, что в дальнейшем приведет к повышению ее производительности и отказоустойчивости, тем самым повысив производительность системы.
При выполнении задачи выявления независимых участков программы исходная программа в последовательной
форме представляется в виде
Qi
строк [2,3],
k
вход-
V
°1 - ; - 1 N
е выходных переменных, где '
ных переменных,
, к - \,М , N - количество строк исходной последовательной программы, М - общее количество переменных. Символом || обозначается мощность описываемого множества.
Для каждой строки & существуют коэффициенты
\кс
M
M
Vi
и выходных переменных V», где
kip ={0,1} kop ={0,1}
p = 1, M
. При этом исходная задача задается матрицами:
Ms _ U =| Ms _ U||.
следования для участков
- входных переменных для участков
I U = I Ul „ - II - W„ xm
где
|I - U|z
V\a v KIa+i v ... vl 4
- выходных переменных для участков
0 и\г - |°и V 1°и+1 V■■■ V\°\в
о - U = O - U|
Nu xM
где
достижимости для участков
Md _ U = | \Md _ U|
N xNu . В
U,
Выявление параллелизма между операторами и участка программы можно свести к выявлению информационной независимости между ними через условие:
^(I, к) - (1г Л °к ) V (1к Л 0 ) V (0 л °к) (2)
Полный набор информационных зависимостей между всеми участками программы задается матрицей неполного
\\MNP _Ц||
параллелизма МЫР_и= и. Пользуясь (1), по-
лучаем
ГОдёё ( МЛ Ц 0= (V Мй и 1- (л (Ц г)g 0-MNP Ц „ - •!. g
- 15 [1рёе ( Мй и,}> (л I (Ц г 51)-
Полный набор информационных зависимостей между всеми операторами программы задается матрицей неполно-
го параллелизма MNP= |MN^|| ем
N xN
. Используя (2), получа-
показывающие наличие в ней входных переменных
мт>, -
tee ( Mdik0= (V Mdik1= (л (II) k 0=), Прёё ( Mdk1= (л (II i) k 1=
ее ячейку записывается 1, если из участка 2 можно доЦ
стигнуть участка 5
Матрицы 1_и, 0_и, Md_U являются исходными при организации процесса распараллеливания участков одинакового уровня вложенности друг относительно друга. Выявле-
и и
ние параллелизма между участками 2 и 5 программы можно свести к выявлению информационной независимости между этими участками, используя условие [2,3]:
^ _Ц (г, 5) -(I _и2 л° _иё) v(^ _иё л° _Цг) V (° _Ц2 л° _Цг)(1)
Таким образом на основе приведенных теоретических положений был предложен метод распараллеливания программ, состоящий из следующих этапов [2,3]:
1. Преобразование матриц входных и выходных переменных, а также матрицы следования для операторов программы к аналогичным ма-рицам для участков программы.
2. Вычисление бинарной матрицы достижимости для участков программы на основе матрицы следования.
3. Вычисление бинарной матрицы неполного параллелизма на основе матриц достижимости, входных и выходных переменных.
4. Преобразование множества и участков программы в последовательной форме к множеству участков ир программы в параллельной форме с помощью матрицы неполного параллелизма.
В соответствии с этапами предложенного метода была разработана аппаратно-ориентированная процедура и соответствующее устройство разбиения последовательных программ, представленное на рисунке 2 [6, 15 с]. Оно состоит го микропроцессорного ядра МР, контроллера прямого доступа KPDP, схемы умножения частоты РКЬ, ОЗУ данных RAM161G размерностью 1024x16, ОЗУ программ RAM16512 размерностью 512x16, D-триггеров D1 признака выполнения задания и D2 выборки внешней памяти. Устройство также содержит четыре типовых вычислительных блока F1-F4, которые выполняют функции расчета матрицы достижимости, элементов множества уровней вложенности, матрицы неполного параллелизма для последующего распараллеливания операторов программы.
и
HLD_EN VCC D1
"L D
■- >c „ L_
CLK WE
RAM_16_512 DQUT15.0]
P_ID4—pc R P_ID5 —I P_ID2
P_ID2-WRS' A[15..0]
DIN15..0] ADDR15..0]
F1
CLK
WR DQUT[15..0]
RD INT
DIN[15..0] REZ
F2
CLK
WR DQUT[15..0]
RD INT
DIN[15..0] REZ
-I[15..0]
• IN_P[15..0] -INTO
- IN_P[15..0] -INT1
■ IN_P[15..0] INT2
-IN_P[15..0] -INT3 REZ
Рис. 2. Структурно-функциональная организация устройства разбиения последовательных программ
DIN[15..0)
CE _ SH2- CE Q[7..0
1 REZ — CIR
CB2
— CLK RAM
-A[7..0]
WE DQUT[15..0] ADDR[7..0]
_DQ[15..0]
DQUT[15..0]
Рис.3. Функциональная схема типового вычислительного блока
Типовые вычислительный блок F1-F4 (рис. 2) содержит входное RAM_IN и выходное RAM_OUT ОЗУ для сохранения заданий, поступающих от микропроцессорного ядра, показаны на рис. 3 [6, 15 с]. Их наличие позволяет блокам производить параллельно распараллеливание разных участков программы. Также типовые блоки включают интерфейс взаимодействия с микропроцессорным ядром, вычислительные модули FUNCTION с разными функциями в зависимости от номера типового блока, и схему генерации прерываний. Процессор МР считывает результаты выполнения
заданий из выходных ОЗУ типовых блоков по поступающим прерываниям от четырех типовых блоков, организованным в векторную систему.
При завершении выполнения распараллеливания СВУ вырабатывает слово, содержащее прерывание INT, которое получает от хоста начальный адрес блока памяти, вырабатывает запрос на прямой доступ и при его подтверждении записывает результат (выходные слова) в указанный блок внешней памяти. Структура выходного слова представлена на рисунке 4 [1, 512-522; 2].
N Y B Y B
op arusl ranchl arus2 ranch2
Рис.4. Структура выходного слова СВУ
Слово содержит номер оператора ^ор, поля Yarus1 и ВгапсЫ, определяющие номер процессорной группы для выполнения участка, в который входит данный оператор, и порядок выполнения группы, а также поля Yarus2 и ВгапсМ, определяющие номер процессора для выполнения оператора в процессорной группе ВгапсЫ и порядок его выполнения. Поле V показывает уровень вложенности оператора.
В случае выполнения задачи размещения предложен метод, методика и алгоритм [1, 512-522, 4, 45-48 ].
Пакет программ в МС представляется графом взаимодействия задач вида:
G=<X,E>,
(3)
где
графа G,
X - {х^ £ X
- множество вершин
соответствуют программам, а дуги
e j a E
5 - связям между ними и представляют объемы дан-
m,
передаваемыми между задачами, задаваемая ма-
M =
m.
N х N
W
N хN размером n 2 х n 2
смежности
Тогда размещение пакета программ графа G в МС представляется отображением
ßs =
С (S) (S x Х2
VPl Р2
.(S Л
JN У
(4)
x
(s )
V = (ßs} у всевозм
X: Ы = N!
Tßs (Pa,b, Px,y ) = dij • mij
(6)
где
i = (a -l)- n + b j = (x -l)- n + y
max {7ß (Pa,b, Px,y )} = max (djmj }
(7)
Поиск наилучшего варианта размещения по критериям (5,6) является очень сложной переборной задачей. Вариантом ее ускорения является применение целенаправленных поисковых перестановок строк и столбцов МОИ с выбором
где
трицей обмена информацией (МОИ)
N-п2-I, /,j-.
Матричный блок МС представляется топологической
Р - {Рх, Р2,... , Р 2 } моделью в виде графа Н=<Р,У>, где 1 п '
- множество идентификаторов процессорных модулей бло-
|р| - N - п2
ка, организованных в матрицу |Р| , где 1 1 -
процессоры; V - множество связей, описываемых матрицей
в ней a-го места перестановки элемента (5,6).
m
aß
по критериям
dak < daß
(8)
йак, йаВ
где - одноименные элементы матрицы
ММР; ав - элемент МОИ, которому соответствует
тах {т л } _
, найденный в предыдущем шаге перестановок.
Число требуемых перестановок уменьшается, если не учитывать явно нецелесообразные из них, разрешая очередную перестановку по следующим дополнительным критериям [1,512-522; 4,25-48; 7, 39-44]:
mak - dak < maß ' daß
(9)
mak < maß
(10)
где S - номер очередной перестановки, соответствующей s-му варианту размещения.
Мощность множества ' °' всевозможных ото-
бражений (4) равна числу всевозможных перестановок
задач N в матрице 1' 1 . Множество длин dij
кратчайших маршрутов передачи данных в пределах блока описывается матрицей минимальных расстояний (ММР)
D = 1Ш , N = n2 = \P\,
11 ""xN которую можно построить
по матрице смежности.
Задача планирования размещения сводится к поиску максимальной коммуникационной задержки при передаче
Pa b px, y
данных между процессорными модулями ' и ,
соответствующей отображению ß*ey и вычислению пока-
А= max (ß (Pa,b, Px,y)} зателя ßs аV минимизацией. В результате
T * = min (А}
ß V (5) Отображение ß вычисляется как
Для ускорения поиска разработана методика ускоренного выполне-ния процедуры планирования размещения программ [2;3;7,39-44]: 1. Составляются две матрицы: обмена информацией (МОИ) и кратчайших маршрутов (ММР) между процессорами в коммуникационной средой процессорного блока. 2. Вычисляется минимум коммуникационной задержки Т^ исходя из предположения, что вершины графа G накладываются на вершины МС без учета ограничений исходной задачи, но с учетом коэффициента эффективности начального размещения задач . 3. Принимается решение о целесообразности инициализации процедуры поиска размещения. Коэффициент эффективности пере-
становок
П = T / Tinf
определяется как отношение полу-
T
inf
с последующей его
ченной величины задержки к . 4. Выполняются шаги целенаправленных перестановок столбцов и строк матрицы обмена информацией. Далее находится максимальное значение коммуникационной задержки (7) по предыдущему варианту перестановок программ. 5. Находится минимум (5) из максимумов по всем вариантам перестановок и вычисляется коэффициент эффективности п . 6. Если п оказывается
менее установленного порога эффективности П ~ 2, шаги поиска прекращаются и найденный вариант матрицы обмена информацией считается соответствующим полученному варианту размещения. В результате был разработан аппа-ратно-ориентированный алгоритм ускоренного планирования размещения программ в МС.
На основе предложенного метода, методики и алгоритма планирования размещения программ в МС, разработана структурная схема устройства планирования размещения программ, представленная на рисунке 5 [8, 29-33].
ных
а
Рис. 5. Устройство планирования размещения программ
Операцию вычисления максимальной коммуникационной задержки, как одну из наиболее трудоемких, предполагается выполнять в аппаратном ускорителе: акселераторе вычисления показателя коммуникационной задержки (АВПКЗ). Блок АВПКЗ отличается тем, что в нем применены конвейерный и матричный подходы для поэлементного перемножения векторов с одновременным подсчетом максимального произведения. Данные с параллельного порта поступают в блок специализированного мультиплексора (MUX). В зависимости от режима работы MUX загружает одно из ОЗУ данными соответствующей разрядности. Если идет загрузка в ОЗУ2, из 8-и разрядного порта за один цикл приема MUX принимает два 4-х разрядных слова. Если же идет загрузка в ОЗУ1, то MUX принимает два байта 16-ти разрядного слова и после их склеивания помещает целое слово в ОЗУ1. Блок умножения матрично-конвейерный (БУМК) осуществляет перемножение синхронно считанных из ОЗУ1 и ОЗУ2 двух слов и выдает результат в блок нахождения максимума (MAX). Умножение происходит конвейерно за один такт. Блок MAX находит максимум и по сигналу об окончании расчета выдает результат за три цикла вывода в порт контроллера. Устройство управления (УУ) выдает управляющие сигналы, обозначенные на рис. 2 как множество микроопераций (МО), а также значения адресов для ОЗУ1 и ОЗУ2 в режимах загрузки и вычисления.
В случае отказа процессора и/или межпроцессорной связи примем, что множество программ описывается гра-
X = {x.}
фом взаимодействия задач Ф=<Х,Е> , где 1'
- множество вершин, соответствующих программам,
E = Ы
- множество дуг, отражающих связи программам [4, 45-48;7, 39-44]. Граф Ф задается матрицей смежно-
AM =
сти:
m.
NxN
где N — |X|. Топология муль типроцессора представляется графом H — (P»V) , гд
Р - процессоры, а множество V - межмодульные связи. Множество - Р - Р ^ L , где Р - {р^ } - основные
L = {j }
процессоры,
\р\—щ—
n
-резервные процессоры, причем
П — 2,3,4,... . Множества процес-
Pjj
l.
со-
соров Р и L задаются матрицами ответственно. Множество представляется объединением указанных матриц. Размещение задается отображением [4, 45-48;7, 39-44].
в: X ^ P
(11)
ставящее в соответствие программам один из процессоров системы.
Тогда задача размещения программ в мультикомпьютере
в еТ
заключается в выборе такого отображения ^в , которое соответствует критерию [9, 269-271]:
mm< max
веТ (i—1,N ,7—1,.
-К •
1,N 1
m.
(12)
где максимум в фигурных скобках представляет собой наибольшую частную коммуникационную задержку для заданного отображения р. Назначение элементов (11) аналогично описанному в [5, 28-31;8, 29-33].
В случае отказа отдельного канала связи между процессорами нарушаются маршруты транзитной передачи данных и необходимо найти новые кратчайшие маршруты обхода отказавшего канала. Для этого случая обоснована целесообразность использования известного алгоритма Дейк-стры [9, 269-271].
Для предложенного метода и аппаратно-ориентирован-ного алгоритма отказоустойчивого переразмещения бала
предложена соответствующая структурная схема микропроцессорного акселератора, представленная на рис. 6 [11. На рис. 6 приняты следующие обозначения блоков и узлов: АПРП - акселератор планирования переразмещения подпрограмм; ОП - оперативная память; КПДП - контроллер
прямого доступа в память; Ппорт - последовательный порт; Прпорт - параллельный порт; УУ - устройство управления; БППОМ - блока переразмещения отказавших процессорных модулей; БПКМ - блока поиска кратчайшего маршрута; МО - микрооперации; А - адрес.
Рис. 6. Структурная организация акселератора отказоустойчивого переразмещения
МП работает по принципу, аналогичному описанной структурной схема выше. После замены процессорного модуля резервным либо после нахождения кратчайшего пути обхода найденный вариант передается через параллельный порт обратно в контроллер и далее через последовательный порт обратно в управляющую ЭВМ.
На основе представленной структурной схемы была разработана функциональная организация соответствующего устройства оперативной замены отказавшего процессорного модуля резервным, представленная на рисунке 7 [11].
14
Л
□
pi
A1 A2
D O
OS — R
27
26 7+1
гF1
С Д 22
Rg
"1"
oe Z A2
A1 O D
we
Rg 18
-=У=ЙГ1
j1
of
24
29
0 A1
A2 O D
we
19
Рис. 7. Устройство замены отказавшего процессорного модуля резервным
0
1
DC
0
20
1
На рис. 7 приняты следующие обозначения блоков и узлов: 14 - генератор импульсов, Р1 - ОЗУ, Ъ - ОЗУ, 0 - ОЗУ, регистр 18, первый 19 и второй 20 элемент сравнения, дешифратор 21 выбора, первый 22 и второй 23 счетчик строки, первый 24 и второй 25 счетчик столбца, счетчик 26 номера предназначенный для подсчета номера выбираемого счетчика 22, 23, 24, 25, необходимого для проведения операций с заменой основного процессора резервным, первый 27, второй 28 и третий 29 Элементы ИЛИ.
Предложенное устройство функционирует в соответствии с предложенным алгоритмом отказоустойчивого переразмещения [4,7].
В начальном состоянии в ОЗУ 15 хранится матрица Р1 процессорных модулей и матрица L резервных процессоров.
В матрице хранятся нулевые коды, свидетельствующие о полной начальной работоспособности мультикомпьютера. В матрице 7 также хранятся коды нулей, свидетельствующие о наличие и полной начальной работоспобности резервных процессоров. В регистре 18 хранится код нуля («0.00»), в счетчике 26 содержится код нуля («0.00»), а значит, на выходе дешифратора 21 не появляется единичного импульса. Триггер 36 находится в высокоимпедансном состоянии.
В работе были предложены специализированные устройства ускоренного планирования размещения параллельных программ в МС, обеспечивающих сокращение времени формирования планов размещения программ, минимизирующих коммуникационную задержку МП при наличии отказов внутренних процессорных модулей и/или каналов связи.
Литература
1. Dmitrii B. Borzov. Jamil Al Azzeh, Igor V. Zotov and Dmitriy E. Skopin and Dr. Mazin Al Hadidi. An Approach to Achieving Increased Fault-Tolerance and Availability of Multiprocessor-Based Computer Sy^ems / Aus-tralian Journal of Basic a/nd Applied Sciences, 8(6) April 2014, Pages: 512522.
2. Борзов Д.Б., Титов В.С. Параллельные вычислительные системы (архитектура, принципы размещения задач) // Монография. - Курс. гос. тех. ун-т. Курск, 2009. 159 с.
3. Борзов Д.Б., Титов В.С. Вопросы проектирования и динамической реконфигурации топологии систем логического управления в системах высокой готовности // Монография. - Юго-Запад.. гос. ун-т. Курск, 2015. 282 с.
4. Борзов Д.Б., Борисенко Ю.В., Сизов А.С. Метод и ап-паратно-ориентированный алгоритм переразмещения подпрограмм в мультикомпьютерах при отказе процессоров и связей между ними // Телекоммуникации. - Ежемесячный научно-технический, информационно-аналитический и учебно-методический журнал. - 2013, - №11. С. 45-48.
5. Борзов Д.Б., Типикин А.П. Проблема создания быстродействующего устройства планирования размещения параллельных процедур логического управления в мульти-контроллерах // Известия Юго-западного государственного университета. Часть 2, №6, 2011. - С. 28-31.
6. Борзов Д.Б., Дюбрюкс С.А. Устройство для формирования матрицы неполного параллелизма // Патент РФ №2421804, заявл. 17.02.2009; опубл. 20.06.2011, БИ №17, 15 с, 2 ил.
7. Борзов Д.Б., Соколова Ю.В, Минайлов В.В. Переразмещение подпрограмм в отказоустойчивых мультипроцессорных системах // Известия вузов. Приборостроение. -Санкт-Петербург, - 2013. Т56, - №6, С. 39-44.
8. Борзов Д.Б., Аль-Мараят Б.И., Типикин А.П. Акселератор планирования размещения задач в кластерных вычислительных системах высокой готовности // Известия вузов. Приборостроение. - Санкт-Петербург, - 2008, - №2, С. 2933.
9. DijkSra E. W. A note on two problems in connexion with graphs // Numer. Math — Springer Science+Business Media, 1959. — Vol. 1, Iss. 1. — P. 269-271.
10. Борзов Д.Б., Соколова Ю.В. Устройство поиска нижней оценки размещения в матричных системах при двунаправленной передачи информации // Патент РФ №2447485, заявл. 11.09.2009; опубл. 10.04.2012, БИ №10.
11. Борзов Д.Б., Соколова Ю.В. Устройство поиска нижней оценки размещения в матричных системах при двунаправленной передачи информации // Патент РФ №2447485, заявл. 11.09.2009; опубл. 10.04.2012, БИ №10.