Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 1216 / 120 | Оценка: 4.73 / 4.45 | Длительность: 18:17:00
ISBN: 978-5-94774-546-7
Специальности: Программист
Лекция 10:

Диспетчирование параллельных вычислительных систем

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >

Диспетчер распределения частично упорядоченного множества работ в однородной ВС

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

Частичная упорядоченность заданий, точнее — программ их выполнения, означает, что одни программы используют результаты выполнения некоторых других программ данного пакета. Отражая этот факт графически и введя нумерацию программ, получают графовую структуру, показанную, например, на рис. 10.6.

Частично упорядоченное множество работ

Рис. 10.6. Частично упорядоченное множество работ

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

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

  1. Выделяются входы графовой структуры, т.е. программы, не использующие выходную информацию других программ. В данном случае это — единственная программа № 1. Она назначается на первый свободный процессор 1. Множество входов исчерпано. Временная диаграмма загрузки процессоров ВС принимает вид, показанный на рис. 10.7.

    Первый шаг распределени

    Рис. 10.7. Первый шаг распределени

  2. Имитируется счет времени t, чем отслеживается состояние системы. Видно, что только в момент t = 2, т.е. после окончания выполнения программы № 1, могут появиться возможности для дальнейшего назначения. Работу №1 необходимо исключить из рассмотрения. Граф-схема на момент t = 2 принимает вид, показанный на рис. 10.8.

    Имитация выполнения первой работы

    Рис. 10.8. Имитация выполнения первой работы

  3. Вновь выделяются входы графовой структуры текущего вида. В данном примере это программы, составляющие множество {№ 2, № 3, № 4}.

    Здесь целесообразно ввести в действие обязательный элемент любого эвристического, т.е. использующего основополагающую догадку, алгоритма решения сложной комбинаторной задачи, к которой относится задача диспетчирования, — решающее правило:

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

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

    В результате упорядочения программ по невозрастанию времен их выполнения формируется очередь на данном шаге распределения:{ № 3, № 2, № 4}. Диаграмма последовательной однократной загрузки свободных с момента t = 2 процессоров принимает вид, показанный на рис. 10.9.

    Второй шаг распределения

    Рис. 10.9. Второй шаг распределения

  4. Вновь включается счетчик времени, следя за состоянием системы. Очевидно, что какие-то изменения могут наступить только в результате выполнения заданий. В момент t = 4 заканчивается выполнение программы № 2. Хотя новых входов в граф-схеме не образуется, есть вход (программа № 4), оставшийся после предыдущего шага распределения. Программа № 4 назначается на освободившийся процессор 2.

  5. Затем таким же образом производится назначение программ № 5 и № 6, и формируется окончательный вид (рис. 10.10) временной диаграммы выполнения пакета заданий.

    Окончательный план выполнения работ

    Рис. 10.10. Окончательный план выполнения работ

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

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >