Совместное планирование

Совместное планирование — это принцип для параллельных систем планирования связанных процессов для одновременного выполнения на разных процессорах ( параллельно ). Существуют различные конкретные реализации для реализации этого .

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

Выполнение

Совместное планирование состоит из двух идей:

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

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

Типы совместного планирования

Исследователи классифицировали три типа совместного планирования: явное совместное планирование , локальное планирование и неявное или динамическое совместное планирование . [1]

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

Локальное совместное планирование позволяет отдельным процессорам планировать обработку независимо друг от друга.

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

История

Термин «coscheduling» был введен Оустерхаутом (1982). Первоначальное определение заключается в том, что рабочий набор процесса должен быть coscheduled (запланирован для одновременного выполнения) для того, чтобы параллельная программа могла выполняться .

Смотрите также

Примечания

  1. ^ Фабрицио Петрини, У-чунь Фэн. Улучшенное использование ресурсов с буферизованным ко-планированием , Журнал параллельных алгоритмов и приложений, 2000
  • Оустерхаут, Дж. К. (1982). «Методы планирования для параллельных систем» (PDF) . Труды Третьей международной конференции по распределенным вычислительным системам : 22–30.
Взято с "https://en.wikipedia.org/w/index.php?title=Coscheduling&oldid=1169792345"