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

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

ЖУРНАЛ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И МАТЕМАТИЧЕСКОЙ ФИЗИКИ, 2013, том 53, № 8, с. 1360-1373

УДК 519.634

АДАПТАЦИЯ И ОПТИМИЗАЦИЯ БАЗОВЫХ ОПЕРАЦИЙ

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

© 2013 г. П. Б. Богданов*, А. В. Горобец**, С. А. Суков**

(*117218Москва, Нахимовский пр-т, 3Б, к. 1, НИИСИРАН;

**125047Москва, Миусская пл., 4, ИПМРАН) e-mail: bogdanov@niisi.msk.ru, andrey.gorobets@gmail.com, office@keldysh.ru Поступила в редакцию 11.02.2013 г.

Переработанный вариант 13.03.2013 г.

Статья посвящена созданию эффективных алгоритмов для крупномасштабных расчетов задач газовой динамики на гибридных (гетерогенных) вычислительных системах, высокая производительность которых обусловлена применением массивно-параллельных ускорителей. Рассматривается конечно-объемный алгоритм для моделирования сжимаемых течений в областях сложной геометрии с использованием численной схемы повышенного порядка аппроксимации на основе полиномиальной реконструкции на неструктурированных гибридных сетках. Подробно описывается реализация базовых операций алгоритма для массивно-параллельных ускорителей, включающих в себя, в частности, графические процессоры GPU (Graphics processing units) производства AMD и NVIDIA. Описаны основные оптимизационные подходы и методика переноса вычислений. В качестве средства разработки используется открытый вычислительный стандарт OpenCL (Open computing language), позволяющий задействовать ускорители различных архитектур, как существующих, так и перспективных. Библ. 15. Фиг. 4. Табл. 4.

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

DOI: 10.7868/S0044466913080048

1. ВВЕДЕНИЕ

В настоящее время рост производительности суперкомпьютеров происходит как за счет увеличения числа вычислительных модулей, так и за счет применения массивно-параллельных ускорителей. Первое обстоятельство требует от алгоритмов все большей степени параллелизма и масштабируемости, второе — адаптации алгоритмов к иной архитектуре и еще более сложной параллельной модели, сочетающей принципиально различные типы параллелизма MIMD (Multiple instruction multiple data) и SIMD (Single instruction multiple data). Такая тенденция, связанная со значительным изменением и усложнением архитектур вычислительных систем, приводит к необходимости существенной переработки численных алгоритмов и их реализаций.

Среди самых мощных суперкомпьютеров мира уже можно видеть несколько систем гибридной архитектуры, таких как Cray Titan (GPU NVIDIA Kepler); Tianhe-IA, Nebulae, TSUBAME 2.0 (GPU NVIDIA Fermi); а также Intel Stampede на основе ускорителей Xeon Phi архитектуры MIC (Many integrated cores). Гибридные вычисления с использованием массивно-параллельных ускорителей в качестве математических сопроцессоров сами по себе являются достаточно новой областью, появившейся всего несколько лет назад. Средства программирования и технологии вычислений находятся в настоящее время в активном развитии, постоянно дополняется функциональность и возможности интерфейсов программирования CUDA и OpenCL.

1) Работа выполнена при финансовой поддержке РФФИ (коды проектов 12-01-33022, 12-01-00486) и Минобрнауки (госконтракт № 14.514.12.0003).

Перенос алгоритмов на архитектуру графических процессоров, существенно отличающуюся от архитектуры центральных процессоров, представляет собой достаточно сложную задачу. Например, в [1] рассматривается операция матрично-векторного произведения для разреженных матриц произвольной структуры, получающихся, в частности, при дискретизации на неструктурированных сетках. Эта операция является одной из основных для итерационных методов решения системы линейных алгебраических уравнений (СЛАУ), возникающих в задачах с неструктурированной дискретизацией расчетной области. Комплексные оптимизационные подходы, продемонстрированные для такой, по сути, простой операции, дают представление о сложности работы с графическими процессорами. Из результатов, представленных в [2] для различных разреженных матриц, можно сделать вывод, что даже высокооптимизированные реализации могут получить лишь несколько процентов от пиковой производительности GPU-устройств на таких операциях с низкой удельной вычислительной стоимостью на единицу данных и с нерегулярным доступом к памяти.

Несмотря на это, GPU становятся все более популярными в вычислительной механике жидкости и газа (Computational fluid dynamics, CFD) и в вычислительной математике в целом. Например, в [3] представлен обзор различных численных GPU-приложений, созданных на основе программной модели CUDA. В области вычислительной газовой динамики GPU наиболее широко используются в расчетах на основе методов решеточных уравнений Больцмана (Lattice Boltzmann metods, LBM). Примеры таких LBM-алгоритмов представлены во многих работах, в том числе в [4]—[6]. Присущая этим методам "явность" и простота структуры данных хорошо соответствуют архитектуре GPU.

Пример CFD-алгоритма на основе конечно-разностного метода для расчетов на множестве ускорителей с использованием средств МР (Message passing interface) и CUDA представлен в [7]. Авторами получена достаточно высокая производительность и параллельная эффективность на сравнительно большом числе GPU. Другой мульти-GPU-алгоритм для структурированных сеток (см. [8]) также демонстрирует существенные преимущества от использования ускорителей. Однако во всех перечисленных работах вычисления реализованы на CUDA для GPU производства NVIDIA, что не позволяет использовать другие архитектуры ускорителей, такие как GPU производства AMD или Intel Xeon Phi архитектуры MIC (Many integrated core).

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

Исходный параллельный алгоритм для CPU (Central processing unit) имеет двухуровневое распараллеливание, адаптированное к суперкомпьютерной архитектуре с многоядерными процессорами, и рассчитан на использование десятков тысяч процессорных ядер. На первом уровне используется MPI для объединения узлов в рамках модели с распределенной памятью, на втором уровне применяется OpenMP (Open multiprocessing) в рамках модели с общей памятью для распараллеливания по процессорным ядрам.

Работа посвящена переносу и адаптации базовых операций, составляющих представленный алгоритм, под архитектуру массивно-параллельных ускорителей, которые задействуются на третьем уровне параллельной модели посредством OpenCL. Для алгоритмических операций выполнено подробное исследование по оптимизации вычислений на архитектурах ускорителей AMD и NVIDIA. Представлены две наиболее вычислительно емкие и сложные с точки зрения реализации на GPU операции — определение коэффициентов полиномиальной реконструкции и расчет потоков через грани контрольных объемов. Подробно описаны особенности программной реализации и подходы к повышению производительности вычислений. При этом данная статья сосредоточена только на вычислительной оптимизации и не затрагивает построение коммуникационной схемы для MPI и CPU-GPU-обменов с перекрытием вычислений и передачи данных. Это отдельная достаточно сложная задача, которая будет представлена в дальнейших публикациях.

Далее статья организована следующим образом. В разд. 2 описывается лежащая в основе математическая модель, пространственная дискретизация и численный метод. Затем в разд. 3 описывается реализация алгоритмических операций для архитектуры GPU-ускорителей. Полученные показатели производительности на GPU NVIDIA и AMD представлены в разд. 4. В заключение в разд. 5 резюмируются основные результаты работы.

2. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ И ЧИСЛЕННАЯ РЕАЛИЗАЦИЯ

В данном разделе приводится формулировка численного алгоритма моделирования задач газовой динамики на неструктурированных сетках, на примере которого будут исследоваться проблемы повышения эффективности вычислений на GPU.

2.1. Математическая модель

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

dQ + dFt (Q) + dF2(Q) + д F 3 ( Q ) = Q,

д t дх dy dz

(1)

где 0 = (р, pu, ру, р^, E)T — вектор консервативных газодинамических переменных. Конвективные потоки Р^О), Р2(0) и Р3(0) определяются следующим образом:

(

Fi ( Q) =

р и

2

ри + p р и v р uw V и (E + p) J

F2 (Q) =

(

Pv р и v

рv2 + p р v w V v( E + p)

i

F3 (Q) =

рw р uw

р vw

2

рw + p

V w(E + p) J

(2)

В качестве начальных условий задачи во всех ячейках сетки задаются одинаковые значения консервативных газодинамических переменных, соответствующие параметрам невозмущенного потока

В формуле (2) введены обозначения: и = (и, у, w) — декартовы компоненты скорости, р, p — плотность и давление, E = р(и2 + у2 + w2)/2 + рб — полная энергия, б — внутренняя энергия. Система уравнений (1)—(2) замыкается уравнением состояния идеального газа p = рб(у — 1), где у есть показатель адиабаты.

2.2. Пространственная дискретизация и численный метод

В рамках метода конечного объема расчетная область задачи разбивается на ячейки, которые в данном случае могут быть эквивалентны одному из четырех типов многогранников: тетраэдр, шестигранник, четырехугольная пирамида или треугольная призма (фиг. 1а). Внутри полученной в результате неструктурированной гибридной сетки вводится сквозная индексация элементов. Каждый из NE элементов сетки однозначно определяется своим уникальным индексом II, принадлежащим числовому отрезку [0; NE — 1]. Далее введем ряд обозначений для необходимых в расчетах геометрических параметров ячеек и их гр

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

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