The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale materials modelling, for example electronic structure calculations and quantum-mechanical molecular dynamics, from first principles.
This guide serves as an introduction to running VASP at Pawsey.
Prerequisites/Before you begin
Proof of a licence is required before being granted access to VASP.
You should submit a helpdesk ticket requesting VASP access, including the user accounts and email addresses that require access.
The email addresses for the accounts must match the email addresses that are used on the VASP licensing portal.
Based on experience, checking the email that was used in the VASP license portal first can avoid confusion and help us progress the ticket faster.
The Pawsey helpdesk will then use the VASP licensing portal to confirm a valid licence, which is why it is important to have a matching email address to the one registered with VASP.
Upon confirmation from the VASP licensing portal we will grant access to the vasp
and/or vasp6
groups depending on the type of license, which will allow the accounts to load the corresponding VASP modules.
Generally, up to 6 users can be on a single licence. Note that licences are restricted to particular versions of VASP.
Example script to run VASP
#!/bin/bash -l #SBATCH --job-name=something #SBATCH --ntasks=128 #SBATCH --ntasks-per-node=128 #SBATCH --cpus-per-task=1 #SBATCH --partition=work #SBATCH --exclusive #SBATCH --account=[your-account] #SBATCH --time=02:00:00 #SBATCH --nodes=1 #Swap programming environments as required module load vasp/5.4.4 ulimit -s unlimited srun -N 1 -c 1 -n 128 vasp_std > vasp.log
The ulimit
command is required because VASP uses a large amount of stack memory in addition to heap memory. This does not unlock more physical memory.
In VASP versions 5.4.4, 6.2.1 and 6.3.0 there are three default binaries created:
vasp_std
vasp_gam
vasp_ncl
Pawsey staff does not install any VASP customisations globally.
Install VASP with support for VASPsol
VASPsol is a popular customisation package for VASP, that enables calculations using an implicit solvation model.
Users with a valid VASP license can use Spack to install VASP with VASPsol support. Note how the Spack installation command needs to be run from a directory containing the VASP source archive for the requested version.
The example below shows the procedure to install VASP 6.3.0 with VASPsol using Spack:
$ ls vasp.6.3.0.tgz $ module load spack/0.17.0 Note: when this module is unloaded, the shell environment will NOT revert to its original state, and retain some Spack settings. If you need the original shell environment, start a new shell session instead. $ spack install vasp@6.3.0 +scalapack +vaspsol ==> Installing vasp-6.3.0-2nqaekvuhww47frmxtu7ui32a3mpnzo2 ==> No binary for vasp-6.3.0-2nqaekvuhww47frmxtu7ui32a3mpnzo2 found: installing from source ==> Fetching file:///software/setonix/2022.05/pawsey-spack-config/setonix/environments/env_apps/vasp.6.3.0.tgz [..] ==> vasp: Successfully installed vasp-6.3.0-2nqaekvuhww47frmxtu7ui32a3mpnzo2 Fetch: 1.49s. Build: 20m 50.73s. Total: 20m 52.22s. [+] /software/setonix/2022.05/software/cray-sles15-zen3/gcc-11.2.0/vasp-6.3.0-2nqaekvuhww47frmxtu7ui32a3mpnzo2 $ spack module lmod refresh -y vasp ==> Regenerating lmod module files
Note that this procedure has currently been tested with the following versions and options:
- vasp@5.4.4 +scalapack +vaspsol
- vasp@6.2.1 +scalapack +vaspsol
- vasp@6.3.0 +scalapack +vaspsol
VASP Parameters
Peter Larsson's work on optimising VASP performance may be useful:
- https://www.nsc.liu.se/~pla/blog/2015/01/12/vasp-how-many-cores/
- https://www.pdc.kth.se/software/software/VASP/beskow/5.3.5-31Mar14/index.html
These are particularly interesting for choosing the number of cores, cores per node, and VASP parameters such as NPAR, KPAR, NCORE and NSIM.