QuantumESPRESSO is a suite of codes for ab-initio modelling based on plane waves and pseudopotentials with the Density Functional Theory (DFT) in its core.
First, check the list of existing
[user@login01(sulis) ~]$ module spider QuantumESPRESSO
Choosing a specific alias from the list e.g.,
[user@login01(sulis) ~]$ module spider QuantumESPRESSO/7.1
will print out the required modules to be loaded before
QuantumESPRESSO/7.1 into the command line environment is invoked by
module load GCC/11.3.0 OpenMPI/4.1.4 module load QuantumESPRESSO/7.1
7.1 and onwards, set the parallel configuration automatically. We, therefore, can safely recommend running
QuantumESPRESSO/7.1 without any parallel options.
#SBATCH --nodes=4 #SBATCH --ntasks-per-node=128 #SBATCH --cpus-per-task=1 #SBATCH --mem-per-cpu=3850 #SBATCH --time=15:00:00 #SBATCH --account=suXXX-somebudget module purge module load GCC/11.3.0 OpenMPI/4.1.4 module load QuantumESPRESSO/7.1 srun pw.x -i my.input
With earlier vesion, e.g.
6.8, the parallelisation of QuantumESPRESSO can be tuned manually by distributing processors across groups defined by the command line switches: -nimage, -npools, -nband, -ntg, -ndiag or -northo (shorthands, respectively: -ni, -nk, -nb, -nt, -nd). The -nimage is available in some of QuantumESPRESSO codes, like
neb.x dividing processors into groups assigned to weakly communicating computation images.
Next parameters control the parallel execution of
pw.x. For example, launching
pw.x with the following configuration,
srun pw.x -nk 32 -nt 4 -nd 4 -i my.input
distributed 512 CPUs across 32 pools of k-points with 16 processors each. Each pool of 16 processors is split to four FFT tasks (
-nt flag). Finally, the Hamiltonian matrix is distributed over 4 CPUs (
-nd flag, recommended when N_bands is few hundred or more). More detailed explanations are found in the corresponding ‘Parallel execution’ section in the QuantumESPRESSO user manual.