Additional speed-up for modal analyses !
by O. Boiteau, EDF R&D / SINETICS
For one year, the engineer conducting dynamic studies using modal analysis operators (such as MACRO_MODE_MECA and INFO_MODE) has experienced important performance gains and decreased time to solution. Up to twice as fast for sequential calculations and up to 30 times faster with a few dozens of cores (unstable version).
These performance enhancements keep going forward, not only with MACRO_MODE_MECA but also with MODE_ITER_SIMULT and CALC_MODAL. This is done without any negative impact, neither on the memory consumption, nor on the accuracy of the results, nor on the user-friendliness or the scope of available features of these operators.
A complete rewrite of the orthonormalization procedure of these operators has hence enabled from 15% to 80% of CPU performance gains, for sequential as well as parallel analyses. This dramatic decrease in solution time can be observed for generalized problems (real and symmetric) when searching for a few dozens or hundreds of modes with the default algorithm (’SORENSEN’).
A standard sequential analysis with MODE_ITER_SIMULT (137 modes in perf013a performance test which has one million degrees of freedom) now takes 10 minutes compared to the previous 50 minutes whereas a frontier calculation (137 modes in the 4 millions degrees of freedom perf013c performance test) requires only 48 minutes to solve compared to 3 hours previously.
perf013a
50 modes | perf013a
137 modes | perf013c
50 modes | perf013c
137 modes | |
---|---|---|---|---|
CPU time in minutes (V12.0) | 8 | 50 | 42 | 188 |
CPU time in minutes (V12.1) | 4 | 10 | 24 | 48 |
Performance gain | 50% | 80% | 43% | 75% |
Performance speed-up in MACRO_MODE_MECA is slightly less but it adds up to the previous gains, including those related to parallelism (see table below) : with 12 cores, the solution time of the frontier calculation is reduced to 17 minutes whereas it used to take 3 hours in version 11.2.
137 modes, sequential | 137 modes with 3 sub-bands, 1 core per sub-band | 137 modes with 3 sub-bands, 4 cores per sub-band | |
---|---|---|---|
CPU time in minutes (V12.0) | 103 | 42 | 33 |
CPU time in minutes (V12.1) | 55 | 26 | 17 |
Performance gain | 47% | 38% | 48% |
Finally, an industrial application (cylindrical structure with 700 000 degrees of freedom and 448 modes), which used to require 1 hour and 34 minutes in version 11.2, now only takes 6 minutes using 20 cores (37 minutes for a sequential analysis).
![]() |
448 modes, 1 core | 448 modes with 5 sub-bands, 1 core per sub-band | 448 modes with 5 sub-bands, 4 cores per sub-band | |
---|---|---|---|
CPU time in minutes (V12.0) | 80 | 19 | 15.5 |
CPU time in minutes (V12.1) | 37 | 10 | 6.5 |
Performance gain | 53% | 47% | 58% |
Future work will focus on reducing memory consumption, ensuring parallel scaling and improving user-friendliness (automatic calibration of sub-bands in MACRO_MODE_MECA).