Ceci est une ancienne révision du document !


NAMD

NAMD 2.11

NAMD vient en 5 versions :

Version Compilateur Interconnexion chemin d'accès OS
2.11 N/A N/A /applis/PSMN/generic/NAMD/2.11/NAMD_2.11_Linux-x86_64-multicore/ Debian 7
modulefile : NAMD/2.11-multicore
2.11 N/A N/A /applis/PSMN/generic/NAMD/2.11/NAMD_2.11_Linux-x86_64-multicore-CUDA/ Debian 7 +GPU
modulefile : NAMD/2.11-multicore-CUDA
2.11 N/A Infiniband /applis/PSMN/generic/NAMD/2.11/NAMD_2.11_Linux-x86_64-ibverbs Debian 7
modulefile : NAMD/2.11-ibverbs
2.11 N/A Infiniband /applis/PSMN/generic/NAMD/2.11/NAMD_2.11_Linux-x86_64-ibverbs-smp Debian 7
modulefile : NAMD/2.11-ibverbs-smp
2.11 N/A Infiniband /applis/PSMN/generic/NAMD/2.11/NAMD_2.11_Linux-x86_64-ibverbs-smp-CUDA Debian 7 +GPU
modulefile : NAMD/2.11-ibverbs-smp-CUDA

Pour utiliser les modules, consulter Environment Modules

NAMD 2.9

NAMD vient en 5 versions :

Version Compilateur Interconnexion chemin d'accès OS
2.9 N/A N/A /applis/PSMN/generic/NAMD/2.9/NAMD_2.9_Linux-x86_64-multicore/ Debian 7
modulefile : NAMD/2.9-multicore
2.9 N/A N/A /applis/PSMN/generic/NAMD/2.9/NAMD_2.9_Linux-x86_64-multicore-CUDA/ Debian 7 +GPU
modulefile : NAMD/2.9-multicore-CUDA
2.9 N/A Infiniband /applis/PSMN/generic/NAMD/2.9/NAMD_2.9_Linux-x86_64-ibverbs Debian 7
modulefile : NAMD/2.9-ibverbs
2.9 N/A Infiniband /applis/PSMN/generic/NAMD/2.9/NAMD_2.9_Linux-x86_64-ibverbs-smp Debian 7
modulefile : NAMD/2.9-ibverbs-smp
2.9 N/A Infiniband /applis/PSMN/generic/NAMD/2.9/NAMD_2.9_Linux-x86_64-ibverbs-smp-CUDA Debian 7 +GPU
modulefile : NAMD/2.9-ibverbs-smp-CUDA

Pour utiliser les modules, consulter Environment Modules

inlinetoc

Site officiel

Exemples d'utilisation au PSMN

Ces exemples décrivent le mode d'utilisation de NAMD en mode séquentiel, parallèle multithreadé (un seul noeud) et parallèle multithreadé combiné avec utilisation de cartes GPU NVIDIA (CUDA).

Pour simplifier, on décrit ici le lancement du programme (namd2) directement sur le noeud. Rappelons que cela n'est autorisé au PSMN que pour des petits tests (“petits” par rapport à la durée, à la quantité de mémoire et au nombre de coeurs utilisés).

Pour le mode “batch” (c.à.d. utilisation des queues, que se soit des queues de test ou de production), il suffirait d'insérer les commandes ci-dessous (chargement du module et la commande d'exécution namd2) dans un script de soumission et de soumettre ce script.

  1. créer un répertoire de test et travailler là-dedans :
         mkdir $HOME/test_namd
         cd $HOME/test_namd 
  2. télécharger et desarchiver le tutoriel NAMD :
         wget http://www.ks.uiuc.edu/Training/Tutorials/namd/namd-tutorial-files.tar.gz
         tar -zxvf namd-tutorial-files.tar.gz 
  3. aller dans l'un des cas test (ici 1-2-sphere) :
         cd namd-tutorial-files/1-2-sphere 
  4. charger le module correspondant à la version de NAMD désirée (dans la liste ci-dessus). Par exemple :
         module load NAMD/2.11-multicore 
  5. exécuter NAMD en local (rappel : ce mode d'exécution n'est permis que pour des petits test, pour la production, il est obligatoire d'utiliser le système de queues). Le mode séquentiel est obtenu par :
         namd2 ubq_ws_eq.conf > ubq_ws_eq.log 
  6. vous pouvez suivre l'exécution (et le ressources utilisées p.ex. charge CPU et mémoire) en lançant la commande top dans un autre terminal ou bien en surveillant le fichier de sortie en temps réel :
        tail -f ubq_ws_eq_sequentiel.log 
  7. à la fin de l'exécution, on peut voir la consommation en temps CPU et mémoire retournées par NAMD dans le fichier de sortie :
         tail -2 ubq_ws_eq_sequentiel.log
         WallClock: 89.548943  CPUTime: 89.548943  Memory: 62.207031 MB
        [Partition 0][Node 0] End of program 
  8. L'exécution ci-dessous a utilisé un seul coeur (mode séquentiel). Pour utiliser plusieurs coeurs en version multithread , p.ex. 4, il faudrait rajouter l'option +p4 : :
         namd2 ubq_ws_eq.conf +p4 > ubq_ws_eq_4cores.log 
  9. Pour se rendre compte de l'efficacité du mode multithread, on peut à nouveau regarder la consommation en temps CPU (et en mémoire) et comparer aux valeurs obtenues en mode séquentiel :
         tail -2 ubq_ws_eq_4cores.log
         WallClock: 24.876143  CPUTime: 24.876143  Memory: 313.214844 MB
         [Partition 0][Node 0] End of program 
  10. Pour utiliser la version multithread avec des GPUs (sur les serveurs qui disposent de telles cartes, pour ces test le serveur r730visu a été utilisé) :
         module load NAMD/2.11-multicore-CUDA 
         namd2 +p4 +setcpuaffinity +devices 0,1 ubq_ws_eq.conf > ubq_ws_eq_4cores_2GPUs.log
  11. En plus de la commande top (pour suivre la charge CPU), on peut suivre l'utilisation des ressources GPU en utilisant la commande suivante (refresh tous les secondes) dans un autre terminal :
         nvidia-smi --loop=1 
  12. A la fin de l'exécution, on peut regarder à nouveau le temps CPU consommé :
         tail -2 ubq_ws_eq_4cores_2GPUs.log 
         WallClock: 7.821550  CPUTime: 7.821550  Memory: 86.968750 MB
         [Partition 0][Node 0] End of program 
  13. Pour utiliser NAMD en production (soumission au système de queues SGE), il suffit d'utiliser cette commande d'exécution (et au préalable celle le chargement du module correspondant) dans les fichiers de soumission SGE.

Remarques :

  • D'autres options sont possibles à l'exécution pour l'exécution de namd2 et leur utilisation pourrait diminuer la durée de l'exécution. Par exemple, l'option +setcpuaffinity pourrait être utilisée et bénéfique pour la version multidread (avec ou sans GPU). Plus des détails sur ces options et d'autres possibilités d'utilisation NAMD se trouvent dans le fichier notes.txt du répertoire d'installation (voir le chemins d'installation dans les tableaux ci-dessous).
  • Pour la version NAMD 2.9, le lancement de la version multhidread (avec sans CUDA) était légèrement différente. Par exemple, pour multithread+CUDA:
    namd2 +idlepoll +p4 +devices 0,1 ubq_ws_eq.conf 

(pour plus de détails, référez vous à nouveau au fichier notes.txt, du répertoire d'installation

documentation/tools/software/namd.1454047797.txt.gz · Dernière modification : 2020/08/25 15:58 (modification externe)