Singularity

Singularity est un conteneur d'applications open-source conçu pour le HPC.Il permet d' encapsuler des applications scientifiques complètes, y compris le code source, les bibliothèques, les dépendances et les environnements d'exécution, dans un seul fichier exécutable portable. Cela garantit que les applications s'exécuteront de manière cohérente sur différents systèmes HPC, indépendamment des variations de configuration logicielle.

La construction de conteneurs requiert que l'utilisateur dispose de privilèges root sur le système , Utiliser votre propre système (ordinateur portable/poste de travail) où vous disposez des privilèges root/élevés pour installer Singularity et construire des conteneurs, puis transférer les conteneurs vers les systèmes HPC .

  • Utiliser une image existante :

    singularity pull docker://python:3.8.0b1-alpine3.9
    singularity exec python_3.8.0b1-alpine3.9.sif python3
    singularity shell python_3.8.0b1-alpine3.9.sif #interactif

  • Personnaliser ( convertir en sandbox , faire les installations nécessaire et reconvertir en image

    $singularity build --sandbox \ python_3.7.3-stretch docker://python:3.7.3-stretch
    $singularity exec --writable \ python_3.7.3-stretch/ pip3 install numpy nose pytest hypothesis
    $singularity build python_3.7.3-stretch.sif python_3.7.3-stretch/

  • Par défaut le /home du user est monté , pour utiliser un autre espace de stockage , utiliser l’option bind

    $singularity exec --bind /work/projects/myprj/:/mnt \ custom.sif python3 /mnt/my_nice_code.py

En conclusion, le choix de la méthode d'installation de logiciels la plus adaptée dépend de vos besoins spécifiques, de votre environnement de travail et de vos compétences techniques. Chaque méthode présente ses propres avantages et inconvénients :

  • Installation manuelle (configure, make, make install):

    • Contrôle total sur le processus d'installation.
    • Nécessite une connaissance approfondie du système et des logiciels.
    • Peut être fastidieux et sujet à des erreurs.
  • Installation automatique (EasyBuild, Spack, Conda):

    • Simplifie le processus d'installation et réduit les erreurs.
    • Gère les dépendances logicielles de manière efficace.
    • Nécessite une configuration initiale et une compréhension des outils.
  • Conteneurs (Singularity):

    • Isolement des environnements logiciels et portabilité accrue.
    • Facilite la collaboration et le partage de logiciels.
    • Nécessite une compréhension des conteneurs et de Singularity.

l'optimisation des performances est un élément crucial lors de l'installation de logiciels scientifiques. Le choix de la méthode d'installation, l'utilisation d'outils adaptés et la configuration des paramètres de manière optimale peuvent tous contribuer à améliorer significativement les performances du logiciel