OpenMM

From Alliance Doc
Jump to navigation Jump to search
This page is a translated version of the page OpenMM and the translation is 100% complete.
Other languages:

Introduction

OpenMM[1] est une boîte d'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.

Simulation avec topologies AMBER et fichiers de redémarrage

Préparer l'environnement virtuel Python

Cet exemple utilise le module openmm/7.7.0.

1. Créez et activez l'environnement virtuel Python.

[name@server ~] module load python
[name@server ~] virtualenv $HOME/env-parmed
[name@server ~] source $HOME/env-parmed/bin/activate


2. Installez les modules Python ParmEd et netCDF4.

(env-parmed)[name@server ~] pip install --no-index parmed==3.4.3 netCDF4


Soumettre une tâche

Le script suivant est pour une tâche de simulation qui utilise un GPU.


File : submit_openmm.cuda.sh

#!/bin/bash
#SBATCH --cpus-per-task=1 
#SBATCH --gpus=1
#SBATCH --mem-per-cpu=4000M
#SBATCH --time=0-01:00:00
# Usage: sbatch $0

module purge
module load StdEnv/2020 gcc/9.3.0 cuda/11.4 openmpi/4.0.3 
module load python/3.8.10 openmm/7.7.0 netcdf/4.7.4 hdf5/1.10.6 mpi4py/3.0.3
source $HOME/env-parmed/bin/activate

python openmm_input.py


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 benchmarking

Le guide Molecular Dynamics Performance Guide a été créé par une équipe d'ACENET. Le guide décrit les conditions optimales pour exécuter aussi 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 ceux 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).

  1. Site Web OpenMM : https://openmm.org/