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.
Official website : https://www.quantum-espresso.org
updated : 3 5 August 20232024
...
Available Version
QuantumEspresso version 7.2 is available on Lanta. QuantumEspresso/7.2-libxc-6.1.0-cpu
is used to run on CPU node, while QuantumEspresso/7.2-libxc-6.1.0-gpu
is used to run on GPU node. Both module versions are linked to https://tddft.org/programs/libxc/
Version | Processing unit | Module name |
---|---|---|
7.2 | CPU | QuantumESPRESSO/7.2-libxc-6.1.0-cpu |
GPU | QuantumESPRESSO/7.2-libxc-6.1.0-gpu |
1. Input file
The basic input files for running Quantum Espresso on Lanta are Quantum Espresso inputs and job submission script.
2. Job submission script
create a script using vi submit.sh
command and specify the following details depending on computational resources you want to use.
2.1 Run Quantum Espresso on CPU node
Code Block |
---|
#!/bin/bash #SBATCH -p compute # select the partition #SBATCH --nodes=1 # define number of node #SBATCH --ntasks-per-node=64 # define number of tasks per node #SBATCH --cpus-per-task=1 # OMP threads #SBATCH -t 2:00:00 # define reserve time #SBATCH -J test_QE # define the job name #SBATCH -A ltXXXXXX # define your project account module purge module load QuantumESPRESSO/7.2-libxc-6.1.0-cpu mkdir -p /scratch/ltXXXXXX-YYYY/$USER/$SLURM_JOB_ID # change ltXXXXXX-YYYY to yours export ESPRESSO_TMPDIR=/scratch/ltXXXXXX-YYYY/$USER/${SLURM_JOB_ID} # the location of the outdir export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} export ESPRESSO_PSEUDO=./ # the location of pseudo potential ulimit -s unlimited srun --cpus-per-task=${SLURM_CPUS_PER_TASK} pw.x -inp ausurf.in > ausurf.out |
The script above using compute partition (-p compute
), 1 node (-N 1
) with 64 tasks per node (--ntasks-per-node=64
), so the total CPUs core for this job is 64 (the number of tasks) x 1 (default CPU per task) = 64 cores. The account is set to ltXXXXXX (-A ltXXXXXX
) that is subjected to change to your own account.
Please check ESPRESSO_TMPDIR
regularly and deleted unwanted files since they can consumes large amount of space.
2.2 Run Quantum Espresso on GPU node
Code Block |
---|
#!/bin/bash #SBATCH -p gpu # select the partition #SBATCH --nodes=1 # define number of node #SBATCH --ntasks-per-node=1 # define number of tasks per node #SBATCH --gpus-per-node=1 # define number of gpus #SBATCH --cpus-per-task=4 # OMP threads #SBATCH -t 2:00:00 # define reserve time #SBATCH -J test_QE # define the job name #SBATCH -A ltXXXXXX # define your project account module purge module load QuantumESPRESSO/7.2-libxc-6.1.0-gpu mkdir -p /scratch/ltXXXXXX-YYYY/$USER/$SLURM_JOB_ID # change ltXXXXXX-YYYY to yours export ESPRESSO_TMPDIR=/scratch/ltXXXXXX-YYYY/$USER/${SLURM_JOB_ID} # the location of the outdir export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} export ESPRESSO_PSEUDO=./ # the location of pseudo potential ulimit -s unlimited srun --cpus-per-task=${SLURM_CPUS_PER_TASK} pw.x -inp ausurf.in > ausurf.out |
...
Info |
---|
the number of MPI ranks (ntasks) should equal to the number of GPUs ( ntasks-per-node = gpus-per-node) |
3. Job submission
using sbatch submit.sh
command to submit the job to the queuing system.