Parallel Computing: Presentation

Introduction

Why parallel computing?

  • To make Flux benefit of computation node architectures that dominate the current market
  • To solve faster
  • To solve more complex models

Parallel computing

To make Flux solver faster, 2 parallelization strategies have been integrated for different parts of the solving process:

  • Multithread parallelization of two time consuming tasks: the integration on the local finite elements and the assembly of the global matrix.
  • Multithread parallelization, with or without distributed computation, for linear systems solving through MUMPS solver.

Warnings

  • Slight increase of memory requirements depending on the number of threads used (around 10 to 20% per thread).
  • The parallel computing technology does not allow distinguishing a real core from a virtual one. For Flux, it is better not to exceed the number of real cores during the settings of the number of cores.
  • Performances depend on the machine because threads are managed by the operating system.
  • Performances cannot be predicted precisely because many factors impact them (machine, problem size, computation type, operating system…)
  • Other programs running at the same time on the computation node can reduce parallel efficiency.
  • Use all the available resources will not necessary give best performances. One must adapt used resources with the project to solve.

Favourable situation

One can notice that 3D cases with important mesh are favourable in term of parallel efficiency. Gains obtained on 2D computations are less important.