Two different parallelization paradigms are currently implemented in QUANTUM ESPRESSO:
MPI is the well-established, general-purpose parallelization. In QUANTUM ESPRESSO several parallelization levels, specified at run-time via command-line options to the executable, are implemented with MPI. This is your first choice for execution on a parallel machine.
Library OpenMP is a low-effort parallelization suitable for
multicore CPUs. Its effectiveness relies upon the quality of
the multithreading libraries and the availability of
multithreading FFTs. If you are using MKL,1you may want to select FFTW3 (set CPPFLAGS=-D__FFTW3...
in make.sys) and to link with the MKL interface to FFTW3.
You will get a decent speedup (
Explicit OpenMP is a very recent addition, still at an
experimental stage, devised to increase scalability on
large multicore parallel machines. Explicit OpenMP is
devised to be run together with MPI and also together
with multithreaded libraries. BEWARE: you have to be VERY
careful to prevent conflicts between the various kinds of
parallelization. If you don't know how to run MPI processes
and OpenMP threads in a controlled manner, forget about mixed
OpenMP-MPI parallelization.
25
Next: 3.2 Running on parallel
Up: 3 Parallelism
Previous: 3 Parallelism
Contents
Paolo Giannozzi
2011-07-17