Table des matières
NAMD sur Jean Zay
Présentation
NAMD est un logiciel de dynamique moléculaire traditionnellement utilisé pour simuler des systèmes de grande taille.
Liens utiles
Versions disponibles
Les versions 3.0-alphaY implémentent une version plus efficace du calcul sur GPU. Elles sont à utiliser avec précaution car elle ne sont pas validées pour la production par NAMD.
Version | Variantes |
---|---|
3.0-alpha3 | namd/3.0-a3 |
3.0-alpha9 | namd/3.0-a9 |
2.13 | namd/2.13-mpi-charmpp-mpi |
2.13 | namd/2.13-mpi-charmpp-smp |
2.13 CUDA | namd/2.13-mpi-cuda |
2.13 CUDA pour Replica exchange | namd/2.13-mpi-cuda-charmpp-mpi-smp |
2.9 | namd/2.9-mpi-charmpp-mpi-smp |
Script de soumission sur la partition CPU par défaut
- namd.slurm
#!/bin/bash #SBATCH --nodes=10 # Number of Nodes #SBATCH --ntasks-per-node=40 # Number of MPI tasks per node #SBATCH --cpus-per-task=1 # Number of OpenMP threads #SBATCH --hint=nomultithread # Disable hyperthreading #SBATCH --job-name=DnaJ # 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) ## ## 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 module module load namd/2.13-mpi-charmpp-mpi # Execute command srun namd2 DnaJ.namd
Script de soumission sur la partition GPU par défaut
Attention : la version GPU actuellement installée ne permet pas l'utilisation simultanée de plusieurs nœuds de calcul. Il ne faut donc pas utiliser srun
ou charmrun
.
Sur GPU, l'option +idlepoll
est nécessaire pour obtenir de bonnes performances.
- namd_gpu.slurm
#!/bin/bash #SBATCH --nodes=1 # Number of Nodes #SBATCH --ntasks-per-node=1 # Number of MPI tasks per node #SBATCH --cpus-per-task=40 # Number of OpenMP threads #SBATCH --hint=nomultithread # Disable hyperthreading #SBATCH --gres=gpu:4 # Allocate 4 GPUs per node #SBATCH --job-name=DnaJ # Job name #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 3 last options. ##SBATCH --account=<account>@v100 # To specify gpu accounting: <account> = echo $IDRPROJ ##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 module module load namd/2.13-mpi-cuda # Execute command namd2 +p40 +idlepoll DnaJ.namd
Script de soumission pour Replica Exchange sur la partition GPU par défaut
Important : Une version de NAMD multi-nœud GPU a été installée mais nous conseillons de ne l'utiliser que pour des calculs de type Replica Exchange.
Elle a été compilée en ignorant une erreur de configuration de NAMD à propos des performances.
Nous conseillons de limiter le nombre de GPU par réplique à 1 avec l'option ' +devicesperreplica 1'.
- namd_gpu_RE.slurm
#!/bin/bash #SBATCH --nodes=4 # Number of Nodes #SBATCH --ntasks-per-node=4 # Number of MPI tasks per node #SBATCH --cpus-per-task=10 # Number of OpenMP threads #SBATCH --hint=nomultithread # Disable hyperthreading #SBATCH --gres=gpu:4 # Allocate 4 GPUs per node #SBATCH --job-name=test_RE # Job name #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 3 last options. #SBATCH --account=<account>@v100 # To specify gpu accounting: <account> = echo $IDRPROJ ##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 module module load namd/2.13-mpi-cuda-charmpp-mpi-smp export replicas=16 mkdir -p output/{0..$replicas} set -x srun $(which namd2) +idlepoll +devicesperreplica 1 \ +replicas $replicas job0.conf +stdout output/%d/job0.%d.log
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.