Реализация мезомасштабной атмосферной модели на вычислительных системах с распределенной памятью В. М. Степаненко Всероссийская научная конференция «Научный сервис в сети Интернет: решение больших задач», 22 – 27 сентября 2008 г. Работа поддержана программой СКИФ и проектом РФФИ
План доклада 1)Что такое мезомасштабная атмосферная модель и какие задачи ею решаются? 2) Описание мезомасштабной модели (Nh3d) 3) Структура программного кода модели 4) Результаты профилирования модели 5) Параллельные свойства численных алгоритмов модели 6) Результаты распараллеливания 7) Распараллеливание гидрологической модели
Мезомасштабная атмосферная модель – математическая модель динамических и термодинамических атмосферных процессов для территорий регионального масштаба (n*100 - n*1000 км). Приложения мезомасштабных атмосферных моделей - краткосрочный прогноз погоды (на 1-3 суток); - региональная детализация расчетов глобальных климатических моделей; - сценарные расчеты качества воздуха и воды (перенос, трансформация и осаждение загрязняющих веществ); - исследование физических механизмов атмосферных процессов. Бризы Горные циркуляции Кучевая облачность
Уравнения динамики атмосферы Модель водоема Модель почвы и растительности Уравнение термодинамики атмосферы Модель переноса радиации в атмосфере Модель переноса аэрозолей Блок микрофизики облачности и осадков Блоки мезомасштабной атмосферной модели (Nh3d) Мезомасштабная атмосферная модель (Nh3d) Разработчики: Университет г. Рединга (1989) Университет г. Лиссабона Университет г. Тарту НИВЦ МГУ
Система уравнений гидротермодинамики мезомасштабной атмосферной модели (Nh3d) (1) (2) (3) (4)
Мезомасштабные циркуляции и перенос аэрозоля Разрешение : x = y = 3.7 км x = y = 3.7 км 21 σ – уровней 21 σ – уровней Ханты-Мансийскийокруг Интегрирование по времени t = 5 с t = 5 с 8 дней 8 дней Бризы развиваются над водными объектами и переносят примесь на значительные расстояния от источников даже в спокойных синоптических условиях Приземный ветер Аэрозольное облако
Программная реализация Фортран 77, 90, 95; ~ строк; динамические массивы, хранение в модулях; организация счета в виде последовательно вызываемых подпрограмм в основном цикле: program nh3d do t = 1, ntime call soil(…) call moment(…) call thermo(…) … call write(…) enddo end program nh3d
Новые возможности в параллельной версии 1)Улучшение горизонтального разрешения с 4-5 км до 1 км (разрешение лучших моделей); 2) Увеличение количества уровней модели по вертикали с 20 до 40; I. Сгущение конечно-разностной сетки II. Добавление параметризации новых физических процессов 1)Модель снежного покрова (Мачульская, Лыкосов) 2)Модель переноса, трансформации и осаждения аэрозолей (Микушин, Степаненко) 3) Модель атмосферной химии … III. Развитие существующих параметризации 1)Параметризация турбулентного обмена 2) Параметризация облачности и осадков (добавление процессов, связанных с образованием и выпадением снега) 3)… IV. Проведение длительных экспериментов: например, на 2-3 месяца модельного времени
Профилирование модели Явная схема! БПФ + прогонка Циклы с независимыми итерациями после обмена данными % - THERMO - интегрирование уравнения термодинамики (включает радиационный блок) % - ELLIPT - решение эллиптического уравнения для геопотенциала % - SUFPP - вычисление давления на поверхности % - DIFFU - вычисление турбулентных притоков % - MOMENT - интегрирование уравнений движения 6. 6 % - GLUX - вычисление потоков импульса 7. 4 % - HUMID - интегрирование уравнения переноса водяного пара 8. 4 % - SOIL - блок почвы, растительности и водоемов
Разбиение области Код для компьютеров с распределенной памятью, библиотека MPI Разбиение расчетной области: двумерное или трехмерное? Вертикальное разбиение неэффективно: 1) эллиптического уравнения (по вертикали - прогонка) 2) блока переноса радиации (обрабатывает массивы полной вертикальной размерности) nxi : nxe nyi : nye В MPI-реализации: 2D - декартова топология процессов
Параллельная реализация отдельных алгоритмов – 1: Циклы с независимыми итерациями 1)Блок почвы, растительности и водоемов – 4% 2) Радиационный блок – 22% do i =nxi, nxe do j = nyi, nye call soil(i,j,…) enddo x y (i, j) (1,1) (nx, ny) do i =nxi, nxe call radiat(i,nyi:nye,1:ns, …) enddo y σ 1 : ns nyi : nye Вызывается в каждой точке сетки на земной поверхности Обрабатывает двумерные сечения массивов произвольной длины по оси Y и полной длины по оси σ
Параллельная реализация отдельных алгоритмов – 2: Интегрирование уравнений модели по явной схеме 1)Уравнения движения – 10% 2)Уравнение для температуры – 5% 3)Уравнения для влажности, облачной влаги и осадков – 4% 4)Уравнение переноса аэрозоля центральные разности 2-го порядка точности границы расширенной подобласти сдвинуты от основной подобласти по всем координатам на 1
Схема обменов в п/п moment Шаблон конечно-разностной схемы по горизонтали:
Решение эллиптического уравнения 1) Прямое быстрое преобразование Фурье по осям X и Y функции 2) Решение nx*ny трехдиагональных систем для коэффициентов Фурье функции методом прогонки 3) Обратное быстрое преобразование Фурье по осям X и Y - восстановление
коэффициенты Фурье решения коэффициенты Фурье функции Транспонирование массивов TRANS_XY_Z TRANS_Z_XY 2-мерное БПФ по горизонтали Одномерные прогонки по вертикали TRANS_XY_Z TRANS_Z_XY 2-мерное обратное БПФ по горизонтали: 1) 2) 3) 4) решение Массив с решением распределен между процессами согласно исходному разбиению
Ускорение п/п moment на СКИФ-МГУ размерность сетки 385 x 385 x 61 двумерная декомпозиция области n x n, n = 1,…8
Одномерная модель водоема Снег Лед Вода Грунт (отложения) U H,LE EsEs EaEa S Уравнение для температуры Распараллеливание проблематично – численные схемы неявные; В «многоточечных» экспериментах расчеты для разных озер независимы Драйвер модели содержит цикл, вызывающий модель водоема последовательно для каждого озера – цикл с независимыми итерациями
Параллельная реализация модели водоема Исходный код Fortran 90 Стандартные библиотеки MPI и Netcdf Распараллеливание «драйвера» модели водоема для N озер на P процессорах, NP 1kP …… P+1P+k2P … … … 2P+k … Номер озера Ранг MPI- процесса 1kP1kPk Номер Netcdf-файла вывода 1 k P Ускорение на 9 процессорах в 8.1 раза
Спасибо за внимание! Вопросы?
Немного истории 1-й численный прогноз погоды с организацией вычислений на множестве арифмометров - Л. Ф. Ричардсон (1924) Первое применение машины Дж. фон Неймана – краткосрочный прогноз погоды по баротропной модели (Нейман и др., 1950)
Библиотека подпрограмм параллельной реализации кодов атмосферных моделей (А. В. Глазунов, В. Н. Глухов) 1)Подпрограммы двухмерных и трехмерных обменов значениями массивов в граничных точках MPA_exch MPA_exchxy 2)Подпрограммы транспозиции массивов TRANS_XY_Z TRANS_Z_XY 3)Подпрограммы вывода массивов в файлы MPA_WRITE(…) 4) …
Шаблоны конечно-разностной схемы в п/п moment