Comment utiliser l'image Apptainer NDM ?

Prérequis

Pour plus d’informations sur les conteneurs Apptainer, veuillez consulter la page dédiée ou suivre ce tutoriel pour s’approprier les principales commandes d’Apptainer.

Créez un dossier contenant l’image ndm.sif et l’archive des fichiers d’entrée. Placez-vous dans ce dossier et décompressez l’archive comme ceci :

tar -xzf ndm-tutorial-inputs.tar.gz # Extrait le contenu de l'archive.

Commande en une ligne

Pour lancer un calcul avec NDM sur N processeurs, lancer la commande suivante dans un dossier contenant les fichiers d’entrée :

apptainer exec ndm.sif mpirun -np <N> rundm90_ndm_mpi

Introduction

NDM est un est un code de calcul distribué en Fortran pour la dynamique moléculaire en potentiels empiriques construit autour du standard MPI permettant de distribuer la charge de calcul sur différents processus. Il existe deux façons de lancer le code conteneurisé en parallèle :

  • MPI embarqué dans le conteneur => fonctionnement garanti, mais limité à une seule machine (un seul nœud)
  • MPI hybride avec celui de la machine hôte => fonctionne sur plusieurs nœuds, mais il peut exister des incompatibilités.

Simulation en local (MPI embarqué)

apptainer exec ndm.sif mpirun rundm90_ndm_mpi

Notons que la commande commence par lancer apptainer, qui exécute ensuite mpirun rundm90_ndm_mpi dans le conteneur.

Simulation sur cluster (MPI hybride)

Lancement avec le scheduler SLURM (recommandé)

Exemple de script minimal de lancement job.sh :

#!/bin/bash

#SBATCH --job-name=test_ndm
#SBATCH --output=slurm-%j.out
#SBATCH --error=slurm-%j.err
#SBATCH --ntasks=12
#SBATCH --time=00:05:00

srun apptainer run ndm.sif

Pour information, apptainer run ndm.sif est un raccourci pour apptainer exec ndm.sif rundm90_ndm_mpi.

Il est ensuite possible de lancer le calcul avec la commande :

sbatch job.sh

Lancement sans scheduler

mpirun -np <N> apptainer run ndm.sif

La commande mpirun doit provenir d’OpenMPI 4 pour que cela fonctionne.