Gestion d'environnement d'applications et de librairies
Les environnements d'applications et de librairies sont accessibles par le biais de modules (Environment Modules ou Lmod).
L'outil module permet aux utilisateurs de dynamiquement changer leur environnement en modifiant des variables d'environnement.
C'est le moyen privilégié pour maintenir une multitude de compilateurs, de librairies et de logiciels, souvent en différents versions sur les clusters MesoNET.
Afficher les modules disponibles
La commande
module avail
permet de lister l'ensemble des modules qui peuvent être chargés directement avec module load.
module avail ne liste pas nécessairement tous les modules disponible - certains ne deviennent visibles qu'après avoir chargé un autre module.
C'est notamment le cas sur Turpan et sur Zen : par exemple, il faudra charger le module nvidia afin de voir les environnements qui en dépendent.
module avail nom_app
permet de lister les modules visibles dont le nom commence par nom_app. Par exemple :
# module avail hdf
----------------------------------- /share/modules/libraries ------------------------------------
hdf5/1.14.3/intel/2024/mpi hdf5/1.14.3/intel/2024/seq
Charger et décharger des modules
La commande module load charge un ou plusieurs environnement(s). Par exemple,
module load openfoam/11
charge l'ensemble de l'environnement nécessaire à l'exécution du code OpenFOAM, compilateurs inclus.
Pour décharger le module :
module unload openfoam/11
Cette commande déchargera également les dépendances devenues inutiles.
Enfin, pour décharger tous les modules chargés dans votre terminal ou un script utilisez: module purge
Examiner l'environnement
Avec module list on peut voir la liste des modules chargés actuellement.
La commande module show nom_module (ou module display nom_module) permet de voir comment le chargement d'un module modifie l'environnement.
Par exemple
# module show hdf5/1.14.3/intel/2024/mpi
-------------------------------------------------------------------
/share/modules/libraries/hdf5/1.14.3/intel/2024/mpi:
module-whatis {Loading the hdf5 1.14.3 environment.}
prereq intel/2024/compilers
prepend-path PATH /share/libraries/hdf5/1.14.3/intel/2024/mpi/bin
prepend-path LD_LIBRARY_PATH /share/libraries/hdf5/1.14.3/intel/2024/mpi/lib
prepend-path CPATH /share/libraries/hdf5/1.14.3/intel/2024/mpi/include
prepend-path INCLUDE /share/libraries/hdf5/1.14.3/intel/2024/mpi/include
-------------------------------------------------------------------
module help nom_module affiche plus d'informations sur un module (si disponible).
Raccourcis
Les sous-commandes de module peuvent être raccourcis, tant qu'il n'y a pas d'ambiguïté.
- Par exemple,
module avail
module avai
module ava
module av
font la même chose, mais module a est inconnu.
module loestmodule loadmodule liestmodule list, maismodule ln'est pas valide.
ml
ml est un raccourci pratique pour la commande module.
- Sans argument
mlcorrespond àmodule list - Suivi d'un nom de module,
mlcorrespond àmodule load, c'est-à-direml gcccharge le module gcc (la version défini comme défaut). - Suivi d'un nom de module préfixé d'un
-,mlcorrespond àmodule unload, c'est-à-direml -gccdécharge le module gcc. - Suivi d'une sous-commande valide,
mlcorrespond àmodule, c'est-à-direml avest identique àmodule avail.