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


TAGS