Parallel and distributed algorithms for computational fluid flow simulations - Vu, Thanh Tung (2018)
Hydraulic and hydrodynamic numerical models have become critical tools in doing research, forecasting and management of fluid flows. Studies so far show that multiple-dimensional physically based models that utilize the fully dynamic solution of the Navier-Stokes equation are the most appropriate choice for the computational simulations with high accuracy, stability and reliability. The utilization of this type of model requires the handling of an enormous amount of information, which normally involves the hydrological (spatial-temporal) characteristics, regional geographical information as well as the characteristics of the drainage system. Therefore, when the volume of input data increases significantly (e.g. the topographic data have higher resolutions), the excessively long simulation time becomes a major obstacle. Thus, distributed computing architectures have been explored to parallelize the computation scheme to speed up the simulation time for modelling. At present, three parallel computing architectures, namely the Message Passing Interface (MPI), OpenMP and GPU CUDA are used extensively. This work proposes a new parallel approach for fluid flow simulations using the Partitioned Global Address Space (PGAS) architecture with Unified Parallel C (UPC) as the implementation solution. The new UPC model combines the benefits of the locality in shared memory architecture of OpenMP and data layout control of MPI. It also maintains the relative ease of programming and implementation works for the possibility of hybrid CPU-GPU architecture development in the future. UPC utilizes the advantage of optimized privatization in the data memory management to accelerate the communication processes. The algorithms of UPC model derived in this study, including domain discretisation and data distribution, are all designed to capitalize on this key concept. The application-customized parallel computational structure for each numerical scheme is also highlighted. Furthermore, a load-balancing concept, which is essential for massive parallel approaches, is analyzed and described in detail. The new approach is then customized for different numerical schemes in three fluid flow simulation cases: (1) flood modelling using a second-order Godunov-type monotone upstream scheme with second-order accuracy; (2) computational fluid dynamic (CFD) modelling for laminar flows using the 2-step explicit numerical scheme from the Lax-Wendroff family of predictors and correctors and (3) Lattice Boltzmann method for laminar flows with two dimensions and nine possible directions for streaming processes. In this thesis, after describing the mathematical formulation of an incompressible Newtonian fluid flow based on the Navier- Stokes equations, the standard numerical methods as well as alternative Lattice Boltzmann approaches are discussed. The verification for the models' accuracy verification is then presented, which show the excellent agreement of the simulation results and reference values for the simulation cases. The computational efficiency of the UPC models is demonstrated using a shared- and distributed-memory system. The results show that the speedup is significantly enhanced compared to MPI and OpenMP models in all cases. This work highlights potentials to efficiently utilize methods from computer science – especially from the field of high-performance computing to improve solutions from engineering-based domains to facilitate the treatment of complex problems. The synergistic effects between the two disciplines are obvious and promising.