Turing : Quantum ESPRESSO

Présentation

Quantum ESPRESSO est une suite intégrée de codes permettant des calculs de structures électroniques, ainsi que des matériaux à échelle nanométrique. Ce logiciel est basé sur la DFT, avec utilisation d'ondes planes et de pseudo-potentiels (norm-conserving et ultrasoft).

Disponibilité

Les versions installées sont des versions parallèles hybrides MPI/OpenMP. Les versions disponibles sont :

  • 5.0.1
  • 5.0.2 (version par défaut jusqu'au 26/05/2016)
  • 5.1.0
  • 5.3.0 (version par défaut depuis le 26/05/2016)
  • 5.4.0

Pour connaitre les différentes versions installées, tapez la commande :

module avail espresso

Utilisation

Pour charger la version par défaut :

module load espresso

Exemple de script de soumission

Voici un exemple de script de lancement pour un calcul Quantum Espresso hybride utilisant 1024 processus MPI (16 par noeud) et 4 threads OpenMP par processus MPI exécuté dans le WORKDIR :

job.ll
#@ job_name         = ESPRESSO
#@ output           = $(job_name).$(jobid)
#@ error            = $(output)
#@ job_type         = bluegene
#@ bg_size          = 64
#@ wall_clock_limit = 1:00:00
#@ queue
 
### Initialisation de Module ###
module load espresso
 
### Echo des commandes ###
set -x
 
### Lancement du calcul ###
runjob --np 1024 --ranks-per-node 16 --envs "OMP_NUM_THREADS=4" : $ESPRESSO_EXEDIR/pw.x -in scf.in > scf.out

Voici un exemple de script de lancement pour un calcul Quantum Espresso hybride utilisant 1024 processus MPI (16 par noeud) et 4 threads OpenMP par processus MPI exécuté dans le TMPDIR :

job.ll
#@ job_name         = ESPRESSO
#@ output           = $(job_name).$(jobid)
#@ error            = $(output)
#@ job_type         = bluegene
#@ bg_size          = 64
#@ wall_clock_limit = 1:00:00
#@ queue
 
### Initialisation de Module ###
module load espresso
 
### Echo des commandes ###
set -x
 
### Copie vers le TMPDIR ###
cp ./* $TMPDIR
 
### Lancement du calcul ###
cd $TMPDIR
runjob --np 1024 --ranks-per-node 16 --envs "OMP_NUM_THREADS=4" : $ESPRESSO_EXEDIR/pw.x -in scf.in > scf.out
 
### Copie vers le dossier de soumission ###
cd -
cp $TMPDIR/* .

Documentation

Résultat

  • Pour des raisons de performances, il est recommandé d'utiliser la version 5.3.0 de Quantum Espresso. Un gain de l'ordre de 1.8 a été observé par rapport à la version 5.0.2.
  • Quantum Espresso est un code hybride (i.e utilisation possible de plusieurs threads OpenMP par processus MPI). Sur la machine TURING, l'utilisation de 2 à 4 threads OpenMP semblent donner les meilleures performances.
TURING (64 noeuds) - CAS TEST LP 1) TURING (64 noeuds) - CAS TEST FL 2)
MPIxOMP 5.0.2 (s) 5.3.0 (s) GAIN MPIxOMP 5.0.2 (s) 5.3.0 (s) GAIN
4096×1 895.05 574.14 1.56 4096×1 2029.21 899.69 2.26
2048x2 713.43 388.24 1.84 2048×2 1245.36 550.27 2.26
1024×4 726.73 414.88 1.75 1024x4 902.27 504.27 1.79
512×8 1033.50 599.9 1.72 512×8 1089.65 671.59 1.62

* Version 5.4.0: un très léger mieux en temps elapsed

TURING (64 noeuds) - CAS TEST LP 3) TURING (64 noeuds) - CAS TEST FL 4)
MPIxOMP 5.0.2 (s) 5.3.0 (s) 5.4.0 (s) MPIxOMP 5.0.2 (s) 5.3.0 (s) 5.4.0 (s)
2048x2 713.43 388.24 366.23 2048×2 1245.36 550.27 523.78
1024×4 726.73 414.88 411.51 1024x4 902.27 504.27 486.50

Les cas tests sont des optimisations énergétiques.

1) , 3) “LP”:400 bandes, 300k ondes planes, 8 points k
2) , 4) “FL”:300 bandes, 94k ondes planes, 4 points k