LES MODULES

 

Le résumé des commandes de module ici.

Les modules ne sont pas obligatoires, si aucun module n'est chargé (demandé) l'utilisateur utilisera par défaut l'environnement  par défaut du cluster:

Exemple: Dernière version de R  et certains packages validés  par le comité de pilotage du cluster.

 

Introduction:

De nombreux logiciels présentent des incompatibilités entre eux, cela s'appelle des MUTEX dans le jargon de l'administration système. L'exclusion mutuelle en Français courant. Ce sont des logiciels utilisant des bibliothèques systèmes partagées ou logiciels  différents ou de différentes version selon l'état d'avancement du développement du logiciel. On peut citer par exemple la triple exclusion mutuelle des logiciels GDAL,HYSPLIT,FREEFEM qui utilisent chacun des versions différentes de NETCDF, OPENMPI,GCC entre autres.

 

Un module ça sert à quoi?

Les modules permettent de simplifier l'utilisation du cluster et plus particulièrement la configuration de l'environnement de travail.

En effet, les modules permettent de fournir un environnement de travail à chaque utilisateur et ainsi lui permettre d'utiliser non seulement le logiciel qu'il désire sans avoir à configurer son environnement mais en plus éventuellement de choisir sa version du logiciel, du compilateur ...etc

 

Quoi/comment:

Nous ne sommes qu'a l'aube de ce projet et seuls quelques modules sont actuellement disponibles. A noter que la commande module peut être abrégée par ml dans de nombreux cas.

Des modules "tout  prêt" seront mis progressivement à disposition, ces modules appelleront  automatiquement d'autres sous-modules nécessaires au fonctionnement du/des logiciels. Ainsi l'utilisateur aura de son côté une seule ligne à taper avant de lancer son job à savoir: Le nom du logiciel qu'il veut utiliser.

Exemple:

module load matlab/2018a  

(ou ml  matlab/2018a )

pour appeler matlab il suffira de taper  'matlab'  tout simplement ;-)

Les modules peuvent être chargés et déchargés à la demande, à la volée pendant un job. Ce chargement dynamique se fait par les commandes

module load   mon_module/version

pour décharger

module unload mon_module

module purge (pour avoir l'environnement vierge et revenir à l'environnement par défaut  du système)

Si vous souhaitez voir la liste des modules disponibles  exemple pour le compilateur

module avail

pour voir les modules que vous avez deja chargé en mémoire

module list

Le guide utilisateur complet ici:

https://lmod.readthedocs.io/en/latest/010_user.html

Pour les utilisateurs qui veulent aller plus vite la commande module peut être remplacée par ml

 

 

Créer son propre  module:

Si le ou les modules  dont vous avez besoin n'existent pas (encore) vous avez la possibilité de créer vos propres modules

voir ici la page tutorielle consacrée à la création de module.

https://lmod.readthedocs.io/en/latest/015_writing_modules.html

 

Le projet et son avenir

Après être passé de "module" à "lmod" la ligne d'horizon pourrait être l'utilisation d'un système de packages indépendants non destuctifs générés par la communauté à l'image de ce qui se fait pour le container docker, le projet spack en test actuellement pourrait être  une alternative.

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Liste des modules disponibles:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   gdal/3.1.0        openbugs/3.2.3
   R/3.5.0             geos/3.7.3             openmpi/4.0.3 
   R/3.5.2             geos/3.9.0        petsc/3.4.5
   R/4.0.0         hysplit/4.2.0          petsc/3.14.0 
   R/4.1.0             jags/4.3.0       proj/7.0.1   
   boost/1.75.0        matlab/2008a           python/2.7.1
   freefem/4.6         matlab/2015b           python/3.7.9
   gcc/7.5.0           matlab/2018a           python/3.9.0  
   gcc/8.3.0       matlab/2020b

 

+ 1100 programmes installés nativement