GaspiLS – Scalability for CFD and FEM Simulations

GaspiLS is a scalable and industry proven linear solver library for the exascale age. Many engineering simulations are based on CFD and FEM methods. Examples are the determination of aerodynamic properties of planes or the analysis of statics of buildings. A large part of the computation time is required to solve the underlying equations using iterative methods. The performance of the employed iterative solvers has a significant impact on the total run time of these simulations. We have developed the linear solver library GaspiLS to faster gain insights from the simulations.

 

Industry uses GaspiLS for better scalability

Scalability measures the parallel efficiency of an implementation. The optimum is the so-called linear scalability. This corresponds to a full utilization of the cores within a single CPU or the CPUs within a cluster, which are interconnected by a network.

GaspiLSs' inherent scalability yields the following advantages for simulations:

  • more detailed models
  • more precise parameter studies
  • cost-efficient resource utilization

These aspects make GaspiLS particularly interesting for industry.

Better compute resource utilization

In order to achieve better scalability, GaspiLS uses tools for parallel programming which are developed by us: These are the communication library GPI-2 and its underlying programming model. The algorithm is split into fine grained sub problems (so-called tasks) with mutual dependencies. This allows for the assignment of executable tasks to free compute resources at any time and guarantees for a continuous stream of compute tasks for every CPU.

In this way, we avoid global synchronization points and compensate for the latency times or imbalances in compute time resulting from the exchange of data due to the large number of generated sub problems. Every single core is maximally emploited at any time.

Pressure correction computation
© Fraunhofer ITWM

Pressure correction computation in the PISO method: GaspiLS (green and blue) has significantly improved performance and scalability in comparison to the MPI based implementation (orange).