Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Файлы для подготовки к экзамену / Стратегии планирования процессов параллельного выполнения ГСПП на ВС

.doc
Скачиваний:
20
Добавлен:
28.06.2014
Размер:
31.23 Кб
Скачать

1.3 Стратегии планирования процессов параллельного выполнения ГСПП на ВС.

Следуя изложенному в разделах 3.1 и 3.2, рассмотрим, каким образом может быть реализовано планирование параллельного выполнения ГСПП на ВС.

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

Известно, что в ранних реализациях граф-схемного подхода пользователь осуществлял планирование процесса выполнения ГСПП на ВС с заданным количеством компьютеров k, путем разрезания граф-схем на k подсхем (теперь это можно делать, явно описывая эти подсхемы средствами ЯГСПП) таким образом, чтобы в процессе её выполнения достигалась более или менее равномерная загруженность компьютеров и не слишком большой была интенсивность обменов данными между компьютерами [2].

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

По-видимому, для ГСПП, которые планируется в течение длительного времени «эксплуатировать», пользователь должен выполнить неординарную экспериментальную работу для поиска наилучшего варианта её разрезания.

Естественно, для сложных ГСПП любое их разрезание на подсхемы оставляет широкое поле для динамического планирования процессов.

Сформулируем основные эвристики для этого случая, базируясь на содержании разделов 3.2 и 3.3. Очевидно, важно поддерживать достаточно большим фронт готовых для выполнения процессов, чтобы была возможность уменьшения простоев процессоров компьютеров. Для этого система выполнения ГСПП вместе с планировщиком должны назначать на выполнение процессы не в глубину, то есть последовательно для каждой КГВх, а в ширину, стараясь активизировать процессы для различных КГВх модулей, оказавшихся распределенными на компьютерах. Возможен и более тонкий механизм назначения на выполнение процессов, который предполагает, что в первую очередь назначаются процессы, после выполнения которых увеличивается скорость роста фронта готовых для выполнения процессов ГСПП. Именно подобная стратегия исследовалась в [2,5] и, как было показано, часто может давать неплохой результат.

Не менее важным является также выбор процессов, которые перераспределяются между компьютерами ВС, для исключения их простоев и достижения равномерной загруженности. Случайный выбор пересылаемых на другой компьютер процессов может приводить к резкому увеличению обменных взаимодействий из-за того, что перемещенный процесс активно использует команды чтения данных из буферов «своей» КГВх, которые остаются на том же самом компьютере. Поэтому, часто целесообразно осуществлять перераспределение процессов, сразу перемещая все процессы одной КГВх вместе с выделенными для неё буферами. Такая стратегия позволяет уменьшить обменные взаимодействия между компьютерами. Этому также способствует и то, что с одного компьютера на другой сразу перемещается группа, а не один процесс.

Описанные эвристические стратегии планирования процессов положены в основу реализации механизмов планирования процессов выполнения ГСПП на ВС.