научная статья по теме ПАРАЛЛЕЛЬНАЯ ТЕХНОЛОГИЯ ЧИСЛЕННОГО МОДЕЛИРОВАНИЯ ЗАДАЧ ГАЗОВОЙ ДИНАМИКИ АЛГОРИТМАМИ ПОВЫШЕННОЙ ТОЧНОСТИ Математика

Текст научной статьи на тему «ПАРАЛЛЕЛЬНАЯ ТЕХНОЛОГИЯ ЧИСЛЕННОГО МОДЕЛИРОВАНИЯ ЗАДАЧ ГАЗОВОЙ ДИНАМИКИ АЛГОРИТМАМИ ПОВЫШЕННОЙ ТОЧНОСТИ»

ЖУРНАЛ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И МАТЕМАТИЧЕСКОЙ ФИЗИКИ, 2015, том 55, M 4, с. 641-652

УДК 519.673

ТЕХНОЛОГИЯ ЧИСЛЕННОГО МОДЕЛИРОВАНИЯ ГАЗОВОЙ ДИНАМИКИ АЛГОРИТМАМИ ПОВЫШЕННОЙ ТОЧНОСТИ1)

© 2015 г. А. В. Горобец

(125047Москва, Миусская пл., 4, ИПМ) e-mail: cherepock@gmail.com Поступила в редакцию 17.11.2014 г.

Представлена технология параллельных вычислений для моделирования задач газовой динамики конечно-объемными и конечно-разностными методами повышенной точности. Рассматривается разработка алгоритма, проектирование программной реализации, создание параллельных программ для расчетов на крупных вычислительных системах. Представленная технология параллельных вычислений основывается на многоуровневой параллельной модели, сочетающей различные типы параллелизма: с общей и распределенной памятью, с множественными и одиночными потоками команд на множественные потоки данных. Библ. 29. Фиг. 4.

Ключевые слова: вычислительная газовая динамика, параллельные вычисления, MPI, Open-MP, OpenCL, GPU, программирование.

DOI: 10.7868/S0044466915040067

1. ВВЕДЕНИЕ

В настоящее время в развитии вычислительных систем сложилась неоднозначная ситуация. Производительность суперкомпьютеров за последние десять лет увеличилась в тысячу раз (Tianhe-2 33.9 PFLOPS против Earth-Simulator 35.8 GFLOPS). Но при этом выросла и сложность использования. Если раньше производительность кластерных систем росла за счет увеличения числа процессоров и повышения их тактовой частоты, то теперь тенденции более многосторонние. Само по себе увеличение числа процессоров в системе усложняет ее эффективное использование: требуются все более масштабируемые алгоритмы, изощренные схемы обменов данными, упрощение алгоритмов в пользу параллельной эффективности, но зачастую в ущерб общей вычислительной стоимости. Число ядер в крупнейших системах составляет сотни тысяч, а максимальное уже перевалило за миллион (Sequoia — IBM, USA). Естественно, лишь очень узкий класс алгоритмов может задействовать такие ресурсы, а задачи, которые такие алгоритмы могут решать, часто не оправдывают использование таких вычислительных мощностей.

С появлением многоядерных процессоров потребовался переход на более сложную двухуровневую параллельную модель. Стало обычным иметь по два 8-—12-ядерных процессора на одном вычислительном модуле. Хуже того, уже представлена архитектура CPU Intel Xeon Phi с 72 ядрами. Иметь на одном узле суперкомпьютера десятки процессов, обменивающихся с другими узлами, крайне неэффективно. Поэтому распараллеливанию с MPI (Message Passing Interface) пришло на смену MPI+OpenMP распараллеливание (OpenMP — Open Multiprocessing), сочетающее модели с распределенной и общей памятью. Также сложностей добавило то, что число ядер на узле в разы превысило число каналов памяти.

Поскольку повышение тактовой частоты процессоров достаточно давно исчерпалось, пиковая производительность процессорных ядер растет за счет совершенствования логики работы процессора, с одной стороны, и за счет расширения векторных регистров, с другой стороны. Ядро CPU с AVX (Advanced Vector Extensions) может выполнять за один такт 8 операций с плавающей точкой двойной точности. Далее в AVX-512 ширина вектора еще удвоится. Естественно, расши-

1) Pабoта выполнена при поддержке Минобрнауки РФ (соглашение № 14.604.21.0092 о предоставлении субсидии, уникальный идентификатор прикладных научных исследований RFMEFI60414X0092).

ПАРАЛЛЕЛЬНАЯ ЗАДАЧ

7

641

рение вектора усложняет эффективное использование процессора. К требованию бесконечной масштабируемости, бесконечной эффективности доступа к памяти, добавилось требование бесконечно эффективной векторизации.

Дополняет картину широкое применение массивно-параллельных ускорителей, таких как графические процессоры GPU (Graphics Processing Unit) производства AMD и NVIDIA или ускорители Intel Xeon Phi. Разрабатываются новые перспективные архитектуры, как, например, прототип Mont-Blanc на основе ARM процессоров и ускорителей (см. [1]). Зоопарк архитектур и средств разработки делают положение разработчика параллельных программ почти безнадежным, как и алчность производителей ускорителей, вводящих в заблуждение пользователей и разработчиков сомнительными примерами ускорения прикладных задач и навязывающих свои средства разработки, применимые только на их устройствах. Естественно, когда пиковая производительность становится самоцелью, в пределе будет система с бесконечной производительностью, на которой, наконец, нельзя будет посчитать абсолютно ничего.

Данная работа направлена на то, чтобы противостоять этим негативным тенденциям и разрабатывать численные алгоритмы, эффективно применимые на различных архитектурах. Для традиционных архитектур с CPU общие подходы к разработке и реализации параллельных алгоритмов широко представлены в различной учебной литературе, например, в [2], [3]. В [4] подробно представлены принципы построения MPI-параллельной программной платформы для численных моделей на сетках общего вида, описана организация универсальной структуры данных. Применительно к реберно-ориентированным конечно-объемным алгоритмам, различные способы организации вычислений на неструктурированных сетках в рамках модели с общей памятью представлены, например, в [5]. В то же время гетерогенные вычисления на системах с ускорителями являются новым, активно развивающимся направлением. Краткий обзор средств разработки и примеров их применения есть, например в [6].

В данной статье представлена технология параллельных вычислений, специфическая для моделирования задач механики сплошной среды конечно-объемными и конечно-разностными методами повышенной точности. Аппроксимация повышенной точности в рамках этих подходов подразумевает использование расширенных пространственных шаблонов, включающих, вообще говоря, переменное число ячеек. Использование неструктурированных сеток усугубляет проблему сложностью структуры данных, нерегулярным доступом к памяти. При этом низкая удельная вычислительная стоимость на единицу данных, характерная таким алгоритмам, еще более усложняет задачу эффективных параллельных вычислений.

Рассматриваемая технология представляет собой свод согласованных между собой подходов для эффективной программной реализации алгоритмов вычислительной газовой динамики для гетерогенных суперкомпьютеров. Используется многоуровневая параллельная модель, сочетающая различные типы параллелизма: с общей и распределенной памятью, с множественными и одиночными потоками команд на множественные потоки данных. Технология основана на разделении алгоритма на базовые операции и адаптации этих операций к многоуровневой параллельной модели, к потоковой обработке, к различным вычислительным архитектурам. Она рассчитана на широкий класс численных методов для моделирования задач аэродинамики, аэроакустики, тепломассопереноса.

2. ПАРАЛЛЕЛЬНАЯ МОДЕЛЬ И СРЕДСТВА РАЗРАБОТКИ 2.1. Выбор средств разработки

Для соответствия современным архитектурам суперкомпьютеров предлагается использовать гибридную многоуровневую параллельную модель, сочетающую модели с общей и распределенной памятью, параллелизм MIMD (Multiple Instruction, Multiple Data) и SIMD (Single Instruction, Multiple Data). Уровни упорядочены следующим образом: 1) распределенная память, MIMD, 2) общая память, MIMD, 3) потоковая обработка (Stream processing), SIMD, 4) векторизация, SIMD.

Параллелизм типа "потоковая обработка", упрощенная парадигма параллельного программирования, под которой понимается выполнение независимых однотипных вычислительных заданий, в полной мере соответствует архитектуре ускорителей, в частности графических процессоров. Под векторизацией понимается использование векторных регистров, требующее группировку аргументов в памяти, выравнивание по ширине вектора и т.д. В потоковой обработке аргументы могут поступать из произвольных позиций в памяти, хотя также могут иметься определенные требования к доступу к памяти, в частности слияние доступа (coalescing). Стоит

отметить, что алгоритм, записанный в рамках потоковой обработки, также хорошо подходит и для MPI и для ОреnМР распараллеливания на CPU. Таким образом, основной целью при разработке параллельного алгоритма является адаптация к потоковой обработке.

В качестве средства разработки на первом уровне, объединяющем узлы суперкомпьютера в рамках модели с распределенной памятью, наиболее широко используется интерфейс прикладного программирования MPI. Данный стандарт имеет множество реализаций, в том числе открытых, и имеется практически на всех кластерных системах. Выход нового стандарта МРЬ3.0 (см. [7]), в котором, в частности, добавлены неблокирующие групповые операции, показывает, что стандарт активно развивается. Вышесказанное делает выбор MPI достаточно очевидным и обоснованным.

На втором уровне для распараллеливания по CPU ядрам многопроцессорного узла в рамках модели с общей памятью предлагается использовать ОреnМР — открытый стандарт, поддерживаемый основными компиляторами языка C++ и Fortran. Из соображений переносимости и простоты использования ОреnМР был предпочтен Posix Threads. Кроме того, новый стандарт ОреnМР 4.0 (см. [8]) также предоставляет функционал для векторизации вычислений.

В качестве средства разработки для ускорителей был выбран открытый вычислительный стандарт OpenCL, поддерживаемый основными производителями ускорителей, в том числе GPU NVIDIA, AMD, процессоры и ускорители Intel, процессоры и ускорители архитектуры ARM. Для сложных алгоритмов, предназначенных для крупномасштабных расчетов задач механики сплошной среды на суперкомпьютерах, было бы сомнительно полагаться на CUDA и ограничивать применимость программной реализации только ускорителями GPU NVIDIA.

В дополнение, для упрощения гетерогенной реализации была выбрана модель типа "планировщик задач", которая подразумевает декомпозицию исходной задачи на составляющие операции, представление задачи в виде графа, описывающего исполнение вычислительных и коммуникационных заданий и связи между ними. В качестве такого планировщика была выбрана система (см. [9]), являющаяс

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком