OpenMP is basically fine-grained, in that parallel parts of the application are created and destroyed multiple times throughout a run. …
MPI is generally a coarse-grained, as the parallelism where MPI is used would be higher up in the algorithm. Using MPI for an application requires a developer to think more about the individual servers and how to distribute parts of the application to these servers.
So, which is better?
Read more at insideHPC