DOCUMENTATION
NAMD est un code parallèle de dynamique moléculaire conçu pour simuler de larges systèmes bio-moléculaires. Vous trouverez plus d'information sur le site : http://www.ks.uiuc.edu/Research/namd.
Pour l'utiliser, il faut charger le module correspondanti à la version désirée, par exemple :
module load namd/namd-2.13
Pour des questions de performances, la dernière version de NAMD a été compilé pour fonctionner avec le réseau Omni-Path. Pour utiliser le réseau Infiniband, il faut utiliser les versions 2.12 ou antérieures.
L'installation de NAMD a été testé avec l'exemple STMV
Voici un exemple de script pour lancer un calcul NAMD sur 4 noeuds complets avec la dernière version de NAMD :
#! /bin/bash
# 4 noeuds
#SBATCH -N 4-4
#SBATCH --exclusive # On veut des noeuds entiers
#SBATCH --constraint=opa # On veut des noeuds Omni-Path
module load namd/namd-2.13
export CONV_RSH=ssh
mpirun namd2 +setcpuaffinity input.namd
Temps de référence STMV sur 4 x Intel Xeon Gold 6126 CPU @ 2.60GHz (24x4 cœurs) : 142.419067s
Version SMP
Une version de NAMD SMP a été compilée. Cette version utilise la mémoire partagée des nœuds de calcul, et utilise un thread par nœud pour les communications. D'après nos essais, cette version peut être un peu plus lente que la version MPI simple, mais nous la proposons au cas où. Pour l'utiliser, il faut charger le module suivant :
module load namd/namd-2.13-smp
Voici un exemple de script pour lancer un calcul NAMD sur 4 noeuds complets avec la dernière version de NAMD SMP :
#! /bin/bash
# 4 noeuds
#SBATCH -N 4-4
#SBATCH --tasks-per-node=1 # On ne lancera qu'un process MPI par noeud, mais se process lancera plusieurs workers
#SBATCH --exclusive # On veut des noeuds entiers
#SBATCH --constraint=opa # On veut des noeuds Omni-Path
module load namd/namd-2.13-smp
export CONV_RSH=ssh
# namd a besoin d'un thread de communication par noeud
NUM_WORKER_THREADS=$(($SLURM_CPUS_ON_NODE-1))
mpirun namd2 +ppn $NUM_WORKER_THREADS +setcpuaffinity input.namd
Temps de référence STMV sur 4 x Intel Xeon Gold 6126 CPU @ 2.60GHz (24x4 cœurs) : 315.281677s
Calcul sur GPU
Une version GPU de NAMD est également disponible. Pour l'utiliser, il faut charger le module suivant :
module load namd/namd-3.0-alpha3-singlenode-gpu
Pour utiliser le calcul sur GPU avec NAMD, il n'est pas nécessaire que le nombre de GPU soit égal au nombre de processeurs. NAMD est un code en Double Précision, il faut donc utiliser des GPUs compatibles. Notez bien que notre version de NAMD sur GPU ne peut utiliser qu'un seul nœud.
Voici un exemple de script de soumission d'un calcul NAMD sur 1 nœud avec 4 GPUs :
#! /bin/bash
#SBATCH -N 1-1
#SBATCH -p publicgpu
#SBATCH --gres=gpu:4 # 4 GPUs
#SBATCH --exclusive # On veut le noeud entier
#SBATCH --constraint=gpudp #On cherche des GPUs rapides en Double Précision
module load namd/namd-3.0-alpha3-singlenode-gpu
export CONV_RSH=ssh
namd3 +p $SLURM_CPUS_ON_NODE +setcpuaffinity +idlepoll input.namd
Temps de référence STMV sur 1 x Intel Xeon Gold 6226 CPU @ 2.70GHz + 4 Nvidia Tesla V100 : 20.143091s
VERSIONS ET SCRIPTS D'INSTALLATION
- namd-3.0-alpha9-singlenode (latest)
- namd-3.0-alpha3-singlenode-gpu
- namd-2.9-ibverbs
- namd-2.13-smp (latest)
- namd-2.13-gpu
- namd-2.13 (latest)
- namd-2.12-xeonphi
- namd-2.12-mpi
- namd-2.12-ibverbs-gpu
- namd-2.12-ibverbs
- namd-2.11-ibverbs-gpu
- namd-2.11-ibverbs
- namd-2.10-ibverbs-gpu
- namd-2.10-ibverbs
- namd-2.10
TAGS
- software