Quantum ESPRESSO
- "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.
- [...]
- Quantum ESPRESSO has evolved into a distribution of independent and inter-operable codes in the spirit of an open-source project. The Quantum ESPRESSO distribution consists of a “historical” core set of components, and a set of plug-ins that perform more advanced tasks, plus a number of third-party packages designed to be inter-operable with the core components.[1]
Usage
To use Quantum ESPRESSO, you need to load a module (see Using modules). You can see available versions using module avail quantumespresso
or module spider quantumespresso
, and load one with (for example), module load quantumespresso/6.1
.
#!/bin/bash
#SBATCH --account=def-someuser
#SBATCH --time=0-1:00 # DD-HH:MM
#SBATCH --nodes=2
#SBATCH --tasks-per-node=32 # MPI tasks
#SBATCH --mem=0 # all memory on node
module load quantumespresso/6.1
export OMP_NUM_THREADS=1
srun pw.x < si.scf.in
The above example requests two whole nodes for a total of 64 single-threaded processes. This is certainly more processors than is needed for the silicon tutorial case. Please be aware that suitable selection of a process count is complicated, but it is your responsibility to choose an efficient number.
Segfaults with OpenMPI 3.1.2
Users have reported random segfaults on Cedar when using Quantum ESPRESSO versions compiled for OpenMPI 3.1.2 in single-node jobs (shared memory communication). These issues seem not to happen with other versions of OpenMPI. If you experience such problems, first try to use an OpenMPI 2.1.1-based toolchain. For example:
[name@server ~]$ module load gcc/5.4.0
[name@server ~]$ module load openmpi/2.1.1
[name@server ~]$ module load quantumespresso/6.3
Notes
- Pseudopotentials
- There is not currently a system-wide repository of pseudopotentials for Quantum ESPRESSO within Compute Canada. You must find or create and store your own pseudopotential files.