- 79 -
ным числу процессоров, в соответствии с принципом геометрического
параллелизма. В общем же случае задача балансировки загрузки реша-
ется приближенно.
Виды балансировки загрузки
Различают статическую и динамическую балансировки загрузки.
Статическая балансировка выполняется перед началом вычислений.
При этом делаются определенные предполо жения относительно вре-
мени выполнения частей программы (например, при решении уравне-
ний газовой динамики с помощью явных разностных схем предпола-
гается, что время обработки одинаково для всех узлов разностной сет-
ки) и объема передаваемых между процессами данных.
Динамическая балансировка загрузки выполняется, когда время
выполнения различных частей программы или эффективная произво-
дительность процессорных узлов изменяется в ходе решения задачи.
Простейшим алгоритмом динамической балансировки загрузки явля-
ется уже рассмотренный метод "коллективного решения".
Эффективная производительность процессорных узлов может
изменяться, например, при выполнении параллельной программы на
сети рабочих станций. При запуске на какой-либо станции посторон-
ней программы любого пользователя эффективная производитель-
ность соответствующего вычислительного узла уменьшается.
Время выполнения различных частей программы изменяется от
шага к шагу, например при моделировании с помощью разностных
схем задач горения. Время обработки точек, в которых интенсивно
протекают химические реакции (эти точки расположены на фронте
пламени), значительно превышает время обработки точек, в которых
горения не происходит (рис. 49). Одним из способов совместного
численного решения задач газовой динамики и химической кинетики
является расщепление по физическим процессам. На каждом шаге по
времени можно сначала выполнить решение уравнений газовой дина-
мики в предположении, что химические реакции не протекают, а затем
уравнений химической кинетики в предположении, что не происходит
взаимодействия между узлами расчетной сетки. При таком подходе
газодинамические уравнения удобно и эффективно решаются согласно
методу геометрического параллелизма, но тогда узлы сетки, которые
захвачены фронтом горения, могут оказаться локализованными на не-
большом числе процессоров. В связи с этим, для эффективного счета
необходимо перераспределять "горячие" точки между всеми процес-
сорами. Поскольку фронт пламени может смещаться в ходе решения
задачи, статически это сделать невозможно, тогда как динамическое
перераспределение точек приносит хорошие результаты. На рис. 49
приведена зависимость времени обработки точек расчетной сетки при
горении в атмосфере метанового факела. Струя метана поступает под
высоким давлением вертикально вверх из левого нижнего угла рисун-
ка. Вертикальными линиями отмечены границы между областями, об-
рабатываемыми шестью процессорами. Хорошо видно, что основная
работа по расчету фронта горения сосредоточена на процессоре № 3 -
65%, затем на процессоре №2 - 30% и только 5% на процессоре № 1.