jureca @ FZ-Jülich

Find information about the Jureca system here.

Pre-installed versions

You may use the pre-installed versions:

module load intel-para
module load GPAW

In case you are happy with these versions, you need to install the setups (next point) and you are done.

Setups

The setups are not defined in the pre-installed vesrion, so we need to install them ourselves:

cd
GPAW_SETUP_SOURCE=$PWD/source/gpaw-setups
mkdir -p $GPAW_SETUP_SOURCE
cd $GPAW_SETUP_SOURCE
wget https://wiki.fysik.dtu.dk/gpaw-files/gpaw-setups-0.9.11271.tar.gz
tar xzf gpaw-setups-0.9.11271.tar.gz

Let gpaw know about the setups:

export GPAW_SETUP_PATH=$GPAW_SETUP_SOURCE/gpaw-setups-0.9.11271

Using the module environment

It is very handy to add our installation to the module environment:

cd
mkdir -p modulefiles/gpaw-setups
cd modulefiles/gpaw-setups
echo -e "#%Module1.0\nprepend-path       GPAW_SETUP_PATH    $GPAW_SETUP_SOURCE/gpaw-setups-0.9.11271" > 0.9.11271

We need to let the system know about our modules (add this command to ~/.profile or ~/.bashrc to execute automatically):

module use $HOME/modulefiles

such that we also see them with:

module avail

Building from trunk

In case that you need a newer version than is installed, you might want to install gpaw yourself.

We first get ASE trunk:

ASE_SOURCE=$HOME/source/ase
mkdir -p $ASE_SOURCE
cd $ASE_SOURCE
git clone https://gitlab.com/ase/ase.git trunk

which can be updated using:

cd $ASE_SOURCE/trunk
git pull

We add our installation to the module environment:

cd
mkdir -p modulefiles/ase
cd modulefiles/ase

and edit the module file trunk that should read:

#%Module1.0

if {![is-loaded intel-para]} {module load intel-para}
if {![is-loaded Python]} {module load Python}
if {![is-loaded SciPy-Stack]} {module load SciPy-Stack}

# customize the following according to your taste
set HOME $env(HOME)

set asehome $HOME/source/ase/trunk
prepend-path       PYTHONPATH    $asehome
prepend-path       PATH          $asehome/bin:$asehome/tools

We create a place for gpaw and get the trunk version:

# customize the following according to your taste
GPAW_SOURCE=$HOME/source/gpaw

mkdir -p $GPAW_SOURCE
cd $GPAW_SOURCE
git clone https://gitlab.com/gpaw/gpaw.git trunk

The current trunk version can then be updated by:

cd $GPAW_SOURCE/trunk
git pull

We use the installed version of libxc and our ase/trunk:

module purge
module load intel-para
module load Libxc
module load ase/trunk

and install using customize_jureca.py:

cd $GPAW_SOURCE/trunk
mkdir install
cp customize_jureca.py customize.py
python setup.py install --prefix=$PWD/install

We add this also to the module environment:

cd
mkdir -p modulefiles/gpaw
cd modulefiles/gpaw

and the module file trunk should read:

#%Module1.0

if {![is-loaded ase/trunk]} {module load ase}
if {![is-loaded Libxc]} {module load Libxc}
if {![is-loaded gpaw-setups]}  {module load gpaw-setups}

# customize the following according to your taste
set HOME $env(HOME)

set gpawhome $HOME/source/gpaw/trunk/install
prepend-path    PATH                 $gpawhome/bin
prepend-path    PYTHONPATH           $gpawhome/lib/python3.6/site-packages
setenv          GPAW_PYTHON          $gpawhome/bin/gpaw-python

Execution

Job scripts can be written using:

gpaw-runscript -h

and the jobs sumitted as:

sbatch run.jureca