Научная статья на тему 'ГИБРИДНАЯ МОДЕЛЬ МЕЛКОЙ ВОДЫ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ MPI-OPENMP'

ГИБРИДНАЯ МОДЕЛЬ МЕЛКОЙ ВОДЫ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ MPI-OPENMP Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
64
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
параллельные вычисления / гибридные модели параллельного программирования / уравнения мелкой воды / программная архитектура / parallel computing / hybrid parallel programming / shallow water equations / software architecture

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Чаплыгин А. В., Гусев А. В.

Гибридные модели, сочетающие в себе технологии MPI для архитектур с распределенной памятью и ОрепМР для архитектур с общей памятью, становятся все более популярными, поскольку современные высокопроизводительные вычислительные системы представляют собой набор многопроцессорных систем с общей памятью, объединенных в единую коммуникационную сеть. Создание моделей, использующих эффективно ресурсы таких вычислительных систем, является актуальной задачей на сегодняшний день. В работе представлена гибридная модель мелкой воды, являющаяся одним из основных блоков сигма-модели общей циркуляции океана INMOM. Программная архитектура модели мелкой воды построена по принципу разделения обязанностей, что позволяет выделить параллельные методы и подходы в обособленную часть программы с целью их адаптации для вычислительных систем различного типа и гибкой настройки программного комплекса на целевую вычислительную систему. В модели мелкой воды был реализован гибридный подход, при котором расчетная область разбивается на блоки малого размера, которые затем распределяются по всем доступным процессам и потокам. Распределение блоков основано на методе балансировки нагрузки с использованием кривых Гильберта, что обеспечивает равномерную вычислительную нагрузку на процессы и потоки. В работе показано преимущество этого похода в сравнении с широко распространенным векторным подходом, в котором ОрепМР используется только для распараллеливания двумерных циклов по подоблостям. Тестирование гибридной модели проводилось на кластере ИВМ РАН и суперкомпьютере МСЦ РАН. Была показана эффективность разбиения на блоки малого размера, показана эффективность гибридного подхода в сравнении с чистым MPI режимом и также продемонстрирована эффективность метода балансировки нагрузки вычислений.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Чаплыгин А. В., Гусев А. В.

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

SHALLOW WATER MODEL USING A HYBRID MPI/OPENMP PARALLEL PROGRAMMING

Hybrid models that combine MPI message passing technologies for distributed memory architectures and OpenMP multithreading for shared memory architectures are becoming increasingly popular. Modern high-performance computing systems are multiprocessor systems with shared memory (computing nodes), united in a single communication network. Creating models that effectively use the resources of such computing systems is an urgent task today. The portability of models to multiprocessor systems is largely determined by the correct choice of its software architecture, which would also provide flexibility and ease of maintaining the program code. The paper considers the system of shallow water equations in the form presented in the ocean general circulation sigma model INMOM (Institute of Numerical Mathematics Ocean Model). The INMOM model is being developed at the INM RAS and is used as a ocean component of the INMCM (Institute of Numerical Mathematics Climate Model) climate model, created at the INM RAS and participating in the IPCC (Intergovernmental Panel on Climate Change) program for climate change forecasting. The model is completely written in the Fortran 90/95 programming language. In previous works, a shallow water model has been formulated that can be used both as a program block of the sigma ocean model INMOM and independently, for example, to calculate tsunami waves, tides, and wind surges. The model was implemented using MPI technology, and the software architecture of the model did not involve the use of hybrid parallel programming. The aim of this work is to create a new software architecture of the shallow water model, which involves the use of hybrid parallel programming, and to implement a hybrid MPI OpenMP shallow water model based on this software architecture for effective use on massively parallel multiprocessor computing systems. The model is based on a system of nonlinear shallow water equations that are solved using numerical methods. The second order numerical schemes on the ‘C’-grid according to Arakawa classification and the explicit first order „leapfrog11 scheme are used as spatial and temporal discretization schemes in the model, respectively. A new software architecture for the shallow water model was developed, based on the separation of concerns. This software architecture divides program code into three levels. The lowest level contains all subroutines needed to calculate the nonlinear shallow water equations, the so-called computational cores. The highest level is responsible for the order of calling the computational cores and describes the time cycle of the model at a relatively high level. The intermediate level between the first two is responsible for the parallel methods and approaches used in the model. Such software architectures allow separate parallel methods and approaches from the model in order to adapt them for different types of computing systems and flexibly configure the model for the target computing system, without changing the parts of the program responsible for calculating shallow water equations. As the main method of parallelization, the model uses an improved two-dimensional method of domain decomposition: the initial computational domain is uniformly divided into rectangular blocks of small size and each processor is assigned a certain number of blocks, which form its computational subdomain. This approach has a number of advantages: it becomes possible to balance the load of calculations on processors and work effectively with cache memory. Due to the presence of islands and coasts in the computational area, the load balancing is a particularly urgent task. The method of load balancing using Hilbert curves is chosen as one of such methods. In the model, a task-based hybrid MPI/OpenMP approach was implemented, in which blocks from a two-dimensional decomposition are distributed across OpenMP threads. Blocks are first distributed across MPI processes using the load balancing method, and then within the MPI process are distributed across its available threads, ensuring a uniform computational load per thread. The paper shows the advantage of this approach in comparison with the widespread vector-based MPI/OpenMP hybrid approach, in which OpenMP is used only for parallelizing two-dimensional loops over subdomains. The paper shows the efficiency of decomposition into small blocks and the efficiency of working with cache memory when calculating the shallow water model on a single core. It was shown that the implemented task-based hybrid approach has a performance twice as high as the vector-based hybrid approach when calculating the model on many computing nodes. The advantage of the taskbased hybrid approach over the pure MPI approach was shown. The efficiency of the method of load balancing was also demonstrated in the work. Note that the implemented software architecture in the shallow water model also makes it possible in the future to apply heterogeneous parallel programming using CUDA, OpenACC, etc. All modifications during the transition to the new model of parallel programming will also be carried out without modifications of the program parts responsible for calculating the shallow water equations, which greatly simplifies the model development and support.

Текст научной работы на тему «ГИБРИДНАЯ МОДЕЛЬ МЕЛКОЙ ВОДЫ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ MPI-OPENMP»

SHALLOW WATER MODEL USING A HYBRID MPI/OPENMP

PARALLEL PROGRAMMING

A.V. Chaplygin, A.V. Gusev

Marchuk Institute of Numerical Mathematics, Russian Academy of Sciences,

119333, Moscow, Russia

DOI: 10.24411/2073-0667-2021-10006

Hybrid models that combine MPI message passing technologies for distributed memory architectures and OpenMP multithreading for shared memory architectures are becoming increasingly popular. Modern high-performance computing systems are multiprocessor systems with shared memory (computing nodes), united in a single communication network. Creating models that effectively use the resources of such computing systems is an urgent task today. The portability of models to multiprocessor systems is largely determined by the correct choice of its software architecture, which would also provide flexibility and ease of maintaining the program code.

The paper considers the system of shallow water equations in the form presented in the ocean general circulation sigma model INMOM (Institute of Numerical Mathematics Ocean Model). The INMOM model is being developed at the INM RAS and is used as a ocean component of the INMCM (Institute of Numerical Mathematics Climate Model) climate model, created at the INM RAS and participating in the IPCC (Intergovernmental Panel on Climate Change) program for climate change forecasting. The model is completely written in the Fortran 90/95 programming language. In previous works, a shallow water model has been formulated that can be used both as a program block of the sigma ocean model INMOM and independently, for example, to calculate tsunami waves, tides, and wind surges. The model was implemented using MPI technology, and the software architecture of the model did not involve the use of hybrid parallel programming.

The aim of this work is to create a new software architecture of the shallow water model, which involves the use of hybrid parallel programming, and to implement a hybrid MPI/OpenMP shallow water model based on this software architecture for effective use on massively parallel multiprocessor computing systems.

The model is based on a system of nonlinear shallow water equations that are solved using numerical methods. The second order numerical schemes on the 'C'-grid according to Arakawa classification and the explicit first order „leapfrog" scheme are used as spatial and temporal discretization schemes in the model, respectively.

A new software architecture for the shallow water model was developed, based on the separation of concerns. This software architecture divides program code into three levels. The lowest level contains all subroutines needed to calculate the nonlinear shallow water equations, the so-called computational cores. The highest level is responsible for the order of calling the computational cores and describes the time cycle of the model at a relatively high level. The intermediate level between the first two is responsible for the parallel methods and approaches used in the model. Such software architectures allow separate parallel methods and approaches from the model in order to adapt them for different types of computing systems and flexibly configure the model for the target computing system, without changing the parts of the program responsible for calculating shallow water equations.

The reported study was funded by RFBR, project number № 20-31-90109.

(cj) A. V. Chaplygin, A. V. Gusev, 2021

As the main method of parallelization, the model uses an improved two-dimensional method of domain decomposition: the initial computational domain is uniformly divided into rectangular blocks of small size and each processor is assigned a certain number of blocks, which form its computational subdomain. This approach has a number of advantages: it becomes possible to balance the load of calculations on processors and work effectively with cache memory. Due to the presence of islands and coasts in the computational area, the load balancing is a particularly urgent task. The method of load balancing using Hilbert curves is chosen as one of such methods.

In the model, a task-based hybrid MPI/OpenMP approach was implemented, in which blocks from a two-dimensional decomposition are distributed across OpenMP threads. Blocks are first distributed across MPI processes using the load balancing method, and then within the MPI process are distributed across its available threads, ensuring a uniform computational load per thread. The paper shows the advantage of this approach in comparison with the widespread vector-based MPI/OpenMP hybrid approach, in which OpenMP is used only for parallelizing two-dimensional loops over subdomains.

The paper shows the efficiency of decomposition into small blocks and the efficiency of working with cache memory when calculating the shallow water model on a single core. It was shown that the implemented task-based hybrid approach has a performance twice as high as the vector-based hybrid approach when calculating the model on many computing nodes. The advantage of the task-based hybrid approach over the pure MPI approach was shown. The efficiency of the method of load balancing was also demonstrated in the work.

Note that the implemented software architecture in the shallow water model also makes it possible in the future to apply heterogeneous parallel programming using CUDA, OpenACC, etc. All modifications during the transition to the new model of parallel programming will also be carried out without modifications of the program parts responsible for calculating the shallow water equations, which greatly simplifies the model development and support.

Key words: parallel computing, hybrid parallel programming, shallow water equations, software architecture.

References

1. Lawrence, B. N. and Reznv, M. and Budich, R. and Bauer, P. and Behrens, J. and Carter, M. And Deconinck, W. and Ford, R. and Mavnard, C. and Mullerworth, S. and Osuna, C. and Porter, A. and Serradell, K. and Valcke, S. and Wedi, N. and Wilson, S. Crossing the chasm: how to develop weather and climate models for next generation computers? // Geosci. Model Dev., 2018. N 11, P. 1799-1821.

2. Volodin E. M., Dianskij N. A., Gusev A. V. Model' zemnoj sistemv INMCM4: vosproizvedenie i prognoz klimaticheskih izmenenij v 19-21 vekah. // Izvestiva RAN. Fizika atmosferv i okeana, 2013, T. 49, N 4, S. 379-400 (in Russian).

3. Chaplvgin A. V. Parallel'nava realizaciva obshchej modeli cirkulvacii okeana INMOM. // Sbornik tezisov luchshih vvpusknvh kvalifikacionnvh rabot fakul'teta VMK MGU 2017. Moskva: MAKS PRESS, 2017. S. 27-28 (in Russian).

4. Chaplvgin A. V., Dianskij N. A., Gusev A. V. Parallel'noe modelirovanie nelinejnvh uravnenij melkoj vodv. // Trudy 60-j Vserossijskoj nauchnoj konferencii MFTI, 2017 (in Russian).

5. A.V. Chaplvgin, N.A. Dianskv, A. V. Gusev. Load Balancing Using Hilbert Space-Filling Curves for Parallel Shallow Water Simulations. // Numerical methods and programming. 2019. N 20. P. 75-87.

6. Arakawa A., Lamb V. R. Computational design of the basic dynamical processes of the UCLA general circulation model. // Methods in computational Physics. V. 17.

7. Mesinger F., Arakawa A. Numerical methods used in atmospheric models. // JOC, GAPR Publication Series. 1976. V. 1, N 17.

8. Rouch P. Dzh. Vychislitel'naya gidrodinamika [Computational Fluid Dynamics]. Moscow: Mir, 1980 (in Russian).

9. George L. Mellor. User guide for a three-dimensional, primitive equation, numerical ocean model. Princeton University.

10. Dianskij N. A. Modelirovanie cirkulvacii okeana i issledovanie ego reakcii na korotkoperiodnve i dolgoperiodnve atmosfernve vozdejstviva. M.: Fizmalit, 2012 (in Russian).

11. Smith R., Jones P., Briegleb B., et al. The Parallel Ocean Program (POP) Reference Manual Ocean Component of the Community Climate System Model (CCSM) and Community Earth System Model (CESM). 23 March 2010.

12. van Werkhoven B., Maassen J., Kliphuis M., Dijkstra H. A., Brunnabend S. E., van Meersbergen M., Seinstra F. J., and Bal H. E. A distributed computing approach to improve the performance of the Parallel Ocean Program. // Geosci. Model Dev., 2014. N 7, P. 267-281.

13. Wilhelmsson Tomas. Parallelization of the HIROMB Ocean Model. Licentiate Thesis, Royal Institute of Technology Department of Numerical Analysis and Computer Science, 2002.

14. John M. Dennis. Inverse Space-Filling Curve Partitioning of a Global Ocean Model. // IEEE International Parallel and Distributed Processing Symposium, 2007.

15. Liu T. et al. Parallel Implementation and Optimization of Regional Ocean Modeling System (ROMS) Based on Sunwav SW26010 Many-Core Processor // IEEE Access, 2019. Vol. 7, P. 146170146182.

16. Afzal, A., Ansari, Z., Faizabadi, A. R. et al. Parallelization Strategies for Computational Fluid Dynamics Software: State of the Art Review. // Arch Computat Methods Eng. 2017. N 24, P. 337-363.

17. Akhmetova D., Iakvmchuk R., Ekeberg O., Laure E. Performance study of multithreaded MPI and Openmp tasking in a large scientific code // Proc. 2017 IEEE 31st Int. Parallel Distrib. Process. Svmp. Work. IPDPSW 2017; P. 756-765.

18. Mortikov E. V. Programmnava realizaciva bloka perenosa primesej v klimaticheskih modelvah na osnove gibridnogo programmirovaniva MPI-OpenMP // Superkomp'vuternve dni v Rossii: Trudy mezhdunarodnoj konferencii. 2016. S. 521-529 (in Russian).

19. Rabenseifner R. and Wellein G. Communication and optimization aspects of parallel programming models on hybrid architectures. // Int. J. High Perform. Comp. Appl. 2003. N 17(1), P. 49-62.

20. Elliott, S., Sobhani, N., Del Vento, D., Gill, D. O. WRF performance optimization targeting Intel multicore and manvcore architectures. //In 2nd Symposium on High Performance Computing for Weather, Water, and Climate. American Meteorological Society: New Orleans, LA, US, 2016.

21. Shchepetkin Alexander F., McWTilliams James C. The regional oceanic modeling system (ROMS): a split-explicit, free-surface, topography-following-coordinate oceanic model // Ocean Modelling. 2005. Vol. 9, Iss. 4, P. 347-404.

22. Andrew R. Porter, Jeremy Applevard, Mike Ashworth, Rupert W. Ford, Jason Holt, Hedong Liu and Graham D. Riley. Portable multi- and many-core performance for finite-difference or finite-element codes — application to the free-surface component of NEMO (NEMOLite2D 1.0). // Geosci. Model Dev., 2018. N 11, P. 3447-3464.

23. NEMO Consortium. NEMO development strategy Version 2: 2018-2022. 2018.

24. Cluster INM RAS. [Electron. Res.]: http://cluster2.inm.ras.ru.

25. Supercomputer MVS-10P (JSCC ). [Electron. Res.]: http://www.jscc.ru.

ГИБРИДНАЯ МОДЕЛЬ МЕЛКОЙ ВОДЫ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИЙ MPI-OPENMP

А. В. Чаплыгин, А. В. Гусев

Институт вычислительной математики им. Г, И, Марчука РАН,

119333, Москва, Россия

УДК 519.63, 519.683, 519.688 DOI: 10.24411/2073-0667-2021-10006

Гибридные модели, сочетающие в себе технологии MPI для архитектур с распределенной памятью и OpenMP для архитектур с общей памятью, становятся все более популярными, поскольку современные высокопроизводительные вычислительные системы представляют собой набор многопроцессорных систем с общей памятью, объединенных в единую коммуникационную сеть. Создание моделей, использующих эффективно ресурсы таких вычислительных систем, является актуальной задачей на сегодняшний день. В работе представлена гибридная модель мелкой воды, являющаяся одним из основных блоков сигма-модели общей циркуляции океана INMOM. Программная архитектура модели мелкой воды построена по принципу разделения обязанностей, что позволяет выделить параллельные методы и подходы в обособленную часть программы с целью их адаптации для вычислительных систем различного типа и гибкой настройки программного комплекса на целевую вычислительную систему. В модели мелкой воды был реализован гибридный подход, при котором расчетная область разбивается на блоки малого размера, которые затем распределяются по всем доступным процессам и потокам. Распределение блоков основано на методе балансировки нагрузки с использованием кривых Гильберта, что обеспечивает равномерную вычислительную нагрузку на процессы и потоки. В работе показано преимущество этого похода в сравнении с широко распространенным векторным подходом, в котором OpenMP используется только для распараллеливания двумерных циклов по подоблостям. Тестирование гибридной модели проводилось на кластере ИВМ РАН и суперкомпьютере МСЦ РАН. Была показана эффективность разбиения на блоки малого размера, показана эффективность гибридного подхода в сравнении с чистым MPI режимом и также продемонстрирована эффективность метода балансировки нагрузки вычислений.

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

Введение. Гибридные модели, сочетающие в себе технологии передачи сообщений MPI для архитектур с распределенной памятью и многопоточной обработки данных OpenMP для архитектур с общей памятью, становятся все более популярными, поскольку современные высокопроизводительные вычислительные системы представляют собой набор многопроцессорных систем с общей памятью (вычислительных узлов), объединенных в единую коммуникационную сеть. Создание моделей, эффективно использующих ресурсы таких вычислительных систем, является актуальной задачей на сегодняшний день [1].

Работа выполнена в рамках научного проекта РФФИ № 20-31-90109. (с) А. В. Чаплыгин, А. В. Гусев, 2021

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

В работе рассматривается модель мелкой воды, являющаяся блоком сигма модели общей циркуляции океана INMOM (Institute of Numerical Mathematics Ocean Model), Модель INMOM развивается в ИВМ РАН и используется в качестве блока климатической модели INMCM (Institute of Numerical Mathematics Climate Model), созданной в ИВМ РАН и участвующей в программе IPCC (Intergovernmental Panel on Climate Change) по прогнозированию изменений климата [2]. Модель полностью написана на языке Fortran 90/95,

В работах [3, 4] была сформулирована модель мелкой воды, которая может использоваться как в качестве блока сигма модели океана INMOM, так и независимо, например, для расчетов прохождения волны цунами, приливов и ветрового нагона, В работе [4] была реализована параллельная версия модели мелкой воды для использования на вычислительных архитектурах с распределенной памятью, модель была протестирована для задач моделирования цунами в Тихом океане и шторма 2013 г, на Азовском море, В работе [5] был реализован и проанализирован метод балансировки нагрузки вычислений на процессоры с использованием фрактальных кривых Гильберта применительно к модели мелкой воды, В этих работах модель мелкой воды была реализована для использования на вычислительных системах с распределенной памятью с применением технологии MPI, и программная архитектура модели не предполагала гибкого перехода на гибридные модели параллельного программирования с совместным использованием технологий MPI и ОрепМР,

Цель данной работы — создать новую программную архитектуру модели мелкой воды, предполагающую гибкий переход на гибридные модели параллельного программирования с использованием технологий MPI и ОрепМР и реализовать на основе этой программной архитектуры гибридную модель мелкой воды для эффективного использования на массивно-параллельных многопроцессорных вычислительных системах,

1. Модель мелкой воды. Рассматриваемая в работе модель основана на системе нелинейных уравнений мелкой воды, которая записывается в произвольной ортогональной системе координат в следующем виде:

дтхт hu dZ —Xdt--+ Tu(u, v) - Fu(u, v) - hrxryIv + ryhg—

drxry hv dX

dt + Tv(u,v) - Fv(u,v) + hrxTylu + rxhg— = RHSV , (1)

dh 1 ( dury h dvrxh\

--1---— +--— = 0

dt rxry \ dx dy j

где rx,ry — метрические коэффициенты Ламе, возникающие при записи системы уравне-

uv

lg бодного падения; ( — отклонение уровня моря относительно невозмущенного состояния; h = H + Z — полная глубина океана; H — глубина океана в состоянии покоя. Операторы переноса Tu , Tv записываются в криволинейной системе координат в дивергентной форме:

dhryuu dhrxvu f dry ârx\

Tu(u,v,h) = —---1-----h v—--u— v

dx dy \ dx dy J (2)

T (u v h) = dhryuv + dhrxvv + h(vdl^ „^ГЛ '

±v (u,v,h) = „ + „ + h\v — u u

dx dy \ dx dy J

Операторы вязкости Ги , Г записываются как дивергенция тензора напряжений:

1 д 1 д ГиМ = -- {туквТК) + - — КKDsЩ

У д Х д • (3) гМ = -1 д К + -^ (г1к^К

Здесь К — коэффициент вязкости, а DT и Ds — компоненты тензоров напряжений сжатия-растяжения и сдвига соответственно:

^ ту д ( п\ тх д ( V

D- - у 1 > х

T rx dx ^ ry J ry dy \ r

y J 'y dy \lxJ . (4)

D = Гх Af-^] + r_y_ S ry dy\rx) rx dx\ry

В общем случае в правых частях RHSu , RHSv рассчитываются градиенты атмосферного давления и напряжения трения ветра.

На берегах для скорости задаются граничные условия непротекания и свободного скольжения.

Именно в виде ( 1 ) ( I) нелинейные уравнения мелкой воды представлены в сигма модели общей циркуляции океана INMOM, возникающие при разрешении быстрых баротроп-ных гравитационных волн.

Система уравнений (1)-(4) в модели разрешается с использованием численных методов. При дискретизации по пространству применяется техника построения разностных аппроксимаций второго порядка точности на разнесенной 'С'-сетке по классификации Аракавы [6, 7], в общем случае используется стека нерегулярная как по долготе, так и по широте. При дискретизации по времени используется явная численная схема 'Чехарда со средней точкой' ('leapfrog'). При этом на каждом временном шаге делается фильтрация, чтобы избежать расщепления решения по нечетным и четным временным шагам, что свойственно для такой численной схемы [8, 9],

Более подробно про форму записи системы нелинейных уравнений мелкой воды и их разрешения с использованием численных методов можно посмотреть в работах [4, 5, 10], 2. Параллельная реализация для вычислительных систем с распределенной памятью, 2,1, Метод декомпозиции подобласти. В качестве основного метода распараллеливания для вычислительных архитектур с распределенной памятью в модели мелкой воды используется двумерный метод декомпозиции области, суть которого в следующем: исходная расчетная область разбивается на подобласти и каждому процессору ставится в соответствие своя подобласть, У каждой подобласти есть внераечетная граница толщиной в одну точку, и если процессору нужны данные с соседней подобласти, то производится синхронизация всех процессоров, при которой заполняется внераечетная граница каждой подобласти, и в последующих вычислениях процессор берет эти данные со своей внерае-четной границы. Синхронизация процессоров происходит с использованием технологии MPI.

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

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

количества точек суши внутри. При таком подходе выходит, что часть процессоров простаивает в вычислениях, а другая часть часто находится в ожидании из-за недостаточной загруженности.

Поэтому в модели был реализован усовершенствованный метод разбиения па подобласти, так называемый блочный подход. Суть этого подхода в следующем: исходная расчет-пая область равномерно разбивается па прямоугольные блоки малого размера, и каждому процессору ставится в соответствие некоторый набор блоков, которые и формируют его расчетную подобласть, пример показан па рис. 2, Все вычисления в модели происходят но блокам, у каждого блока есть своя вперасчетная граница. Если блоки находятся внутри одной подобласти, то при синхронизации происходит обычное копирование границы блока па вперасчетпую границу соседнего блока. Если блоки находятся па соседних подобластях, то при синхронизации используется по-прежнему технология MPI. Блочный подход уже успел зарекомендовать себя в таких моделях океана как Parallel Ocean Program (POP) |11, 121 и HIROMB (High Resolution Operational Model for the Baltic Sea) |13|.

Рассматриваемый блочный подход имеет ряд преимуществ:

Подобласти могут быть произвольными многоугольниками. Действительно, т. к. иод-область состоит из набора блоков малого размера, то можно формировать подобласти довольно произвольной формы. Это свойство позволяет проводить метод балансировки нагрузки вычислений па процессоры, формируя подобласти примерно одинаковой загруженности, о чем будет более подробно написано в следующем раздело.

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

Также блочный подход имеет недостаток: дополнительные затраты па копирование вперас четной границы блоков при синхронизации.

Рис. 2. Пошаговый алгоритм балансировки нагрузки с помощью кривых Гильберта

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

2.2. Балансировка нагрузки вычислений. Как уже было сказано ранее, блочный подход позволяет формировать подобласти в форме произвольных многоугольников, что позволяет использовать методы балансировки нагрузки вычислений при построении подобластей процессоров. В модели в качестве одного из таких методов был реализован метод балансировки нагрузки вычислений с использованием кривых Гильберта. В работах |5, 14| подробно описан и проанализирован этот метод. Здесь же кратко его опишем. Предварительно вся расчетная область равномерно разбивается па прямоугольные блоки. Для каждого блока рассчитывается значение загруженности блока как сумма всех точек, которые не .нежат па суше. Далее, па сетке блоков проводится кривая Гильберта, которая переводит двумерное пространство блоков в одномерное. Разбиение па подобласти происходит вдоль кривой и таким образом, чтобы подобласти имели примерно одинаковую сумму загруженности блоков. Затем каждому процессору ставится в соответствие его подобласть, па которой он проводит вычисления. Блоки, которые полностью состоят из точек па суше, в распределении но процессорам и в дальнейших вычислениях не участвуют. На рис. 2 наглядно показаны шаги описанного алгоритма.

3. Гибридная модель параллельного программирования. Узкое место в рассматриваемой модели мелкой воды — это синхронизации MPI между процессорами, т. к. при увеличении числа вычислительных узлов возрастают накладные расходы па синхронизации из-за высокой нагрузки па сеть. Можно уменьшить синхронизации и тем самым уменьшить нагрузку на сеть, если использовать ОрепМР дня распараллеливания на общей памяти внутри узла. Это так называемый гибридный подход. Если при использовании только технологии MPI, в так называемом чистом MPI подходе, дня каждого ядра па узле создается отдельный MPI процесс, то в гибридном MPI — ОрепМР подходе на каждый узел создается только один MPI процесс, и дня каждого ядра создаются отдельные потоки. Гибридные подходы в последнее время становятся все более актуальными и используются во многих гидродинамических моделях |15, 16, 17, 181.

Есть два подхода при использовании технологии ОрепМР дня распараллеливания на общей памяти |19|. Первый и наиболее распространенный подход называется векторным подходом (vector based). При этом подходе происходит распараллеливание по потокам всех вычислений в модели но подобласти, как схематично показано слсчза па рис. 3. Т. о. каждому MPI процессу соответствует некоторая подобласть, и все ОрепМР потоки существуют

Рис. 3. Гибридные MPI — ОрепМР подходы. Слева векторный подход: справа заданный подход

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

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

Второй подход называется заданным подходом (task based). Главная идея в этом иод-ходе заключается в том, чтобы использовать метод декомпозиции области дня потоков ОрепМР, т. е. ставить каждому потоку в соответствие некоторую подобласть. При таком подходе каждый ноток существует и проводит вычисления на своей собственной подобласти, как схематично показано справа на рис. 3. За основу гибридного MPI — ОрепМР подхода в модели мелкой воды был взят именно заданный подход. Блоки из разбиения распределяются как но процессам MPI, так и но потокам ОрепМР. Распределение блоков но MPI процессам происходит с использованием метода балансировки нагрузки вычислений, описанного в предыдущем раздело, и далее происходит распределение блоков но ОрепМР потокам внутри каждого MPI процесса с использованием жадного алгоритма следующим образом: все доступные блоки MPI процесса сортируются но величине загруженности и далее в этом порядке но одному распределяются на все доступные потоки внутри MPI процесса. Такой алгоритм при условии, что количество блоков в разбиении велико, обеспечивает равномерную нагрузку вычислений но всем доступным потокам в вы числительной системе.

В раз доне с вычислительными экспериментами будет проведено сравнение двух описанных гибридных подходов MPI — ОрепМР и продемонстрировано, что заданный иод-ход во многом эффективнее векторного подхода. Здесь же отметим, что именно заданный ОрепМР подход используется в широко известных моделях атмосферы WRF (Weather Research and Forecasting Model) |20| и океана ROMS (Regional Ocean Modeling Svstem) 115, 21]-

Отметим также следующие особенности реализованного гибридного подхода с использованием технологий MPI и ОрепМР:

— У каждого процессора есть буфер дня MPI обмена данными с соседними процессорами, в котором имеется место иод хранение данных со всех границ блоков подобласти, необходимых дня нерессы.нки на соседние процессоры. Синхронизация между подобластями происходит с использованием этого буфера и неблокирующими вызовами MPI, причем синхронизация выполняется одним потоком.

Уровень Алгоритма

Уровень Интерфейса

Уровень Ядра

Рис. 4. Трехуровневая программная архитектура модели мелкой воды

— При синхронизации копирование границы блоков во внерасчетную границу соседних блоков и в буфер дня MPI обмена происходит параллельно всеми потоками ОрепМР,

— Для ОрепМР параллельный регион создается в начале запуска модели и существует до конца расчета, что минимизирует временные затраты на инициализацию потоков в модели.

— Инициализация всех данных происходит в параллельном регионе ОрепМР. Это обеспечивает то, что страница памяти выделяется с узла того потока, который первый к ней обратился (first-touch policy). При таком подходе потоки эффективнее работают с памятью в XUMA-системах (Хоп Uniform Memory Access), в которых доступ в память чужого узла занимает существенно больше времени, чем доступ в намять своего узла.

— Балансировка нагрузки вычислений но потокам происходит в начале расчета, и далее всюду используется статическое планирование ОрепМР потоков по блокам, т. е. используется sehedule(statie). При динамическом планировании, т.е. при использовании schedule (dynamic), имеются накладные расходы и происходит менее эффективная работа с памятью, чем при статическом планировании.

— Всюду, где это возможно, используется nowait дня параллельных секций ОрепМР, чтобы минимизировать точки синхронизации потоков.

4. Программная архитектура. В модели была реализована программная архитектура, основанная на принципе разделения обязанностей. Программная архитектура заключается в том, что весь программный комплекс разделяется на три уровня: самый нижний уровень, уровень Ядра, содержит все процедуры, необходимые дня вычисления уравнений мелкой воды, так называемые ядра модели; самый высокий уровень, уровень Алгоритма, отвечает за порядок вызова ядер модели и задает схему работы модели но времени; уровень Интерфейса выступает в качество промежуточного уровня между первыми двумя и отвечает за параллельные методы и подходы, используемые в модели (рис:. 4).

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

Трехуровневая программная архитектура, основанная на принципе разделения обязанностей, зарекомендована себя в модели мелкой воды из модели океана ХЕМО (Nucleus for

European Modelling of the Ocean) [22] и планируется внедрить ее в полную модель океана NEMO к 2022 году [23].

Опишем схематично каждый программный уровень модели мелкой воды.

4.1. Уровень Ядра. Уровень Ядра содержит все вычислительные процедуры, так называемые ядра модели. В общем случае ядро модели представляет собой некоторый двумерный цикл по прямоугольной подобласти, внутри которого происходят сеточные вычисления — это могут быть шаблоны разностных схем и прочее. На этом уровне происходит работа с обыкновенными двумерными массивами, и исходная нераспараллелейная программа представляет собой набор именно таких процедур, т. е. это база модели. Всего в модели мелкой воды было выделено порядка 15 ядер. В листинге ниже представлен общей

вид ядра модели, где nx^start, nx^end, ... — это границы подобласти; bnd_xl, btul_х'2.

... — это границы подобласти, включающие внераечетную границу; va г — сеточная переменная, которая может быть уровнем, компонентной скоростью и т. д.

subroutine kernel(var)

real(wp8), intent ( inout ) :: var (bnd_xl : bnd_x2 , bnd_yl : bnd_y2)

do m = nx^start , nx^end

do n = ny_start , ny_end

var (m, n) = <some eomputations> enddo enddo end subroutine

4.2. Уровень Алгоритма. На уровне Алгоритма задается порядок вызова ядер модели, тем самым на этом уровне описывается основной временной цикл модели. На этом уровне происходит работа с абстрактными структурами данных, например классом ocean_type, включающим в себя сеточные переменные уровня, компонент скорости и т. д. В листинге ниже схематично представлен пример кода этого уровня. На этом примере сначала вызывается ядро расчета уровня (kernel^ssh), затем ядро расчета компонент скорости (kernel_uv) и т.д. Вызовы ядер производятся с использованием специальной процедуры envoke, являющейся частью Интерфейса, о котором речь пойдет далее.

type ( ocean_type ) , target :: ocean^data

procedure ( empty ^kernel ) , pointer :: kernel^ssh , kernel_uv

call envoke (ocean_data%ssh , kernel^ssh)

call envoke (ocean_data%u, ocean_data%v , kernel_uv)

4.3. Уровень Интерфейса. Промежуточный уровень между ядром и вызовом ядра — это уровень Интерфейса, в котором реализованы все параллельные методы и подходы, используемые в модели. В частности, в интерфейсе проводится разбиение на блоки (раздел 2.1), балансировка нагрузки вычислений (раздел 2.2), гибридный подход с использованием технологий MPI и ОрепМР (раздел 3), синхронизации процессоров и прочее. На этом уровне происходит работа с параллельными типами данных, например классом data2D_real8_type, содержащим в себе распределенные данные по блокам.

Рис. 5. Тестирование блочного подхода на одном ядре. По вертикальной оси время в секундах: желтым цветом общее время работы модели: оранжевым время на синхронизации блоков. По горизонтальной оси количество блоков в разбиении

На нижнем уровне Ядра и верхнем уровне Алгоритма содержится вся физика модели, и при этом на этих уровнях ничего не известно upo особенности параллельной реализации, которые скрыты от них в Интерфейсе. Интерфейс реализуется универсальным дня всех ядер модели, что позволяет гибко настраивать модель иод целевую архитектуру вычислительной системы. На листинге ниже схематично представлена реализация интерфейса с помощью единой процедуры envoke. Эта процедура вызывает ядро дня каждого блока потока ОрепМР и проводит затем синхронизацию MPI процессов и потоков ОрепМР,

subroutine envoke(var, kernel)

type ( data2D_real8_type ) :: var

!$omp do private (k) do k = 1, blocks

call kernel

enddo

!$omp end do nowait call sync end subroutine

5. Вычислительные эксперименты. 5.1. Акватория без участков суши. Первая серия вычислительных экспериментов проводилась дня акватории без участков суши с размером 1525 на 1115 точек. Эта серия экспериментов проводилась с цслыо продемонстрировать производительность модели без эффектов неравномерной нагрузки на процессоры. Расчеты проводились с шагом, но времени равным 1 секунде, всего проводилось 8640 шагов.

Был протестирован блочный подход на одном ядре, т. е. последовательная версия модели. Тестирование проводилось на процессоре Intel Xeon Silver 4214. На рис. 5 показано время работы модели в зависимости от количества блоков, участвующих в разбиении области. Видно, что с увлечением количества блоков в разбиении (т. е. с уменьшением размера

schedule ( static , 1) ( var%block (k) )

Рис. 6. Сравнение гибридных и чистого MPI подходов. Слева: масштабируемость на кластере ИВМ РАН;

справа: время работы на суперкомпьютере МСЦ РАН

блока т. к. разбиение на блоки равномерное) общее время расчета модели увеличивается из-за затрат на копирование границ блоков на внерасчетные границы соседних блоков. Когда размеры блоков становятся достаточно малыми, а именно когда разбиение начинает состоять из 256 блоков, происходит ускорение на 12 % по сравнению с неблочным подходом за счет эффективной работы с кэш памятью в блочном подходе. И хоть общее время расчета продолжает далее увеличиваться с уменьшением размера блоков, при 1024 блоков в разбиении оно выравнивается со временем неблочного подхода. Из всего этого можно сделать вывод, что, если выбирать малые размеры блоков, то эффективная работа с кэш памятью компенсирует затраты на копирование границ блоков при синхронизации. Для рассмотренной акватории получилось, что оптимальный размер блока, получаемый при разбиении области на 256 блоков, соответствует размеру 95 на 69 точек. Поскольку в вычислениях используются числа с плавающей запятой двойной точности (64 бита на одно число), то один такой блок занимает около 50 Кбайт в памяти.

На кластере ИВМ РАН [24] был протестирован гибридный заданный подход, и было проведено сравнение с гибридным векторным и чистым MPI подходами. Тестирование проводилось в смешанной очереди как со старыми, так и с новыми узлами. В очереди было 8 старых узлов, состоящих из двух процессоров Intel Xeon E5-2670v3 (24 ядра на узел) и б новых узлов, состоящих из двух более современных процессоров Intel Xeon Silver 4214 (также 24 ядра на узел). На рис. 6 показаны графики ускорения в зависимости от числа ядер, ускорение считалось относительно времени работы модели на одном ядре. На рис. 6 (слева) первые 144 ядра соответствует б новым узлам очереди, и далее подключаются 8 старых узлов, максимальное количество ядер в очереди равно 336. Во всех запусках для гибридного заданного и чистого MPI подходов количество блоков бралось равному количеству ядер (т.е. каждому потоку ставился в соответствие один блок из разбиения), для гибридного векторного подхода количество блоков бралось равному количеству узлов. Из рис. 6 видно, что на б новых узлах гибридный заданный и чистый MPI подходы демонстрируют практически линейное ускорение, в то время как ускорение гибридного векторного подхода получается в два раза меньше. Это, как уже говорилось, во многом связано с тем, что в гибридном векторном подходе неэффективно используется кэш память потоками. При подключении старых узлов на графиках виден провал в ускорении, который связан с

Block, load balance No block, no load balance

—No block, no load balance (without idle cores)

4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 Number of cores

Рис. 7. Масштабируемость блочного подхода с балансировкой нагрузки вычислений на процессоры (синий) в сравнении с равномерным разбиением без балансировки нагрузки (красный)

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

Проводились такие же эксперименты на суперкомпьютере МВС-10П ОП1 (МСЦ РАН) па очереди broadwell, состоящей из процессоров Intel Xeon E5-2697Av4 |25|, Каждому узлу в очереди соответствуют 32 ядра, тестирование проводилось па 16 узлах (512 ядер максимально), На рис. 6 (справа) показано время работы гибридных подходов в сравнении с чистым MPI подходом. Видно, что гибридный заданный и чистый MPI подходы демонстрируют примерно одинаковое время расчета и хорошую масштабируемость, близкую к линейной. Гибридный векторный подход имеет также хорошую масштабируемость, близкую к линейной, по видно, что из-за большого времени расчета па одном узле этот метод отстает но производительности от двух других.

5.2. Акватория Азовского моря. Вторая серия экспериментов проводилась дня акватории Азовского моря с разрешением 250 метров, расчетная область с размерами 1525 па 1115 точек. Расчеты проводились с шагом, но времени равным 1 секунде, всего проводилось 2160 шагов. Главная идея в этих экспериментах заключалась в том, чтобы посмотреть производительность модели мелкой воды па задаче с возможными эффектами неравномерной нагрузки па процессоры и продемонстрировать работу метода балансировки нагрузки вычислений. Акватория Азовского моря содержит довольно большое количество блоков (см. рис. 2). При разбиении этой акватории на 4096 блоков более половины блоков попадает полностью па сушу, поэтому методы балансировки нагрузки здесь будут особенно актуальными.

Вычислительные эксперименты для этой акватории проводились на кластере IIBM РАН на 6 узлах, состоящих из двух процессоров Intel Xeon Silver 4214 (24 ядра суммарно на узел). Во всех экспериментах размер блока выбирался оптимальным для акватории, а именно выбиралось разбиение с 256 блоками при размере каждого блока, равного 95 на 69 точек (см, рис, 5), На рис, 7 показана масштабируемость блочного метода с балансировкой нагрузки (синяя линия) в сравнении с равномерным разбиением без балансировки нагрузки (красная линия). Пунктирная линия показывает ускорение, рассчитанное только для процессоров, участвующих в вычислениях, т, е, процессоры, полностью попадающие на сушу, игнорируются при подсчете ускорения. Из рис, 7 видно, что блочный метод с балансировкой нагрузки демонстрирует линейное и даже сверхлинейное ускорение на малом количестве ядер, в то время как метод без балансировки нагрузки демонстрирует ускорение в два раза меньшее. Если при подсчете ускорения игнорировать процессоры, попадающие полностью на сушу, то видно, что ускорение метода без балансировки нагрузки увеличивается примерно на 30 %, но все равно остается далеким от линейного из-за несбалансированных вычислений на загруженных процессорах.

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

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

Гибридный заданный подход с использованием технологий MPI и Open M Р. ставящий каждому потоку в соответствие набор блоков, В гибридном заданном подходе каждый поток существует и проводит вычисления на своей собственной подобласти, что позволяет эффективно работать потокам с кэш памятью при вычислениях на своих блоках. Гибридный подход позволяет снизить нагрузку на сеть при синхронизации внераечетных границ на большом количестве вычислительных узлов, потому что синхронизации внутри узлов не требуются из-за наличия общей памяти,

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

Отметим, что реализованная программная архитектура в модели мелкой воды позволяет осуществить гибкий переход не только на гибридные модели параллельного программирования, но и в перспективе на модели параллельного программирования для гетерогенных вычислительных систем с использованием технологий CUDA, ОрепАСС и т, д. Все модификации при переходе на новую модель параллельного программирования

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

Список литературы

1. Lawrence, В. N. and Reznv, М. and Budich, R. and Bauer, P. and Behrens, J. and Carter, M. and Deconinck, W. and Ford, R. and Mavnard, C. and Mullerworth, S. and Osuna, C. and Porter, A. and Serradell, K. and Valcke, S. and Wedi, N. and Wilson, S. Crossing the chasm: how to develop weather and climate models for next generation computers? // Geosci. Model Dev., 2018. N 11. P. 1799-1821.

2. Володин К. \!.. Дианский Н. А., Гусев А. В. Модель земной системы INMCM4: воспроизведение и прогноз климатических изменений в 19-21 веках // Известия РАН. Физика атмосферы и океана, 2013, Т. 49, № 4, С. 379-400.

3. Чаплыгин А. В. Параллельная реализация общей модели циркуляции океана INMOM // Сборник тезисов лучших выпускных квалификационных работ факультета ВМК МГУ 2017. Москва: МАКС ПРЕСС, 2017. С. 27-28.

4. Чаплыгин А. В., Дианский Н.А., Гусев А. В. Параллельное моделирование нелинейных уравнений мелкой воды // Труды 60-й Всероссийской научной конференции МФТИ, 2017.

5. Чаплыгин А. В., Дианский И. А., Гусев А. В. Метод балансировки нагрузки вычислений с использованием кривых Гильберта применительно к параллельному алгоритму решения уравнений мелкой воды // Вычислительные методы и программирование. 2019. № 20. С. 75-87.

6. Arakawa A., Lamb V. R. Computational design of the basic dynamical processes of the UCLA general circulation model. // Methods in computational Physics. V. 17.

7. Mesinger F., Arakawa A. Numerical methods used in atmospheric models. // JOC, GAPR Publication Series. 1976. V. 1, N 17.

8. Роуч П. Вычислительная гидродинамика. М: Мир, 1980.

9. George L. Mellor. User guide for a three-dimensional, primitive equation, numerical ocean model. Princeton University.

10. Дианский И. А. Моделирование циркуляции океана и исследование его реакции на корот-копериодные и долгопериодные атмосферные воздействия. М.: Физмалит, 2012.

11. Smith R., Jones P., Briegleb В., et al. The Parallel Ocean Program (POP) Reference Manual Ocean Component of the Community Climate System Model (CCSM) and Community Earth System Model (CESM). 23 March 2010.

12. van Werkhoven В., Maassen J., Kliphuis M.. Dijkstra H. A., Brunnabend S. E., van Meersbergen M.. Seinstra F. J., and Bal H. E. A distributed computing approach to improve the performance of the Parallel Ocean Program. // Geosci. Model Dev., 2014. N 7. P. 267-281.

13. Wilhelmsson Tomas. Parallelization of the HIROMB Ocean Model. Licentiate Thesis, Royal Institute of Technology Department of Numerical Analysis and Computer Science, 2002.

14. John M. Dennis. Inverse Space-Filling Curve Partitioning of a Global Ocean Model. IEEE International Parallel and Distributed Processing Symposium, 2007.

15. Liu T. et al. Parallel Implementation and Optimization of Regional Ocean Modeling System (ROMS) Based on Sunwav SW26010 Many-Core Processor. // IEEE Access, V. 7. P. 146170-146182, 2019.

16. Afzal, A., Ansari, Z., Faizabadi, A.R. et al. Parallelization Strategies for Computational Fluid Dynamics Software: State of the Art Review. // Arch Computat Methods Eng 24, 337-363 (2017).

17. Akhmetova D, Iakvmchuk R, Ekeberg O, Laure E. Performance study of multithreaded MPI and Openmp tasking in a large scientific code. // Proc. 2017 IEEE 31st Int. Parallel Distrib. Process. Svmp. Work. IPDPSW 2017. P. 756-65.

18. Мортиков Е. В. Программная реализация блока переноса примесей в климатических моделях на основе гибридного программирования MPI-OpenMP. // Суперкомпьютерные дни в России: Труды международной конференции. 2016. С. 521-529.

19. Rabenseifner R. and Wellein G. Communication and optimization aspects of parallel programming models on hybrid architectures. // Int. J. High Perform. Сотр. Appl., 2003. N 17(1). P. 49-62.

20. Elliott, S., Sobhani, N., Del Vento, D., Gill, D. O. WRF performance optimization targeting Intel multicore and manycore architectures. In 2nd Symposium on High Performance Computing for Weather, Water, and Climate. American Meteorological Society: New Orleans, LA, US, 2016.

21. Shchepetkin Alexander F., McWilliams James C., The regional oceanic modeling system (ROMS): a split-explicit, free-surface, topography-following-coordinate oceanic model // Ocean Modelling. 2005. V. 9. Iss. 4. P. 347-404.

22. Porter Andrew R., Appleyard Jeremy, Ashworth Mike, Ford Rupert W., Holt Jason, Liu Hedong and Riley Graham D.. Portable multi- and many-core performance for finite-difference or finite-element codes — application to the free-surface component of NEMO (NEMOLite2D 1.0). // Geosci. Model Dev., 2018. N 11. P. 3447-3464.

23. NEMO Consortium. NEMO development strategy Version 2: 2018-2022. 2018.

24. Кластер ИВМ РАН. [Электрон, pec.]: http://cluster2.inm.ras.ru.

25. Кластер МСЦ РАН. [Электрон, pec.]: http://www.jscc.ru.

раллельным программированием и численными методами. Чаплыгин А. В. имеет 4 публикации в научных изданиях, индексируемых в РИНЦ и входящих в текущий перечень ВАК России, из них 2 публикации из WoS и Scopus; 5 публикаций в материалах конференций, индексируемых в РИНЦ.

Chaplygin А. V. graduated from the Bachelor's degree program of the Moscow State University in the direction 01.03.02 „Applied Mathematics and Computer Science". In 2019, he graduated with honors from the Master's program of the Moscow State University in

the direction 01.04.02 „Applied Mathematics

"

in the international Roman-Moscow School of Matrix Methods and Applied linear algebra, and also completed long-term internships as a research programmer in high-tech companies, where he worked with high-performance software for numerical modeling. Currently, he is a postgraduate student of the Marchuk Institute of Numerical Mathematics. The field of scientific activity of Chaplygin A.V. is connected with mathematical modeling, parallel programming and numerical methods. Chaplygin A.V. has 4 scientific publications, including 2 publications from WoS and Scopus; 5 publications in conference materials.

Чаплыгин А. В. — е-

таП: асЬар^тЭ 9 @ gmail. сот, тел. +7 965 1818175. Окончил бакалавриат ВМК МГУ по направлению 01.03.02 „Прикладная математика и информатика", тема диплома: „Реализация параллельной версии модели циркуляции океана ШМОМ".

С этим дипломом он победил в конкурсе выпускных квалификационных работ 2017 года факультета ВМК МГУ, получил диплом победителя 2 степени. В 2019 году с отличием окончил магистратуру ВМК МГУ по направлению

01.04.02 „Прикладная математика и информа-"

балансировки нагрузки вычислений с использованием фрактальных кривых Гильберта для "

дународной Римско-Московской школе по матричным методам и прикладной линейной алгебре, а также проходил длительные стажировки в качестве программиста-исследователя в высокотехнологичных компаниях, где работал с высокопроизводительными программными комплексами по численному моделированию. В настоящее время является аспирантом ИВМ РАН. Область научной деятельности связана с математическим моделированием, па-

Гусев А. В. (индекс хир-ша 17 по РИНЦ и 12 по WoS, за последние 5 лет 50 публикаций, из них 19 из WoS и Scopus) старш. науч. сотр. ИВМ РАН и ИО РАН, канд. физ.-мат. наук, e-mail: anatoly. v. gusev@gmail. com, тел. +7 903 2467187.

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

Окончил Московский физико-технический институт в 2005 году, после чего был принят в аспирантуру Института вычислительной математики РАН. В 2009 году защитил диссертацию на соискание ученой степени кандидата физико-математических наук по теме „Численная модель гидродинамики океана в криволинейных координатах для воспроизведения циркуляции Мирового океана и его отдельных акваторий" по специальности 05.13.18 — „Математическое моделирование, численные методы и комплексы программ". В настоящее время работает в ИВМ РАН на должности старшего научного сотрудника. Область научной деятельности Гусева А. В. связана с численным моделированием циркуляции океанов и морей. В основе исследований, проводимых в ИВМ РАН по этому направлению, лежит научная база, создаваемая на протяжении многих лет основателем института академиком Г. И. Марчуком и его учениками. За время работы Гусев А. В. внес большой вклад в создание и развитие числен-

ной модели циркуляции Мирового океана ИВМ РАН и модели климатической системы Земли. Разработанная им модель, известная в международном сообществе как INMOM (Institute of Numerical Mathematics Ocean Model), находит широкое применение как в России, так и за рубежом.

Gusev А. V. (Hirsch index 17 in the RSCI and 12 in WoS, 50 publications over the past 5 years, 19 of them from WoS and Scopus) Ph. D. He graduated from the Moscow Institute of Physics and Technology in 2005, after which he was accepted to the postgraduate program of the Institute of Numerical Mathematics of the Russian Academy of Sciences (INM RAS). In 2009, he defended his Ph. D. thesis in the specialty 05.13.18 „Mathematical modeling, numerical methods and software packages". Currently, he works at the INM RAS as a senior researcher. The field of scientific activity of Gusev A.V. is connected with numerical ocean circulation modeling. During his work, Gusev A. V. made a great contribution to the creation and development of the numerical world ocean circulation model and the model of the Earth's climate system. The model developed by him, known in the international community as the INMOM (Institute of Numerical Mathematics Ocean Model), is widely used both in Russia and abroad.

Дата поступления — 03.02.2021

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