Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Файлы для подготовки к экзамену / Планирование процессов параллельного выполнения ФП на ВС.doc
Скачиваний:
22
Добавлен:
28.06.2014
Размер:
122.88 Кб
Скачать

4. Планирование процессов параллельного выполнения фп на вс

4.1. Основные подходы к построению эффективных алгоритмов планирования

Основная цель планирования – минимизация времени выполнения ФП. В более широком смысле – эти также эффективное использование ресурсов, которое предполагает уменьшение количества ресурсов (компьютеров, процессов) ВС без увеличения времени выполнения ФП. Общий характер зависимости времени Tвыполнения ФП от количества компьютеровkВС изображен на Рис. 1.

Рис. 1

То, что с увеличением количества компьютеров больше kопт, время выполнения ФП уже не может быть уменьшено существенно, есть известный факт. Более того, оно может далее увеличиваться, если глубина распараллеливания [1], определяющая вычислительную сложность компонентов параллельной программы, которые разрешено перемещать между компьютерами ВС в процессе выполнения ФП, окажется настолько малой, что заметно начнут расти «накладные расходы» на управление и обмены между компьютерами [1].

Задача поиска оптимальных алгоритмов планирования, минимизирующих время выполнения параллельной программы на ВС с заданным количеством компьютеров, пока не имеет строго решения, имеющего широкое применение [1, 2, 3, 4, 5]. Это связано с тем, что для этого, как правило, требуется знание истории выполнения программы или модель, достаточно точно отражающая ее поведение при выполнении, время выполнения ее компонентов и др.

Поэтому для построения алгоритмов планирования, имеющих практическое значение, обычно используются эвристики [1, 2, 3], основанные на эмпирическом опыте, адаптивных схемах управления [1, 2, 3] привлечении результатов, касающихся планирования в областях, далеких от компьютерной техники (например, как в кластере MOSIX[6], применение механизмов рыночного регулирования цен для назначения ресурсов и достижения равномерной загрузки компьютеров).

При этом в качестве основных критериев, определяющих эффективность алгоритмов планирования, рассматриваются следующие:

  • уменьшение времени простоев процессоров, используемых в ВС компьютеров;

  • достижение равномерной загруженности ресурсов ВС, исключающее большую интенсивность обменов (swapping) между оперативной и дисковой памятью, между компьютерами ВС;

  • уменьшение «накладных расходов» на управление параллельными процессами и на планирование.

Рассмотрим возможные пути для достижения сформулированных критериев.

Уменьшению времени простоя процессоров, с одной стороны, способствует равномерная загруженность компьютеров ВС. С другой стороны, фронт работ – множество готовых для выполнения процессов параллельной программы. Чем больше (в среднем) мощность этого множества, тем, очевидно, с большей вероятностью можно устранять простой того или иного процессора ВС, перераспределив процессы (работы). Как следствие, эффективное планирование должно иметь механизм, регулирующий фронт готовых для выполнения процессов.

Для ФП этот фронт можно достаточно просто уменьшать или расширять, изменяя глубину распараллеливания [1], запрещая или разрешая распараллеливание на уровне базисных функций, выполнение вычислений без упреждений или с упреждениями, назначая на вычисление в первую очередь функциональные переменные с максимальной рекурсивной сложностью и др.

Поддержание равномерной загруженности компьютеров ВС требует уточнения самого критерия загруженности. Следующие наиболее значимые параметры, измерение которых сегодня доступно средствами ОС (UNIX/Linux,Windowsи др.), позволяют получить общую характеристику использования различных узлов компьютера:

  • объем свободной памяти,

  • время простоя процессора,

  • интенсивность обменов между дисковой и оперативной памятью,

  • интенсивность обменов с другими компьютерами.

Если первые два параметра измеряются ОС достаточно просто, то вторые требуют значительных временных затрат, являясь в то же время наиболее информативными.

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

Оба эти параметра несложно определяются ИН и планировщиком компьютера (см. п. 3), а также средствами ОС, позволяющими контролировать количество активизированных процессов.

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

Ясно, что измерение параметров загруженности требует времени, также как и сама процедура планирования. Уменьшение этого времени возможно за счет грамотной реализации управляющих программ, ясного понимания того, какой эффект может дать принимаемое решение по планированию и каковы будут временные издержки, связанные с его реализацией. Описанные в п. 3правила параллельного вычисления значений функций на ВС являются хорошей иллюстрацией этого. В частности, мы уже обсуждали, что правильный выбор параметровLиLпозволяет ограничить время, которое ИН тратит на обход контекста, а введение стекао-вершин сокращает время на обратный обход контекста и др.

Характеризуя комплексно загруженность компьютера ВС, можно ввести нечеткую шкалу, которая в грубой форме имеет градации: простаивает, недогружен, нормально загружен, перегружен.

Если состояние простоя не требует уточнений, то остальные градации обычно следствие эмпирических соображений.

Можно считать, что компьютер недогружен, если доля времени простоя его процессора достаточно велика (больше некоторого эмпирически установленного значения, например, 70% для параллельных программ вычислительного характера, не предполагающих активную работу с внешними устройствами) и есть достаточного объема свободная оперативная память.

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

Компьютер нормально загружен, если доля времени простоя процессора не превышает некоторого порога, например 50%, и есть свободная память или невелика интенсивность обменов между дисковой и оперативной памятью.

Очевидно, что эти «пороги» могут уточняться в процессе работы и эффективно использоваться доля построения адаптивных алгоритмов планирования и управления процессами [1].