УДК 681.326
В.В. ПЕКУНОВ, асп. 
(ИГЭУ)

Распараллеливание вычислений при интегрировании уравнений химической кинетики
в задачах математического моделирования сложных экологических процессов

Принципы распараллеливания вычислений при интегрировании уравнений химической кинетики существенно зависят от наличия или отсутствия в расчетной области дрейфующих участков с высокой температурой, которые обрабатываются достаточно долго по сравнению с остальной областью.
При отсутствии таких участков время на обработку примерно одинаково для всех узлов расчетной сетки, что позволяет использовать статическое поблочное распределение узлов по процессорам. Для интегрирования в этом случае мы предлагаем использовать метод Головичева, обладающий необходимой точностью и невысоким объемом вычислений.
При наличии указанных участков возникает необходимость динамического распределения загрузки процессоров. Централизованная балансировка загрузки не позволяет добиться высоких результатов, поскольку велики количество и объем пересылок между центральным и рабочими процессорами. В работе [1] предложена более совершенная распределенная балансировка загрузки, где каждый процессор обрабатывает некоторое множество локальных узлов, а затем запрашивает по одному узлу для обработки у других процессоров. При этом возникает большое количество коротких транзакций, что малоэффективно для систем, в которых очень короткие сообщения передаются медленнее длинных. В частности, низкая скорость передачи коротких сообщений наблюдается при использовании пакета WMPI 1.3 в компьютерной сети Fast Ethernet, в чем легко убедиться с помощью известной программы PingPong, размещенной на сайте www.mcs.anl.gov/mpi/tutorial/mpiexmpl/src3/pingpong. Для математического моделирования экологических процессов, в которых участки с повышенной температурой дрейфуют относительно медленно, нами предлагается иной вариант распределенной балансировки: на каждой итерации процессоры собирают статистику о времени обработки каждого узла и сразу определяют, какие узлы на следующий итерации обрабатывать самостоятельно и какие передать другим процессорам. Это позволяет на следующей итерации произвести всего один асинхронный обмен данными между процессорами, который идет одновременно с обработкой исходного множества узлов. По окончании обработки исходного множества узлов процессоры обрабатывают узлы, полученные от других процессоров, и единым блоком отсылают результат обратно.
Проведенные эксперименты по моделированию распространения загрязнений в воздушной среде (45000 узлов расчетной сетки) с учетом химических реакций показали, что использование предлагаемой распределенной схемы балансировки может повысить эффективность распараллеливания на 30-40% по сравнению с централизованной схемой.

Литература
1. Корнилина М.А., Якобовский М.В. Динамическая балансировка загрузки процессоров при моделировании задач горения // Высокопроизводительные вычисления и их приложения: Тр. Всеросс. научн. конф. (30 октября - 2 ноября 2000 г., г. Черноголовка).- М.: Изд-во МГУ, 2000. С.34-39.