Modules

De POLR
Sauter à la navigation Sauter à la recherche

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.

Références