ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ 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].