Vasp

VASP (Vienna Ab initio Simulation Package) est un code de chimie quantique computationnelle et de physique de la matière condensée.

Les versions disponibles sur Kairos


6.5.1


CPU-x86

Chargement du module

module load vasp/6.5.1-oneapi2025.3

Script SLURM 

#!/bin/bash
#SBATCH --job-name=VASP_STD
#SBATCH --nodes=1     # adapter selon vos besoins : 1,2,3,4...
#SBATCH --ntasks-per-node=192     # tous les cœurs du nœud
#SBATCH --time=02:00:00
#SBATCH --partition=noeud

module purge
module load vasp/6.5.1-oneapi2025.3

# Paramètres de performance
export OMP_NUM_THREADS=1
export OMP_PROC_BIND=close
export OMP_PLACES=cores
export MALLOC_MMAP_MAX_=0
export MALLOC_TRIM_THRESHOLD_=-1
export FORT_BUFFERED=true
export UCX_TLS=sm,self,rc_x,ud_x,dc_x
export UCX_NET_DEVICES=mlx5_0:1
export OMPI_MCA_coll_tuned_enable=1
export OMPI_MCA_coll_tuned_priority=100
export OMPI_MCA_coll_hcoll_enable=0

ulimit -s unlimited
ulimit -n 131072

# Adapter NCORE à votre système
sed -i "s/_NCORE_/6/g" INCAR

mpirun -np $SLURM_NTASKS \
 --map-by numa:PE=$OMP_NUM_THREADS \
 --bind-to core \
 vasp_std | tee vasp.out

 

GPU-ARM

Chargement du module

module load vasp/6.5.1-nvhpc26.1

Script SLURM Mono-GPU (conseillé)

#!/bin/bash
#SBATCH --job-name=VASP_GPU_STD
#SBATCH --partition=shared-gpu
#SBATCH --nodes=1         # adapter selon vos besoins : 1 ou 2
#SBATCH --ntasks-per-node=1    # 1 tâche MPI par GPU
#SBATCH --cpus-per-task=40
#SBATCH --gres=gpu:1           # 1 seul GPU
#SBATCH --time=02:00:00

source /etc/profile
module purge
module load vasp/6.5.1-nvhpc26.1

# OpenMP
export OMP_NUM_THREADS=4
export OMP_PLACES=cores
export OMP_PROC_BIND=spread
export OMP_STACKSIZE=512m

# GPU
export CUDA_VISIBLE_DEVICES=0,1,2,3
export FORT_BUFFERED=true
export OMPI_MCA_coll_hcoll_enable=0

ulimit -s unlimited

mpirun -n $SLURM_NTASKS \
 --map-by socket:pe=$OMP_NUM_THREADS \
 --bind-to none \
 vasp_std | tee vasp.out
 

Script SLURM Multi-GPU 

Il faut utiliser le script wrapper.sh (fourni ci-dessous) pour effectuer correctement le binding. La variable WRAPPER doit aussi être modifiée avec le chemin correct.

#!/bin/bash
#SBATCH --job-name=VASP_GPU_STD
#SBATCH --partition=gpu
#SBATCH --nodes=1         # adapter selon vos besoins : 1 ou 2
#SBATCH --ntasks-per-node=4    # 1 tâche MPI par GPU
#SBATCH --cpus-per-task=40
#SBATCH --gres=gpu:4
#SBATCH --time=02:00:00

module purge
module load vasp/6.5.1-nvhpc26.1

# OpenMP
export OMP_NUM_THREADS=4
export OMP_PLACES=cores
export OMP_PROC_BIND=spread
export OMP_STACKSIZE=512m

# GPU
export CUDA_VISIBLE_DEVICES=0,1,2,3
export FORT_BUFFERED=true
export OMPI_MCA_coll_hcoll_enable=0

ulimit -s unlimited

WRAPPER=/path/to/wrapper.sh

mpirun -n $SLURM_NTASKS \
 --map-by ppr:4:node:pe=$OMP_NUM_THREADS \
 --bind-to none \
 $WRAPPER \
 vasp_std | tee vasp.out
 

wrapper.sh:

#!/bin/bash
NICS=(mlx5_0 mlx5_1 mlx5_2 mlx5_3)
CPUNODESBIND=(0 1 2 3)
NUMANODESBIND=(0 1 2 3)
lrank=$OMPI_COMM_WORLD_LOCAL_RANK
export UCX_NET_DEVICES=${NICS[$lrank]}:1
numactl --cpunodebind=${CPUNODESBIND[$lrank]} --membind=${NUMANODESBIND[$lrank]} $@

Voir aussi

NAMD

La version 3.0.2 est installée sur Kairos ( uniquement s

GROMACS

La version 2025 est installée sur Kairos ( uniquement sur partition GPU-ARM) avec NVHPC 25.3 

Gaussview (Kairos)

Alphafold3

Modélisation avec Alphafold3 sur KairosCette page explique la mise en place du job à partir du répertoire suivant, à récupérer ici :

chdb

In this tutorial, you’ll learn how to use chdb to run your embarassingly parallel computations. All the usecases supported by chdb will be described here.