The CSF2 has been replaced by the CSF3 - please use that system! This documentation may be out of date. Please read the CSF3 documentation instead. To display this old CSF2 page click here. |
Elk
Overview
Elk is an all-electron full-potential linearised augmented-plane wave (FP-LAPW) code with many advanced features. It has been compiled with the Intel v12.0.5 compiler with the Intel Math Kernel Library v10u3. The executables will automatically take advantage of Sandybridge and Ivybridge extra hardware features if run on those nodes.
Version 2.3.16 is installed on the CSF.
Restrictions on use
All users may access this software. It is licensed under the GNU GPL. Please see the Elk FAQ for license and citation details.
Set up procedure
To access the software you must first load the appropriate modulefile for how you wish to run Elk:
For OpenMP multi-core/SMP single node shared memory parallelism:
module load apps/intel-12.0/elk/2.3.16
For MPI multi-node (not multi-threaded) InfiniBand-connect parallelism (recommended):
module load apps/intel-12.0/elk/2.3.16-mpi-ib
or, for slower non-InfiniBand-connected hardware:
module load apps/intel-12.0/elk/2.3.16-mpi
The above modulefiles will load all necessary compiler and MPI (if required) modulefiles.
Running the application
Please do not run Elk on the login node. Jobs should be submitted to the compute nodes via batch.
Note that after loading the ELK modulefiles, the elk
executable (and others) are in your path. You can also find the species files in the directory:
$ELK_HOME/species/
If you wish to set the sppath
option in your elk.in
file the use the absolute value of this path – the output of the command:
echo $ELK_HOME/species/
Serial batch job submission
Make sure you have the elk (non-mpi) modulefile loaded then create a batch submission script, for example:
#!/bin/bash #$ -S /bin/bash #$ -cwd # Job will run from the current directory #$ -V # Job will inherit current environment settings # Jobscript describes a serial job so this will be 1. export OMP_NUM_THREADS=$NSLOTS # Run the app elk
Submit the jobscript using:
qsub scriptname
where scriptname is the name of your jobscript.
Parallel Multi-core/SMP batch job submission
#!/bin/bash #$ -S /bin/bash #$ -cwd # Job will run from the current directory #$ -V # Job will inherit current environment settings #$ -pe smp.pe 8 # Number of cores (8 in this example) # $NSLOTS automatically set to the number you used above export OMP_NUM_THREADS=$NSLOTS # Run the app elk
Submit the jobscript using:
qsub scriptname
where scriptname is the name of your jobscript.
Parallel Multi-node/MPI InfiniBand batch job submission
Make sure you have the elk mpi-ib modulefile loaded then create a batch submission script. In the example below we request faster InfiniBand connected hardware (orte-24-ib.pe) and so we must load the ELK mpi-ib modulefile. The orte-24-ib parallel environment requires at least 48 cores to be used and the number must be a multiple of 24. For example:
#!/bin/bash #$ -S /bin/bash #$ -cwd # Job will run from the current directory #$ -V # Job will inherit current environment settings #$ -pe orte-24-ib.pe 48 # Number of cores # $NSLOTS automatically set to the number you used above mpurun -n $NSLOTS elk
Submit the jobscript using:
qsub scriptname
where scriptname is the name of your jobscript.
Further info
Updates
None.