<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <fpage>356</fpage>
      <lpage>368</lpage>
      <abstract>
        <p>Программный комплекс новой версии модели атмосферы ПЛАВ предназначен как для прогноза погоды, так и для моделирования изменений климата. Разработана система параллельного ввода-вывода, которая может подключаться как отдельный программный компонент, а также может задействовать некоторые из вычислительных процессов для выполнения операций чтения-записи. Система параллельного вводавывода внедрена в модель ПЛАВ и систему усвоения данных наблюдений атмосфере на основе ансамблевого фильтра Калмана. В программном комплексе модели атмосферы выполнены работы по повышению масштабируемости за счет увеличения количества нитей OpenMP, а также оптимизации обращений в оперативную память.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Параллельный программный комплекс модели атмосферы
для прогноза погоды и моделирования климата*
гранжевых моделях не ограничен условием устойчивости Куранта ни по скорости ветра, ни по
скорости распространения инерционно-гравитационных волн. На практике, при сравнимой
точности, шаг по времени полунеявных полулагранжевых моделей в 3-5 раз больше, чем в
моделях, использующих другие численные методы.</p>
      <p>В настоящее время полулагранжев подход применяется в большинстве оперативных
моделей среднесрочного прогноза погоды, в т.ч. в моделях Европейского центра среднесрочного
прогноза погоды и Английской метеослужбы, которые являются мировыми лидерами в области
среднесрочного прогноза погоды.</p>
      <p>Программный комплекс отечественной глобальной модели атмосферы ПЛАВ позволял
эффективно использовать до примерно 1000 ядер (при горизонтальном разрешении около 20-25
км), однако, как мы видим, необходимо повышение масштабируемости программного
комплекса модели. Работы в этом направлении представлены в настоящей статье. Во втором
разделе представлено краткое описание модели ПЛАВ, третий раздел посвящен описанию
системы параллельного ввода-вывода. В четвертом разделе описываются работы по повышению
эффективности распараллеливания с помощью технологии OpenMP, а в разделе 5 - оптимизации
обращений в оперативную память.
2. Глобальная модель атмосферы ПЛАВ</p>
      <p>
        Основной моделью глобального среднесрочного прогноза погоды в России с 2010 года
является глобальная полулагранжева модель атмосферы ПЛАВ (ПолуЛагранжева, основанная на
уравнении Абсолютной заВихренности) [2]. Блок решения уравнений динамики атмосферы
разработан в Институте вычислительной математики РАН и Гидрометцентре России. В модели
ПЛАВ наряду с блоком решения уравнений динамики атмосферы собственной разработки в
основном применяются алгоритмы параметризаций процессов подсеточного масштаба,
разработанные под руководством Ж.-Ф.Желена возглавляемым Францией консорциумом по
мезомасштабному прогнозу погоды ALADIN/LACE [
        <xref ref-type="bibr" rid="ref2 ref3">3, 4</xref>
        ]. В модель также включена отечественная
параметризация крупномасштабных осадков [5] и модель многослойной почвы [6]. В
современную версию модели также входят свободно распространяемые параметризации
коротковолновой и длинноволновой радиации (CLIRAD [
        <xref ref-type="bibr" rid="ref4">7</xref>
        ] и RRTM [
        <xref ref-type="bibr" rid="ref5">8</xref>
        ] соответственно).
      </p>
      <p>
        Оригинальными особенностями блока решения уравнений динамики атмосферы модели
ПЛАВ являются применение конечных разностей четвертого порядка на несмещенной сетке
для аппроксимации неадвективных слагаемых уравнений и использование вертикальной
компоненты абсолютного вихря и дивергенции в качестве прогностических переменных.
Существенным элементом для модели атмосферы, основанной на переменных «вертикальный
компонент абсолютной завихренности – горизонтальная дивергенция», является быстрый и точный
алгоритм восстановления компонент горизонтальной скорости ветра, описанный в [
        <xref ref-type="bibr" rid="ref6">9</xref>
        ].
Численные методы, применяемые в модели ПЛАВ, на тестовых задачах не уступают в точности
спектральному методу решения уравнений динамики атмосферы, что было показано в [
        <xref ref-type="bibr" rid="ref6">9</xref>
        ].
      </p>
      <p>
        Описание программной реализации модели на основе сочетания технологий MPI и OpenMP
(гибридной технологии) описывается в [
        <xref ref-type="bibr" rid="ref7">10</xref>
        ]. Отметим, что гибридный подход был впервые в
России применен к реальному сложному программному комплексу.
Код модели атмосферы ПЛАВ был проверен на масштабируемость на вычислительных
системах РСК Торнадо и МВС-10п (установлена в Межведомственном суперкомпьютерном центре
РАН). Разрешение современной версии модели составляет 0,225 градуса по долготе, по
широте шаг сетки изменяется от 0,18 градуса в Северном полушарии до 0,25 градуса в южном, по
вертикали - 51 неравномерно расположенных сигма-уровней. Размеры расчетной области
составляют при этом 1600х866х51. На рисунке 1 приведено параллельное ускорение модели по
отношению к времени счета на 54 процессорных ядрах. При расчетах использовалось 4 нити
OpenMP. Общепринятой для моделей численного прогноза погоды и моделирования климата
мерой эффективности является параллельное ускорение кода, равное 55-65 % от
теоретического (при использовании тысяч процессоров).
      </p>
      <p>Можно видеть, что модель ПЛАВ при данном пространственном разрешении эффективно
масштабируется до 1152 ядер. При увеличении количества ядер от 432 до 864 наблюдается
суС радиацией
Без радиации
перлинейное ускорение, что, по всей видимости, вызвано эффективным использованием
кэшпамяти процессоров.</p>
      <p>864 1152
Число ядер
Рис. 1. Параллельное ускорение модели ПЛАВ по отношению к времени счета на 54 ядрах.
Технологии MPI и OpenMP использовались для параллельной реализации циклов по одной
и той же координате – широте. Это ограничивало теоретический максимум количества
используемых процессорных ядер количеством узлов сетки по широте. Реальный же максимум, с
учетом большой ширины зависимости по данным в полулагранжевой модели ограничен величиной
Nlat/4 (Nlat – число узлов сетки по широте), что для горизонтального разрешения используемой
сетки по широте порядка 20 км дает значение максимума в 288 процессоров. С учетом
использования четырех нитей OpenMP, это ограничивает число используемых процессорных ядер
величиной около 1000. Кроме того, размещение рабочих массивов отдельно для каждой нити
увеличивало необходимую для каждого параллельного MPI процесса память рабочих массивов,
что, помимо физических ограничений на вычислительную систему, затрудняло локализацию
обращений в память из заданного процессорного ядра. При высоком пространственном
разрешении при использовании уже нескольких сотен процессоров в реальной оперативной
технологии, предусматривающей вывод прогностической продукции каждый час модельного времени,
производительность модели сильно снижалась. Это было вызвано блокирующей системой
ввода-вывода, реализованной путем централизации операций чтения-записи на мастер-процессе.
3. Система параллельного ввода-вывода
3.1 Описание системы</p>
      <p>Для новой версии глобальной модели атмосферы ПЛАВ с горизонтальным разрешением
над территорией России около 20 км разработана система параллельного ввода-вывода, которая
заменила собой алгоритм взаимодействия с файловой системой, основанный на
мастерпроцессе.</p>
      <p>Разработанная система реализует возможность выполнения операций чтения-записи как
вычислительными MPI процессами, так и дополнительными (не расчетными) процессами.
Подобный подход позволяет адаптировать систему ввода-вывода под особенности конкретной
задачи. В случае относительно редкого обращения к файловой системе (запись промежуточных
результатов и контрольных точек модели) используется некоторая часть вычислительных
процессов. Далее такие вычислительные процессы мы будем называть гибридными.
Использование дополнительных процессов, основной функцией которых является выполнение не
блокирующих вычисления операций чтения и записи, становится актуальным, когда происходит
частое обращение к дисковому пространству (например, отладка программного кода или
тестирование модели). Промежуточный вариант, при котором операции ввода-вывода осуществляются
как гибридными (вычислительными), так и дополнительными процессами может применяться в
случае неоднородной вычислительной среды или в задачах с неоднородно распределенной
структурой данных.</p>
      <p>Система имеет 6 основных методов: инициализация, регистрация файла и данных в
системе, чтение и запись данных и синхронный останов. Функция инициализации имеет следующий
интерфейс:</p>
      <p>call pio % init (type, tag_rage, pio_cw, local_cw, hybrid_np_min,
hybrid_np_max, mem_tot, print_lev).
Здесь:
 type характеризует данный MPI-процесс (внешний или вычислительный);
 tag_range - целочисленный массив из двух элементов задающий пределы MPI тагов,
доступных системе;
 pio_cw и local_cw - глобальный коммуникатор системы и локальный,
соответствующий внешним или вычислительным процессам в зависимости от значения
аргумента type;
 hybrid_np_min, hybrid_np_max - минимальное и максимальное число
гибридных процессов;
 mem_tot и print_lev - общий размер доступной оперативной памяти и уровень
диагностического вывода.
Следует отметить, что процедуре инициализации системы может предшествовать операция
MPI_Comm_split, разделяющая глобальный коммуникатор на два: внешний и
вычислительный.</p>
      <p>Высокое пространственное разрешение современных численных моделей и большой объем
расчетных данных означает необходимость производить чтение и запись не только глобального
массива целиком, но и его отдельной части, которая может использоваться, например, в целях
диагностики модели. Это означает, что данные для записи или чтения могут располагаться не
на всех вычислительных узлах, а только на некоторой их части. Метод системы, ответственный
за регистрацию массива данных имеет интерфейс, представленный ниже:</p>
      <p>call pio % data_push (id, name, data, data_dim_range, save_dim_range,
mem_use).
Здесь:
 id - уникальный идентификатор регистрируемых данных;
 name - идентификатор данных в файле;
 data - многомерный массив данных (двойной или одинарной точности);
 data_dim_range - массив, содержащий информацию о локальных пределах массива
data (уникальных для данного MPI-процесса и дополнительных, которые могут
использоваться в расчетном комплексе для вычисления производных, например);
 save_dim_range - массив, включающий глобальные пределы массива в файле;
 mem_use - ориентировочный объем оперативной памяти на момент выполнения
операций чтения-записи с регистрируемым массивом данных (необязательный аргумент).
Важной особенностью разработанной системы ввода-вывода является динамическая
адаптация числа ответственных за работу с файловой системой процессов, которая достигается за
счет использования возможностей современного языка программирования Фортрана-2003. На
рисунке 2 представлена диаграмма основных программных объектов реализованной системы.
Риc. 2. Структура разработанной системы ввода-вывода: основные объекты и методы, доступные
пользователю.
Рис. 3. Первые 4 строки матрицы M, соответствующей параллельному профилю системы
вводавывода, при котором MPI процессы 1-3 являются внешними, 4 - гибридными, а 5-8 - вычислительными.</p>
      <p>На рисунке 3 иллюстрируются первые 4 строки матрицы, соответствующей параллельному
профилю системы ввода-вывода с 3 внешними процессами, один из которых является лидером
(значение 1), а два остальных находятся в режиме ожидания (значение 4). Из 5 вычислительных
MPI процессов один является гибридным (значение 2). Таким образом, матрица M содержит
информацию о каждом MPI процессе и его взаимосвязи с другими MPI процессами. Отметим,
что остальные 4 строки матрицы, равно как и незаполненные ячейки матрицы равны нулю.</p>
      <p>
        Количество вычислительных процессов и их соответствие конкретному внешнему или
гибридному процессу определяется из условия минимизации числа пересылок и балансировки
объема передаваемых данных. Для этого каждому MPI процессу сопоставляется некоторый вес,
характеризующий объем уникальных расчетных данных этого процесса. Процедура разделения
вычислительных и гибридных узлов на заданное число групп с приблизительно равным весом
проводится на основе алгоритма, в основе которого находится метод K-дерева [
        <xref ref-type="bibr" rid="ref8">11</xref>
        ].
      </p>
      <p>Рисунок 4 иллюстрирует способ объединения локальных данных в группы для записи в
параллельном режиме для некоторой задачи с размером глобального коммуникатора 3600 MPI
процессов в случае неоднородно-распределенных данных и двумерной декомпозиции
расчетной области. На рисунке 4 слева иллюстрируется вес каждого вычислительного и гибридного
MPI процесса. На рисунке 4 справа цветом показан результат применения алгоритма
разделения процессов на группы с приблизительно равным общим весом. В данном случае отклонение
веса каждой группы от среднего по всем группам величины не превышает 8%.</p>
      <p>Каждая группа на рисунке 4 (справа) представляет собой прямоугольник (в случае
одномерной декомпозиции расчетной области это будет отрезок, а для трехмерной декомпозиции
параллелепипед). Прямоугольная (и выпуклая) структура конкатенированных данных
позволяет производить запись за одну процедуру без использования условных операторов.</p>
      <p>Методы системы ввода-вывода, ответственные за регистрацию файла, чтение и запись
данных, имеют простой интерфейс:
call pio % file_push(name, create, nrec),
call pio % data_read(filename, id, recn).
Рис. 4. Слева: вес каждого вычислительного и гибридного MPI процесса (общим числом 3600) в
случае двумерной декомпозиции расчетной области. Права: цветом иллюстрируются те же MPI
процессы, объединенные в 12 групп.
3.2 Параллельный ввод/вывод в системе подготовки данных</p>
      <p>
        Описываемая система параллельного ввода/вывода была также применена для организации
чтения и записи в разрабатываемой перспективной системе подготовки начальных данных для
модели ПЛАВ на основе Локального Ансамблевого Фильтра Калмана с преобразованием
Ансамбля [
        <xref ref-type="bibr" rid="ref9">12</xref>
        ]. Это позволило несколько изменить организацию вычислений в параллельной
программе, что в свою очередь привело к экономии задействованной памяти, увеличению
масштабируемости, возможности применения двумерной декомпозиции расчётной области для
вычислений с помощью MPI и улучшению балансировки загрузки вычислительных ресурсов.
      </p>
      <p>
        Оригинальный алгоритм LETKF описан в [
        <xref ref-type="bibr" rid="ref10">13</xref>
        ]. Ключевым достоинством этого метода
подготовки данных для прогностических моделей является полная независимость производимых
операций в каждой точке модельного пространства от операций в остальных точках. Этот факт
обуславливает возможность эффективного применения распараллеливания алгоритма по
данным. Максимально возможное используемое для вычислений количество MPI процессов
составляет произведение узлов горизонтальной сетки на количество уровней. Отсутствующий до
недавнего времени параллельный ввод/вывод данных мешал эффективному применению этих
вычислительных ресурсов для получения результата.
      </p>
      <p>Параллельный ввод/вывод позволяет производить декомпозицию расчётной области на
широтно-долготные прямоугольники ещё до начала этапа чтения полей прогнозов и получать
свою порцию начальных данных каждым MPI процессом. Все дальнейшие вычисления и
операции, включая запись полученных результатов в файлы, совершаются независимо от других
MPI процессов. Таким образом, работа параллельной программы происходит без
использования буферных массивов, необходимых для чтения и записи при последовательном
вводе/выводе, что при максимальном разрешении модели атмосферы ПЛАВ 1600х866х51 для
ансамбля из 40 прогнозов при 5 прогностических переменных способно сэкономить порядка 103
Гб памяти суммарно на всех используемых вычислительных узлах. Кроме того, все
производимые операции не требуют барьеров и синхронизаций.</p>
      <p>Для достижения оптимального баланса нагрузки на вычислительные узлы следует
применять неравномерное распределение размеров широтно-долготных прямоугольников,
обрабатываемых каждым MPI процессом. Общее количество получаемых данных различно из-за
неравномерного распределения используемых в усвоении данных метеорологических наблюдений.
Максимальное их количество имеется над Европой, Северной Америкой и некоторыми
районами Азии. Практически полностью отсутствуют наблюдения над значительными частями
мирового океана и в Антарктиде. Поэтому более насыщенные наблюдениями области должны
быть меньшего размера, чем те, в которых количество наблюдений мало.</p>
      <p>Сочетание оптимального разбиения размеров вычислительных подобластей и полностью
параллельной работы программы ведут к увеличению масштабируемости. Таким образом, рост
количества используемых вычислительных ресурсов будет приводить к пропорциональному
уменьшению времени работы программы, что особенно важно в условиях возрастающего
разрешения используемых полей и ограниченного времени, выделяющегося на работу
оперативных версий приложений.
4. Повышение масштабируемости кода модели ПЛАВ</p>
      <p>
        Программный комплекс полулагранжевой модели атмосферы ПЛАВ [
        <xref ref-type="bibr" rid="ref7">2, 10</xref>
        ] состоит из
блока решения уравнений динамики атмосферы и набора параметризаций процессов
подсеточного масштаба. В настоящее время общий объем кода с комментариями превысил 100000
строк. В свою очередь, в блоке решения уравнений динамики выделяются явные вычисления в
сеточном пространстве, с заметным шаблоном зависимости по данным по горизонтали, а также
вычисления в пространстве коэффициентов Фурье по долготе. В этом блоке имеются
рекурсивные зависимости по широте, однако по волновым числам (по долготе) и по вертикальной
координате зависимостей не имеется. В наборе параметризаций процессов подсеточного масштаба
(солнечная радиация, вертикальная диффузия и пр.) расчеты ведутся независимо для любых
точек горизонтальной сетке, однако во многих параметризациях имеются рекурсивные
зависимости по вертикали.
Для разных блоков применяются различные подходы. В блоке явных вычислений
динамики и наборе параметризаций процессов подсеточного масштаба, почти все программные
модули были ранее организованы так, чтобы обрабатывать весь круг широты (при фиксированной
широте). Такая организация вычислений была естественной для одномерной декомпозиции
расчетной области по широте. Теперь все программные модули в указанных блоках
организованы так, чтобы они могли обрабатывать произвольную часть круга широты. Для каждого
процесса MPI организован цикл по нитям OpenMP, который является внешним по отношению к
существующему циклу по широте. Каждая нить обрабатывает свою полосу долгот. Данная
организация вычислений представлена на рисунке 5 (слева).
      </p>
      <p>Для блока, выполняющего вычисления в пространстве коэффициентов Фурье по долготе
(решения эллиптического уравнения, восстановление компонент скорости), дополнительно к
распараллеливанию по полосе волновых чисел, обрабатываемой каждым MPI процессом
независимо, ранее было реализовано распараллеливание по OpenMP по тем же полосам. Это также
ограничивало максимально возможное количество используемых процессорных ядер. Чтобы
повысить количество используемых процессорных нитей, вместо дополнительного
распараллеливания цикла по волновым числам, OpenMP применяется теперь для распараллеливания
циклов по вертикальной координате (рисунок 5, справа).</p>
      <p>Рис. 5. Слева: распараллеливание по долготе в вычислениях «явной динамики» в случае 4 нитей
OpenMP. Справа: распараллеливание по вертикальной координате в вычислениях в пространстве
коэффициентов Фурье в случае 4 нитей OpenMP. Разные цвета соответствуют разным нитям OpenMP.
Выполнение данных работ уменьшило необходимый объем рабочих массивов, особенно
заметный в блоке параметризаций процессов подсеточного масштаба. В этом блоке рабочие
массивы для каждого MPI процесса ранее имели примерный объем Nlon x Nlev x Nopenmp x 100
(значения в современной версии модели: количество узлов сетки по долготе Nlon= 1600,
количество уровней по вертикали Nlev=51). Теперь же независимо от количества нитей OpenMP
этот объем составляет Nlon x Nlev x 100. Экономия достигнута и в других блоках модели,
однако в блоке «явной» динамики объем рабочих массивов в несколько раз меньше, а в блоке
вычислений в пространстве коэффициентов Фурье – еще в несколько раз меньше, чем в блоке
«явной» динамики.</p>
      <p>После реализации данных изменений в коде, модель была проверена на численном
среднесрочном прогнозе погоды. Ошибки прогноза практически не изменились. Теперь программный
комплекс модели может использовать как минимум 16 нитей OpenMP на один MPI процесс на
тех же вычислительных узлах.
5. Оптимизация использования памяти в модели</p>
      <p>Представленные в предыдущем разделе работы по повышению максимального количества
используемых процессоров замедляют выполнение программы примерно в 2 раза при
использовании четырех нитей OpenMP. Как и следовало ожидать, если не использовать OpenMP,
скорость расчета по исходному и модифицированному коду совпадают. Причиной является
неоптимальный доступ к данным. Действительно, исходный код модели на языке Фортран имел
расположение индексов в глобальных массивах (все долготы, все вертикальные уровни,
широты для данного MPI-процесса), а в локальных массивах блоках «явной» динамики и
параметризаций - (все долготы, все вертикальные уровни). Таким образом, при вызове любой из
программных процедур этих блоков при реализации описанного в предыдущем разделе
распараллеливания OpenMP по долготе осуществлялось копирование переменных, описывающих
состояние атмосферы на текущем шаге по времени, в подмассив размерности
(долгота1:долгота2, все вертикальные уровни) из глобального массива с упомянутой размерностью.
Такое копирование должно осуществляться одновременно для каждой нити OpenMP (см.
рисунок 4). Учитывая организацию памяти, все нити будут одновременно обращаться в маленький
блок памяти, что и объясняет полученное замедление кода.</p>
      <p>Для оптимизации доступа в память порядок индексов в глобальных массивах изменен на
(все вертикальные уровни, вся долготы, широты для данного MPI процесса). В части
программных модулей (примерно 30 % от общего объема строк) изменен порядок индексов в
локальных массивах, так, что внутренний векторизуемый цикл реализован по вертикальной
координате. Изменены только модули, в которых циклы по вертикальной координате не имеют
зависимостей и могут быть векторизованы. Таким образом, выполненные изменения не должны
ухудшить хорошую векторизуемость исходного кода.</p>
      <p>Выполненные изменения означают, что при вызове любой расчетной процедуры порции
глобальных массивов передаются по адресу непосредственно, и неявное (либо явное)
копирование в промежуточный массив не требуется. Изменение порядка индексов также позволило
локализовать доступ память для данной нити OpenMP.</p>
      <p>Блок параметризаций процессов подсеточного масштаба с такой организацией массивов
был затем подключен к модели и успешно проверен на совпадение результатов модельных
среднесрочных прогнозов погоды. В настоящее время проводится тестирование
масштабируемости усовершенствованного программного комплекса модели.</p>
      <p>Отметим, что в ранней версии модели ПЛАВ, при вертикальной размерности равной 28,
векторизация по вертикали особого смысла не имела. В современной версии модели 51 уровень
по вертикали, в ближайшие несколько лет планируется повысить количество уровней по
вертикали до 90-100.
6. Выводы</p>
      <p>Разработанная система параллельного ввода-вывода позволяет снизить время расчета
оперативного прогноза погоды высокого разрешения с помощью модели атмосферы ПЛАВ при
частой записи выходной прогностической продукции. Это достигнуто за счет выделения
отдельных процессоров для обработки операций ввода-вывода и сжатия записываемой
информации.</p>
      <p>Применение разработанной системы параллельного ввода-вывода позволило также
увеличить количество эффективно используемых вычислительных ядер при решении задачи
подготовки начальных данных для модели атмосферы ПЛАВ, уменьшив при этом количество
требуемой приложению памяти. За счёт этого для получения более качественных начальных
данных можно использовать такие опции и параметры системы усвоения, которые требуют
больших вычислительных затрат.</p>
      <p>В ходе работ в блоках «явной» динамики модели ПЛАВ реализовано распараллеливание с
помощью OpenMP по долготе, а для блока, выполняющего вычисления в пространстве
коэффициентов Фурье по долготе (решения эллиптического уравнения, восстановление компонент
скорости) - по вертикальной координате.
Таким образом, модифицированный программный комплекс полулагранжевой модели
атмосферы ПЛАВ при данном разрешении 20-25 км теперь способен использовать вместо
четырех нитей OpenMP максимально возможное количество нитей, определяемое архитектурой
используемой вычислительной платформы. На данный момент проверена работа программного
комплекса при количестве нитей 16. Максимально возможное число эффективно используемых
процессов MPI пока что не изменилось и составляет 288 для размерности по широте 865. Это
означает потенциальное повышение масштабируемости всего программного комплекса модели
ПЛАВ при данном разрешении с 1000 до 4000 ядер.</p>
      <p>В дальнейшем предполагается выполнить работы по замене прямого солвера
эллиптического уравнения типа Гельмгольца на итерационный, и реализовать двумерную декомпозицию
расчетной области. Это позволит повысить как минимум на порядок количество используемых
процессов MPI.
Литература
Parallel program complex for numerical weather prediction and
climate modeling
Mikhail Tolstykh, Rostislav Fadeev and Vassily Mizyak
Keywords: Parallel implementation of the global atmosphere model, Global atmosphere
model, Numerical weather prediction, Climate changes modelling
The global atmosphere SL-AV model (Semi-Lagrangian, based on Absolute Vorticity
equation) has been introduced into the operational practice at Hydrometeorological center of
Russia in 2010. This allowed to reduce considerably the gap between Russia and the leading
group of world prediction centers in medium-range weather forecasts. The new version of the
SL-AV model is developed. This version has the horizontal resolution about 20 km over the
Russia territory for numerical weather prediction, and it can be applied to the atmosphere
forecast at time scales about ten days. This version is certified by Roshydromet recently. The
same model version having coarser resolution is validated with a problem of climate change
modelling using the AMIP2 protocol.</p>
      <p>The program complex of the SL-AV model new version uses a combination of MPI and
OpenMP parallel programming technologies and currently scales up to 1700 cores. To
increase the file system efficiency, the parallel input-output system is developed that can be
connected as a separate parallel program component. It can use if necessary some computing
nodes for input/output operations. The parallel input-output system is introduced into the
SLAV model and observations data assimilation system based on the ensemble Kalman filter.
Overall system performance is shown with the examples of numerical atmosphere modelling
in various modes.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Staniforth</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Côté</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Semi-Lagrangian integration schemes for atmospheric models</article-title>
          .
          <source>A review // Mon. Weather Rev</source>
          .
          <year>1991</year>
          . V. 119. P.
          <volume>2206</volume>
          -
          <fpage>2223</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          3.
          <string-name>
            <surname>De Troch R</surname>
          </string-name>
          ., Hamdi R., van de Vyver H.,
          <string-name>
            <surname>Geleyn</surname>
            <given-names>J.-F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Termonia</surname>
            <given-names>P.</given-names>
          </string-name>
          <article-title>Multiscale Performance of the ALARO-0 Model for Simulating Extreme Summer Precipitation</article-title>
          Climatology in Belgium // J. Climate.
          <year>2013</year>
          . V. 26 P.
          <fpage>8895</fpage>
          -
          <lpage>8915</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          4.
          <string-name>
            <surname>Geleyn J.-F.</surname>
          </string-name>
          ,
          <string-name>
            <surname>Bazile</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bougeault</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deque</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ivanovici</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Joly</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Labbe</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piedelievre</surname>
            <given-names>J.-P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piriou J.-M.</surname>
          </string-name>
          ,
          <string-name>
            <surname>Royer J.-F</surname>
          </string-name>
          .
          <article-title>Atmospheric parameterization schemes in Meteo-France's ARPEGE N</article-title>
          .W.P. model // Parameterization of subgrid
          <article-title>-scale physical processes, ECMWF Seminar proceedings</article-title>
          . - Reading, UK:
          <year>1994</year>
          . P.
          <volume>385</volume>
          -
          <fpage>402</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          7.
          <string-name>
            <surname>Tarasova</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fomin</surname>
            <given-names>B.</given-names>
          </string-name>
          <article-title>The Use of New Parameterizations for Gaseous Absorption in the CLIRAD-SW Solar Radiation Code for Models /</article-title>
          / J. Atmos. and
          <string-name>
            <given-names>Oceanic</given-names>
            <surname>Technology</surname>
          </string-name>
          .
          <year>2007</year>
          . V.
          <volume>24</volume>
          , № 6. P.
          <volume>1157</volume>
          -
          <fpage>1162</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          8.
          <string-name>
            <surname>Mlawer</surname>
            <given-names>E.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taubman</surname>
            <given-names>S.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brown</surname>
            <given-names>P.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iacono</surname>
            <given-names>M.J.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Clough S</surname>
          </string-name>
          .A.:
          <article-title>RRTM, a validated correlated-k model for the longwave</article-title>
          radiation// J. Geophys. Res.
          <year>1997</year>
          . V. 102, N
          <volume>16</volume>
          ,
          <fpage>663</fpage>
          -
          <lpage>16</lpage>
          ,
          <fpage>682</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          9.
          <string-name>
            <surname>Tolstykh</surname>
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shashkin</surname>
            <given-names>V.V.</given-names>
          </string-name>
          <article-title>Vorticity-divergence mass-conserving semi-Lagrangian shallowwater model using the reduced grid on the sphere /</article-title>
          <source>/ J. Comput. Phys</source>
          .
          <year>2012</year>
          . V. 231. P.
          <volume>4205</volume>
          -
          <fpage>4233</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          10.
          <string-name>
            <surname>Толстых</surname>
            <given-names>М.А.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Мизяк</surname>
            <given-names>В</given-names>
          </string-name>
          .Г.
          <article-title>Параллельная версия полулагранжевой модели ПЛАВ с горизон- тальным разрешением порядка 20 км</article-title>
          . // Труды Гидрометеорологического научно- исследовательского
          <source>центра Российской Федерации</source>
          .
          <year>2011</year>
          , вып. 346. C.
          <volume>181</volume>
          -
          <fpage>190</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          11.
          <string-name>
            <surname>Bentley</surname>
            <given-names>J.I.</given-names>
          </string-name>
          <article-title>Multidimensional divide</article-title>
          and conquer // Communications of the ACM.
          <year>1980</year>
          .
          <article-title>V 23, N 4</article-title>
          . P 4-229.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          12.
          <string-name>
            <surname>Shlyaeva</surname>
            <given-names>A.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tolstykh</surname>
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mizyak</surname>
            <given-names>V.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rogutov</surname>
            <given-names>V.S.</given-names>
          </string-name>
          <article-title>Local ensemble transform Kalman filter data assimilation system for the global semi-Lagrangian atmospheric model // Russ</article-title>
          . J.
          <string-name>
            <surname>Num</surname>
          </string-name>
          . An. &amp; Math. Mod.
          <year>2013</year>
          .
          <article-title>V 28, N 4</article-title>
          . P 419-441.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          13.
          <string-name>
            <surname>Hunt</surname>
            <given-names>B.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kostelich</surname>
            <given-names>E.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szunyogh</surname>
            <given-names>I</given-names>
          </string-name>
          .
          <article-title>Efficient data assimilation for spatiotemporal chaos: A local ensemble transform Kalman filter</article-title>
          // Physica D: Nonlinear Phenomena,
          <year>2007</year>
          . V.
          <volume>230</volume>
          (
          <issue>1</issue>
          -
          <fpage>2</fpage>
          ). P.
          <volume>112</volume>
          -
          <fpage>126</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>