Автор: Ardhendu Mandal, Subhas Chandra Pal
Перевод: Костюк Д.Е.
Источник оригинала: Ссылка на оригинал статьи
Ardhendu Mandal, Subhas Chandra Pal Эмпирическое исследование и анализ методов динамической балансировки нагрузки, используемых в параллельных вычислительных системах Рассмотрены системы блочного моделирования. Исследовано моделирование уравнения гармонического осциллятора. Проведено сравнение моделирующих сред.
Большинство крупных научных вычислений теперь выполняется на параллельных компьютерах. Параллельный компьютер - это вычислительная система с множеством обрабатывающих элементов, которые эффективно связываются и взаимодействуют для решения больших проблем. Достижение цели повышения производительности в параллельных системах с помощью общего последовательного программирования недостаточно.
При наличии нескольких элементов обработки более крупные задания должны быть разделены на более мелкие задачи для распределения между этими элементами обработки для параллельного выполнения частичных результатов. Отсюда возникают концепции параллельного программирования. Следовательно, создание параллельных программ включает в себя декомпозицию, то есть разбиение общего вычисления на несколько задач с последующим назначением этих меньших задач на несколько элементов обработки. Количество задач, сгенерированных разделением, может не совпадать с количеством процессоров, поэтому процессор может простаивать или загружаться несколькими процессами. Кроме того, хотя количество задач и количество обрабатывающих элементов одинаково, часто это не обеспечивает оптимизированной производительности, поскольку рабочая нагрузка на отдельные процессоры может быть неравной. Еще одна проблема остается актуальной с одинаковой рабочей нагрузкой на задачи, когда вычислительная мощность отдельных элементов обработки меняется. Модуль, отвечающий за выполнение задачи балансировки нагрузки, называется балансировщиком нагрузки. Метод управления рабочей нагрузкой на обрабатывающие элементы известен как балансировка нагрузки.
Остальная часть документа организована так, что начинается с различных методов балансировки нагрузки с подробного обсуждения только методов динамической балансировки нагрузки, за которым следуют различные доступные методы динамической балансировки нагрузки и завершается их сравнительным исследованием результатов производительности. Алгоритмы балансировки нагрузки нацелены на выравнивание рабочей нагрузки между узлами.
Балансировка нагрузки приложения оказывает прямое влияние на достигаемое ускорение, а также на производительность параллельной системы [1 , 2].
Перераспределение сбалансированной рабочей нагрузки с помощью задач и минимизация потребностей в обмене данными между процессами с оптимальным использованием ресурсов и временем отклика на выполнение заданий являются основной целью оптимизации балансировки нагрузки. Следовательно, повышение производительности параллельных компьютеров за счет выравнивания рабочих нагрузок элементов обработки является целью балансировки нагрузки.
Некоторые из основных целей алгоритма балансировки нагрузки, как указано в [3], заключаются в следующем:
Различные стратегии и алгоритмы были предложены, реализованы и классифицированы в ряде исследований [4 , 5 , 6]. В целом балансировка нагрузки - это своего рода проблема оптимизации расписания.
Стратегия балансировки нагрузки может быть определена проверкой, например, прямоугольная решетка точек сетки, разбитая на более мелкие прямоугольники, так что проблема балансировки нагрузки решается до написания программы. В зависимости от информации, используемой при решении о балансировке нагрузки, ее можно разделить на две широкие категории: глобальные или локальные политики [6]. В глобальных политиках балансировщик нагрузки использует профили производительности всех доступных рабочих станций. Рабочие станции с локальными политиками разделены на разные группы. Преимущество локальной схемы заключается в том, что информация о профиле производительности обменивается только внутри локальной группы. Выбор глобальной или локальной политики зависит от поведения, которое приложение запрещает. В зависимости от времени, необходимого для привязки задач к обрабатывающим элементам, алгоритмы балансировки нагрузки могут быть далее классифицированы как статико-динамические [7]. Нетривиальные алгоритмы статической балансировки нагрузки распределяют задачи по обрабатывающим элементам во время компиляции, в то время как динамические алгоритмы связывают задачи с обрабатывающими элементами во время выполнения. Алгоритмы статической балансировки нагрузки основываются на оценке время выполнения задач и требования к межпроцессному взаимодействию. Разница классифицируется как статическая динамика [7]. Нетривиальные алгоритмы статической балансировки нагрузки распределяют задачи по элементам обработки во время компиляции, в то время как динамические алгоритмы связывают задачи с элементами обработки во время выполнения.
Алгоритмы статической балансировки нагрузки основываются на оценке между этим и статическим случаем, заключающейся в том, что балансировка нагрузки должна выполняться параллельно, чтобы предотвратить последовательное узкое место. Объем данной статьи ограничен только динамической балансировкой нагрузки.
Обстоятельства, определяющие оптимальный баланс, часто или непрерывно меняются во время выполнения, так что затраты на расчет балансировки нагрузки после каждого изменения должны быть минимизированы в дополнение к оптимизации разделения фактического расчета. Это означает, что необходимо время от времени принимать решения, чтобы решить, нужна ли балансировка нагрузки и сколько времени нужно на нее потратить. С другой стороны, динамические (или адаптивные) политики полагаются на актуальную информацию о состоянии системы и определяют назначение задач процессорам во время выполнения [8 , 9 , 10]. Следовательно, они более привлекательны с точки зрения производительности [11 , 12].
При динамическом подходе решения по балансировке нагрузки основываются на текущем состоянии системы; задачам разрешено динамически перемещаться с перегруженного узла на недогруженный, чтобы получать более быстрое обслуживание. Эта способность реагировать на изменения в системе - главное преимущество динамического подхода к балансировке нагрузки. Алгоритм динамической балансировки нагрузки состоит из четырех компонентов, правила измерения нагрузки, правила обмена информацией, правила инициации и операции балансировки нагрузки.
Алгоритмы балансировки нагрузки могут быть определены путем реализации следующих политик[13]:
Основная цель методов балансировки нагрузки - ускорить выполнение приложений на ресурсах, рабочая нагрузка которых изменяется во время выполнения непредсказуемым образом [14]. Следовательно, важно определить метрики для измерения нагрузки на ресурсы:
В этом разделе мы собираемся представить характерный анализ различных методов динамической балансировки нагрузки на основе места принятия решения, информации, используемой для процесса принятия решения, коэффициента масштабируемости и накладных расходов на обмен информацией профиля.
В этом методе ответственность за принятие решения о балансировке нагрузки остается за главным узлом, а информация, используемая для балансировки нагрузки, собирается с оставшихся (подчиненных) узлов либо по запросу, либо по истечении определенного заранее определенного количества фиксированного интервала времени, либо даже информация может быть собрана только тогда, когда происходят какие-либо изменения в их рабочей стадии. Примечательным моментом является то, что поскольку информация не отправляется произвольно, ненужный трафик по сети межсоединений сокращается.
Кроме того, не возникает никакой ненужной информации профиля при обмене служебными данными. Но масштабируемость этого метода остается ограниченной.
В методах распределенного некооперативного динамического планирования ответственность за методы балансировки нагрузки распределяется по всем рабочим узлам, то есть рабочим станциям, вместо главного узла. Информация о рабочей нагрузке собирается на основе подсказки, то есть всякий раз, когда какой-либо узел меняет свое текущее сбалансированное рабочее состояние на состояние перегрузки, конкретный коврик узла распределяет информацию о нагрузке для перепланирования, чтобы нагрузка была сбалансированной. Этот метод обеспечивает умеренную масштабируемость по сравнению с централизованной схемой.
Но поскольку информация о нагрузке должна быть распределена по нескольким рабочим узлам перед изменением расписания текущей перегрузки, это может увеличить трафик в сети межсоединений в дополнение к ограниченным накладным расходам на обмен информацией.
В методах распределенной кооперативной оптимальной динамической балансировки нагрузки, в отличие от методов распределенного некооперативного динамического планирования, ответственность за принятие решения о балансировке нагрузки распределяется по рабочим станциям, а не по главной узле. Кроме того, в этом случае информационная стратегия балансировки нагрузки также определяется потребностями, в отличие от некооперативных методов динамического планирования, за исключением средних накладных расходов во время обмена информацией о профиле. Этот метод обеспечивает умеренную масштабируемость.
В отличие от двух предыдущих методов, в методах распределенной кооперативной полуоптимальной эвристической динамической балансировки нагрузки решение по балансировке нагрузки назначается всем рабочим станциям совместно с информационной стратегией, управляемой спросом, средними накладными расходами на обмен профильной информацией и умеренной масштабируемостью.
В этих методах ответственность за балансировку нагрузки, информационная стратегия и масштабируемость остаются такими же, в отличие от распределенных кооперативных полуоптимальных эвристических методов динамической балансировки нагрузки, т. Е. Для рабочих станций, управляемая потребностями и умеренная масштабируемость соответственно, за исключением использования гораздо большего объема информации профиля. накладные расходы на обмен, увеличивающие трафик по межсетевым соединениям.
Из всего вышеизложенного можно сделать вывод, что при условии, что ограниченная масштабируемость разрешена, методы динамической централизованной балансировки нагрузки обеспечивают лучшую производительность по сравнению с обсуждаемыми альтернативами, поскольку они не потребляют накладные расходы на обмен профилями, а главный узел возлагает всю ответственность за принятие решения по балансировке нагрузки с использованием информационной стратегии, основанной на требованиях. Но если системе требуется сложная масштабируемость, методы некооперативной распределенной динамической балансировки нагрузки обеспечивают лучшее решение, поскольку накладные расходы во время обмена информацией профиля ограничены по сравнению с другими методами в этой группе.