Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (2062012-1320).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
306.18 Кб
Скачать

2Алгоритм половинного деления множества заданий

Приведённый далее алгоритм является одной из модификаций алгоритма критического пути (CMP), но, алгоритм половинного деления состоит из двух уровней, и актуален только для чётного числа процессоров.

Решим задачу №1 с помощью алгоритма половинного деления множества заданий. Как и в CMP, в алгоритме половинного деления (Half Division Multitude Tasks или HDMT) имеющуюся однородную матрицу упорядочить по убыванию, в результате, множество заданий будет иметь вид: T = [22 14 9 7 7 5 5 5]. Далее, как и в алгоритме CMP, распределяем всё множество заданий, но, только, на два процессора - и (В этом заключается первый уровень):

На втором уровне задания с процессоров и разбрасываются на две группы процессоров (по N/2 процессоров в каждой): , и , соответственно. Процесс решения:

I уровень:

22

7

5

5

14

9

7

5

II ур:

22

7

5

5

14

5

9

7

Нагр:

22

17

39

35

19

16

3Упорядоченное разбиение множества заданий

Данный алгоритм (Ordered Fragmentation Multitude Tasks или OFMT) очень схож с HDMT. Но, если в HDMT число процессоров должно быть чётным, то в OFMT число процессоров равно числу 2 в какой-либо степени, т.е. N = 2p. OFMT, как и HDMT, является многоуровневым. Но, в нём не два уровня, а равно числу p (т.е., если 8 процессоров, число уровней - 3). Рассмотрим работу на примере задачи №2.

И значально, на первом уровне, необходимо упорядочить однородную матрицу по убыванию, в итоге получим вектор заданий: T = [22 18 18 18 16 11 10 8 7 2]. После чего, распределяем по алгоритму CMP множество заданий T на два процессора: и , В результате получим два множества заданий: и . На втором уровне, каждое из заданий распределяется ещё по двум машинам: на и , на и . Это даст ещё 4 множества заданий: , , , . Наконец, на третьем уровне, распределяем полученные 4 множества на 8 процессоров. Получим:

I уровень:

22

18

11

10

7

18

18

16

8

2

II ур:

22

10

18

11

7

18

16

18

8

2

Нагр:

24

24

48

47

24

23

III ур:

22

10

18

11

18

16

18

8

7

2

Нагр:

22

10

18

18

18

16

18

10

Max(22, 10, 18, 18, 18, 16, 18, 10) = 22