VASP 541

Versions et Modules

Ce code de calcul est accessible via le module vasp/5.4.1/impi. L'utilisation étant soumise à licence vous devez faire parti du groupe vasp54
un script de soumission est disponible dans le répertoire /gpfs/softs/contrib/apps/vasp/5.4.1/slurm_script/vasp_impi.slurm

il permet d'utiliser la version de vasp compilé avec :

le compilateur  compiler/intel/2019.3.199  
la version de MPI mpi/intel/2019.3.199 

les 3 versions de vasp sont disponibles std, gam et ncl. il suffit pour cela de la spécifier dans le script de soumission

Scripts

un script de soumissions est proposé dans le répertoire /gpfs/softs/contrib/apps/vasp/5.4.1/slurm_script/vasp_impi.slurm

#!/bin/bash            
#SBATCH -o vasp.%j.out
#SBATCH --nodes 2
#SBATCH --ntasks-per-node 8
#SBATCH --cpus-per-task 4 

#SBATCH -t 2-00:00:00
set -x
# Load modules, unless already done before job is submitted (remember,
# SLURM export the environment as per default, unless you 
# set --export=NONE
module purge
module load use.own
module load vasp/5.4.1/impi
export SJID="$SLURM_JOB_NAME"_"`echo $SLURM_JOB_ID | cut -d . -f 1`_`date '+%d%m%Y'`" 
# we place the job in the scratch directory
SCRDIR=/scratch/$USER/$SJID
mkdir -p $SCRDIR
cd $SCRDIR
echo #####################
env
echo #####################
D0=$SLURM_SUBMIT_DIR/$SLURM_JOB_NAME
# we copy input file to the scratch directory
for infile in INCAR POTCAR POSCAR KPOINTS 
do
  cp $D0/$infile $SCRDIR/
done
#sed -i "s/^NPAR.*/NPAR = $SLURM_NTASKS /" INCAR
# we call vasp_std executable. note you can also call vasp_gam or vasp_nsl
#mpirun -np SLURM_NTASKS -env OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK vasp_std > $SLURM_JOB_NAME.out
mpirun vasp_std > $SLURM_JOB_NAME.out

# we create a result directory an copy results inside
mkdir $SLURM_SUBMIT_DIR/$SLURM_JOB_NAME/$SJID && cp ./* $SLURM_SUBMIT_DIR/$SLURM_JOB_NAME/$SJID && rm -rf $SCRDIR

Soumission

l'utilisation de ce script demande une certaine organisation des données
l'arborescence doit regrouper dans un répertoire tout les input nécessaire.
Imaginons que vous ayez un répertoire pour vos calcul vasp, dans un souci d'originalité appelons le vasp,
puis un calcul, étant informaticien j’appellerai mon calcul toto (ce qui ne devrais choquer personne).

Mon arborescence devra alors être de la forme :

vasp -|
      |-toto -|
              |-INCAR
              |-POTCAR
              |-POSCAR
              |-KPOINTS

Pour lancer le calcul je dois me placer dans le répertoire vasp. Puis lancer la commande :
 sbatch -J toto /gpfs/softs/contrib/apps/vasp/5.4.1/slurm_script/vasp_impi.slurm

la dernière partie étant un peu longue je vous propose de raccourcir ce chemin en placant un lien vers le fichier dans votre répertoire personnel, avec la commande :

 ln -s /gpfs/softs/contrib/apps/vasp/5.4.1/slurm_script/vasp_impi.slurm ~/.vasp_impi.slurm 

ce qui réduira la commande de lancement du job a :
sbatch -J toto ~/.vasp_impi.slurm

votre job apparaîtra dans la liste des job en attente (state PD pour pending) ou partira directement (chanceux!!!). Dés que votre job démarrera un fichier sera créé dans le répertoire toto avec le nom vasp.<numero du job>.out ce fichier n'est pas le résultat de votre calcul mais le compte rendu de l'exécution de votre job. Il pourra vous renseigner sur le pourquoi votre job ne s'est pas passé correctement.
Une fois le job terminé les résultats seront rapatrié dans un répertoire au sein de toto. Ce répertoire ce nomme toto_<numéro du job>_<date de début du calcul>
ce qui devrait donner pour un calcul avec le numéro 29477 l'arborescence suivante:

vasp -|
      |-vasp.29477.out
      |-toto -|
              |-INCAR
              |-POTCAR
              |-POSCAR
              |-KPOINTS
              |-toto_29477_19042019-|
                                    |-toto.out
                                    |-CHG
                                    |-CHGCAR
                                    |-CONTCAR 
                                    |-DOSCAR
                                    |-EIGENVAL
                                    |-IBZKPT
                                    |-INCAR
                                    |-KPOINTS
                                    |-OSZICAR
                                    |-OUTCAR
                                    |-PCDAT
                                    |-POSCAR
                                    |-POTCAR
                                    |-PROCAR
                                    |-REPORT
                                    |-vasprun.xml
                                    |-WAVECAR
                                    |-XDATCAR

Attention

Si vous voulez modifier le fichier INCAR pour lancer un nouveau calcul vous devez attendre que le premier calcul soit parti. En effet la copie du fichier INCAR dans le répertoire de travail ne se fait qu'au début du job, pas lorsque celui ci est en attente. Ou alors me demander je peux fournir un script ou le fichier INCAR est généré dans le script de soumission. Permettant ainsi de soumettre simultanément plusieurs calcul avec des fichier POTCAR KPOINTS POSCAR identiques.

De même si vous avez besoin de fichier d'entrée supplémentaire copier le script dans votre dossier personnel en le renommant.

 cp /gpfs/softs/contrib/apps/vasp/5.4.1/slurm_script/vasp_impi.slurm ~/.vasp_mine.slurm 

et modifier la ligne
 for infile in INCAR POTCAR POSCAR KPOINTS
pour ajouter à la liste les fichiers dont vous avez besoin.
De même si vous ne voulez pas utiliser une autre version que vasp_std, il vous faudra copier une version du script dans votre dossier personnel.

PS: la version GPU est en attente de compilation