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

Организация и оптимизация параллельных процессов

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

Централизованные и децентрализованные ВС

Классификация

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

Централизованное диспетчирование (ему соответствует централизованная ВС) реализуется управляющим процессором или периодически включаемой в состав очереди задачей наивысшего приоритета. При централизованном диспетчировании существует возможность более полного охвата и прогнозирования состояния всех средств ВС и тщательного выбора плана дальнейшей загрузки процессоров.

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

Таким образом, в чистом виде децентрализованное диспетчирование не применяется.

Централизованное диспетчирование

В более сложном виде задача диспетчирования возникает в централизованных ВС. В чем она заключается?

Пусть некоторый супервизор, например, в системе реального времени, определил множество информационно взаимосвязанных задач ( частично — упорядоченное множество задач), которые должны решаться циклически, а возможно, и единственный раз процессорами ВС. Известны временные оценки решения задач.

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

Информационный граф и расширенная матрица следования

Рис. 8.3. Информационный граф и расширенная матрица следования

Показана соответствующая ему матрица следования S и расширенная матрица следования S*, содержащая и столбец весов.

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

Формально: пусть задано множество работ A = \{ \alpha _{1} , \dots , \alpha _{m}\} и известно множество временных оценок этих работ T = {t1 , ..., tm}, а также известна частичная упорядоченность, задаваемая матрицей следования S. Пусть ВС — однородная (т.е. все процессоры обладают одинаковой производительностью) и содержит n процессоров. Пусть в результате распределения множества работ A между n процессорами каждый ( i -й) процессор оказался занятым решением задач в течение времени Ti. Тогда время решения всей совокупности задач

\begin{align*}
T_{\text{реш}} = \max_{i=1, ..., n} \{T_i\}
\end{align*}

Задачей диспетчера является распределение работ \alpha _{1},\dots ,\alpha _{m} между процессорами, обеспечивающее

\begin{align*}
T_{\text{реш}} - \frac{1}{n} \sum_{j=1}^m t_j \longrightarrow \min
\end{align*}

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

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >