Table des matières
VASP sur Jean Zay
Présentation
VASP est un logiciel de simulation atomistique de physique/chimie des matériaux. Il résoud l'équation de Shrödinger en utilisant la théorie de la fonctionnelle de la densité DFT et la méthode Hartree-Fock, ainsi que d'autres méthodes plus avancées.
Afin d'obtenir l'accès à VASP à l'IDRIS, vous devez au préalable vous enregistrer auprès de VASP pour obtenir une licence. VASP fournit des licences de groupe ; cependant il est nécessaire d'enregistrer chaque personne du groupe. Comme nous le demande VASP, une vérification est faite par l'assistance avant de pouvoir vous ouvrir les accès.
Liens utiles
Versions disponibles
Les versions avec cuda sont compatibles avec le calcul sur GPU.
Version | Variantes |
---|---|
6.4.2 | mpi |
6.4.0 | mpi-cuda-openacc, cuda-openacc-mlff_patched, mpi-cuda-openacc-vaspsol, mpi-ml_ff_patched, 6.4.0-mpi-vaspsol |
6.3.2 | mpi-cuda-openacc_ml-ff-abinitio-patched, mpi_ml-ff-abinitio-patched |
6.3.0 | mpi, mpi-cuda-openacc |
6.2.0 | mpi, mpi-cuda-openacc |
6.1.2 | mpi |
5.4.4.pl2 | mpi-vaspsol |
5.4.4 | mpi-cuda, mpi-vtst |
Exécutables disponibles
Sur CPU
vasp_std
: version standard de VASP ;vasp_gam
: version pour les calculs avec seulement le point Gamma ;vasp_ncl
: version pour les calculs non colinéaires.
Sur GPU
Version 6
vasp_std
vasp_gam
vasp_ncl
Version 5
vasp_gpu
: version standard, portée sur GPU avec CUDA ;vasp_ncl_gpu
: version pour les calculs non colinéaires, portée sur GPU avec CUDA.
Informations importantes
Plusieurs problèmes ont été détectés lors de l'utilisation de la version vasp_gam. Si vos travaux s'arrêtent à cause d'un problème de mémoire il est nécessaire de charger une version alternative de VASP. Pour cela il faut charger les modules suivants (l'ordre importe):
module load intel-compilers/18.0.5 intel-mpi/18.0.5 module load vasp/5.4.4-mpi-cuda
Exemple d'utilisation sur la partition CPU
Exemple de script sur la partition CPU
- vasp_cpu.slurm
#!/bin/bash #SBATCH --nodes=1 # 1 node reserved #SBATCH --ntasks-per-node=40 # 40 MPI tasks #SBATCH --cpus-per-task=1 # 1 OpenMP thread/task #SBATCH --hint=nomultithread # Desabling hyperthreading #SBATCH --job-name=VASP #SBATCH --output=%x.o%j # Output file %x is the jobname, %j the jobid #SBATCH --error=%x.o%j # Error file #SBATCH --time=10:00:00 # Expected runtime HH:MM:SS (max 100h) ## ## Please, refer to comments below for ## more information about these 4 last options. ##SBATCH --account=<account>@cpu # To specify cpu accounting: <account> = echo $IDRPROJ ##SBATCH --partition=<partition> # To specify partition (see IDRIS web site for more info) ##SBATCH --qos=qos_cpu-dev # Uncomment for job requiring less than 2 hours ##SBATCH --qos=qos_cpu-t4 # Uncomment for job requiring more than 20h (up to 4 nodes) # Cleans out the modules loaded in interactive and inherited by default module purge # Load the necessary modules module load vasp/5.4.4-mpi-cuda srun vasp_std
Exemple d'utilisation sur la partition GPU
Il existe des limitations sur les fonctionnalités portées sur GPU. Veuillez consulter la page Informations sur le portage GPU.
Sur les tests que nous avons réalisés, la surcharge des GPU avec le MPS activé donne de meilleurs résultats. Il est important de réaliser des tests pour trouver le nombre optimal de tâches MPI par GPU .
Exemple de script sur la partition GPU
- vasp_gpu.slurm
#!/bin/bash #SBATCH --nodes=1 # 1 node reserved #SBATCH --ntasks-per-node=8 # 8 MPI tasks (i.e. 2 per GPU) #SBATCH --cpus-per-task=5 # 5 OpenMP threads/task (20Go of memory per task) #SBATCH --gres=gpu:4 # 4 GPU required #SBATCH --constraint=mps # Enable MPS #SBATCH --hint=nomultithread # Disable hyperthreading #SBATCH --job-name=VASP # Jobname #SBATCH --output=%x.o%j # Output file %x is the jobname, %j the jobid #SBATCH --error=%x.o%j # Error file #SBATCH --time=10:00:00 # Expected runtime HH:MM:SS (max 100h for V100, 20h for A100) ## ## Please, refer to comments below for ## more information about these 4 last options. ##SBATCH --account=<account>@v100 # To specify gpu accounting: <account> = echo $IDRPROJ ##SBATCH --partition=<partition> # To specify partition (see IDRIS web site for more info) ##SBATCH --qos=qos_gpu-dev # Uncomment for job requiring less than 2 hours ##SBATCH --qos=qos_gpu-t4 # Uncomment for job requiring more than 20h (up to 16 GPU, V100 only) # Cleans out the modules loaded in interactive and inherited by default module purge # Load the necessary modules module load vasp/5.4.4-mpi-cuda srun vasp_gpu
Remarques
- Les jobs ont tous des ressources définies dans Slurm par une partition et une “Qualité de Service” QoS (Quality of Service) par défaut. Vous pouvez en modifier les limites en spécifiant une autre partition et/ou une QoS comme indiqué dans notre documentation détaillant les partitions et les Qos.
- Pour les comptes multi-projets ainsi que ceux ayant des heures CPU et GPU, il est indispensable de spécifier l'attribution d'heures sur laquelle décompter les heures de calcul du job comme indiqué dans notre documentation détaillant la gestion des heures de calcul.