General information
During finite element solving, several steps may be achieved in parallel (using several cores available on the machine) such as the building of the topological matrix, the assembly, and the solving of the linear system, which usually is the most time-consuming task.
All the steps described above directly depend on the number of nodes in the Flux meshed project. An optimal number of cores usually exists and allows to divide of the computations among the different cores without spending too much time on the synchronization between them. This optimal number of cores reduces the calculation times as much as possible, without overloading the machine used.
Flux has several solvers for solving the linear system (direct or iterative) and each of them has different memory consumption and different efficiency for parallel computing. Thus, there is a real interest in finding the best time/memory compromise by adjusting the following parameters:
- Number of cores to use for finite element resolution,
- Solver for the resolution of the linear system (direct or iterative).
This document uses 2D, 3D, and Skew examples to give recommendations in terms of number of cores, linear solver, and an estimation of the memory needed. To do this, a case has been selected for each application (Transient Magnetic, Steady-State AC magnetic, and Magnetostatic). This case is solved several times with a different mesh, a different number of cores, from 1 to 32, and different solvers (direct or iterative).