JUSTUS2/Software/Quantum ESPRESSO
The main documentation is available via |
Description | Content |
---|---|
module load | chem/quantum_espresso/7.1 |
Availability | BwForCluster JUSTUS2 |
License | Open-source software, distributed under the GNU General Public License (GPL). More... |
Citing | As described here |
Links | Homepage | Documentation | Main Portal to Forum |
Graphical Interface | No |
Description
Quantum ESPRESSO is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials.
Availability
Quantum ESPRESSO is available on JUSTUS 2.
In order to check which versions of Quantum ESPRESSO are installed on the compute cluster, run the following command:
$ module avail chem/quantum_espresso
-----------------------------------------------------------/opt/bwhpc/common/modulefiles/Core --------------------------------------------------------------- chem/quantum_espresso/6.5 chem/quantum_espresso/6.7_openmp-5 chem/quantum_espresso/6.7 chem/quantum_espresso/7.0 (D) chem/quantum_espresso/7.1
License
Quantum ESPRESSO is free, open-source software released under the GNU General Public License (GPL). Anyone interested in using the Quantum ESPRESSO program suite must read the conditions described in its manifesto.
Usage
Loading the module
The most preferable way to load Quantum Espresso (QE) is with the specific version included, i.e., 'module load chem/quantum_espresso/<version>'.
$ module load chem/quantum_espresso/7.1
The default version, which may change over time, can be loaded simply with the command 'module load chem/quantum_espresso'.
The module includes the loading of all additional modules necessary for the proper functioning of the program, so there's no need to load additional modules separately. However, loading additional modules may be counterproductive.
Parallelization
QUANTUM ESPRESSO utilizes hybrid MPI/OpenMP parallelization. When configuring parallel jobs in the Slurm sbatch script, use appropriate directives such as --nodes, --ntasks-per-node, and --cpus-per-task. It is recommended to conduct benchmarks before submitting a large number of productive jobs.
QUANTUM ESPRESSO implements several levels of MPI parallelization, distributing both calculations and data structures across processors. These processors are organized hierarchically into different groups identified by various MPI communicators:
world: The group of all processors (MPI_COMM_WORLD). images: Processors divided into different "images," each corresponding to a distinct self-consistent or linear-response calculation, loosely coupled to others. pools: Each image can be subdivided into "pools," each responsible for a group of k-points. bands: Each pool is further subdivided into "band groups," each handling a group of Kohn-Sham orbitals, especially useful for calculations with hybrid functionals. PW: Orbitals in the PW basis set, charges, and density are distributed across processors. Linear-algebra operations on PW grids are automatically parallelized. 3D FFTs transform electronic wave functions between reciprocal and real space, with planes of the 3D grid distributed in real space to processors. tasks: FFTs on Kohn-Sham states are redistributed to "task" groups to allow efficient parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes. linear-algebra group: A further level of parallelization involves subspace diagonalization/iterative orthonormalization, organized into a square 2D grid of processors. This group performs parallel diagonalization using standard linear algebra operations. Preferred options include ELPA and ScaLAPACK, with alternative built-in algorithms available.
It's important to note that not all parallelization levels are implemented in all parts of the code.
Example Script
A working example of the submission script for a parallel QE job is available, after loading the module, at $ESPRESSO_EXA_DIR/slurm_quantum_espresso-example.sbatch file.