How does FEATool performance scale with an increased number CPU cores/threads
When considering CPU choices, what features will contribute to significant increase in performance (speed) when running MATLAB/FEATool using gmsh and linear solvers? Specifically:
1. At what point do more cores produce little if any speed up? 4, 8, 16?
2. How does enabling hyper-threading affect execution speed?
I realize that most questions like this can only be answered accurately by "it depends" :-). I also know that other things come into play such as quantity and speed of memory (that's for another question) and perhaps O/S. Even so, any comments are welcomed.
Re: How does FEATool performance scale with an increased number CPU cores/threads
Regarding computer for physics simulations the following criteria is recommended:
- CPU: Physics simulations and solvers typically have upper performance limited by memory bandwidth after which adding more shared memory cores makes no difference. Therefore an architecture with high memory bandwidth and large cache memory is prefereable, high clock rate is of course also important for the base performance level.
The Matlab runtime generally runs single threaded and does not take much advantage of multiple cores (with perhaps exception of BLAS for linear algebra operations). However, some linear solvers such as MUMPS can be compiled with OpenMP shared memory parallelization and may see improved performance with multiple cores. Most linear solver developers (SuiteSparse/UMFPACK, MUMPS, SuperLU, Paradiso, PetSc, AmgCL etc.) publish benchmarks of their solvers for various configurations that you can look at.
- Memory: Depends on the size of your simulations models as it has to fit in the available memory.
- Graphics card is not really very important as it is currently only used for visualization. Potentially, simulations using graphics cards (GPUs) have the potential for about 10x speedup but is still not very common as code has to be rewritten significantly for it to work on them.
Please ask the Gmsh developers/support for system recommendations for using Gmsh.