VASP
Description
The Vienna Ab initio Simulation Package (VASP) is a first-principles code for electronic structure calculations and molecular dynamics simulations in materials science and engineering. It is based on plane wave basis sets combined with the projector-augmented wave method or pseudopotentials. VASP is maintained by the Computational Materials Physics Group at the University of Vienna.
More information is available on the VASP website and from the VASP wiki.
Usage Conditions
Access to VASP executables is restricted to users satisfying the following criteria. The user must
- be member of a research group owning a VASP license,
- to access VASP 6.4.x the license must be valid to at least 2019-06-30,
- to access VASP 6.5 and higher the license must be valid to at least 2024-12-17,
- be registered in Vienna as a VASP user of this research group,
- employ VASP only for work on projects of this research group.
Only members of the groups vasp6 or HPC_vasp6_5 have access to VASP executables.
Please check Software Licensing for details.
Modules
VASP is an MPI-parallel application. We recommend to use mpirun as the job starter for VASP. The environment module providing the mpirun command associated with a particular VASP installation needs to be loaded ahead of the environment module for VASP.
| VASP Version | User Group | VASP Modulefile | Module Requirements | CPU / GPU |
|---|---|---|---|---|
| 6.4.3 | vasp6 | vasp/6.4.3 | intel-oneapi-compilers/2025.0.0 intel-oneapi-mpi/2021.14.0 | ✅ / ❌ |
| 6.5.0 | HPC_vasp6_5 | vasp/6.5.0 | intel-oneapi-compilers/2025.0.0 intel-oneapi-mpi/2021.14.0 | ✅ / ❌ |
| 6.5.1 | HPC_vasp6_5 | vasp/6.5.1 | intel-oneapi-compilers/2025.0.0 intel-oneapi-mpi/2021.14.0 | ✅ / ❌ |
VASP has been compiled with support for OpenMP and HDF5.
Executables
| Executable | Description |
|---|---|
| vasp_std | multiple k-points (formerly vasp_cd) |
| vasp_gam | Gamma-point only (formerly vasp_gamma_cd) |
| vasp_ncl | non-collinear calculations, spin-orbit coupling (formerly vasp) |
Example Jobscripts
#!/bin/bash
#SBATCH --time 12:00:00
#SBATCH --nodes 2
#SBATCH --tasks-per-node 96
#SBATCH --partition standard96s
export SLURM_CPU_BIND=none
module load intel-oneapi-compilers/2025.0.0
module load intel-oneapi-mpi/2021.14.0
module load vasp/6.5.1
mpirun vasp_stdThe following job script exemplifies how to run vasp 6.4.1 making use of OpenMP threads. Here, we have 2 OpenMP threads and 48 MPI tasks per node (the product of these 2 numbers should ideally be equal to the number of CPU cores per node).
In many cases, running VASP with parallelization over MPI alone already yields good performance. However, certain application cases can benefit from hybrid parallelization over MPI and OpenMP. A detailed discussion is found here. If you opt for hybrid parallelization, please pay attention to process pinning, as shown in the example below.
#!/bin/bash
#SBATCH --time=12:00:00
#SBATCH --nodes=2
#SBATCH --tasks-per-node=48
#SBATCH --cpus-per-task=2
#SBATCH --partition=standard96s
export SLURM_CPU_BIND=none
# Set the number of OpenMP threads as given by the SLURM parameter "cpus-per-task"
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
# Adjust the maximum stack size of OpenMP threads
export OMP_STACKSIZE=512m
# Binding OpenMP threads
export OMP_PLACES=cores
export OMP_PROC_BIND=close
# Binding MPI tasks
export I_MPI_PIN=yes
export I_MPI_PIN_DOMAIN=omp
export I_MPI_PIN_CELL=core
module load intel-oneapi-compilers/2025.0.0
module load intel-oneapi-mpi/2021.14.0
module load vasp/6.5.1
mpirun vasp_std