VASP

Description

VAMP/VASP is a package for performing ab-initio quantum-mechanical molecular dynamics (MD) using pseudopotentials and a plane wave basis set.

The VASP home page is at http://www.vasp.at.

Availability

VASP is currently available on the Mahuika and Māui clusters. It performs especially well on Māui, and can run comfortably with multiples of 40 MPI tasks, at 40 MPI tasks per node.

Licensing requirements

VASP is made available to researchers under commercial licence agreements with individuals, research groups or institutions. Whether you have access to VASP, which versions you have access to, and under what conditions, will vary depending on where you work or study. You will only be permitted to access and use any given version of VASP on any NeSI cluster if you have a valid licence to use that version of VASP at your place of work or study, and if the terms of your licence permit cluster use.

If your institution (or any department or research group within your institution) has a VASP licence, please get in touch with your VASP licensing contact.

If are unsure, please contact our support desk.

Example scripts

Example script without NPAR setting

#!/bin/bash -e

#SBATCH --job-name        MyVASPJob
#SBATCH --account         nesi99999
#SBATCH --time            01:00:00
#SBATCH --nodes           2
#SBATCH --ntasks-per-node 36               # One CPU per task is assumed
#SBATCH --mem             105G
#SBATCH --hint            nomultithread
#SBATCH --output          MyVASPJob.%j.out # Include the job ID in the names of
#SBATCH --error           MyVASPJob.%j.err # the output and error files

module load VASP/5.4.4-intel-2017a

# Use the -K switch so that, if any of the VASP processes exits with an
# error, the entire job will stop instead of continuing to waste core
# hours on a defunct run.
srun -K vasp_std

Example script with NPAR setting

#!/bin/bash -e

#SBATCH --job-name        MyVASPJob
#SBATCH --account         nesi99999
#SBATCH --time            01:00:00
#SBATCH --nodes           2
#SBATCH --ntasks-per-node 36               # One CPU per task is assumed
#SBATCH --mem             105G
#SBATCH --hint            nomultithread
#SBATCH --output          MyVASPJob.%j.out # Include the job ID in the names of
#SBATCH --error           MyVASPJob.%j.err # the output and error files

module load VASP/4.6-gimkl-2020a # Make sure an NPAR line is present grep -E "^\s*NPAR\s*=" INCAR > /dev/null grep_result=$? if [ ${grep_result} -gt 1 ] then echo "An error occurred while searching for NPAR in the INCAR file!" >&2 exit 2 elif [ ${grep_result} -eq 1 ] then echo "NPAR = $SLURM_NTASKS_PER_NODE" >> INCAR elif [ ${grep_result} -eq 0 ] then # Set the value of NPAR to the number of VASP tasks per node sed -r -i "s/(^\s*NPAR\s*=\s?).*$/\1$SLURM_NTASKS_PER_NODE/" INCAR fi # Use the -K switch so that, if any of the VASP processes exits with an # error, the entire job will stop instead of continuing to waste core # hours on a defunct run. srun -K vasp_std

Further notes

Don't use hyperthreading!

We and several researchers have found that VASP doesn't behave well with hyperthreading, and will run at a third to a half of its expected speed. To disable hyperthreading, please use either

#SBATCH --hint nomultithread

or, equivalently,

#SBATCH --hint=nomultithread

as shown in our example scripts above.

Which VASP module should I use?

Versions

In general, unless you require otherwise for the sake of consistency with earlier work or you rely on a removed feature, we recommend the most recent supported version.

VTST

Any VASP module with "VTST" in its name has been modified to include the VASP Transition State Tools, a third-party package for finding transition states and computing rate constants. As it is necessary to modify the VASP code to make it compatible with VTST, we recommend not using VTST-enabled VASP unless your research requires it.

BEEF

Starting with version VASP/5.4.4-intel-2018b, VASP executables are linked against BEEF (for Bayesian Error Estimation Functionals) by default. Additional there will be packages patched with VTST and a patch for solvation.

In earlier versions, only VASP modules with "BEEF" in their names offer VASP executables linked against BEEF.

Sol

In certain versions of VASP the VASPsol patch is applied, an implicit solvation model that describes the effect of electrostatics, cavitation, and dispersion on the interaction between a solute and solvent into the plane-wave DFT.

Which VASP executable should I use?

VASP is unusual among scientific software packages in that some of its execution options are controlled neither by the nature of the input data, nor by command line flags, but by the executable itself. We offer a range of VASP executables, each built with a different set of compile-time options so that the resulting binary is optimised for a particular sort of problem.

The different VASP executables we offer in each module are as follows:

VASP 5.4.4

Name Description
vasp_ncl The most demanding VASP executable, suitable for non-collinear calculations (i.e., with spin-orbit coupling)
vasp_std A VASP executable with intermediate memory demands, suitable for collinear calculations without spin-orbit coupling
vasp_gam A VASP executable with low memory demands, suitable for gamma-point calculations
vasp_gpu Like vasp_std, but with GPU support included
vasp_gpu_ncl Like vasp_ncl, but with GPU support included


VASP 5.3.5

Note: If you are using VASP 5.3.5 and can safely upgrade without then needing to redo your work, we recommend you do so. Our current version of VASP is 5.4.4.

Name Description
vasp The most demanding VASP executable, suitable for non-collinear calculations (i.e., with spin-orbit coupling)
vasp_cd A VASP executable with intermediate memory demands, suitable for collinear calculations without spin-orbit coupling
vasp_gamma A VASP executable with low memory demands, suitable for gamma-point calculations
vasp_md_cd Like vasp_cd, but with molecular dynamics support included
vasp_md_gamma Like vasp_gamma, but with molecular dynamics support included

How should I configure my VASP input to run in parallel?

As implied by the example job submission script above, we recommend requesting the same number of cores on all involved nodes, preferably by using the --nodes and --ntasks-per-node options.

Parallel VASP for users of VASP 4.6

Note

This section does not apply to VASP 5 builds on NeSI, as all such builds are compiled with OpenMP and MPI support (hybrid parallelisation), in which the NPAR and NCORE parameters are ignored.

In your INCAR file, the most important parameters are the NPAR and NCORE parameters. They are inversely proportional to each other (NCORE is the total number of CPU cores divided by NPAR, and vice versa), but if both are set in your INCAR file, NPAR prevails over NCORE.

We therefore recommend using the $SLURM_NTASKS_PER_NODE environment variable to set the value of NPAR. An example script that does this automatically at run time is provided above.

For more information regarding NCORE, NPAR, and other VASP settings that influence its efficiency when run in parallel, please see the VASP notes on NPAR, NCORE, LPLANE and KPAR.

Labels: mahuika chemistry
Was this article helpful?
0 out of 0 found this helpful