93
В этом случае равномерное распределение обеспечивается при условии
равенства временной характеристики трудоемкости
обработки всех узлов
сетки на каждом из шагов и изменение трудоемкости вызвано причинами 2 и
4. Равномерное распределение одинаковых по трудоемкости заданий
пропорционально производительностям процессоров. Если процессоры
обладают одинаковой производительностью, а трудоемкость обработки узлов
сетки различна по причинам 1 и 3,
требуется другой подход к
перераспределению узлов. Пусть все узлы сетки имеют единую нумерацию,
при этом каждый процессор обрабатывает непрерывный диапазон номеров
узлов; proc
j
- номер процессора, на котором обрабатывалась точка с номером
j,
(i)
=
t
i
/n
i
- трудоемкость расчета каждой из точек, обработанных на
процессоре
i,
j
=
proc(j)
- время
обработки узла с номером
j.
Тогда целью
балансировки при этих условиях является минимизация
.
Приближенное определение
нового распределения
n
i
''
можно
определить при помощи алгоритма
for( j =
; j < n; j++)
{ t = t +
j
if (( t ≥ T
mid
) { n
i
'' = j - m; m = j; t =
; }}
Для сравнения двух выше приведенных распределений используем
таблицу (см. ниже):
В первой и второй строках указано исходное
распределение узлов
сетки по процессорам и время, затраченное каждым из четырех процессоров
на обработку. Третья строка описывает величины соответствующие новому
распределению
сетки.
В
четвертой
строке
указаны
величины,
(19)
94
соответствующие новому распределению сетки согласно алгоритму.
Полученные решения подчеркивают необходимость выяснения на этапе
расчета причин возникновения дисбаланса. Что позволит выбрать стратегию
перераспределения
вычислений между процессорами, соответствующую
либо первому распределению, либо второму, либо их комбинации.
Диффузная
балансировка
загрузки
способствует
сокращению
длительности расчета, благодаря выравниванию вычислительной нагрузки
приходящейся на каждый из процессоров. Но также требует дополнительных
затрат времени на сбор статистики о
выполненном расчете, на определение
нового плана распределения узлов сетки и на само перераспределение узлов.
Диффузная балансировка должна проводиться при снижении
эффективности расчета ниже допустимого
уровня по причине дисбаланса,
накопившегося за множество шагов.
Решение о количестве узлов сетки, которое следует оставить на
каждом из процессоров должно приниматься централизовано,
несмотря на
локальный характер перераспределения
узлов расчетной сетки между
процессорами.
Do'stlaringiz bilan baham: