Научная статья на тему 'К вопросу о моделировании параллельной обработки задач в вычислительных системах'

К вопросу о моделировании параллельной обработки задач в вычислительных системах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
60
17
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Золотовский В. Е., Цветкова Ю. А.

Для повышения эффективности статического планирования разработан алгоритм составления расписания для оптимальной параллельной обработки задачи. Он основан на последовательной обработке групп независимых операторов. Алгоритм подтвержден расчетами. Ил. 5. Табл. 2. Библиогр. 3 назв.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «К вопросу о моделировании параллельной обработки задач в вычислительных системах»

УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАТИКА

УДК 681. 324

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

© 2008 г. В.Е. Золотовский, Ю.А. Цветкова

Введение

Повышение сложности задач в различных областях науки и техники, развитие средств моделирования требует все большей производительности от электронных вычислительных машин (ЭВМ). При достигнутом уровне технологии и структурных решений производительность (Р1) процессоров можно считать практически постоянной (и вообще ограниченной по физическим причинам), поэтому повышение производительности идет по пути объединения процессоров (узлов) в разнообразные вычислительные системы (ВС) [1].

Потенциальная производительность ВС РП(Л0 = = P1N, однако линейному росту РП(Л0 при увеличении числа узлов N препятствует возрастанию времени простоя узлов вследствие возрастающей сложности управления. Эта сложность обусловлена пространственно-временным характером большого числа логически связанных процессов счета и обмена, необходимостью их взаимодействия и синхронизации.

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

При СП накладные расходы на планирование могут быть большими, но планы обработки - оптимальными по заданным критериям. Планирование выполняется заранее, до решения задач, на основе расчета их характеристик. Оно целесообразно для стабильных задач, потребности, в ресурсах которых известны, перечень ограничен, а надобность в них возникает регулярно. Это задачи робототехники, управления технологическими процессами, различной диагностики, автоматизированного проектирования и другие. Эти задачи характеризуются программами большого объема, которые, как правило, допускают ускорение за счет параллельной обработки.

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

Статья посвящена разработке алгоритма для моделирования параллельной обработки задач в разнообразных ВС при статическом планировании, при этом вопросы, связанные с ВС (архитектура, организация взаимодействия и др.), не рассматриваются. Считается, что характеристики ВС по процессам счета и обмена известны, а число узлов достаточно для параллельной обработки задачи.

Матричные последовательности (модели) задач

Математическим аппаратом планирования, которое заключается в составлении расписания для множества взаимосвязанных работ (процессов, операторов), направленных к достижению одной (нескольких) целей, являются сетевые модели (сетевые графики, таблицы) [2]. Сетевым графикам (ориентированные, без петель, графы; временные линейные графики) свойственна высокая наглядность. Таблицы (матрицы) менее наглядны, но позволяют вводить сетевую модель в память ЭВМ. Элементам графа и матрицы при их использовании придается конкретный смысл в зависимости от характера задач. В работе вершины, ребра графа задачи (рис. 1) имеют следующий смысл: вершины ^ = 1, 2, 3, ..., 10) - операторы счета Qiсч с

временем счета Тi сч; направленные ребра - логические связи и операторы обмена Qi]■ обм с временем обмена Ту обм. Считается, что величины Тi сч и Ту обм известны и рассчитаны на основе исходных

характеристик обрабатываемой программы и ВС. На рис. 2 представлена матрица смежности, соответствующая графу на рис. 1 [3].

Рис. 1

123456789 10

Таблица 1

1 2

3

4

5

6

7

8

9

10

1 1

1 1

1 1

1 1

1

1

1 1

1

К QK s-'i сч

1 9 10

2 6 7 8

3 3 5 (4)

4 (1) (2) 4

5 1 2

Рис. 2

Для параллельной обработки все операторы Qi сч программы разбиваются с конца программы на группы независимых операторов, которые можно обрабатывать внутри одной группы последовательно или параллельно. Разбиение осуществляется по матрице смежности (см. рис. 2). Группа оператора определяется его порядковым номером от конца программы по логическим связям. Операторы, заканчивающие программу, имеют группу К = 1.

Если оператор оказался одновременно в группах К и (К+й), то он заносится и в промежуточные группы (К +1; К + 2; ...; ...; К + й -1). Такая последовательность повторных операторов позволяет искусственно трансформировать логическую связь между двумя операторами, попавшими в одну группу, в логическую связь между операторами смежных групп. Все операторы внутри такой последовательности между собой связаны по счету и обмену нулевой («0») связью. Это правило имеет силу и для связи повторяющихся операторов разных последовательностей между собой. Передача данных в такую последовательность возможна лишь через основной оператор в старшей группе, а передача данных из последовательности другим операторам может осуществляться через любой оператор последовательности по логическим связям основного оператора. В работе повторные операторы заключены в круглые скобки.

Группы обрабатываются последовательно, начиная со старшей (Ктах). Число операторов в каждой группе определяет в ней параллелизм

Процесс обработки задачи представляется в виде последовательного выполнения групп «счет; обмен», начиная со старшей, после ввода исходных данных. На рис. 3 (где 1 - счет; 2 - обмен) показана последовательность групп (групповая модель) параллельной обработки программы, соответствующей графу на рис. 1, а в табл. 1 - распределение операторов по группам.

Введем исходные групповые матрицы счета (Ак), обмена (Вк) и матрицу ввода исходных данных (В д); (матрица вывода результатов счета (В1) включена в первую группу). Матрица (Ак) содержит информацию о Тi сч, а матрицы Вк Вд содержат информацию о

Т

ij обм ■

Введем

преобразованную

матрицу

- к

обмена

В = f (В ) и общую матрицу группы С = А + В .

Все введенные матрицы размера (икхикЧ).

Элементами введенных матриц счета и обмена могут быть:

1. Положительное число или нуль (а > 0) - указывает на наличие логической связи между операторами двух смежных групп К и (К-1) и количественную характеристику этой связи.

2. Отрицательное число (а < 0; спецсимвол) - указывает на отсутствие логической связи между операторами двух смежных групп К и К-1. В работе для определенности выбрано число «-1».

Представим групповую модель на рис. 3 матричной групповой моделью (МГМ) в общем виде

(Вд' ВКтах • ^Ктах-1- ВКтах-Ь • • А2 В2' А1 В1 ) ;

(1)

(Вд; А^тах- ВКтах ■ АКтах-1- ВКтах-1- ■ ■ Д2- В2 А1 В );

(В д; CK

\CK

C2; C1).

(2)

К = 4

К = 3

К = 2

К = 1

n n n n n

Q i сч i Q4 i сч 1 Q i сч 1 Q2i сч i Q i сч t ■w

Ввод исходных данных 1 1 2 1 1 2 1 1 2 1 1 2 1 Вывод результатов

уд

T - у,

обр

Рис. 3

Ктах 5

5

4

3

2

T

T

Для расчета максимального времени наступления определенного события с момента начала обработки

4 = 0 (начало (конец) счета Q *сч) введем динамическую матрицу ЕК(пК х п ), в которой формируется информация, необходимая для планирования.

Последовательное выполнение спецопераций с матрицами МГМ (3), для формирования матрицы Ек , ъд

начиная с матрицы В , позволяет рассчитать суммарное время (Тi сч + Ту обм) по всем логическим связям (путям) графа программы от начального события (начало ввода исходных данных, 4 = 0) до выделенного, но в матрице Е фиксируется только путь с максимальным временем (ПМВ).

Для расчета только времени окончания обработки всей программы (Тобр) спецоперации с матрицами

можно выполнять параллельно - над разными парами смежных матриц. Если число матриц в МГМ (2) нечетно, то оставшаяся матрица переносится в результирующую последовательность с соблюдением смежности. Затем процесс параллельного вычисления по указанным правилам повторяется над результирующей последовательностью и так далее - до получения конечного результата (табл. 4).

Для обработки задачи выбирается группа (кластер) из N узлов. Эффективность обработки предполагает минимальный (в идеальном случае - нулевой) избыточный ресурс кластера (Т кл изб ) при оптимальном времени обработки (Тобр.опт). Величина Тклизб определяется выражением

Т кл.изб( N) = ш обр^) - т 1 или в нормированном относительно Т1 виде

Т кл. изб (N) = —--1, (3)

5 (N)

где Тобр(N) - время обработки программы N узлами; Т1 - время обработки программы одним узлом; 5^) = Т1 / Т обр (N - ускорение обработки.

Одной из причин появления избыточного ресурса кластера является неравномерность распределения параллелизма пк по группам. Для таких программ характерна следующая закономерность. При росте количества узлов от N = 1 до Nтах = п тах (наибольший параллелизм среди групп) время обработки уменьшается от Т1 до критического времени программы Тобр(Nтах) = Т ускорение возрастает до

5 тах = Т1 / Т кр (причем дальнейший рост числа узлов N > Nтах к уменьшению времени обработки Тобр < Ткр не ведет), а избыточный ресурс возрастает

от нуля д° ТКд.изб(Nтах ) .

Исходя из изложенного, предлагается следующая методика определения оптимального варианта обработки. После разбиения программы на группы опре-

деляется величина Nmax = n max. Операторы распределяются по узлам с составлением таблицы соответствия (табл. 2). При распределении соблюдается правило - операторы отдельной группы распределяются в разные узлы. Узлы по возможности загружаются равномерно и с наименьшим числом внешних обменов.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

После этого уточняются матрицы Вк, В , С . Затем по МГМ (2) рассчитывается величина

Т обр(Nmax ) = Т кр , потом ускорение smax = Т1 / Т кр и

по формуле (3) вычисляется Т кл.изб(N max). Если полученные значения ускорения и избыточного ресурса неприемлемы, то весь расчет повторяют для меньшего числа узлов (N < Nmax ). И так до тех пор,

пока не будет получен оптимальный вариант: Nопт; Sопт; Т ^Гизб. Для каждого цикла расчета величина n max понижается до требуемого значения N путем объединения самых коротких операторов в группе (группах) с наибольшим параллелизмом, уточняются

матрицы Ак; Вк; Вк; С*.

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

С целью проверки работоспособности алгоритма преобразуем МГМ (1) в последовательность аппаратных матриц, для этого информацию с исходных матриц Ак, Вк перенесем с помощью таблицы соответствия на аппаратные матрицы групп (размера N х N) -

счета ANn и обмена ВNn . Диагональные элементы матрицы A1Nn содержат информацию о времени счета узла, а внедиагональные элементы матрицы ВNNN содержат информацию о внешнем обмене (узел и время обмена). Матрицы объединим в одну групповую матрицу С^ = ANn + ВNN обычным суммированием матриц.

Последовательность аппаратных матриц

(Яд -С К max./'"'К max-1 . ■Г'2 ■Г'1 \ {Л\

\nNN>^NN ' NN >"• NN > NN / W

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

Данный алгоритм целесообразно использовать при статическом планировании для расчета времени обработки программы в процессе выбора оптимального варианта и для расчета динамических матриц Dк при составлении расписания работы узлов по оптимальному варианту обработки.

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

В основе специальных матричных операций алгоритма лежит одна операция - сложение двух чисел, которая выполняется по правилу:

С = а + b =

а + b при а, b > 0; -1 при а и (или) b < 0.

(5)

— к

вц =

вК, при вК < 0;

I

ZвЦ, при вК > 0,

1 i=1

i = 1,2,...,I; j = 1,2,...J .

Пример:

В43 =

-13 0

1 4 5 0 1 2

2 -12

В43 =

-18 0 3 8 9 0 8 9 3 -19

D 2 = D3 + C2; D^j =[di2 ] = [d3, ]

©

/ = 1, 2,3,..., I; = тах(?г3и © с т), ' = 1,2,3,..., 7;

т = 1,2, 3,...,М.

Левая матрица ^ , участвующая в спецоперации (© ) «специального суммирования с выделением наибольшей суммы», есть результат предшествующей

аналогичной спецоперации. Число столбцов левой матрицы всегда равно числу строк правой матрицы.

Время окончания группы К(ТК) равно наибольшему элементу матрицы Dк. Если К = 1, то Т1 = Т обр . Пример:

" 8 -1"

D3 =

14 15 -1

15 16 10

С 32

9 9 -1 10

D 2 = LS')') —

24 24

25 25

Преобразование В = f (Вк) учитывает наибольшее время задержки при последовательной передаче данных от нескольких операторов группы «К» к одному оператору группы «К-1» для случая размещения всех операторов в разных узлах (внешний обмен).

Элементы в* =-1;0 матрицы ВК =^вгк/ = 1,2,...,I;

у = 1,2,...7 в преобразовании не участвуют.

Преобразование осуществляется по столбцам (/') и состоит в следующем: все положительные элементы столбца заменяются на сумму этих элементов

й 121 = тах(14+8; 15+9; (-1)+(-1)) = тах(22;24;-1) = 24. Аналогично рассчитываются остальные элементы . Для подтверждения работоспособности разработанного алгоритма рассчитаем основные временные параметры параллельной обработки задачи, представленной графом на рис. 1.

Для удобства расчета и анализа время счета операторов (мс) возьмем равным их номеру «/», т.е. сч = /(Тот = 4мс), а время всех внешних обменов - 1 мс

(Ту обм = 1 мс). Разбиение операторов на группы представлено в табл. 1, а размещение по узлам - в табл. 2 (таблица соответствия).

Таблица 2

Группы

Узлы 5 4 3 2 1

Операторы

1 1 3 6 9

2 4 7

3 2 5 8 10

Расчет матрицы С = Ак + Вк осуществляется по обычным правилам сложения матриц с учетом (5). Матрицы Ак и Вк всегда одной структуры.

Расчет матрицы Б к = ^ осуществляется по

МГМ (2) по правилу: для расчета элемента - элементы /-й строки левой матрицы суммируются с соответствующими элементами у-го столбца правой матрицы по правилу (5); из всех сумм выбирается максимальная, которая есть искомое значение :

Исходные матрицы Вд ; Ак; Вк и рассчитанные

матрицы Вд; В ; С ; Бк и величины Тк представлены в табл. 3. Повторные операторы заключены в круглые скобки.

Поясним смысл матриц Бк. В матрице Б4 в 1-м столбце максимальный элемент равен 10 мс , это значит, что 3-й оператор (Q3cч) начнет обрабатываться

по плану через 10 мс после начала обработки программы.

По матрицам Бк легко определить ПМВ: 2вх-2-4-3-7-10-2вых.

Оценим эффективность обработки при N = 3.

Время Т1 =£ТЮч + Твв = 55 + 4 = 59 мс,

где

i=1

Т вв = 4 мс - суммарное время ввода исходных данных и вывода результатов. Ускорение £ = Т1 /Тобр = 59/33 = 1,79 . Нормированный избыточ-

- N 3

ный ресурс Т кл изб =--1 =--1 = 0,68. Обработ-

£ 1,79

ка неэффективна вследствие большого избыточного ресурса.

Таблица 3

В д = В =

1вх 2вх

1 -1 -1 1

А 5 =

_0) (2) ;

0 -1 1

-1 0 2

3 (4)

В 5 =

_(1) (2) 4

о -1Г -1 о 1

3 (4)

- 5 1

в =

2

_0) (2) : 0 -1 2

-1 0 2

3 (4)

(1) " 1 0 -1" (1) " 0 0 -1" (1) — 4 ; в = (2) " 0 0 -1" (1) — 4 ; с = (2) " 1 0 -1"

(2) -10 2 ; в 4 = (2) -10 0 -10 0 -10 2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4 4 0 -1 4 1 0 -1 4 1 0 -1 4 5 0 -1

с 5 = 1 2

_0) (2) : 0 -13

-1 0 4

3 (4)

А 3 =

А 1 =

10

3 " 3 3 -1" 3 " 0 1 -1" 3 " 0 1 -1" 3 " 3 4 -1"

(4) -1 4 -1 ; В 3 = (4) -1 0 -1 — 3 ; в = (4) -1 0 -1 ; С3 = (4) -1 4 -1

5 -1 -1 5 5 -1 -1 0 5 -1 -1 0 5 -1 -1 5

10

6 6 -1" 6 " 0 -1 " В 2 6 0 -1"

= 7 7 7 ; в 2 =7 1 1 ; =7 1 1

8 -1 8 8 -1 0 8 -1 0

1вых 2вых 1вых 2вых 1вых 2вых

9 = 10 9 -1 -1 10 ; в 1 9 = 10 " 1 -1 -1 " 1 ; В 1 9 = 10 " 1 -1" -1 1

10

10

6 " 6 -1 "

=7 8 8

8 -1 8

с 1

9

10

1вых 2вых 10 -1

-1 11

D 5 =

1вх

(1) (2) 4 1 -14

2вх -1 1 5

D 4 =

1вх 2вх

3 (4) 5

9 4 -1

10 5 3

D 3 =

1вх 2вх

678

12 13 -1

13 14 8

Т 5 = 5 мс; Т 4

= 10 мс; Т 3 = 14 мс;

D 2 =

1вх 2вх

9 10 21 21

22 22

D 1 =

1вх 2вх

1вых 2вых

31 32

32 33

Т 2 = 22 мс; Т 1 Повторение расчетов при N = 2 дает более эффективный вариант: Тобр = 35 мс; £ = 1,68 ; Ткл изб = 0,19.

Для расчета только времени обработки программы Тобр = Т1 спецоперации (© ) над матрицами в

МГМ (2) можно выполнять параллельно, например (табл. 4):

Таблица 4

= Т обр = 33 мс .

— д —5 —д 1вх В ©С = Сд =

2вх

(1)

— 4 —3 —4

С ©С = С3 = (2)

(1) (2) 4

1 -14 -1 1 5

6 7

4 5 -1 -14 7 8 9 1

_ _ _ (1)

С 4 © С 2 = С14 = (2)

— д —4 —д 1вх

; С д © С4 = С д =

2вх

23 24 2226 2728

вых 2вы

31 32

32 33

6

— 2 —1 —2 С © С = С1 = 7

1 вых 2вых 16 -1

18 19

Результаты расчета величины Т обр, полученные двумя способами, совпадают

С д = D

Тобр = 33 мс.

Для проверки расчетов построим временной график работы узлов, для чего сформируем аппаратные матрицы (4) по данным табл. 2, 3 (рис. 4).

Аппаратные матрицы С33 несут всю информацию о работе узлов кластера по обработке операторов Л"-ой группы. Например, матрица С323 содержит информацию о том, что узлы 1, 2, 3 считают в течении 6, 7, 8 мс соответственно, а затем узел 2 передает последовательно результаты счета узлам 1 и 3 в течение 1 мс каждому узлу.

Временной график (расписание) работы узлов представлена на рис. 5. Он полностью соответствует рассчитанным динамическим матрицам Dк (к = 5, 4, 3, 2, 1) и наглядно показывает взаимодействие узлов в процессе обработки задачи, работу каждого узла в отдельности, а также время простоя узлов.

4

— 2

2

1 вых 2вых

4

4

ПД пзз 1 2 3 С 1 '33 2 3 С4 1 2 3 1 с3 2 3 1 С2 2 3 ( 1 -зз 2 3

1 1 1 1 3 1 6 10

2 1 4 1 7 1

3 1 1 2 5 8 11

Рис. 4

Узлы

1 1

1 2

t, мс 6

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5

10

t, мс

10 15 20 25 30 35

Рис. 5

На основании изложенного можно сделать вывод об эффективности разработанного алгоритма при статическом планировании параллельной обработки задач большого объема в ВС.

Алгоритм позволяет автоматизировать процесс оптимального планирования параллельной обработки программы в ВС.

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

Эффективность алгоритма подтверждена расчетами и составленным расписанием работы узлов.

Данный алгоритм рекомендуется для повышения эффективности статического планирования параллельной обработки задач большого объема в вычислительных системах.

3

9

1

7

1

8

0

5

Выводы

Разработан алгоритм для моделирования параллельной обработки программ в разнообразных ВС. Алгоритм основан на представлении обрабатываемой программы моделью в виде последовательности групп независимых операторов. Каждая группа представлена матрицами счета и обмена, которые формируются по характеристикам обрабатываемой программы и вычислительной системы.

ТТИ ЮФУ

Литература

1. Пятибратов А.П., Гудыно Л.П., Кириченко А.А. Вычислительные системы, сети и телекоммуникации. Учебник: 2-е изд. М., 2004.

2. Глушков В.М. Основы безбумажной информатики. М., 1982.

3. Николаев В.И., Брук В.М. Системотехника: Методы и приложения. Л., 1985.

25 сентября 2007 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.