Introduction¶
OpenMM (Site Web OpenMM) est une boîte à outils conçue pour la simulation moléculaire. On peut l'utiliser seule comme application pour effectuer des simulations ou comme bibliothèque que vous appelez à partir de votre code. OpenMM est un paquet unique de par sa très grande flexibilité des champs de force personnalisés et des algorithmes de résolution (ou d’intégration), son ouverture et son excellente performance, en particulier avec les GPU récents.
Points forts¶
- Interface Python flexible avec des classes de haut niveau et un accès API de bas niveau pour des flux de travail personnalisés.
- Cadre d'extension de haut niveau pour les potentiels basés sur l'apprentissage automatique et les simulations hybrides.
- Exécution efficace sur les CPU et les GPU, adaptée aux plateformes de calcul haute performance (CHP).
- Prise en charge native des principaux formats biomoléculaires (AMBER, GROMACS, CHARMM).
- Logiciel libre avec un écosystème actif d'extensions pour l'apprentissage automatique et les champs de force avancés.
Points faibles¶
- Plus lent que les moteurs MM classiques hautement optimisés (GROMACS, AMBER) pour les simulations de production à grande échelle.
- La flexibilité peut ajouter de la complexité pour les simulations hybrides AM/MM.
- L'analyse de trajectoire spécialisée peut nécessiter des outils externes.
Modules d'environnement¶
Remarque
Le module ambertools est facultatif et n'est requis que si vous prévoyez de simuler des systèmes préparés avec AMBER.
Conseil
Vous pouvez créer un environnement virtuel Python si vous souhaitez installer des paquets supplémentaires (par exemple, des potentiels d'apprentissage automatique).
Préparation des fichiers d'entrée¶
OpenMM peut lire directement les fichiers de topologie et de coordonnées/redémarrage d'Amber si vous simulez des systèmes AMBER.
Assurez-vous que votre système est équilibré et minimisé dans Amber ou un autre logiciel avant de transférer les fichiers vers le système de calcul haute performance (CHP).
Pour les systèmes GROMACS ou CHARMM, OpenMM peut lire leurs formats respectifs sans AmberTools.
Soumettre une tâche¶
Le script suivant est pour une tâche de simulation utilisant un GPU.
| submit_openmm.cuda.sh | |
|---|---|
Ici, openmm_input.py est un script Python qui charge des fichiers Amber, crée le système de simulation OpenMM, configure l'intégration et exécute les dynamiques (voir cet exemple).
Performance et étalonnage¶
Le guide Molecular Dynamics Performance Guide a été créé par une équipe d'ACENET. Le guide décrit les conditions optimales pour exécuter des tâches sur nos grappes avec AMBER, GROMACS et NAMD.
Sur la plateforme CUDA, OpenMM n'a besoin que d'un CPU par GPU parce que les CPU ne sont pas utilisés pour les calculs. OpenMM peut utiliser plusieurs GPU dans un nœud, mais il est plus efficace de faire les simulations avec un seul GPU. Comme le démontrent les essais sur Narval et les essais sur Cedar, la vitesse de simulation avec plusieurs GPU est légèrement augmentée sur les nœuds avec NvLink où les GPU sont directement connectés. Sans NvLink, la vitesse de simulation augmente très peu avec des GPU P100 (essais sur Cedar).