Введение

Алгоритм В компьютерной науке, групповое планирование - это алгоритм планирования для параллельных систем, который планирует связанные потоки или процессы для одновременного выполнения на разных процессорах. Обычно это будут потоки, все принадлежащие к одному процессу, но они также могут быть из разных процессов, где процессы могут иметь отношения производителя-потребителя или исходить из одной и той же программы MPI. Gang scheduling используется для обеспечения того, чтобы, если две или более потоки или процессы общаются друг с другом, они все были готовы к общению в одно и то же время. Если бы они не были запланированы группой, то можно было бы подождать, чтобы отправить или получить сообщение другому, пока он спит, и наоборот. Когда процессоры переподписываются, а групповое планирование не используется в группе процессов или потоков, которые общаются друг с другом, каждое событие связи может страдать от нагрузки контекстного переключателя. Расписание банды основано на структуре данных, называемой матрицей Остерхаута. В этой матрице каждый ряд представляет собой отрезок времени, а каждый столбец - процессор. Нити или процессы каждой работы упакованы в один ряд матрицы. Во время выполнения координированное переключение контекста выполняется во всех узлах для переключения от процессов в одном ряду к процессам в следующем ряду. Расписание банды строже, чем расписание коша. Он требует, чтобы все потоки одного и того же процесса работали одновременно, в то время как коспланирование позволяет использовать фрагменты, которые представляют собой набор потоков, которые не работают одновременно с остальной частью группы. Групповое планирование было реализовано и использовано в режиме производства на нескольких параллельных машинах, в первую очередь на Connection Machine CM 5.

Сумка банды (BoG)

В групповом планировании происходит соотношение один к одному, что означает, что каждая задача будет соотнесена с процессором. Обычно работы рассматриваются как независимые банды, но с помощью схемы "сумка банд" все банды могут быть объединены и отправлены вместе в систему. Когда задания выполняются в системе, выполнение никогда не может быть завершено до тех пор, пока все банды, принадлежащие к той же BoG, не завершат свои исполнения. Время отклика еще больше влияет, когда прибывает приоритетная работа. Всякий раз, когда в систему поступает приоритетная задача, ей будет предоставлен приоритет по отношению ко всем другим задачам, даже по сравнению с теми, которые в настоящее время выполняются на процессорах. В этом случае, когда приходит приоритетная задача, подгруппа, которая в настоящее время выполняет работу в системе, будет остановлена, и весь достигнутый прогресс будет потерян и необходимо сделать заново. Это прерывание работы еще больше задержит общее время отклика Банка Германии.

Самая большая банда, которую сначала обслужили (LGFS)

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

Алгоритмы лево-право

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

Алгоритмы на основе нагрузки

Как алгоритмы, основанные на мощности, так и алгоритмы, основанные на левом и правом, не учитывают нагрузку на отдельные ПЭ. Алгоритмы на основе нагрузки учитывают нагрузку на отдельные ПЭ, отслеживая перекрытие между наборами ПЭ, назначенными на различные задачи. 1. Второй. Минимальная максимальная нагрузка. В этой схеме ПЭ сортируются на основе нагрузки на них, которую будет иметь каждая работа на ПЭ. Наличие свободных ПЭ в слоте определяет емкость слота. Предположим, что ПЭ распределены на работу, которая имеет нитки, ПЭ в порядке нагрузки (последний) будет определять максимальную нагрузку, которую может иметь любой ПЭ, который доступен в слоте. Выбирается слот с наименьшей максимальной нагрузкой на любой ПЭ, и в слоте используется ряд свободных ПЭ с наименьшей нагрузкой. Второй. Минимальная средняя нагрузка. В отличие от предыдущей схемы, в которой слоты выбирались на основе минимальной максимальной нагрузки на ПЭ, в данной схеме слоты выбираются на основе средней нагрузки на ПЭ с наименьшей нагрузкой.

Алгоритм на основе друзей

В этом алгоритме ПЭ распределяются в кластерах, а не по отдельности. Сначала ПЭ разделяются на группы, которые являются степенью двух. Каждому члену группы будет назначен контроллер, и когда приходит работа размером n, она присваивается контроллеру размером 2[lg 2] (маленькая степень к 2, которая больше или равна n). Контроллер присваивается, сначала сортируя все используемые слоты, а затем идентифицируя группы из 2[lg 2] соседних свободных процессоров. Если контролер имеет все свободные ПЭ в некоторых слотах, то только новая работа будет назначена этому контролеру. В противном случае открывается новый слот.

Алгоритм на основе миграции

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