Utilisation du système de modules
De nombreuses versions de logiciels sont amenées à cohabiter sur le cluster, au fur et à mesure des nouvelles sorties et des migrations. Pour faciliter l'utilisation d'une version précise, et l'adaptabilité dans le temps, un ensemble de module correspondant à chaque installation ont été mis en place, de manière à simplifier le travail de l'utilisateur pour mettre à jour son environnement (PATH, et autres variables) et ses scripts : Voici les commandes principales pour les exploiter.
Voir la listes de tous les logiciels installés au mésocentre Logiciels installés
Lister l'ensemble des modules disponibles
$ module avail ... bio/muscle/3.8.31 gcc/4.9.0(default) intel/itac/9.0.3.051 lib/boost/gcc/1.59.0 matlab/r2014b simgrid/3.12 zebulon/8.5 bio/raxml/8.2.4 gcc/5.1 intel/mic/14.0.2 lib/cudnn/6.5 matlab/r2015a simgrid/3.7.1 bio/ray/2.3.1 gpu/cuda/5.5 intel/mic/15.0.3 lib/gdal/1.10.0 mpi/openmpi/gcc/1.7.5 simgrid/3.8.1 bio/samtools/1.1 gpu/cuda/6.5 intel/mic/current lib/gdal/1.10.1 mpi/openmpi/icc/1.7.5 tools/ant/1.8.2 bio/sumatra/1.0 gpu/cuda/7.0 intel/tbb/4.3.5.187 lib/grass/6.4.3 namd/2.11b2(default) tools/carma/1.1 bio/t-coffee/10.00 gpu/cuda/7.5 lang/f2c/default lib/hdf5/1.8.12 namd/gpu/2.9b3 tools/cmake/2.8.1 bio/t-coffee/9.03 gromacs/mpi/5.0.4 lang/java/1.7.0_55 lib/libpng/1.6.6 numlib/armadillo/gcc/6.300.2 tools/cmake/3.2.3 ...
<catégorie>
/<nom du logiciel>
/<version>
. Cette convention de nommage se retrouve dans l'ensemble des autres commandes, pour désigner un module spécifique.
- tools
- lang
- bio
- gpu
- lib
- numlib
- …
Exemples
Afficher la tous les logiciels de la catégorie bio (bioinformatique)
$ module avail bio
Afficher la tous les logiciels de la catégorie lang (langages de programmation )
$ module avail lang
Charger un module
Charger la version 2.0 d'un logiciel :
$ module load logiciel/2.0
Il est possible de demander la dernière version de logiciel, si aucune version n'est précisée :
$ module load logiciel
Il est possible de charger plusieurs logiciels à la fois :
$ module load logiciel1 logiciel2 ...logicieln
Exemples
Charger la dernière version de Java
$ module load lang/java
Charger la version 1.7.5 de Open MPI compilé avec GCC
$ module mpi/openmpi/gcc/1.7.5
NOM_HOME NOME_VERSION
Exemple :
- OMPI_HOME : répertoire d'installation du logiciel OMPI
- OMPI_VERSION (ex : OMP_VERSION) : version du logiciel OMPI
- LD_LIBRARY_PATH : mise à jour automatique de LD_LIBRARY_PATH pour prendre en compte les nouvelles bibliothèques
Lister les modules actuellement chargés
$ module list
Décharger un module
$ module rm logiciel
Chargement des modules au démarrage de la session
Il est possible de charger les modules au démarrage de l session en rajoutant les commandes dans le fichier $HOME/.basrc
Par exemple, pour charger git et Java :
$ module load git lang/java
Search for module
To check if a module is installed in the system, one can use:
$ module avail 2>&1 | grep -i "modulename"
Why, so complicate? because module sends results to stderr
. We need to capture stderr
in stdout
, and use grep
to search for corresponding motifs.
for example, check if PAPI is installed:
$ module avail 2>&1 | grep -i "papi" intel/imkl/11.1.2.144 perf/papi/gcc/5.4.3 intel/imkl/11.2.3.187 perf/papi/gcc/5.5.1 intel/impi/4.1.3.049 perf/papi/icc/5.4.3(default)