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.