VASP¶
License required¶
Warning
You can gain access to VASP installation and run simulations based on it upon the compute nodes of Discoverer, only if you can provide a valid license (it will be checked/verified). Based on the valid license in your possession, you can run only the version of VASP covered by that license (and not any of the other versions installed).
Supported versions¶
Note
The versions of VASP installed in the software repository are built, tested, and supported by the Discoverer HPC team.
To check which VASP versions are currently officially supported on Discoverer, execute on the login node:
module avail vasp
and get the list.
User-supported versions¶
Users are welcome to bring, compile, and use their own builds of VASP (covered by the license), but those builds will not be supported by the Discoverer HPC team.
Running VASP¶
Warning
You MUST NOT execute simulations directly upon the login node (login.discoverer.bg). You have to run your simulations as Slurm jobs only.
Warning
Write the results only inside your Personal scratch and storage folder (/discofs/username) and DO NOT use for that purpose (under any circumstances) your Home folder (/home/username)!
Slurm batch template¶
To run VASP executables as a Slurm batch job, you may copy and modify the following template:
#!/bin/bash
#
#SBATCH --partition=cn # Name of the partition of nodes (as the support team)
#SBATCH --job-name=vasp
#SBATCH --time=02:00:00 # Set a wall time limit for the job
#SBATCH --nodes 4 # Two nodes will be used
#SBATCH --ntasks-per-node 32 # Use all 128 CPU cores on each node
#SBATCH --ntasks-per-core 1 # Run only one MPI process per CPU core
#SBATCH --cpus-per-task 4 # Number of OpenMP threads per MPI process
#SBATCH -o slurm.%j.out # STDOUT
#SBATCH -e slurm.%j.err # STDERR
ulimit -Hs unlimited
ulimit -Ss unlimited
module purge
module load vasp/5/5.4.4-nvidia-openmpi
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
export OMP_PROC_BIND=false
export OMP_SCHEDULE='STATIC'
export OMP_WAIT_POLICY='ACTIVE'
export UCX_NET_DEVICES=mlx5_0:1
cd $SLURM_SUBMIT_DIR
mpirun vasp_std
Specify the parameters and resources required for successfully running and completing the job:
- Slurm partition of compute nodes, based on your project resource reservation (
--partition
)- job name, under which the job will be seen in the queue (
--job-name
)- wall time for running the job (
--time
)- number of occupied compute nodes (
--nodes
)- number of MPI proccesses per node (
--ntasks-per-node
)- number of threads (OpenMP threads) per MPI process (
--cpus-per-task
)- version of VASP to run after
module load
(see Supported versions)
Note
The requested number of MPI processes per node should not be greater than 128 (128 is the number of CPU cores per compute node, see Resource Overview). Run a series of short simulations to estimate the most profitable combination of allocated number of nodes, MPI processes (tasks), and OpenMP threads per MPI task for your system. Then apply that combination to your productive simulations.
The example above shows how to invoke the vasp_std
executable. You might replace it with vasp_gam
or vasp_ncl
, depending on your goals.
Getting help¶
See Getting help