Problems Related to Parallelization of CFD Algorithms on GPU, Multi-GPU and Hybrid Architectures

Marek Biazewicz, Krzysztof Kurowski, Bogdan Ludwiczak, Krystyna Napieraia, Theodore E. Simos, George Psihoyios, Ch. Tsitouras · AIP conference proceedings · 2010

Computational Fluid Dynamics (CFD) is one of the branches of fluid mechanics, which uses numerical methods and algorithms to solve and analyze fluid flows. CFD is used in various domains, such as oil and gas reservoir uncertainty analysis, aerodynamic body shapes optimization (e.g. planes, cars, ships, sport helmets, skis), natural phenomena analysis, numerical simulation for weather forecasting or realistic visualizations. CFD problem is very complex and needs a lot of computational power to obtain the results in a reasonable time. We have implemented a parallel application for two‐dimensional CFD simulation with a free surface approximation (MAC method) using new hardware architectures, in particular multi‐GPU and hybrid computing environments. For this purpose we decided to use NVIDIA graphic cards with CUDA environment due to its simplicity of programming and good computations performance. We used finite difference discretization of Navier‐Stokes equations, where fluid is propagated over an Eulerian Grid. In this model, the behavior of the fluid inside the cell depends only on the properties of local, surrounding cells, therefore it is well suited for the GPU‐based architecture. In this paper we demonstrate how to use efficiently the computing power of GPUs for CFD. Additionally, we present some best practices to help users analyze and improve the performance of CFD applications executed on GPU. Finally, we discuss various challenges around the multi‐GPU implementation on the example of matrix multiplication.

Read the paper · More papers on PaperTik