How does FEATool performance scale with an increased number CPU cores/threads

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

How does FEATool performance scale with an increased number CPU cores/threads

randress
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.

Thanks,
-Randal
Reply | Threaded
Open this post in threaded view
|

Re: How does FEATool performance scale with an increased number CPU cores/threads

Precise Simulation
Administrator
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.
Reply | Threaded
Open this post in threaded view
|

Re: How does FEATool performance scale with an increased number CPU cores/threads

Precise Simulation
Administrator
An update as of FEATool version 1.13.3 now has full support for solving simulation models in parallel using the external solvers FEniCS for multiphysics and FEA models, and OpenFOAM/SU2 for CFD problems. Scaling is entirely problem, mesh, and system dependent but should in general allow for solving large models significantly faster.

Regarding, Gmsh, the default distribution (compiled by the Gmsh) developers seem not to be compiled with parallel (MPI) support so will always run single threaded, unless manually re-compiled with parallel support.
Reply | Threaded
Open this post in threaded view
|

Re: How does FEATool performance scale with an increased number CPU cores/threads

CFD2D
This post was updated on .
Precise Simulation wrote
Regarding, Gmsh, the default distribution (compiled by the Gmsh) developers seem not to be compiled with parallel (MPI) support so will always run single threaded, unless manually re-compiled with parallel support.
I am since yesterday sitting in front of my laptop for creating a workflow for this.. example make a multibody conformal mesh in parallel:
1. create a CAD in FreeCAD and export it as a step file
2. import it in Salome and do a partition and export as a brep file
3. import in gmsh-OpenMPI (self complied) and mesh the brep file in a cluster and export it in FeaTool and run FeaTool in OpenMPI
4. make a python Skript for doing step 1-3 automatically 💪
5. if all successfully we will conect all into simulink: FreeCAD, Salome, gmsh and FeaTool

The goal is to do a cluster CFD Sinulation with using one Matlab license and not using x licenses for the parallel-computing toolbox

Best regards

CFD2D

Edit: I solved the issue and did an conformal mesh only with FreeCAD and Salome 💪🙏
Marten Mehring
Madrigal Industrial Solutions UG
Reply | Threaded
Open this post in threaded view
|

Re: How does FEATool performance scale with an increased number CPU cores/threads

CFD2D
In reply to this post by Precise Simulation
Precise Simulation wrote
An update as of FEATool version 1.13.3 now has full support for solving simulation models in parallel using the external solvers FEniCS for multiphysics and FEA models, and OpenFOAM/SU2 for CFD problems. Scaling is entirely problem, mesh, and system dependent but should in general allow for solving large models significantly faster.

Regarding, Gmsh, the default distribution (compiled by the Gmsh) developers seem not to be compiled with parallel (MPI) support so will always run single threaded, unless manually re-compiled with parallel support.
GMSH now is default compiled with OpenMPI.. I dont know how but if someone know how it possible to compile a gmsh file with cmake, I can run the mesh in a cluster.. Now i started with gmsh and i run it in multiply threads (starting gmsh from kitty in archlinus with gmsh -nt 48, for example 48 threads).. if I know check how gmsh works, I can run a Mesh in a hardcore cluster with more than 800GB RAM and more than 100 threads... maybe someone have a construction how to build three D meshes with boundary layer etc. and HXT Solver?

Best Regards

CFD2D
Marten Mehring
Madrigal Industrial Solutions UG