Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory1-25 (1).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
440 Кб
Скачать
☆

24. Способы распределения задач по процессорам в мультипроцессорных вс.

  1. Процессоры в мультипроцессорной системе – однородные, то есть могут решать любые задачи из входного потока задач.

  2. Процессоры в мультипроцессорной системе являются – специализированными (решают определенный тип задач)

Пусть имеется n процессоров и m задач. Необходимо так распределить m задач по n процессорам, чтобы общее время решения всех задач было минимальным. Наиболее известные алгоритмы такой задачи исходят из матричного программирования, в частности линейного программирования. Обозначим xij ситуацию, когда i-я задача решается на j-ом процессоре

Если xij = 1, то задача i решается на процессоре j. Если xij = 0, то иначе.

П xij = 0 (1), где i = 1…n (так как задача решается на одном процессоре).

 xij = 1 (2). tij – время решения i-ой задачи на j – ом процессоре.

 xij tij = min (*)

Решить задачу, значит установить значения индексов i и j . Минимизировать (*). С учетом (1) и (2) составляется система из m линейных уравнений, решив которую найдем значение xij , при которых достигается min значения. Найдем, на каком процессоре какую задачу лучше выполнять.

Получили распространение: Метод Шварца, метод Перт.

Метод Шварца, метод Перт относятся к субоптимальным методам, при решении вводится гипотеза:

Минимизация решения на каждом из этапов (временных отрезков) приводит к минимизации всего решения в целом (оптимизация по шагам). К субоптимальным относится и метод динамического программирования.

25. Алгоритм распределения задач по методу Перт.

1. Процесс получения решения должен быть представлен в виде сетевого графика.

2. Сетевой график, или сеть, являются обобщением графа программы.

3. Граф представляется упорядоченной парой G = <E,D>. E – множество вершин графа. D – множество дуг, соединяющих вершины графа.

E

4

= {1,2,3,4,5}

D

1

= {1-1,1-2,1-3,1-4,3-2,3-5,4-5}

Д

2

ля сети вводится понятие кортеж (включает большее число элементов чем пара)

S = <e 0, e t, E, D, A, F>

e 0 – начальная вершина сети

e

3

t – конечная вершина сети (терминальная)

E – множество элементов

D

5

– множество дуг, соединяющих вершины

A – множество весов, то есть каждая дуга должна быть “взвешена”. Это время, или количество операций, или объем памяти для записи передаваемой информации

F – функция, которая отображает веса на соответствующие дуги, то есть ставит определенный вес каждой дуге на графе вычислительного процесса.

F: A -> D

Пример:

e

2

2

0 = 1

e

5

t = 6

E

1

3

5

6

1

4

2

= {1,2,3,4,5,6}

D = {1-2,1-3,1-4,2-5,3-5,4-5,5-6}

F

3

3

= {1-2(2),1-3(1),…}

С

4

еть – ориентированный граф с исключением петель, отсутствуют обратные связи, так как процесс реализуется во времени. Задача: определить путь из вершины 1 в вершину 6 такой, чтобы сумма всех весов, соответствующих этому пути была минимальной. Найти последовательность выполнения вершин графа: t -> min

Какие ветки должны будут выполняться параллельно, чтобы t -> min (если все вершины были выполнены). Для реализации метода Перт вводятся понятия: самое раннее и самое позднее наступление события. t_(5) = t_2+t2-5 = 7 – критический путь. t_(5) = t_1+t1-2 . t_(5) = 6. t_(5)= 5

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

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

№ процессора, на котором выполняется работа

I

0-1

1-4

6

II

I

3-4

2-4

Самое позднее время выполнения

1

5

4-5

II

I

1

5

II

5

2

3

3-5

II

I

1-2

№ дуги

4

II

2-3

Вес

1

Анализ начинаем с конца: анализируем вершину №5.

Для этого определяем фронт работ (дуг графа), которые своими дугами заходят в вершину 5

4-5, 3-5

t4-5(5) = t(4)+5 = 16

t3-5(5) = 9+3 = 12 (выбираем max время)

1 шаг: I 4-5

II 0

 = 5 (длительность выполнения работы)

2

Рассматриваем результаты, которые остались незавершенными на предыдущем шаге + работы, которые своими дугами заходят в вершину, для которой работа исходящей вершины завершена

Для 4-ой: 1-4, 2-4, 3-4 будут рассмотрены только тогда, когда завершится 4-5.

Входящие работы рассматриваются только тогда, когда выполнены исходящие работы

3-5, 1-4, 2-4, 3 – 4

2 шаг: I 2-4

II 3-4

 = 2

3

3-5, 2-4, 1-4

3 шаг: I 2-4

II 0  = 3

4

3-5, 1-4

4 шаг: I 3-5

II 0  = 3

5

1-4, 2-3

5 шаг: I 1-4

II 2-3  = 4

6

1-2, 0-2, 1-4

6 шаг: I 1-4

II 0-2  = 2

7

1-2, 0-2

7 шаг: I 0

II 0-2  = 3

8

1-2

8 шаг: I 0

II 1-2  = 1

9

9 шаг: I 0-1

II 0  = 1

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

45

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]