Quantum Espresso¶
Quantum Espresso is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale.
Quantum Espresso 7.5¶
Παράδειγμα χρήσης¶
Το script υποβολής της εργασίας, έστω QE-7.5-case.sh, θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=Quantum-Espresso
#SBATCH --partition=rome
#SBATCH --nodes=1
#SBATCH --ntasks=8
#SBATCH --time=10:00:00
#SBATCH --output=result.out
ulimit -s unlimited
module purge
module load gcc/15.2.0 openmpi
module load quantum-espresso/7.5
cd $SLURM_SUBMIT_DIR
export ESPRESSO_PSEUDO=../../pseudo
echo "Run starts : $(date +'%Y-%m-%d %H:%M:%S')"
mpirun -np $SLURM_NTASKS pw.x -in *.in > CuO_output.log
echo "Run finished : $(date +'%Y-%m-%d %H:%M:%S')"
Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο
mkdir QE-7.5-case
cd QE-7.5-case
όπου μπορούμε να χρησιμοποιήσουμε ως παράδειγμα κάποιο από τα Quantum ESPRESSO benchmarks, όπως το CuO case, εκτελώντας για παράδειγμα τις παρακάτω εντολές:
git clone https://github.com/QEF/benchmarks.git
cd benchmarks/other-inputs/CuO
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:
sbatch QE-7.5-case.sh
Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
tail -f CuO_output.log
Terminal Output
total cpu time spent up to now is 36.8 secs
per-process dynamical memory: 592.6 Mb
Self-consistent Calculation
iteration # 1 ecut= 70.00 Ry beta= 0.50
Davidson diagonalization with overlap
ethr = 1.00E-02, avg # of iterations = 2.9
Quantum Espresso 7.4.1¶
Παράδειγμα χρήσης¶
Το script υποβολής της εργασίας, έστω QE-7.4.1-case.sh, θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=QE-7.4.1-case
#SBATCH --partition=batch
#SBATCH --nodes=1
#SBATCH --ntasks=20
#SBATCH --time=20:00
ulimit -s unlimited
module load gcc/15 openmpi
module load quantum-espresso
export ESPRESSO_PSEUDO=$PWD
echo "running the geometry relaxation for CO...\c"
echo "Run starts : `date +'%Y-%m-%d %H:%M:%S:%N '` "
echo "Running Quantum Espresso with" $SLURM_NTASKS "MPI tasks"
time mpirun -n $SLURM_NTASKS pw.x -i *.in > output.log
echo "Run ends : `date +'%Y-%m-%d %H:%M:%S:%N '` "
Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο
# mkdir QE-7.4.1-case
# cd QE-7.4.1-case
όπου τοποθετούμε τα παρακάτω αρχεία εισόδου:
Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε ως παράδειγμα κάποιο από τα Quantum ESPRESSO benchmarks, όπως το CuO case, εκτελώντας για παράδειγμα τις παρακάτω εντολές:
# git clone https://github.com/QEF/benchmarks.git
# cd benchmarks/other-inputs/CuO
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:
# sbatch QE-7.4.1-case.sh
Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f output.log
Quantum Espresso 7.2.0¶
Παράδειγμα χρήσης¶
Το script υποβολής της εργασίας, έστω QE-7.2.0-case.sh, θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=QE-7.2.0-case
#SBATCH --partition=batch
#SBATCH --ntasks=40
#SBATCH --time=20:00
module load intel/2021.5.0-12.2.0 intel-oneapi-mpi/2021.9.0-stjyqgr
module load quantum-espresso/7.2-jnqwg4m
export ESPRESSO_PSEUDO=$PWD
echo "running the geometry relaxation for CO...\c"
echo "Run starts : `date +'%Y-%m-%d %H:%M:%S:%N '` "
echo "Running Quantum Espresso with" $SLURM_NTASKS "MPI tasks"
time mpiexec pw.x < co.rx.in > output.log
echo "Run ends : `date +'%Y-%m-%d %H:%M:%S:%N '` "
Πληροφορίες εγκατάστασης¶
Για την εγκατάσταση έχουν χρησιμοποιηθεί τα εξής λογισμικά:
intel/2021.5.0-12.2.0intel-oneapi-mpi/2021.9.0-stjyqgr
Χρήση με THERMO_PW 2.1.1¶
THERMO PW 2.1.1
Thermo_pw reads the same input as the pw.x code of QE and produces postscript figures of some material properties.
Αρχικά δημιουργούμε ένα νέο φάκελο και μεταβαίνουμε σε αυτόν. Στη συνέχεια εγκαθιστούμε το απαραίτητο αρχείο ψευδοδυναμικού (π.χ. αρχείο UPF για το Πυρίτιο).
mkdir -p ~/thermo_guide_test
cd ~/thermo_guide_test
wget https://pseudopotentials.quantum-espresso.org/upf_files/Si.pbe-n-kjpaw_psl.1.0.0.UPF
Για το συγκεκριμένο παράδειγμα, θα χρησιμοποιήσουμε το αρχείο εισόδου (thermo_control) thermo_control. Μπορούμε να το δημιουργήσουμε και να το τοποθετήσουμε στον φάκελο εργασίας μας, εκτελώντας τις παρακάτω εντολές:
cd ~/thermo_guide_test
cat > thermo_control << EOF
&INPUT_THERMO
what='scf',
/
&CONTROL
calculation = 'scf'
prefix = 'silicon'
outdir = './tmp/'
pseudo_dir = './'
verbosity = 'high'
/
&SYSTEM
ibrav = 2, celldm(1) = 10.2, nat = 2, ntyp = 1,
ecutwfc = 20.0
/
&ELECTRONS
conv_thr = 1.0d-8
/
ATOMIC_SPECIES
Si 28.086 Si.pbe-n-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS (alat)
Si 0.00 0.00 0.00
Si 0.25 0.25 0.25
K_POINTS automatic
4 4 4 1 1 1
EOF
Tο script υποβολής της εργασίας, έστω thermo-2.1.1-case.sh, θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=thermo_final
#SBATCH --partition=rome
#SBATCH --nodes=1
#SBATCH --ntasks=32
#SBATCH --time=1
0:00:00
#SBATCH --output=thermo_result.out
module purge
module load gcc/15.2.0 openmpi
module load quantum-espresso/7.5
cd $SLURM_SUBMIT_DIR
mpirun -np $SLURM_NTASKS thermo_pw.x -in thermo_control
Η υποβολή της εργασίας γίνεται με την εντολή sbatch
sbatch thermo-2.1.1-case.sh
Μόλις ολοκληρωθεί και δεν εμφανίζεται πλέον στην ουρά, βλέπουμε τα αποτελέσματα:
cat thermo_result.out
Terminal Output
[username@aristotle5 my_thermo_test]$ cat thermo_result.out
Program THERMO_PW v.7.5 starts on 6Feb2026 at 10:45:29
This program is part of the open-source Quantum ESPRESSO suite
for quantum simulation of materials; please cite
...
Times for scf pw.x
Times for non scf pw.x
Times for ph.x
laxlib_end: laxlib was not initialized
THERMO_PW : 0.15s CPU 0.24s WALL
This run was terminated on: 10:45:29 6Feb2026
=------------------------------------------------------------------------------=
JOB DONE.
=------------------------------------------------------------------------------=
Χρήση με THERMO_PW 1.8.1¶
THERMO PW 1.8.1
Thermo_pw reads the same input as the pw.x code of QE and produces postscript figures of some material properties.
Τα example scripts του thermo_pw μπορούν να χρησιμοποιηθούν στην συστοιχία ακολουθώντας την παρακάτω διαδικασία.
Δημιουργούμε ένα νέο φάκελο, όπου αντιγράφουμε τα examples του thermo_pw τα οποία περιλαμβάνουν τα αρχεία environment_variables και thermo_pw.sh:
# mkdir thermo_pw
# module load intel/2021.5.0-12.2.0 intel-oneapi-mpi/2021.9.0-stjyqgr
# module load quantum-espresso/7.2-jnqwg4m
# cp -r $QUANTUM_ESPRESSO_ROOT/examples thermo_pw_examples
Για να προχωρήσουμε στην υποβολή μίας εργασίας που τρέχει το run_example script του example01 εκτελούμε τις παρακάτω εντολές:
# cd thermo_pw_examples/example01
# sbatch thermo_pw.sh
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f output.log
Παλαιότερες εκδόσεις QE + ThermoPW¶
Εκτός από την έκδοση Quantum Espresso 7.2 και ThermoPW 1.8.1, διατίθενται και οι εξής παλαιότερες εκδόσεις:
Quantum Espresso 7.1.0 και ThermoPW 1.7.1
- Module files:
# module load gcc/9.4.0 openmpi/4.1.2-nfk6aky # module load quantum-espresso/7.1-jzwixr3 - Για την εγκατάσταση έχουν χρησιμοποιηθεί τα εξής λογισμικά:
gcc/9.4.0openmpi/4.1.2
Παράδειγμα submission script: QE-7.1.0-case.sh:
#!/bin/bash
#SBATCH --job-name=QE-7.1.0-case
#SBATCH --partition=batch
#SBATCH --ntasks=40
#SBATCH --time=20:00
module load gcc/9.4.0 openmpi/4.1.2-nfk6aky quantum-espresso/7.1-jzwixr3
export ESPRESSO_PSEUDO=$PWD
echo "running the geometry relaxation for CO...\c"
echo "Run starts : `date +'%Y-%m-%d %H:%M:%S:%N '` "
echo "Running Quantum Espresso with" $SLURM_NTASKS "MPI tasks"
time srun pw.x < co.rx.in > output.log
echo "Run ends : `date +'%Y-%m-%d %H:%M:%S:%N '` "
Quantum Espresso 6.7.0 και ThermoPW 1.4.1
- Module files:
# module load gcc/10.2.0 mvapich2/2.3.4 # module load quantum-espresso/6.7.0 - Για την εγκατάσταση έχουν χρησιμοποιηθεί οι εξής μεταγλωττιστές:
gcc/10.2.0mvapich2/2.3.4openblas/0.3.12netlib-scalapack/2.1.0fftw/3.3.8
- Για την γραμμική άλγεβρα και τον διακριτό μετασχηματισμό Fourier χρησιμοποιήθηκε η βιβλιοθήκη:
intel-mkl-2020.3.279
Παράδειγμα submission script: QE-6.7.0-case.sh
#!/bin/bash
#SBATCH --job-name=QE-6.7.0-case
#SBATCH --partition=batch
#SBATCH --ntasks-per-node=20
#SBATCH --nodes=2
#SBATCH --time=20:00
module load gcc/10.2.0 mvapich2/2.3.4
module load quantum-espresso/6.7.0
export ESPRESSO_PSEUDO=$PWD
echo "running the geometry relaxation for CO...\c"
echo "Run starts : `date +'%Y-%m-%d %H:%M:%S:%N '` "
echo "Running Quantum Espresso with" $SLURM_NTASKS "MPI tasks"
time srun pw.x < co.rx.in > output.log
echo "Run ends : `date +'%Y-%m-%d %H:%M:%S:%N '` "
Quantum Espresso 7.3.0 (GPU Accelerated)¶
Παράδειγμα χρήσης¶
Το script υποβολής της εργασίας, έστω QE-7.3.0-GPU-case.sh, θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH --job-name=QE-7.3.0-GPU-case
#SBATCH --partition=ampere
#SBATCH --time=10:00
#SBATCH --gpus=1 # Select N=1,2,...,8 GPUS
#SBATCH --ntasks=1 # Allocate 1 task per GPU
# for optimal performance
module load centos8 nvhpc/23.11 openmpi/4.1.6
module load quantum-espresso/7.3
export ESPRESSO_PSEUDO="${PWD}"
echo "running the geometry relaxation for CO...\c"
echo "Run starts : `date +'%Y-%m-%d %H:%M:%S:%N '` "
echo "Running Quantum Espresso with" $SLURM_NTASKS "MPI tasks"
# Optional: Disable NVFORTRAN warning
# https://docs.nvidia.com/hpc-sdk/compilers/hpc-compilers-user-guide/index.html#env-vars-nv-no-stop-msg
export NO_STOP_MESSAGE=yes
time srun pw.x < co.rx.in > output.log
echo "Run ends : `date +'%Y-%m-%d %H:%M:%S:%N '` "
Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο
# mkdir QE-7.3.0-GPU
# cd QE-7.3.0-GPU
όπου τοποθετούμε τα παρακάτω αρχεία εισόδου:
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:
# sbatch QE-7.3.0-GPU-case.sh
Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# tail -f output.log
Πληροφορίες εγκατάστασης¶
Για την εγκατάσταση έχουν χρησιμοποιηθεί τα εξής λογισμικά:
- NVIDIA SDK 23.11 (
nvhpc/23.11) - CUDA Toolkit 11.8.0 (
cuda/11.8.0) - OpenMPI 4.1.6 with CUDA support (
openmpi/4.1.6) - FFTW3 (
fftw/3.3.10)
Χρήσιμες πληροφορίες¶
Το αρχείο εισόδου για αυτό το test case έχει δημιουργηθεί με βάση το παράδειγμα example02 του Quantum Espresso.
Περισσότερα παραδείγματα μπορείτε να βρείτε εδώ.
Αρχεία pseudopotentials μπορείτε να αναζητήσετε εδώ.