Seminar Mechanics of Machines and Mechanisms - Models and Mathematical Methods
PROGRAM
Predavanja možete pratiti i online putem MITEAM stranice Seminara Mehanika mašina i mehanizama - modeli i matematičke metode:
https://miteam.mi.sanu.ac.rs/asset/PgqjStRApvcGxwtBx
Plan rada Seminara Mehanika mašina i mehanizama - modeli i matematičke metode za DECEMBAR 2025.
Utorak, 02.12.2025. u 17:00, sala 301f, Kneza Mihaila 36 i Live stream
Ivan Tomanović, “VINČA” Institute of Nuclear Sciences-National Institute of the Republic of Serbia, University of Belgrade
TOWARDS PARALLEL IN-HOUSE CFD CODES VIA OpenACC PROGRAMMING
Decades of code development in research institutions lead to a creation of large number of specialized codes. These codes are mostly written for single core architectures, given that only small portion of entire academia, both locally and globally, had access or skill and time to create dedicated codes for the high-performance computers. Advances and changes in computer architecture over the past few decades saw introduction of both multicore computers and general-purpose graphical processing units (GP-GPUs). This was a huge step towards consumer grade HPC, but the learning curve and coding difficulty for these platforms still made them inaccessible and somewhat unattractive to the majority of academia. OpenMP (1997) with MPI and OpenACC (2011) as an interface for parallelization are making parallel computing more accessible to scientists with limited time and skills in programming, alleviating major work from them to the compiler. Modern computers saw a huge increase in both the hardware power and the availability. Both our and other authors research shows that there is a significant potential, and in following years very likely a necessity to move our codes to the new hardware platforms.
We began the conversion of in-house developed codes into the parallel versions using OpenACC programming. It is believed to be an appropriate approach, since the significant burden of process optimization, and/or memory management, as well as the task scheduling is moved from the user to compiler. Depending on the available hardware, and compiler version, different levels of optimization are readily available, further increasing convenience of writing codes this way. Latest development in the field brought us the Grace Blackwell architecture with its advanced unified memory space that allows us to allocate memory once in a single, coherent address space, and access it from both CPU and GPU using second gen NVLink-C2C, with no need for explicit data copies.
Here we will discuss the basic ideas behind OpenACC and how it helps to convert existing CFD code to its parallel version. This will be shown through a FORTRAN implementation of the SIMPLE algorithm with a two-equation k-epsilon turbulence model. Here the major difficulty was to reduce serial portions of code as much as possible in order allow massive parallel execution. Also, we will take a look at a basic particle tracking program that should illustrate difficulties in connecting particles to a flow field by two-way coupling. Overcoming the source term reductions has proven to be an issue that can be partially alleviated through the introduction of a new array that independently stores each time step of each trajectory, but the scalability of this approach is very poor. Much more scalable approach was to sacrifice performance and use the atomic directive for operations on the source terms, to avoid the overlapping of write and read operations.
Seminar Mehanika mašina i mehanizama - modeli i matematičke metode započeo je sa radom u junu 2018.god. Seminar se održava do dva puta mesečno, utorkom u periodu od 17.00 - 19.00 u Matematičkom institutu SANU.