Skip to content

VASP

VASP (Vienna Ab initio Simulation Package) performs ab initio quantum-mechanical molecular dynamics using pseudopotentials and a plane-wave basis set.

Licensing

VASP requires a valid license. Send your license details to support-hpc@dipc.org so we can verify it and grant you access to the binaries.

Loading the module

module load VASP/6.4.3-intel-2024a

Each module provides three binaries. Choose the one that matches your calculation:

  • vasp_std -- General purpose. Default choice for most calculations.
  • vasp_gam -- Gamma-point only. Uses real arithmetic instead of complex, roughly 2x faster and half the memory. Use it when your KPOINTS file has only the Gamma point.
  • vasp_ncl -- Non-collinear magnetism and spin-orbit coupling. Required for SOC calculations; slower than vasp_std.

To see all installed versions across clusters, check the software catalog or run module spider VASP.

Expand to see all available modules on each cluster
VASP/5.4.4-intel-2022a VASP/5.4.4-intel-2022a-VASPsol VASP/6.2.1-intel-2022a-VASPsol
VASP/6.2.1-intel-2022a-VASPsolpp VASP/6.4.1-intel-2022a VASP/6.4.1-intel-2022a-LIBXC
VASP/6.4.1-intel-2022a-noHDF5 VASP/6.4.1-intel-2022a-VASPsol-VTST VASP/6.4.1-intel-2022a-VTST
VASP/6.4.1-NVHPC-23.1-CUDA-12.1.1 VASP/6.4.3-intel-2022a VASP/6.4.3-intel-2022a-NOMEGA-3000
VASP/6.5.1-intel-2023a
VASP/5.4.4-intel-2019b VASP/5.4.4-intel-2019b-VTST VASP/5.4.4-intel-2019b-Wannier90-1.2-Mihovil
VASP/5.4.4-intel-2021a-Misha VASP/5.4.4-Wannier90-1.2-intel-2019b VASP/6.2.1-intel-2021a
VASP/6.2.1-intel-2021a-VTST-182-VASPsol-1.0-Wannier-2.1.0 VASP/6.2.1-intel-2021a-Wannier90-2.1.0 VASP/6.2.1-vtst-182-intel-2021a
VASP/6.4.1-intel-2021a
VASP/5.3.5-hannes-intel-2017b VASP/5.4.1-05Feb16-OMC-intel-2018b VASP/5.4.1-05Feb16-unpatched-Misha
VASP/5.4.1-NBO VASP/5.4.1-Wannier90-1.2-05Feb16-unpatched-Misha VASP/5.4.4-intel-2017b
VASP/5.4.4-intel-2018a VASP/5.4.4-intel-2018b-debug VASP/5.4.4-intel-2019b
VASP/5.4.4-intel-VTST-179-intel-2018b VASP/5.4.4-Wannier90-1.2-intel-2017b VASP/5.4.4-Wannier90-1.2-intel-2018a
VASP/5.4.4-Wannier90-1.2-modified-Z2Pack-intel-2017b VASP/6.4.1-intel-2022a

Pseudopotentials

VASP pseudopotential files (POTCARs) are distributed as part of the VASP package and access is controlled by your license. If your license covers VASP 6, you can access the VASP 6 pseudopotentials; if it covers VASP 5, you can access the VASP 5 set.

License Path
VASP 6 /scicomp/builds/Rocky/8.7/IceLake/software/VASP/potentials_6/
VASP 5 /scicomp/builds/Rocky/8.7/IceLake/software/VASP/potentials_5/
License Path
VASP 5 /scicomp/CentOS/7.4.1708/Skylake/software/VASP/potentials

Pseudopotentials are not directly available on Atlas FDR. You can copy them from the Hyperion or Atlas EDR paths above to your working directory.

Batch job examples

vasp.slurm
#!/bin/bash
#SBATCH --qos=regular
#SBATCH --job-name=vasp
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=48
#SBATCH --cpus-per-task=1
#SBATCH --mem=200G
#SBATCH --time=24:00:00
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err

module load VASP/6.4.3-intel-2024a

srun vasp_std
vasp_gpu.slurm
#!/bin/bash
#SBATCH --qos=regular
#SBATCH --job-name=vasp_gpu
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --mem=40G
#SBATCH --gpus=1
#SBATCH --time=24:00:00
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err

module load VASP/6.4.1-NVHPC-23.1-CUDA-12.1.1

export OMP_NUM_THREADS=1
srun vasp_std

Tip

VASP 6.4+ uses OpenACC for GPU offloading. Use one MPI rank per GPU and set NCORE = 1 in your INCAR.

vasp.slurm
#!/bin/bash
#SBATCH --qos=regular
#SBATCH --job-name=vasp
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=48
#SBATCH --cpus-per-task=1
#SBATCH --mem=200G
#SBATCH --time=24:00:00
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err

module load VASP/6.4.1-intel-2022a

srun vasp_std

GPU builds

VASP 6.4+ supports GPU acceleration via OpenACC. On Hyperion, for example, a GPU-enabled build is available:

module load VASP/6.4.1-NVHPC-23.1-CUDA-12.1.1

This build is compiled with NVHPC 23.1 and CUDA 12.1, linked against MKL for CPU math and cuFFT/cuSOLVER for GPU-accelerated FFTs and linear algebra. All three binaries (vasp_std, vasp_gam, vasp_ncl) are GPU-enabled. Check module spider VASP on your cluster for other GPU-enabled modules (look for NVHPC or CUDA in the name).

Key differences when running on GPU:

  • Use one MPI rank per GPU (e.g., --ntasks-per-node=4 with --gres=gpu:4)
  • Set NCORE = 1 in your INCAR (mandatory for GPU; see VASP wiki: OpenACC GPU port)
  • Set OMP_NUM_THREADS=1

When are GPUs worth it?

GPU acceleration benefits medium to large systems (> 100 atoms) with dense k-point grids. For very small systems, the overhead of GPU data transfer can make CPUs faster. Test both and compare the LOOP+ timing in the OUTCAR.

Performance tuning (INCAR)

The following INCAR parameters have the biggest impact on performance. Incorrect settings are the most common reason for slow VASP runs.

Parameter What it does Recommendation Reference
NCORE Number of cores working on each orbital Start with √(cores per node). On our 48-core nodes: try NCORE = 6 or NCORE = 8 Parallelization guide
KPAR Parallelization over k-points Set to a divisor of your total k-points, at most equal to the number of nodes Parallelization guide
LREAL Projection operators in real space LREAL = Auto for cells with > 20 atoms (faster). Keep LREAL = .FALSE. for small cells and high-precision work LREAL wiki
NSIM Bands optimized simultaneously in RMM-DIIS Default (4) is usually fine. Increase to 8-16 for large systems NSIM wiki

NCORE and KPAR must match your SLURM allocation

The total number of MPI ranks must be divisible by both NCORE and KPAR. For example, with 2 nodes x 48 tasks = 96 ranks, valid combinations include KPAR=2, NCORE=8 (96 / 2 / 8 = 6 bands in parallel) or KPAR=4, NCORE=6. If the values are incompatible, VASP will either crash or silently fall back to suboptimal settings.

GPU runs

On GPU, always set NCORE = 1. The GPU port handles parallelization differently. See OpenACC GPU port.

Example INCAR block for a 2-node CPU job on Hyperion (96 MPI ranks):

NCORE  = 8
KPAR   = 2
LREAL  = Auto
NSIM   = 4

Scaling guidelines

How many cores your calculation needs depends primarily on the system size and the number of k-points. These are starting points; always verify by comparing the LOOP+ timing in the OUTCAR between different configurations.

System size Suggested resources Notes
Small (< 50 atoms) 1 node, 24-48 cores More cores rarely helps; try vasp_gam if Gamma-only
Medium (50-200 atoms) 1-2 nodes Set KPAR = number of nodes, adjust NCORE
Large (200-500 atoms) 2-4 nodes LREAL = Auto becomes important here
Very large (> 500 atoms) 4+ nodes Run a scaling test first; efficiency drops beyond a point

How to run a scaling test

Run the same calculation on 1, 2, and 4 nodes with a small number of electronic steps (NELM = 5) and compare the elapsed time per step (LOOP+ in OUTCAR):

grep "LOOP+" OUTCAR

If doubling the nodes does not reduce the time by at least 30-40%, you are past the efficient scaling range. Use fewer nodes and spend the saved core-hours on more calculations instead.

For a detailed discussion of VASP parallelization strategy, see the official optimization guide.

See also