You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

GPAW Convergence Behavior

A talk given by Ansgar Schaefer studying convergence behaviour for rutiles is here (pdf).

General suggestions for helping GPAW convergence are here.

A discussion and suggestions for converging some simple systems can be found here.

Other convergence experience:

System

Who

Action

Graphene with vacancy

Felix/JensH

Increase Fermi Temp from 0.1 to 0.2, use cg

Graphene with vacancy

cpo

change nbands from -10 to -20, MixerDif(beta=0.03, nmaxold=5, weight=50.0)

Enzyme-inspired CO2 reduction

grabow

use Davidson solver (faster as well?)

GPAW Memory Estimation

The get a guess for the right number of nodes to run on for GPAW, run the
following line interactively:

gpaw-python <yourjob>.py --dry-run=<numberofnodes>
(e.g. gpaw-python graphene.py --dry-run=16)

Number of nodes should be a multiple of 8. This will run quickly
(because it doesn't do the calculation). Then check that the
following number is <3GiB:

Memory estimate
---------------
Calculator  574.32 MiB

Building a Private Version of GPAW

These directions are adapted from the GPAW website, and you should check that to make sure this still makes sense. These particular instructions are in order to have it integrate well with the suncat farm systems.

The user should already have an svn version of ASE somewhere in their home directory – the bleeding edge version of GPAW will often only work with the most up-to-date version of ASE.

Create a space where custom checked-out versions of software live. Probably:

mkdir /nfs/slac/g/suncatfs/${username}/usr/

(where ${username} is your username). From now on this will be referred to as ${usr}. You can optionally create an environment variable in your .cshrc to make the rest of the steps cut-and-paste. Add to your .cshrc:

setenv usr /nfs/slac/g/suncatfs/\{username}/usr/

with your username in place of ${username}. (Then log out and back in.) Create a directory to put a checked-out version of gpaw and set this as the variable ${GPAW_HOME}

mkdir -p \${usr}/lib/svn/gpaw
setenv GPAW_HOME \${usr}/lib/svn/gpaw

Check out the latest version of GPAW.

svn checkout https://svn.fysik.dtu.dk/projects/gpaw/trunk ${GPAW_HOME}

Build the C extensions.

cd ${GPAW_HOME}
python setup.py build_ext |& tee build_ext.log

(Consult https://wiki.fysik.dtu.dk/gpaw/devel/developer_installation.html#developer-installation to make sure that the proper files have been built.)

Install the latest GPAW setups. Create and enter a new directory.

mkdir -p ${usr}/lib/gpaw-setups
cd ${usr}/lib/gpaw-setups

Visit the GPAW setup webpage and get the version number of the latest version of the setups. As of this writing, it is 0.8.7929. Modify the line below with the correct version number, then download and unpack them with

wget http://wiki.fysik.dtu.dk/gpaw-files/gpaw-setups-<version>.tar.gz
tar zxf gpaw-setups-<version>.tar.gz
rm gpaw-setups-<version>.tar.gz

Create a path for the environment settings (if it doesn't exist).

mkdir ${usr}/env

If you don't already have one, create an environment file to your SVN version of ASE. Create a file called ${usr}/env/ase-svn which contains the two lines:

#!/bin/csh
setenv PYTHONPATH /path/to/ase/svn:${PYTHONPATH}

where /path/to/ase/svn is the path to your SVN version of ASE (e.g., ${usr}/lib/svn/ase). Next create an environment file to your SVN version of GPAW, called ${usr}/env/gpaw-svn, which contains the following lines:

#!/bin/csh

setenv GPAW_HOME ${usr}/lib/svn/gpaw
setenv GPAW_PLATFORM `python -c "from distutils import util, sysconfig; print util.get_platform()+'-'+sysconfig.get_python_version()"`
setenv PYTHONPATH ${GPAW_HOME}:${PYTHONPATH}
setenv PYTHONPATH ${GPAW_HOME}/build/lib.${GPAW_PLATFORM}:${PYTHONPATH}
setenv PATH ${GPAW_HOME}/build/bin.${GPAW_PLATFORM}:${GPAW_HOME}/tools:${PATH}
setenv GPAW_SETUP_PATH ${usr}/gpaw-setups/gpaw-setups-XXXX:${GPAW_SETUP_PATH}
source ${usr}/env/ase-svn

Note in the above that you will need to substitute in (for XXXX) the correct directory for the version of GPAW setups you have installed.

Lastly you will need to make an executable submission script. If you don't have one already, create a directory that contains your executables:

mkdir ${usr}/bin

To make sure you can execute files from this directory, you will need to put the path to this in your PATH environment. Add the following line to your .cshrc file:

setenv PATH ${usr}/bin:${PATH}

Now create your submission script that will be used to submit gpaw jobs from your svn version. Create a file called ${usr}/bin/gpaw-svn-bsub and place the following three lines in it.

#!/bin/tcsh
source ${usr}/env/gpaw-svn
/afs/slac/g/suncat/bin/dobsub -a openmpi -R "span[ptile=8]" gpaw-python $argv

Then change the mode of this file to be executable.

chmod u+x ${usr}/bin/gpaw-svn-bsub

Run the tests as described on the GPAW website:

https://wiki.fysik.dtu.dk/gpaw/install/installationguide.html#running-tests

If everything is working right, you should be able to submit scripts using your svn version with

gpaw-svn-bsub <scriptname>.py
  • No labels