Μετάβαση στο περιεχόμενο

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.0
  • intel-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.0
    • openmpi/4.1.2

Παράδειγμα submission script: QE-7.1.0-case.sh:

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.0
    • mvapich2/2.3.4
    • openblas/0.3.12
    • netlib-scalapack/2.1.0
    • fftw/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 μπορείτε να αναζητήσετε εδώ.