Вы находитесь на странице: 1из 4

2012

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ


ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ 1. Общие сведения
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ Предметом области исследования расписаний является круг задач
проектирования и организационного управления в различных системах,
ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ в которых требуется найти наилучшее (оптимальное) значение
УНИВЕРСИТЕТ выбранных критериев их функционирования с учетом имеющихся
ограничений.
Программирование для многопроцессорных машинных систем
Кафедра “Программное обеспечение вычислительной техники и
связано с распараллеливанием и синхронизацией вычислений и
автоматизированных систем”
организацией выполнения параллельных вычислительных процессов.
Это выдвигает целый ряд сложных задач, среди которых весьма
важными являются, расчет характеристик времени и количества
операций, требующихся для выполнения параллельных программ, и
построения расписаний (планов), выполнения параллельных программ
на многопроцессорных и многомашинных вычислительных системах.
Модели параллельных программ и операционные характеристики
процессов их выполнения служат основой для планирования
параллельных вычислительных процессов, т.е. для построения
Методические указания
расписаний указанных процессов. Расписания параллельных
и контрольные задания к практическим, лабораторным занятиям,
вычислительных процессов определяют порядок выполнения
курсовому проектированию по теме «Теория расписаний», для
программы на вычислительной системе, включая распределение частей
дисциплин «Алгоритмические языки и программирование»,
программы по процессам. С увеличением числа распределяемых частей
«Вычислительная техника и программирование»
программ и количества используемых процессоров сложность
построения оптимальных расписаний обычно резко возрастает. Поэтому
важное значение имеют простые в построении и удобные в реализации
приближенные расписания параллельных вычислительных процессов,
близкие к оптимальным с точки зрения времени выполнения
параллельных программ.
Авторы:
Кобак В.Г., 2. Постановка задачи
Титов Д.В.,
Золотых О.А. Имеется вычислительная система (ВС), состоящая из N несвязанных
идентичных устройств (приборов, процессоров и т.п.)
P  { p1, p2 ,..., pn }
На обслуживание в ВС поступает набор из M независимых
параллельных заданий (работ) T  {t1, t2 ,..., tm } известно время
решения  (t i ) задания ti на любом из устройств. При этом каждое
Ростов-на-Дону
задание может выполняться на любом из устройств (процессоре), в
каждый момент времени отдельный процессор обслуживает не более 3. Алгоритмы списочных расписаний
одного задания и выполнение задания не прерывается для передачи на
другой процессор. Требуется найти такое распределение заданий по 1 Алгоритм критического пути
процессорам, при котором суммарное время выполнения заданий на Широкое распространение получил простой и эффективный
каждом из процессоров было бы минимальным. Под расписанием алгоритм списочного расписания: метод критического пути (Critical
следует понимать отображение AR : T  P , такое что, если AR (ti )  p j Method Path или CMP).
, то говорят что задание ti  T , в расписании R назначенного на Решим задачу №1 алгоритмом Критического пути. Для начала
упорядочим заданную матрицу по убыванию:
процессор p j  P . При сделанных выше допущениях, расписание
можно представить разбиением множества заданий T на N 22 22 22 22
непересекающихся подмножеств T j ; j  1,..., N 14 14 14 14
Критерий, используемый для минимизации времени завершения 9 9 9 9
обслуживания заданий, является минимальным критерием и 7 7 7 7
определяется в следующем виде: f r  lmax
 j n
f j  min
, где 7 7 7 7
5 5 5 5
fj   (t ) - время завершения работы процессора
t i T j
i pj . 5 5 5 5
5 5 5 5
Задача №1. Для примера рассмотрим 22 22 22 22
однородную матрицу N  M , где N  4 , 5 5 5 5 Множество заданий примет вид: T = [22 14 9 7 7 5 5 5]. На первый
M  8 , где M – число заданий, N - число 7 7 7 7 процессор назначается задание с весом 22. Потом, на второй процессор
процессоров. 14 14 14 14 p2 назначается – 14, на третий – 9 и т.д.
Решим приведенными ниже алгоритмами, 5 5 5 5
нахождения расписаний. 5 5 5 5 Шаг 1 Шаг 2
p1 p2 p3 p4 p1 p2 p3 p4
9 9 9 9
22 22 14
7 7 7 7
Нагр: 22 0 0 0 22 14 0 0
Задача №2. 7 7 7 7 7 7 7 7
N=8 16 16 16 16 16 16 16 16 Значение нагрузки необходимо пересчитывать после каждого
M = 10 18 18 18 18 18 18 18 18 добавления задания на один из процессоров. Следующие задания
10 10 10 10 10 10 10 10 направляются на наименее загруженный из всех процессоров.
2 2 2 2 2 2 2 2
8 8 8 8 8 8 8 8 Шаг 3 p1 p2 p3 p4 Шаг 4 p1 p2 p3 p4
18 18 18 18 18 18 18 18 22 14 9 22 14 9 7
22 22 22 22 22 22 22 22 Нагр: 22 14 9 0 22 14 9 7
18 18 18 18 18 18 18 18
11 11 11 11 11 11 11 11 Шаг 5 p1 p2 p3 p4 Шаг 6 p1 p2 p3 p4
22 14 9 7 22 14 9 7
7 5 7
Нагр: 22 14 9 14 22 14 14 14
При наличии одинаковых значений нагрузки на нескольких 3 Упорядоченное разбиение множества заданий
процессорах, приоритет получения следующего задания принадлежит
Данный алгоритм (Ordered Fragmentation Multitude Tasks или
тому процессору, который ближе к первому (по порядковому номеру).
OFMT) очень схож с HDMT. Но, если в HDMT число процессоров
Шаг 7 Шаг 8 должно быть чётным, то в OFMT число процессоров равно числу 2 в
p1 p2 p3 p4 p1 p2 p3 p4
какой-либо степени, т.е. N = 2p. OFMT, как и HDMT, является
22 14 9 7 22 14 9 7
5 5 7 5 5 7 многоуровневым. Но, в нём не два уровня, а равно числу p (т.е., если 8
5 процессоров, число уровней - 3). Рассмотрим работу на примере задачи
Нагр: 22 19 14 14 22 19 19 14 №2.
Изначально, на первом уровне, необходимо упорядочить
Результат: max (22, 19, 19, 14)=22. однородную матрицу по убыванию, в итоге получим вектор заданий: T =
[22 18 18 18 16 11 10 8 7 2]. После чего, распределяем по алгоритму CMP
2 Алгоритм половинного деления множества заданий множество заданий T на два процессора: p А и pB , В результате
Приведённый далее алгоритм является одной из модификаций получим два множества заданий: TА и TB . На втором уровне, каждое
алгоритма критического пути (CMP), но, алгоритм половинного деления
из заданий распределяется ещё по двум машинам: TА на pC и pD ,
состоит из двух уровней, и актуален только для чётного числа
процессоров. TB на pE и pF . Это даст ещё 4 множества заданий: TС , TD , TE ,
Решим задачу №1 с помощью алгоритма половинного деления TF . Наконец, на третьем уровне, распределяем полученные 4
множества заданий. Как и в CMP, в алгоритме половинного деления множества на 8 процессоров. Получим:
(Half Division Multitude Tasks или HDMT) имеющуюся однородную
матрицу упорядочить по убыванию, в результате, множество заданий I уровень: pA pB
будет иметь вид: T = [22 14 9 7 7 5 5 5]. Далее, как и в алгоритме CMP, 22 18
распределяем всё множество заданий, но, только, на два процессора - 18 18
p А и pB (В этом заключается первый уровень): II ур: pC pD 11 16 pE pF
10 8
На втором уровне задания с процессоров p А и pB 22 18 7 2 18 18
10 11 TА TB 16 8
разбрасываются на две группы процессоров (по N/2 процессоров в
7 2
каждой): p1 , p2 и p3 , p4 соответственно. Процесс решения:
Нагр: 24 24 48 47 24 23
I уровень: pA pB
22 14
TС TD TE TF
7 9
II ур: p1 p2 5 7 p3 p4 III ур: p1 p2 p3 p4 p5 p6 p7 p8
5 5
22 7 14 9 22 10 18 11 18 16 18 8
5 5 7 7 2
5 Нагр: 22 10 18 18 18 16 18 10
Нагр: 22 17 39 35 19 16
Max(22, 10, 18, 18, 18, 16, 18, 10) = 22
3.4 Вычислительные эксперименты
В ходе экспериментов были случайным образом сгенерированы
по 100 векторов загрузки, содержащие задания в диапазоне [z1, z2]. В Таблица 1
таблице 1 и 3 представлены результаты экспериментов для диапазонов № 1 2 3 4 5 6 7 8 9 10 11 12
заданий [25, 30] и [100, 200] соответственно. Алг. CPM OFMT
Таблица 1. n 2 3 4 2 3 4
N M CPM OFMT HDMT m, T 1 2 1 2 1 2 1 2 1 2 1 2
4 81 565,18 565,18 565,18
8 81 294,78 294,78 294,78 Таблица 2
1 № 13 14 15 16 17 18 19 20 21 22 23 24
81 159,52 159,51 159,52 Алг. HDMT
6 CPM
n 2 3 4 2 3 4
Таблица 2. m, T 1 2 1 2 1 2 1 2 1 2 1 2
N M CPM OFMT HDMT
4 81 3108,47 3108,43 3108,43 Таблица 3
8 81 1600,8 1600,98 1600,75 1 20-25 20-35
1 m, T
81 845,92 845,57 845,93 2 30-35 35-40
6
5 Литература
Проанализировав данные, приведенные в таблицах 1 и 2 можно
1. Коффман Э.Г. “Теория расписания и вычислительные машины” –
отметить, что предложенный способ решения задач составления
M.: “Наука”, 1987
списочных расписаний для (четного количества кратных степени 2)
устройств с помощью модифицированных алгоритмов OFMT и HDMT
2. Романовский И.В. “Алгоритмы решения экстремальных задач” –
является более эффективным, т.к. точность решения в данном случае
М.: “Наука”, 1977
несколько лучше, чем у CPM
3. Пашкеев С.Д., Минязов Р.И., Могилевский В.Д. “Машинные
4 Варианты заданий
методы оптимизации в технике связи” – М.: “Связь”, 1976.
Задание определяется согласно № - номера студента в списке, по
приведенным ниже таблицам (Таблица 1, Таблица 2, Таблица 3). Алг. -
название алгоритма, который необходимо запрограммировать. Параметр
n-определяет число процессоров. m – количество заданий, выбирается
одно значение из указанного отрезка в таблице 3, T – множество весов
заданий, случайным образом берется m работ в пределах указанных в
таблице 3.
Например, если студент в списке под номером №5, то Алг. = “CPM”,
n = 4, m выбирается произвольно в отрезке [20,25] m = 21, T
формируется из n работ, вес которых выбирается случайным образом в
отрезке [20,35].