Modules
Introduction
L'application Environment Modules permet de modifier l'environnement d'un utilisateur afin qu'il puisse avoir accès à certaines fonctionnalités. Cet outil est commode lorsque plusieurs utilisateurs utilisent, par exemple, différentes versions d'un même logiciel, ou bien lorsque différents modèles requièrent différentes versions d'un même compilateur.
Comment utiliser les modules
Par défaut module est initialisé pour tous les utilisateurs de Mingan via le fichier /etc/bashrc. La commande module avail permet de voir la liste des modules qui sont disponibles, i.e. qui ont été préalablement installés par l'administrateur. En date du 31 mai 2016:
$ module avail --------------------------- /usr/share/Modules/modulefiles --------------------------- dot module-info null rocks-openmpi use.own module-git modules opt-python rocks-openmpi_ib
---------------------------------- /etc/modulefiles ---------------------------------- openmpi-x86_64
-------------------------- /share/apps/modules/modulefiles --------------------------- fcm matlab2015b openmpi/1.8.3_new-gcc-4.9.2 ferret mpich2 openspeedshop ffmpeg ncview rom_nc_lib/gcc-4.4.7 fftw/3.3.4 netcdf/gcc-4.9.2 rom_nc_lib/gcc-4.9.2 gcc/4.9.2 netcdf/ifort rom_nc_lib/ifort gdal octave/3.8.2 rom_nc_lib/ifort-mcmodel_large libmapproj openmpi/1.8.3 wordnet libtm openmpi/1.8.3-gcc-4.9.2 makedepf90 openmpi/1.8.3_new
Les modules peuvent être chargés ou déchargés avec les commandes module load ou module unload, respectivement. Pour voir quels modules sont chargés, utilisez la commande module list
$ module list No Modulefiles Currently Loaded.
Pour charger un module,
$ module load mpich2 $ module list Currently Loaded Modulefiles: 1) mpich2
Pour connaître les propriété d'un module,
$ module whatis dot dot: adds '.' to your PATH environment variable
ou encore,
$ module display dot ------------------------------------------------------------------- /usr/share/Modules/modulefiles/dot: module-whatis adds `.' to your PATH environment variable append-path PATH . -------------------------------------------------------------------
Description des modules
Module | Description |
---|---|
dot | Ajoute le répertoire courant (./) à la variable PATH |
modules | Charge l'environnement pour modules |
rocks-openmpi | Utiliser OpenMPI compilé avec Rocks avec trasnport tcp |
module-git | Obtenir les codes sources de la version courante de l'environnement module |
null | Module qui ne fait absolument rien |
rocks-openmpi_ib | Utiliser OpenMPI compilé avec Rocks avec trasnport ib (pas utilisable sur mingan) |
module-info | retourne les informations et valeurs concernant le logiciel module |
opt-python | Charge Python version 2.7.6 ou 3.3 au lieu du Python par défaut qui est à la version 2.6.6 |
netcdf/gcc-4.9.2 | Bibliothèque NetCDF compilée avec gcc 4.9.2 (Requiert le module gcc/4.9.2) |
use.own | Ajoute vos propres fichiers module à la variable MODULEPATH |
openmpi-x86_64 | Version de openmpi compilée avec GCC 4.4 sans interaction avec TORQUE |
gcc/4.9.2 | Charge la version 4.9.2 des compilateurs GNU |
mpich2 | Charge l'environnement mpich2 |
openmpi/1.8.3-gcc-4.9.2 | Charge la version 1.8.3 de openmpi compilée avec GCC version 4.9.2 et interaction avec TORQUE (Requiert le module gcc/4.9.2) |
octave/3.8.2 | Charge la version 3.8.2 d'Octave |
openmpi/1.8.3 | Charge openmpi version 1.8.3 avec interraction avec TORQUE |
makedepf90 | Rend disponible le générateur de dépendences pour Fortran 90 |
rom_nc_lib | Charge l'environnement permettant d'utiliser la bibliothèque rom_nc_lib pour les sorties netcdf du modèle MOR |
ncview | Charge l'environnement pour l'utilitaire ncview. Disponible uniquement sur le noeud de connexion mingan |
gdal | Charge l'environnement pour GDAL V1.11.2 |
Modules et scripts lancés avec cron
Sur la grappe mingan, pour lancer un script utilsant des modules (module load ...) dans un script lancé à partir d'un crontab, il faut modifier la première ligne du script pour initialiser l'environnement de login.
#!/bin/bash #
doit être remplacé par
#!/bin/bash -l (-ell) # #Charger un module module load gcc
Ainsi, les commandes module load ... sont reconnues dans le script.