Hi developers,
I saw a paper saying that OpenMP parallelism is more efficient than MPI and has a clear advantage, is this type of parallel computing being considered for use behind MFiX?
Thanks!
Link to article: Efficient parallel CFD-DEM simulations using OpenMP - ScienceDirect
The abbreviations may be confusing, but OpenMP and MPI are not directly comparable.
OpenMP https://www.openmp.org/ is an implementation of SMP (“Shared Memory Parallel” or “Symmetric Multi-Processing”) which refers to multiple CPU cores on the same host working in parallel, using the fact that they are all attached to the same memory. This will allow you to use all available cores on a multi-core server (most modern hardware).
MPI stands for “Message Passing Interface” which is required when you are using multiple nodes connected by a network. This is DMP, (“Distributed memory parallel” or “Distributed multiprocessing”) which allows you to use many more cores than SMP, if you have access to a computing cluster.
OpenMPI https://www.open-mpi.org/ (not OpenMP!) is an implementation of MPI.
MFiX supports both DMP (via openmpi/mpifort) and SMP (via openmp)
There are advantages/disadvantages to both, depending on the simulation, and the computing resources available. This is why both DMP and SMP solvers are available (no DMP on Windows unfortunately)
– Charles
OK, I understand, thank you very much for your reply!