VASP#

VASP (Vienna Ab initio Simulation Package) es un programa de simulación de materiales basado en primeros principios (ab initio), ampliamente utilizado en física del estado sólido, ciencia de materiales y química computacional.
Importante
Para utilizar VASP, por favor dirígase a https://tickets.clementinaxxi.org.ar -> Abrir un Nuevo Ticket -> Temas de ayuda -> Solicitar acceso a VASP. Cualquier intento de uso de VASP sin poseer una licencia habilitante para la versión específica resultará en sanciones.
Versiones instaladas#
Actualmente las versiones de VASP instaladas en Clementina XXI son la 6.5.1 con soporte para CPU, y la 6.6.1 con soporte para GPUs.
Características:
Compilada con Intel OneAPI
Biblioteca Intel MKL
Paralelización con Intel MPI y OpenMP
Wannier90
HDF5
LibXC
En el caso de la versión GPU, no está incluido LibXC.
Como utilizar VASP#
Carga de módulo#
Una vez que su usuario se encuentre habilitado, usted podrá cargar VASP mediante el módulo vasp/6.5.1
module purge
module load vasp/6.5.1
module purge
module load vasp/6.6.1-gpu
Una vez hecho esto, podrá usar los binarios vasp_std, vasp_gam, vasp_ncl.
Scripts de ejemplo#
Script MPI puro#
#!/bin/bash
#SBATCH --job-name=vaspjob
#SBATCH --output=%x_%J.out
#SBATCH --error=%x_%J.err
#SBATCH --account=<account_number>
#SBATCH --nodes=1
#SBATCH --ntasks=64
#SBATCH --ntasks-per-node=64
#SBATCH --partition=gpunode
#SBATCH --exclusive
# Module loading
module purge
module load vasp/6.5.1
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1
export MKL_DYNAMIC=false
mpirun vasp_std
#!/bin/bash
#SBATCH --job-name=vaspjob
#SBATCH --output=%x_%J.out
#SBATCH --error=%x_%J.err
#SBATCH --account=<account_number>
#SBATCH --nodes=2
#SBATCH --ntasks=128
#SBATCH --ntasks-per-node=64
#SBATCH --partition=gpunode
#SBATCH --exclusive
# Module loading
module purge
module load vasp/6.5.1
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1
export MKL_DYNAMIC=false
mpirun vasp_std
#!/bin/bash
#SBATCH --job-name=vaspjob
#SBATCH --output=%x_%J.out
#SBATCH --error=%x_%J.err
#SBATCH --account=<account_number>
#SBATCH --nodes=4
#SBATCH --ntasks=256
#SBATCH --ntasks-per-node=64
#SBATCH --partition=gpunode
#SBATCH --exclusive
# Module loading
module purge
module load vasp/6.5.1
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1
export MKL_DYNAMIC=false
mpirun vasp_std
#!/bin/bash
#SBATCH --job-name=vasp-gpu
#SBATCH --output=%x%J.out
#SBATCH --error=%x%J.err
#SBATCH --ntasks=1
#SBATCH --nodes=1
#SBATCH --gpus=1
#SBATCH --partition=gpunode
Module loading
module purge
module load vasp/6.6.1-gpu
export OMP_NUM_THREADS=1
export MKL_THREADING_LAYER=INTEL
export MKL_NUM_THREADS=1
export MKL_DYNAMIC=false
export I_MPI_OFFLOAD=1
export ZE_FLAT_DEVICE_HIERARCHY=FLAT
mpirun -np 1 vasp_std
GPUs#
En el caso del uso de GPUs, ZE_FLAT_DEVICE_HIERARCHY=FLAT usa la «mitad» (una tile) de una GPU, y solo usa un core y thread. Para usar una GPU entera, puede usarse FLAT en conjunto con mpirun -np 2 o ZE_FLAT_DEVICE_HIERARCHY=COMPOSITE manteniendo mpirun -np 1, aunque la escalabilidad no está garantizada. Para más detalles sobre el uso de las GPUs de Clementina XXI, revise la documentación correspondiente. Para usar apropiadamente más de un core, se debe especificar --cpus-per-task=<cantidad de threads> y ajustar los valores de OMP_NUM_THREADS y MKL_NUM_THREADS de manera acorde.
Para más información sobre optimizaciones en GPU, ver la documentación correspondiente de VASP.