ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА 2024 Управление, вычислительная техника и информатика № б7
Tomsk StateUniveraty Journalof Control and Computer Scienœ
ИНФОРМАТИКА И ПРОГРАММИРОВАНИЕ INFORMATICS AND PROGRAMMING
Научная статья
УДК 519.688
doi: 10.17223/19988605/67/10
Параллельная реализация микромасштабной модели турбулентного движения воздуха и переноса примеси с использованием технологии OpenMP
Дмитрий Викторович Лещинский1, Евгений Александрович Данилкин2, Александр Васильевич Старченко3
1, 2, 3 Национальный исследовательский Томский государственный университет, Томск, Россия 13Институт оптики атмосферы им. академика В.Е. Зуева СО РАН, Томск, Россия
1 [email protected] 2 [email protected] 3 [email protected]
Аннотация. Представлена разрабатываемая микромасштабная модель турбулентного движения воздуха и переноса пассивной газообразной примеси в уличных каньонах и городских кварталах. Для создания параллельной версии программного обеспечения данной модели предварительно на примере решения одного уравнения конвекции-диффузии были рассмотрены различные технологии параллельного программирования, такие как MPI, OpenMP, OpenACC и CUDA. Для каждой параллельной реализации оценивались ускорение, эффективность и трудоемкость применения рассматриваемой технологии. По результатам вычислительных экспериментов была выбрана наиболее подходящая для распараллеливания всей модели технология параллельного программирования - OpenMP. Результаты применения OpenMP при параллельной реализации микромасштабной модели турбулентного движения воздуха и переноса примеси показали высокую (> 60%) эффективность разработанного параллельного программного обеспечения.
Ключевые слова: технологии параллельного программирования; моделирование турбулентности; численные расчеты; вычислительные эксперименты; ускорение и эффективность.
Благодарности: Работа выполнена при поддержке Министерства науки и высшего образования РФ (№ 07502-2024-1437)
Для цитирования: Лещинский Д.В., Данилкин Е.А., Старченко А.В. Параллельная реализация микромасштабной модели турбулентного движения воздуха и переноса примеси с использованием технологии OpenMP // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2024. № 67. С. 94-105. doi: 10.17223/19988605/67/10
Original article
doi: 10.17223/19988605/67/10
Parallel implementation of microscale model of turbulent air movement and pollutant transport using OpenMP technology
Dmitriy V. Leshchinskiy1, Evgeniy A. Danilkin2, Alexander V. Starchenko3
12 3 National Research Tomsk State University, Tomsk, Russian Federation 13 V.E. Zuev Institute of Atmospheric Optics of SB RAS, Tomsk, Russian Federation
1360flip182@gmail. com
© Д.В. Лещинский, Е.А. Данилкин, А.В. Старченко, 2024
2ugin@math. tsu. ru 3starch@math. tsu.ru
Abstract. The work presents the developed microscale model of turbulent air movement and the transfer of passive gaseous pollutant in street canyons and city blocks. To parallelize this model, using the example of solving one transport equation, various parallel programming technologies were considered: MPI, OpenMP, OpenACC and CUDA. For each parallel implementation, the acceleration, efficiency and labor intensity of using the technology in question were assessed. Based on the results of computational experiments, the most suitable parallel programming technology - OpenMP for parallelizing the entire model was chosen. The results of using OpenMP in parallel implementation of a microscale model of turbulent air movement and pollutant transfer are presented.
Keywords: parallel programming technologies; turbulence modeling; numerical calculations; computational experiments.
Acknowledgments: This work was supported by the Ministry of Science and Higher Education of Russia (No. 07502-2024-1437).
For citation: Leshchinskiy, D.V., Danilkin, E.A., Starchenko, A.V. (2024) Parallel implementation of microscale model of turbulent air movement and pollutant transport using OpenMP technology. Vestnik Tomskogo gosudarstven-nogo universiteta. Upravlenie, vychislitelnaja tehnika i informatika - Tomsk State University Journal of Control and Computer Science. 67. pp. 94-105. doi: 10.17223/19988605/67/10
Введение
Современные задачи численного моделирования нередко требуют больших вычислительных затрат. Поэтому наряду с возможностью применения высокопроизводительных вычислительных систем необходимо провести серьезную работу по оптимизации алгоритма для максимально эффективного его использования на системах с общей или распределенной памятью. Множество современных научных работ помимо решения основной задачи включают в себя исследования по максимально эффективному с точки зрения времени подходу для получения искомого решения [1-5]. Самыми популярными и легко сравниваемыми между собой технологиями параллельного программирования являются Open Multi-Processing (OpenMP) и Message Passing Interface (MPI), которые имеют ряд преимуществ и недостатков при их применении.
Параллельное программирование открывает новые возможности эффективного использования современных многоядерных процессоров и гетерогенных вычислительных систем. Однако переход от последовательного программирования к параллельному не лишен проблем [6]. Например, такие опции директив OpenMP, как PRIVATE, THREADPRIVATE, FIRSTPRIVATE, LASTPRIVATE, REDUCTION и COPYPRIVATE, прямо или косвенно используют операции копирования, которые сопровождаются дополнительными накладными расходами на память. Таким образом, применение механизма быстрого копирования больших фрагментов данных будет целесообразнее использовать для крупномасштабных приложений [7].
Если MPI предполагает ручное распределение данных по процессам, и вся ответственность за качество распределения ложится на плечи программиста, то при написании кода с использованием OpenMP распределение данных опционально и не так очевидно на первый взгляд. Эксперименты, представленные в статье [8], говорят о том, что самостоятельное распределение данных не имеет особого смысла, потому как аппаратное обеспечение современных мультипроцессоров хорошо оптимизировано для снижения соотношения задержек при доступе к удаленной и локальной памяти. В [8] рассматривается работа с привычной локальной памятью, а также с удаленной памятью, которая приставляет собой локальную память другого компьютера. Таким образом, любая разумно сбалансированная схема автоматического распределения данных OpenMP будет работать на том же уровне, что и ручная-оптимальная [8], при том что на разработку своей оптимальной схемы распределения необходимы существенные временные затраты.
Область применения OpenMP и MPI также расширяется и на гетерогенные вычислительные системы. Как утверждается в статье [9], в подобных системах, а также в системах, сочетающих центральные процессоры с графическими (GPU) и многоинтегрированными ядрами (MIC), MPI не имеет
большого преимущества по сравнению с OpenMP. В [9] авторы продемонстрировали эффективность параллелизма OpenMP в вычислительной гидродинамике, а также его превосходство над MPI.
Одним из существенных плюсов использования технологии OpenMP является простота ее применения. Для распараллеливания довольно простых циклов настройки любых современных компиляторов по умолчанию не дают сильного расхождения во времени работы параллельной программы. Это связано с тем, что распараллеливание циклов является одной из тем, которая очень интенсивно исследовалась в прошлом и прекрасно реализована в OpenMP. Таким образом, синергия архитектурных факторов и достижений в системном программном обеспечении позволяет простым моделям программирования для систем с общей памятью, таким как OpenMP, сохранять конкурентоспособную позицию по сравнению с моделью передачи сообщений и MPI, сохраняя простоту и переносимость [8].
Цель данной работы - разработка эффективной параллельной реализации микромасштабной модели турбулентного течения с использованием технологии OpenMP. Обоснование выбора данной технологии базируется на сравнении значений ускорения параллельных версий программы численного решения одного уравнения конвекции-диффузии (главной составляющей математической модели), разработанных с помощью технологий MPI, OpenMP, OpenACC (Open Accelerators) и CUDA (Compute Unified Device Architecture). Также при выборе оптимального способа распараллеливания оценивалась трудоемкость процесса применения упомянутых выше технологий. Такой подход к распараллеливанию позволяет оценить трудоемкость процесса параллелизации алгоритма еще на ранних этапах реализации алгоритма и выбрать подходящую технологию параллельного программирования относительно имеющихся вычислительных и временных ресурсов.
1. Постановка задачи
Рассматривается стационарное неизотермическое трехмерное турбулентное движение воздуха в уличном каньоне [10], который представляет собой протяженный участок улицы с параллельно расположенными высокими зданиями с обеих ее сторон (рис. 1). По дороге между зданиями интенсивно движется автотранспорт, выбрасывающий в атмосферу продукты сгорания углеводородного топлива. Высота зданий (Н) соизмерима с шириной улицы (Ж). Примесь считается химически инертной и не осаждается на образующих уличного каньона. Стены и дно уличного каньона могут иметь температуру, отличную от температуры окружающей среды. Это возможно в результате антропогенной деятельности или солнечного нагрева.
Рис. 1. Иллюстрация физической постановки задачи Fig. 1. Illustration of the physical statement of the problem
Математическая модель рассматриваемого физического процесса включает в себя осредненные по Рейнольдсу уравнения неразрывности, Навье-Стокса, теплообмена и переноса примеси [10]. Влияние силы плавучести на движение воздуха в уличном каньоне моделируется с помощью приближения Обербека-Буссинеска:
ОUJ Q
dx,
j
duiuJ _ 1 dp dx,.
/
л
p dx dx
' ' J
dTü.
du v—1
dx
v j J
d u'u'.
_' J
dx
g,(T -T0) _ T '
¿ = 1,2,3;
(1)
(2)
dx.
dxj
Г dT^ a —
dx
v j J
dT'u'j
dx
dCuj dx,.
dxj
D
dCл
dxJ J
d C uj dx
+Sc,
(4)
здесь щ, и' - осредненная и пульсационная компоненты вектора скорости (/' = 1, 2, 3), p - давление, gi (0,0, -g) - компоненты ускорения свободного падения, Т - температура, С - осредненная концентрация примеси, - функция, описывающая распределение источников примеси, р, V, а, Б -плотность, кинематическая вязкость, температуропроводность и коэффициент диффузии, ищ - тен-
зор напряжений Рейнольдса, Т щ , СЩ - турбулентные потоки тепла и массы, Т0 - температура
окружающей среды. По повторяющемуся индексу ] = 1, 2, 3 производится суммирование.
Замыкание системы уравнений проводится с использованием градиентно-диффузионной гипотезы Буссинеска [11]:
u'u' = -v7
' J T
^ du ■
du л
dx. 5x.
v j
--5j.k; /,J =1,2,3;
T 'u ' = dT-
J Prr dxj
r< ' vt dC
C u j —; j = 1,2,3.
ScT dxj
(5)
(6)
Здесь 8ст = 0,5 - турбулентное число Шмидта, Ргг = 0,9 - турбулентное число Прандтля. Для вычисления турбулентной вязкости vт используется двухпараметрическая ^-е-модель [11], учитывающая влияние плавучести на характеристики турбулентности:
dküj d dx. dx.
dsu,
d
dx. dx,.
C k2
ff
v
vv /
ff
v
vv
л
dk
k Jdxj
P + G-s;
ds
л
dx
s J j J
s s2
+ Csi-(P + Cs3G)-Cs2 -;
P = vT
,_ л
du du
dx■
dx■
V j
du.. G-8 ^v^dL
dxj' '3 T P^ dx .
(7)
(8) (9)
где vт - турбулентная вязкость, k - кинетическая энергия турбулентности, е - диссипация турбулентной кинетической энергии. Коэффициенты модели турбулентности ак = 1,0, стЕ = 1,22, Се1 = 1,44,
Св2 = 1,92, Се3 = гаиЬ(|Щ\ Щ2 + и22), С = 0,09 .
В качестве граничных условий для системы уравнений (1)-(9) использовались:
- условия первого рода на входе в расчетную область;
- равенство нулю производных по нормали на верхней и боковых границах, а также на выходе из расчетной области;
- на твердых поверхностях условия прилипания и непротекания для соответствующих компонент скорости, равенство нулю производных по нормали от концентрации примеси и метод пристеночных функций для определения трения и теплового потока на стенках и турбулентных характеристик в пристеночных областях [12].
s
2. Численный метод решения задачи
Рассматриваемая задача решалась численно на неравномерной структурированной сетке, сгущающейся при приближении к твердым поверхностям. При построении конечно-разностных аналогов дифференциальных уравнений используется метод конечного объема, обеспечивающий точное выполнение закона сохранения массы на разностном уровне. Для учета препятствий используется метод фиктивных областей, в соответствии с которым компоненты скорости через грани конечного объема, принадлежащего препятствию, устанавливаются равными нулю. Аппроксимация конвективных членов уравнений переноса выполнена с использованием схемы MLU Ван Лира [13], а диффузионных слагаемых - с помощью центральных разностей. Согласование полей скорости и давления с целью обеспечения выполнения закона сохранения массы (1) на разностном уровне осуществлялось на основе процедуры SIMPLE [14]. Для источниковых членов конвективно-диффузионных уравнений (4), (7), (8) применялась линеаризация, обеспечивающая неотрицательность в глобальном итерационном процессе таких величин, как концентрация примеси, энергия турбулентности и скорость ее диссипации. Полученные в результате аппроксимации разностные схемы для каждого уравнения конвекции-диффузии решались численно методом релаксации.
3. Подходы к распараллеливанию алгоритма решения одного уравнения переноса
С целью оценки трудозатратности и эффективности способов распараллеливания всех вычислительных блоков модели было проведено распараллеливание алгоритма решения одного уравнения конвекции-диффузии с источниковым членом (4). В этом случае рассматривается процесс распространения газообразной инертной примеси от постоянного точечного источника за счет движения воздуха и турбулентного перемешивания в идеализированной области, представляющей собой прямоугольный параллелепипед. Источник примеси находится в центре области исследования на некоторой высоте над землей. Предполагается, что примесь не поглощается почвой и может свободно покидать область исследования. Математическая постановка задачи сводится к решению обобщенного трехмерного дифференциального уравнения конвективно-диффузионного переноса вида (4) с граничными условиями Неймана (производная по нормали к поверхности равна нулю). Компоненты вектора скорости и коэффициенты диффузии постоянны и известны.
Для дискретизации используется декартовая равномерная сетка. Аппроксимация дифференциальной задачи выполнена методом конечного объема со вторым порядком аппроксимации по пространству. Используемый для численного решения метод идентичен алгоритму численного решения уравнений переноса в модели, которая описана в разделе 2. Численное решение сравнивается с известным аналитическим решением рассматриваемой упрощенной задачи. Предварительные результаты по исследованию ускорения были получены на примере решения одного уравнения конвекции-диффузии на сетке 256 х 256 х 32 = 2 097 152 узлов. Распараллеливание выполнено с использованием следующих технологий параллельного программирования: OpenMP, MPI, OpenACC и CUDA. Расчеты проводились на вычислительной системе со следующими характеристиками: два 12-ядерных процессора Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz, 192 Гб общей оперативной памяти и два графических ускорителя NVidia RTX2080 Ti.
3.1. Технология Open Multi-Processing (OpenMP)
Рассмотрим самую простую с точки зрения исполнения технологию параллельного программирования - Open Multi-Processing (OpenMP). Данная технология распараллеливания применяется для многопроцессорных (многоядерных) вычислительных систем с общей оперативной памятью. OpenMP также позволяет запускать исполнительный код в режиме гипертрейдинга - технологии, разработанной компанией Intel, которая обеспечивает более эффективное использование ресурсов процессора, позволяя выполнять несколько потоков на каждом ядре. Технология гипертрейдинга дает возмож-
ность получить дополнительную производительность при более низких затратах на транзисторы и электроэнергию [15]. На рис. 2 приведен фрагмент параллельной части OpenMP-программы.
double time = 0;
while (time < time_fin) {
#pragma omp parallel for private (/*Список приватных переменных*/) for (i = 1; i <= Nx; i++)
for (j = 1; j <= Ny; j++)
for (k = 1; k <= Nz; k++)
C[i][j][k] = ...; //Расчет концентрации
#pragma omp parallel for private (i, j, k) collapse(3) for (i = 0; i <= Nx + 1; i++)
for (j = 0; j <= Ny + 1; j++)
for (k = 0; k <= Nz + 1; k++)
C0[i][j][k] = C[i][j][k];
time += tau;
}_
Рис. 2. Фрагмент параллельной части OpenMP-программы для решения уравнения переноса Fig. 2. Fragment of the parallel part of the OpenMP program for solving the transport equation
Для исполнения разработанного исходного последовательного алгоритма в многопоточном режиме перед вычислительными циклами были добавлены директивы, указывающие на параллельное исполнение следующего за ней блока (см. рис. 2). В каждом таком блоке итерации циклов равномерно распределяются между потоками параллельно исполняемых инструкций при условии независимости вычислений элементов массивов. Параллельное программирование с использованием библиотеки OpenMP можно без преувеличения считать простым с точки зрения трудозатратности.
На рис. 3 представлен график ускорения параллельной OpenMP-программы. Ускорение рассчитывается по формуле
T
S -T-
sp - Т ,
р
(10)
где Т - время выполнения программы одним потоком, Т - время выполнения программы на р параллельных потоках.
10 20 30 40 Количество процессов/потоков
a b
Рис. 3. Ускорение (а) и эффективность (b) работы параллельных MPI- и OpenMP-программ Fig. 3. Acceleration (a) and efficiency (b) of parallel MPI and OpenMP programs
Результаты показывают, что задействование всех параллельных потоков, доступных на сервере, позволяет ускорить процесс получения решения в 18 раз. Видно, что отклонение от линейного ускорения начинает проявляться при переходе от 16 к 24 потокам. Замедление прироста ускорения объясняется увеличением нагрузки на память, а точнее, уменьшением пропускной способности памяти в расчете на одно активное ядро при задействовании всех доступных физических ядер центрального процессора. Вычислительная система имеет 24 вычислительных ядра, использование гипертрейдинга дает возможность запускать программу на 48 потоках. Однако, как видно из графиков (см. рис. 3), использование гипертрейдинга не дало значительного прироста ускорения, что в целом характерно для программ, активно взаимодействующих с оперативной памятью. Это объясняется тем, что хотя логические ядра процессора имеют свои собственные наборы регистров, они совместно используют почти все физические и аппаратные ресурсы физического ядра [15].
3.2. Технология Message Passing Interface (MPI)
Библиотека Message Passing Interface (MPI) является средством передачи сообщений между параллельными процессами на системах с распределенной памятью [16]. Использование программистом MPI подразумевает самостоятельное распределение вычислительной работы по процессам и организацию обмена данными между параллельными процессами с помощью функций библиотеки передачи сообщений MPI. В качестве основного подхода распараллеливания выбрана двумерная (2D) декомпозиция трехмерной сеточной области на подобласти. При разработке параллельной программы используется ряд функций MPI для создания двумерной декартовой логической топологии, создания пользовательских типов данных для обеспечения эффективной пересылки между процессами, а также функций MPI_Isend() и MPI_Irecv() для проведения парных неблокирующих пересылок значений сеточной функции в соседние подобласти двумерной Ox^-декомпозиции сеточной области.
Ускорение полученного алгоритма в зависимости от числа используемых процессов представлено на рис. 3. Сравнение показывает, что в целом на рассматриваемом вычислительном сервере с общей памятью MPI- и OpenMP-программы показывают одинаковое ускорение при использовании от 1 до 16 ядер. При дальнейшем увеличении количества задействованных процессов / потоков использование MPI позволяет получить большее ускорение работы программы. Важно отметить, что распараллеливание с помощью технологии MPI требует значительно больше времени на разработку параллельной программы.
3.3. Технологии создания параллельных программ на графических процессорах
При рассмотрении гибридных вычислительных систем (CPU + GPU) появляется возможность использования вычислительной мощности графических карт. Технология Open Accelerators (OpenACC), как и технология OpenMP, с помощью директив компилятора позволяет отмечать участки программы, которые следует выполнять параллельно на графическом процессоре. Предварительно указывается, какие данные должны быть переданы в память GPU, а какие обратно скопированы в общую оперативную память. Результаты расчетов по параллельной программе, созданной с помощью технологии OpenACC, показали ускорение в 31 раз по сравнению с последовательной программой.
Compute Unified Device Architecture (CUDA) - технология параллельного программирования, разработанная компанией NVidia, позволяющая проводить вычисления на графических процессорах. Распараллеливание работы алгоритма основывалось на принципе двумерной (2D) декомпозиции данных. Использование технологии параллельного программирования CUDA для реализации рассматриваемого алгоритма позволяет ускорить получение решения в 38 раз по сравнению с последовательной программой.
Использование технологий параллельного программирования OpenACC или CUDA и графической карты NVidia RTX2080Ti обеспечивает получение достаточно хорошего ускорения в 31 и 38 раз соответственно, однако такое решение сопровождается и высокими временными затратами на парал-
лелизацию алгоритма. Таким образом, при небольшом объеме передаваемых между программными модулями данных или небольшом количестве решаемых уравнений перспективным является применение параллельных технологий программирования на графических процессорах.
4. Параллельная реализация микромасштабной модели турбулентного движения воздуха и переноса примеси
Результаты расчетов решения одного конвективно-диффузионного уравнения показали, что ускорение и эффективность OpenMP-программы практически не уступают аналогичным параметрам MPI-программы на многопроцессорном сервере с общей памятью. Также достаточно хорошее ускорение было получено при использовании технологий OpenACC и CUDA. Параллелизация программ с использованием технологии OpenMP является более простой в сравнении с MPI, OpenACC или CUDA. Исходя из вышеизложенного, для ускорения проведения расчетов по микромасштабной модели турбулентного течения были проведены работы по распараллеливанию программного кода с использованием технологии параллельного программирования OpenMP, ориентированной на многоядерные вычислительные системы с общей оперативной памятью.
_ _
Ввод и обработка начальных данных +
Построение разностной сетки
С
Рис. 4. Блок-схема программы Fig. 4. Block diagram of the program
При создании параллельной многопоточной программы с использованием технологии ОрепМР нужно распараллелить вычислительные блоки, в которых производится перевычисление значений сеточных функций на каждой итерации. Основные по трудоемкости проведения расчетов вычисли-
тельные компоненты программы рассматриваемой микромасштабной модели (рис. 4) - блоки итерационного решения разностного уравнения для поправки давления и разностного уравнения для скалярной сеточной функции (кинетической энергии турбулентности, скорости ее диссипации, температуры, концентрации примеси). Для демонстрации эффективности полученной параллельной версии микромасштабной модели были проведены расчеты на сетке 162 х 162 х 47 = 1 233 468 узлов. Расчет длился 1 000 глобальных итераций (~ 14 мин на 24 потоках). На каждой глобальной итерации осуществлялось 120 итераций для решения разностного уравнения для поправки давления с коэффициентом релаксации а = 1, 10 итераций для разностных уравнений для скалярных переменных и 6 для компонент скорости с нижней релаксацией (а = 0,2). Расчеты проводились на том же вычислительном сервере, что и расчеты по решению одного уравнения конвекции-диффузии (см. разд. 3).
На рис. 5, a представлены графики ускорения вычислительной программы модели турбулентного течения и переноса примеси в уличном каньоне (Total) и ее компонентов (блок расчета компонентов скорости - Velocity, блок расчета поправки давления - Pressure, блок расчета модели турбулентности - Turbulence, блок расчета концентрации и температуры - Concentration). Из графиков видно, что вплоть до использования 24 потоков удается получить высокие значения ускорения при проведении параллельных вычислений - до 15,5 раз для всей вычислительной модели и до 16,5-17,5 раз для отдельных ее компонентов. Блок с наименьшим ускорением - блок расчета скорости. Ускорение данного блока составило лишь около 13.
— — Идеальное ускорение —й— Velocity О Turbulence -В— Total О— Pressure -1- Concentration
Рис. 5. Ускорение (а) и эффективность (b) параллельной программы и ее компонентов в зависимости от числа используемых потоков Fig. 5. Acceleration (a) and efficiency (b) of a parallel program and its components depending on the number of threads used
На рис. 5, b приведены графики эффективности вычислительной программы модели в целом и ее компонентов в отдельности. Видно, что повышение эффективности распараллеливания блока расчета компонентов скорости может поднять общей уровень эффективности распараллеливания до 70% на 24 потоках рассматриваемой вычислительной системы, что является неплохим результатом. Также стоит отметить, что использование гипертрейдинга, как и в случае решения одного уравнения переноса, не дает значительного прироста ускорения.
Заключение
Для выбора наиболее перспективной технологии параллельного программирования для паралле-лизации микромасштабной модели турбулентного движения воздуха и переноса примеси, включающей в себя численное решение неоднородного стационарного трехмерного конвективно-диффузионного
уравнения с помощью метода конечного объема и явно-неявных разностных схем, были проведены вычислительные эксперименты на вычислительном сервере с двумя 12-ядерными процессорами Intel и графическими картами NVIDIA RTX2080 Ti. В качестве технологий параллельного программирования рассматривались международные стандарты программирования OpenMP - для многопроцессорных систем с общей памятью, MPI - для многопроцессорных систем с распределенной памятью, а также OpenACC и CUDA - для гибридных вычислительных систем с графическими процессорами.
Предварительные расчеты по решению одного уравнения конвекции-диффузии, проведенные на структурированных разностных сетках с количеством узлов более 2 млн, показали, что наиболее высокопроизводительную программу для решения рассматриваемой задачи можно получить с помощью технологии MPI. На 24 процессах она дает ускорение вычислений в 17,3 раза по сравнению с расчетом последовательной программы. Более «бюджетные» варианты - использование технологии OpenACC или CUDA для графических процессоров NVIDIA (1 CPU + 1 GPU на одном вычислительном узле) - при тех же условиях дают ускорение вычислений почти в 31 и 38 раз соответственно. Применение технологии OpenMP показало, что ускорение и эффективность OpenMP-программы практически не уступает аналогичным параметрам MPI-программы, что в совокупности с простотой ее использования делает данную технологию наиболее перспективной для параллелизации всей микромасштабной модели.
Результаты параллелизации микромасштабной модели с использованием технологии OpenMP показали, что вплоть до использования 24 потоков удается получить высокие значения ускорения при проведении параллельных вычислений - до 15,5 раз для всей вычислительной модели и до 16,5-17,5 раз для отдельных ее компонентов. Самый низкий показатель ускорения показал блок вычисления компонент скорости - 13.
Список источников
1. Santos G., Couto E., Paliga A., Cavalheiro G., Avila J. Uma aplicajao OpenMP para implementajao da estrategia Elemento por
Elemento em Analise de Elementos Finitos // Revista de Engenharia Civil IMED. 2023. V. 9. P. 54-67. doi: 10.18256/2358-6508.2022.v9i2.4263
2. Akimova E.N., Sultanov M.A., Misilov V.E., Nurlanuly Y. Parallel Algorithm for Solving the Inverse Two-Dimensional Fractional
Diffusion Problem of Identifying the Source Term // Fractal Fract. 2023. V. 7. Art. 801. doi: 10.3390/fractalfract7110801
3. Tang L., Ge M., Schuh H., Wang J., Zhu H., Xu A. Multi-GNSS ultra-rapid orbit determination through epoch-parallel processing //
Journal of Geodesy. 2023. V. 97 (11). Art. 99. doi: 10.1007/s00190-023-01787-1
4. Meng F., Shen M. A numerical study on non-spherical droplet impact with solidification in additive manufacturing // Acta Me-
chanica. 2023. V. 234. P. 1-17. doi: 10.1007/s00707-023-03689-x
5. Amritkar A. Parallel implementation and application of particle scale heat transfer in the Discrete Element Method : PhD Thesis.
Blacksburg, VA, 2013. xiv, 123 p. doi: 10.13140/2.1.4214.3526
6. Vinay T.R., Satish E.G., Megha J. Design and Programming for Multicore machines: An Empirical study on time and effort re-
quired by programmer // ITM Web Conf. 2023. V. 57. Art. 01016. doi: 10.1051/itmconf/20235701016
7. Marowka A., Liu Z., Chapman B. Openmp-oriented applications for distributed shared memory architectures // Concurr. Comput.
Pract. Exper. 2004. V. 16. P. 371-384. doi: 10.1002/cpe.v16:4
8. Nikolopoulos D., Papatheodorou T., Polychronopoulos C., Labarta J. A Transparent Runtime Data Distribution Engine for
OpenMP // Scientific Programming. 2002. V. 8 (3). doi: 10.1155/2000/417570
9. Resch M., Sander B., Loebich I. A comparison of OpenMP and MPI for the parallel CFD test case // Proc. of the 1st European
Workshop on OpenMP. 2002. P. 71-75.
10. Старченко А.В., Нутерман Р.Б., Данилкин Е.А. Численное моделирование турбулентных течений и переноса примеси в уличных каньонах. Томск : Изд-во Том. ун-та. 2015. 252 с.
11. Henkes R.A.W.M., van der Flugt F.F., Hoogendoorn C.J. Natural Convection Flow in a Square Cavity Calculated with Low-Reynolds-Number Turbulence Models // Int. J. Heat Mass Transfer. 1991. V. 34. P. 1543-1557. doi: 10.1016/0017-9310(91)90258-G
12. Launder B.E., Spalding D.B. The numerical computation of turbulent flows // Computational Methods in Applied Mechanics and Engineering. 1974. V. 3 (2). P. 269-289. doi: 10.1016/0045-7825(74)90029-2
13. Van Leer B. Towards the ultimate conservative difference scheme. II. monotonicity and conservation combined in a second order scheme // Journal of Computational Physics. 1974. V. 14. P. 361-370. doi: 10.1016/0021-9991(74)90019-9
14. Patankar S. Numerical heat transfer and fluid flow. New York : Hemisphere Publ. Corporation, 1980. 214 р. doi: 10.1201/9781482234213
15. Marr D.T., Binns F., Hill D.L. et al. Hyper-Threading Technology Architecture and Microarchitecture // Intel Technology Journal. 2002. V. 6, is. 1. Р. 4-15.
16. Старченко А.В., Данилкин Е.А., Проханов С.А., Лещинский Д.В. К выбору гибридной схемы распараллеливания для численного решения уравнений пространственной мезомасштабной метеорологической модели атмосферного пограничного слоя // Десятая Сибирская конференция по параллельным и высокопроизводительным вычислениям. Томск : Изд-во НТЛ, 2021. С. 7-17. URL: http://vital.lib.tsu.ru/vital/access/manager/Repository/koha:000890941
References
1. Santos, G. & Couto, E., Paliga, A., Cavalheiro, G. & Avila, J. (2023) Uma aplicajao OpenMP para implementajao da estrategia
Elemento por Elemento em Analise de Elementos Finitos. Revista de Engenharia Civil MED. 9. pp. 54-67. DOI: 10.18256/2358-6508.2022.v9i2.4263
2. Akimova, E.N., Sultanov, M., Misilov, V. & Nurlanuly, E. (2023) Parallel Algorithm for Solving the Inverse Two-Dimensional
Fractional Diffusion Problem of Identifying the Source Term. Fractal and Fractional. 7. Art. 801. DOI: 10.3390/fractalfract7110801
3. Tang, L., Ge, M., Schuh, H., Wang, J., Zhu, H. & Xu, A. (2023) Multi-GNSS ultra-rapid orbit determination through epoch-
parallel processing. Journal ofGeodesy. 97. pp. 1-19. DOI: 10.1007/s00190-023-01787-1
4. Meng, F. & Shen, M. (2023). A numerical study on non-spherical droplet impact with solidification in additive manufacturing.
ActaMechanica. 234. pp. 1-17. DOI: 10.1007/s00707-023-03689-x
5. Amritkar, A. (2013) Parallel implementation and application of particle scale heat transfer in the Discrete Element Method.
PhD Thesis. DOI: 10.13140/2.1.4214.3526.
6. Vinay, T.R., Satish, E.G. & Megha, J. (2023) Design and Programming for Multicore machines: An Empirical study on time
and effort required by programmer. ITM Web of Conferences. 57. Art. 01016. DOI: 10.1051/itmconf/20235701016
7. Marowka, A., Liu, Z. & Chapman, B. (2004) OpenMP-oriented applications for distributed shared memory architectures. Concur-
rency and Computation: Practice and Experience. 16. pp. 371-384. DOI: 10.1002/cpe.v16:4
8. Nikolopoulos, D., Papatheodorou, Th., Polychronopoulos, C. & Labarta, J. (2002) A Transparent Runtime Data Distribution
Engine for OpenMP. Scientific Programming. 8(3). DOI: 10.1155/2000/417570
9. Resch, M., Sander, B. & Loebich, I. (2002) A comparison of OpenMP and MPI for the parallel CFD test case. Proceedings
of the 1st European Workshop on OpenMP. pp. 71-75.
10. Starchenko, A.V., Nuterman, R.B. & Danilkin, E.A. (2015) Chislennoe modelirovanie turbulentnykh techeniy iperenosaprimesi v ulichnykh kan'onakh [Numerical modeling of turbulent flows and pollutant transport in street canyons]. Tomsk: Tomsk State University.
11. Henkes, R.A.W.M., van der Flugt, F.F. & Hoogendoorn, C.J. (1991) Natural Convection Flow in a Square Cavity Calculated with Low-Reynolds-Number Turbulence Models. International Journal of Heat and Mass Transfer. 34. pp. 1543-1557. DOI: 10.1016/0017-9310(91)90258-G
12. Launder, B.E. & Spalding, D.B. (1974) The numerical computation of turbulent flows. Computational Methods in Applied Mechanics and Engineering. 3(2). pp. 269-289. DOI: 10.1016/0045-7825(74)90029-2
13. van Leer, B. (1974) Towards the Ultimate Conservative Difference Scheme. II. Monotonicity and Conservation Combined in a Second-order Scheme. Journal of Computational Physics. 14. pp. 361-370. DOI: 10.1016/0021-9991(74)90019-9
14. Patankar, S. (1980) Numerical Heat Transfer and Fluid Flow. New York: Hemisphere Publ. Corporation. DOI: 10.1201/9781482234213
15. Marr, D.T., Binns, F., Hill, D.L. et al. (2002) Hyper-Threading Technology Architecture and Microarchitecture. Intel Technology Journal. 6(1). pp. 4-15.
16. Starchenko, A.V., Danilkin, E.A., Prokhanov, S.A. & Leshchinskiy, D.V. (2021) K vyboru gibridnoy skhemy rasparallelivaniya dlya chislennogo resheniya uravneniy prostranstvennoy mezomasshtabnoy meteorologicheskoy modeli atmosfernogo pogranich-nogo sloya [Towards the selection of a hybrid parallelization scheme for the numerical solution of the equations of a spatial mesoscale meteorological model of the atmospheric boundary layer]. In: Desyataya Sibirskaya konferentsiya po parallel'nym i vysokoproizvoditel'nym vychisleniyam [Tenth Siberian Conference on Parallel and High-Performance Computing]. Tomsk: NTL. pp. 7-17. [Online] Available from: http://vital.lib.tsu.ru/vital/access/manager/Repository/koha:000890941
Информация об авторах:
Лещинский Дмитрий Викторович - старший преподаватель кафедры вычислительной математики и компьютерного моделирования, младший научный сотрудник Регионального научно-образовательного математического центра Национального исследовательского Томского государственного университета (Томск, Россия); младший научный сотрудник лаборатории прогнозирования состояния атмосферы Института оптики атмосферы им. В.Е. Зуева СО РАН (Томск, Россия). E-mail: [email protected]
Данилкин Евгений Александрович - кандидат физико-математических наук, доцент кафедры вычислительной математики и компьютерного моделирования, старший научный сотрудник Регионального научно-образовательного математического центра Национального исследовательского Томского государственного университета (Томск, Россия); старший научный сотрудник лаборатории прогнозирования состояния атмосферы Института оптики атмосферы им. В.Е. Зуева СО РАН (Томск, Россия). E-mail: [email protected]
Старченко Александр Васильевич - профессор, доктор физико-математических наук, заведующий кафедрой вычислительной математики и компьютерного моделирования, ведущий научный сотрудник Регионального научно-образовательного математического центра Национального исследовательского Томского государственного университета (Томск, Россия); главный научный сотрудник лаборатории прогнозирования состояния атмосферы Института оптики атмосферы им. В.Е. Зуева СО РАН (Томск, Россия). E-mail: [email protected]
Вклад авторов: все авторы сделали эквивалентный вклад в подготовку публикации. Авторы заявляют об отсутствии конфликта интересов.
Information about the authors:
Leshchinskiy Dmitriy V. (Senior Lecturer of the Department of Computational Mathematics and Computer Modelling, Junior Researcher of the Regional Scientific and Educational Mathematical Center, National Research Tomsk State University, Tomsk, Russian Federation; Junior Staff Scientist, Laboratory for Atmospheric Prediction, V.E. Zuev Institute of Atmospheric Optics of Siberian Branch of the Russian Academy of Science, Tomsk, Russian Federation). E-mail: [email protected] Danilkin Evgeniy A. (Candidate of Physics and Mathematics, Associate Professor of the Department of Computational Mathematics and Computer Modelling, Senior Researcher of the Regional Scientific and Educational Mathematical Center, National Research Tomsk State University, Tomsk, Russian Federation; Senior Staff Scientist, Laboratory for Atmospheric Prediction, V.E. Zuev Institute of Atmospheric Optics of Siberian Branch of the Russian Academy of Science, Tomsk, Russian Federation). E-mail: [email protected]
Starchenko Alexander V. (Professor, Doctor of Physical and Mathematical Sciences, Head of Department of Computational Mathematics and Computer Modelling, Leading Researcher of the Regional Scientific and Educational Mathematical Center, National Research Tomsk State University, Tomsk, Russian Federation; Main Staff Scientist, Laboratory for Atmospheric Prediction, V.E. Zuev Institute of Atmospheric Optics of Siberian Branch of the Russian Academy of Science, Tomsk, Russian Federation). E-mail: [email protected]
Contribution of the authors: the authors contributed equally to this article. The authors declare no conflicts of interests.
Поступила в редакцию 18.02.2024; принята к публикации 03.06.2024 Received 18.02.2024; accepted for publication 03.06.2024