Решетнеескцие чтения. 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.