Imaginez un immense atelier partagé par de nombreux artisans (les utilisateurs du cluster). Cet atelier contient toutes sortes d’outils (les logiciels) : plusieurs versions de marteaux (compilateurs GCC, Intel…), des jeux de clés différents (bibliothèques MPI comme OpenMPI, MPICH), des machines spécialisées (logiciels comme GROMACS, BLAST, Python, R…).
Si tous ces outils étaient simplement posés sur un grand établi commun (le PATH global), ce serait le chaos :
* Comment choisir le bon marteau si plusieurs versions sont disponibles ?
* Utiliser la clé A pourrait empêcher d’utiliser la machine B qui nécessite la clé C. (Conflits de dépendances).
* Comment s’assurer que vous utilisez bien les mêmes outils que votre collègue pour reproduire un résultat ?
C’est là qu’intervient Lmod.
Analogie : Lmod, c’est comme si chaque outil était rangé dans un tiroir étiqueté dans l’atelier. Vous n’ouvrez et ne prenez que les tiroirs (modules) contenant les outils dont vous avez besoin pour votre tâche actuelle. Quand vous avez fini, vous refermez les tiroirs (déchargez les modules), laissant l’établi propre pour le prochain artisan.