Submitting Batch Jobs

The are the commands for ASE/python mode and the "native" (no ASE/python) mode:

esp-ver-bsub <version> myscript.py
esp-ver-bsub-native <version> -q suncat-test -o my.log -n 8 pw.x -in pw.inp

Dealing With Memory Issues (e.g. Swapping Jobs)

For a "typical" espresso job (default planewave parallelization):

In the longer term we would like to have a memory estimator that will allow you to choose the best queue in advance, although posts on the espresso mailing list suggest this may be difficult.

k-point Parallelization

Reducing Memory Usage for Large Systems

From http://www.democritos.it/pipermail/pw_forum/2008-January/008101.html

Excerpt (relevant for the "native" (non-ASE) mode):

In ASE-mode we are currently unable to set the "K_POINTS gamma" field and "diago_david_ndim". The other two can be specified with the convergence keyword. "mixing_ndim" is "mix", and "diagonalization" is "diag". For example:

convergence = {'energy':1e-6,
               'mixing':0.7,
               'maxsteps':100,
               'mix':4,
               'diag':'cg'},

Example Scripts

A simple optimization: esp.py
Calculate density-of-states: espdos.py
Plot density-of-states: espdosplot.py
NEB: espneb.py

Running in "native" mode (see esp-ver-bsub-native command above): pw.inp

Versions

Version

Date

Comment

1

12/3/2012

initial version

2

12/5/2012

use mkl fftw

3

12/7/2012

UNSTABLE version: developers allowed to change espresso.py. Users can overwride espresso.py by putting their own espresso.py in directory $HOME/espresso

4,4a

12/10/2012

update to the latest svn espresso-src and espresso python

5

2/14/2013

Entropy corrections added and default parameters changed (smearing type and width)

6,6a

3/7/2013

Many changes: move to combination of dacapo/espresso pseudo potentials (previously just dacapo), add spin polarized BEEF

7,7a

4/5/2013

Update the python interface for bug fixes. Numbers shouldn't change from v6

8,8a

4/5/2013

Important bug fixes: no need for calc.stop(), support for kpoint parallelization with ASE, fix for rhel5 nfs auto mount problem. Numbers shouldn't change from v6/v7.

9,9a

5/28/2013

Add PDOS/NEB calculations. new libbeef interface allows for adding additional beef functionals in future.

10,10a

6/19/2013

Fix problem with pipe buffering that crashed NEB. Dump more information about python/fortran executables to output.

11

7/2/2013

Bug fix for end of job race condition giving "broken pipe" error

12

7/11/2013

Chuan adds new 'diskio' option to allow get_work_function to succeed (was incompatible with avoidio=True).

13,13a

9/4/2013

BROKEN (setupenv renamed). band structure calculations and ase constraints being passed down to espresso's internal relaxation routines. calculation results should not change

14,14a

9/10/2013

fix bug in espresso.py forces, fixed bug with LDA+U PDOS in espresso fortran

15,15a

9/10/2013

fix bug where espresso.py would crash if it was given a not-understand ASE constraint, even using an ASE optimization

SUNCAT Quantum Espresso Talks

Introduction/Usage (Johannes Voss): jvexternal.pdf

Accuracy (Jewe Wellendorff, Keld Lundgaard, NOTE: password protected because it contains VASP benchmark data): kelu.pdf

Speed/Convergence (AJ Medford): aj.pptx

Scaling behavior (Christopher O'Grady): espscaling.pptx

Private Espresso Builds

Copy this script, and then edit the appropriate lines at the top:

/afs/slac/g/suncat/share/scripts/privesp.csh

Avoid syntax error in Python run scripts

There is a simple trick to catch syntax errors even before submitting them to the test queue. Just wrap the ase submit command in the following function (e.g. via your bashrc) and a faulty python script will be exited with an error message without waiting in any queue.

    function esp(){    
        python -m py_compile ${1}
    if [ $? -ne 0 ]
    then
        echo "Not compiling"
        return 1
    fi
    chmod -v 755 $1
    esp-ver-bsub 18 $@
    }

  Espresso ASE To-Do List