Turing: Quantum ESPRESSO

Introduction

Quantum ESPRESSO is an integrated suite of codes which permits calculating electronic structures as well as nanometer-scale materials. This software is based on the DFT (Density Functional Theory) method using plane waves and pseudo-potentials (norm-conserving and ultrasoft).

Availability

The hybrid OpenMP/MPI parallel versions are installed and are well-adapted to the Turing architecture. The available versions are:

  • 5.0.1
  • 5.0.2 (default version until 26 may 2016)
  • 5.1.0
  • 5.3.0 (default version since 26 may 2016)
  • 5.4.0

To know which versions are installed, type the following command:

module avail espresso

Utilisation

To load the default version :

module load espresso

Launching script example

The following is an example of a launching script for a calculation executed in 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
 
### Module initialisation ###
module load espresso
 
### Command echoes ###
set -x
 
### Run the calculation ###
runjob --np 1024 --ranks-per-node 16 --envs "OMP_NUM_THREADS=4" : $ESPRESSO_EXEDIR/pw.x -in scf.in > scf.out

The following is an example of a launching script for a calculation executed in 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
 
### Module initialisation ###
module load espresso
 
### Command echoes ###
set -x
 
### Coy to TMPDIR ###
cp ./* $TMPDIR
 
### Run the calculation ###
cd $TMPDIR
runjob --np 1024 --ranks-per-node 16 --envs "OMP_NUM_THREADS=4" : $ESPRESSO_EXEDIR/pw.x -in scf.in > scf.out
 
### Copy to the submission folder ###
cd -
cp $TMPDIR/* .

Documentation

Results

  • For performance reasons, it is recommended to use version 5.3.0. On the Turing machine, a scalability gain of 1.8 was observed when compared to version 5.0.2.
  • Quantum Espresso is a hybrid code (possibility of using of several OpenMP threads per MPI process). On the Turing machine, using 2 or 4 OpenMP threads seems to give the best performance.
TURING (64 nodes) - TEST CASE LP 1) TURING (64 nodes) - 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

* 5.4.0 version: a very slight improvement in elapsed time

TURING (64 nodes) - TEST CASE LP 3) TURING (64 nodes) - TEST CASE 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

The test cases are energy optimisations.

1) , 3) “LP”: 400 bands, 300k plane waves, 8 k points
2) “FL”: 300 bands, 94k plane waves, 4 k points
4) “FL”: 300 bands, 94k plane waves, 4 k points