Научная статья на тему 'Решение уравнения адвекции модифицированным полулагранжевым методом с использованием технологий CUDA и OpenMP'

Решение уравнения адвекции модифицированным полулагранжевым методом с использованием технологий CUDA и OpenMP Текст научной статьи по специальности «Математика»

CC BY
92
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
УРАВНЕНИЕ АДВЕКЦИИ / ПОЛУЛАГРАНЖЕВЫЙ МЕТОД / CUDA / OPENMP / HPC / ADVECTION EQUATIONS / SEMI-LAGRANGIAN METHOD

Аннотация научной статьи по математике, автор научной работы — Вяткин А. В., Ефремов А. А., Карепова Е. Д.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOLVING ADVECTION EQUATION BY MODIFICATION OF SEMI-LAGRANGIAN METHOD USING CUDA AND OPENMP TECHNOLOGIES

We consider NVIDIA CUDA и OpenMP parallel programming technologies applying to a model problem for complex natural phenomena including a space science and technology. The paper describes a relation between effectiveness of parallel algorithm and the specific features of the architecture of a computation system which implements the aforesaid algorithm.

Текст научной работы на тему «Решение уравнения адвекции модифицированным полулагранжевым методом с использованием технологий CUDA и OpenMP»

Решетнеескцие чтения. 2015

УДК 519.63

РЕШЕНИЕ УРАВНЕНИЯ АДВЕКЦИИ МОДИФИЦИРОВАННЫМ ПОЛУЛАГРАНЖЕВЫМ МЕТОДОМ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ CUDA И OpenMP*

А. В. Вяткин1'2, А. А. Ефремов1, Е. Д. Карепова12**

1Институт вычислительного моделирования СО РАН Российская Федерация, 660036, г. Красноярск, Академгородок, 50/44

2Сибирский федеральный университет Российская Федерация, 660041, г. Красноярск, просп. Свободный, 79 E-mail: "[email protected]

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

Ключевые слова: уравнение адвекции, полулагранжевый метод, CUDA, OpenMP, HPC.

SOLVING ADVECTION EQUATION BY MODIFICATION OF SEMI-LAGRANGIAN METHOD

USING CUDA AND OPENMP TECHNOLOGIES

A. V. Vyatkin1,2, А. А. Efremov1, E. D. Karepova1,2**

institute of Computational Modeling SB RAS 50/44, Akademgorodok, Krasnoyarsk, 660036, Russian Federation 2Siberian Federal University 79, Svobodny Av., Krasnoyarsk, 660041, Russian Federation E-mail: **[email protected]

We consider NVIDIA CUDA и OpenMP parallel programming technologies applying to a model problem for complex natural phenomena including a space science and technology. The paper describes a relation between effectiveness of parallel algorithm and the specific features of the architecture of a computation system which implements the aforesaid algorithm.

Keywords: advection equations, semi-Lagrangian method, CUDA, OpenMP, HPC.

Для решения гиперболических задач активно используется семейство полулагранжевых методов [1]. Алгоритмы, получаемые на их основе, являются, как правило, вычислительно- и ресурсоемкими, при этом обладают высоким потенциалом распараллеливания по данным.

В наших экспериментах в качестве модельной задачи рассмотрено двумерное уравнение адвекции

дТ + ^= *» в области (,, х,у) е (0,7) х

дt дх ду

х (0,1) х (0,1) относительно неизвестной функции р(4 х ,у). Здесь U(u(t, х, у), у^, х, у)) - вектор скорости, удовлетворяющий условиям прилипания

х, у)|у=0 = Щ, х,у)|у=1 = 0 Vt е [0,7], Ух е [0,1],

более того и^, 0, у) > 0, у^, 1, у) > 0, Vt е [0,7], Уу е [0,1]; х, у) - известная достаточно гладкая [0,7]х(0,1)х(0,1) функция. В области поставлены следующие начальные и граничные условия: р(0, х, у) = = рих, у) У(х, у) е [0,1]х[0,1], р^, 0, у) = ^ у) у) е [0,7]х[0,1]. Подробное описание дифференциальной задачи, численной схемы и последовательного алгоритма приведено в [2].

Алгоритм 1 (для GPU):

1. Выделить память для хранения результатов на CPU и GPU. Скопировать начальные данные с CPU на GPU.

2. Для каждого временного слоя к = 1, 3, 5, ..., к-1:

2.1. Обновить значения на предыдущем временном слое tk-i и текущем временном слое tk.

2.2. Вызвать вычислительное ядро CUDA.

2.3. Обновить значения предыдущего временного слоя tk-i и текущего слоя tk.

2.4. Вызвать вычислительное ядро CUDA.

3. Скопировать результаты вычислений с GPU на CPU.

Шаги 3.1, 3.3 алгоритма являются шагами интегрирования по пространству, описанными в [2]. Способ реализации интегрирования значительно влияет на общую производительность вычислений, связанную с архитектурой GPU [3]:

1. Нехватка регистровой памяти. Ввиду большой вложенности вычислительных функций наблюдается

*

Работа выполнена при финансовой поддержке РФФИ (проект № 14-01-00296, проект № 14-01-31203).

Прикладная математика

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

2. Уменьшение количества активных потоков. Количество активных вычислительных потоков на GPU напрямую зависит от объема доступной регистровой и константной памяти. При использовании большого количества регистров неизбежно уменьшается количество активных потоков, что снижает количество параллельных операций в вычислительном ядре CUDA.

References

1. LeVeque R. Finite Volume Methods for Hyperbolic Problems (Cambridge Texts in Applied Mathematics). Cambridge : Cambridge University Press, 2002. 580 p.

2. Efremov A., Karepova E., Shaydurov V., Vyatkin A. A Computational Realization of a Semi-Lagrangian Method for Solving the Advection Equation // Journal of Applied Mathematics. 2014, doi:10.1155/2014/610398.

3. CUDA C Best Practices Guide, v6.0, last updated February 13, 2014. URL: http://docs.nvidia.com/cuda/ cuda-c-best-practices-guide/index.html#abstract.

4. Shaydurov V., Vyatkin A. The Semi-Lagrangian Algorithm Based on an Integral Transformation //

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

После анализа проблем изменен подход к вычислению интеграла по пространству [4; 5], что позволило резко увеличить эффективность алгоритма для GPU. Заметим, что поскольку архитектура CPU нечувствительна к особенностям шага интегрирования, то обе ОрепМР-версии алгоритма имеют одинаковое ускорение (см. таблицу).

AIP Conference Proceedings. 2015. Vol. 1648. Doi: 10.1063/1.4913096.

5. Vyatkin A. V., Shaydurov V. V. Integral semi-Lagrangian approach for two-dimensional continuity equation // Mezhdunarodnaja konferencija matematicheskie i informacionnye tehnologii, MIT-2013 [International Conference on mathematical and informational technologies, MIT-2013]; Zbornik radova konferencije MIT-2013. University of Pristina, 2014, pp. 739-745.

© Вяткин А. В., Ефремов А. А., Карепова Е. Д., 2015

Ускорения параллельных версий для различных размеров сеток

NxN 160x160 320x320 640x640 1280x1280 2560x2560

OpenMP вер. [1] 6,50 7,47 8,20 7,50 7,98

OpenMP вер. [2] 7,64 7,78 7,89 7,83 7,86

CUDA вер. [1] 0,83 0,88 1,30 1,38 1,32

CUDA вер. [2] 29,62 35,03 38,54 40,15 40,19

УДК 519.63

ДВА АЛГОРИТМА ИЗ СЕМЕЙСТВА ПОЛУЛАГРАНЖЕВЫХ МЕТОДОВ*

А. В. Вяткин

Институт вычислительного моделирования СО РАН Российская Федерация, 660036, г. Красноярск, Академгородок, 50/44 E-mail: [email protected]

Представлены два алгоритма для численного решения трехмерного уравнения неразрывности. Исследуемые методы могут быть использованы при численном моделировании обтекания объекта воздушным потоком.

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

TWO ALGORITHMS FROM THE FAMILY OF SEMI-LAGRANGIAN METHODS

A. V. Vyatkin

Institute of Computational Modeling SB RAS 50/44, Akademgorodok, Krasnoyarsk, 660036, Russian Federation E-mail: [email protected]

*

Работа выполнена при финансовой поддержке РФФИ, грант № 14-01-31203.

i Надоели баннеры? Вы всегда можете отключить рекламу.