Additional speed-up for modal analyses !

4 November 2013

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.

Performance increase with MODE_ITER_SIMULT on performance tests perf013a and perf013c

50 modes


137 modes


50 modes


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.

Performance increase with MACRO_MODE_MECA on the perf013c performance test
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).

Performance increase with MACRO_MODE_MECA on an industrial application
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).