Ada : 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/16)
  • 5.1.0
  • 5.3.0 (version par défaut depuis le 26/05/16)
  • 5.4.0

Pour connaitre les différentes versions installées, tapez depuis votre fenêtre sur Ada :

module avail espresso

Script de lancement

Voici un exemple de script de lancement pour un calcul Quantum Espresso hybride (32 processus MPI, 4 threads OpenMP par processus MPI) exécuté dans le WORKDIR :

job.ll
# @ job_name         = job
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ job_type         = parallel
# @ total_tasks      = 32
# @ parallel_threads = 4
# @ wall_clock_limit = 20:00:00
# @ queue
 
### Initialisation de Module ###
module load espresso
 
### Echo des commandes###
set -x
 
### Lancement du calcul ###
poe pw.x < fichier.input > fichier.out

Voici un exemple de script de lancement pour un calcul Quantum Espresso hybride (128 processus MPI, 1 thread OpenMP par processus MPI) exécuté dans le TMPDIR :

job.ll
# @ job_name         = job
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ job_type         = parallel
# @ total_tasks      = 128
# @ parallel_threads = 1
# @ wall_clock_limit = 20: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
poe pw.x < fichier.input > fichier.out
 
### Copie vers le dossier de soumission ###
cd -
cp $TMPDIR/* .

Pour utiliser une version particulière, par exemple la version 5.3.0 :

module load espresso/5.3.0

NB: Avec la version 5.3.0 de Quantum ESPRESSO, la valeur associée aux variables nqx1, nqx2 et nqx3, est passé de la valeur “1” par défaut au nombre correspondant de points “k”. Cette modification a été faite dans un souci de convergence mais peu engendrer plus de temps elapsed.

Documentation

Résultats

  • Pour des raisons de performance, il est recommandé d'utiliser la version 5.3.0 de Quantum ESPRESSO. Un gain de l'ordre de 1.5 à 2.5 (selon le cas test) a été observé par rapport à la version 5.0.2.
ADA (64 coeurs) - CAS TEST LP 1) ADA (64 coeurs) - CAS TEST FL 2)
MPIxOMP 5.0.2 (s) 5.3.0 (s) GAIN MPIxOMP 5.0.2 (s) 5.3.0 (s) GAIN
64×1 2403.48 946.17 2.54 64×1 3755.62 2532.51 1.48
32×2 2450.88 1297.67 1.89 32×2 4236.90 2725.13 1.55
16×4 2636.93 2225.57 1.18 16×4 - 4896.02 -
  • Quantum Espresso est un code hybride (i.e. utilisation possible de plusieurs threads OpenMP par processus MPI). Sur la machine ADA, l'utilisation d'un seul thread OpenMP par processus MPI semble donner les meilleures performances.

SCALABILITE - ADA - Q.E. 5.3.0 - CAS TEST LP 3)
MPIxOMP Tps elapsed (s) Mémoire (Go)
64×1 946.17 3.6
128×1 571.02 2.2
192×1 388.02 1.7
256×1 281.50 1.4
320×1 264.30 1.3
512×1 239.52 1.1
  • Version 5.4.0 : un très léger mieux en temps elapsed
ADA (64 coeurs) - CAS TEST LP 4) ADA (64 coeurs) - CAS TEST FL 5)
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)
64×1 2403.48 946.17 943.83 64×1 3755.62 2532.51 2365.57
32×2 2450.88 1297.67 1309.86 32×2 4236.90 2725.13 2645.08

Les cas tests sont des optimisations énergétiques.

Cas test LP-fichier entree: pw.in

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