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