Gestion de l'environnement avec les Modules

Le paquetage Modules permet de modifier dynamiquement l'environnement utilisateur (à savoir les variables PATH, MANPATH, LD_LIBRARY_PATH,...) grâce à des fichiers modulefiles définis pour les différentes versions d'applications ou librairies installées sur le système. A l'aide de commande simple de la forme module load ou module rm, il est possible d'altérer vos variables d'environnement pour bénéficier d'une version particulière d'une application ou d'une librairie ou de les restaurer après utilisation.

1. Préparer votre environnement pour la commande 'module'

  1. Pour initialiser le paquetage Modules et pointer sur les fichiers de configuration modulefiles mis en place sur Summit2, rajouter dans votre fichier $HOME/.bashrc sur Summit2  :

    . /etc/profile.d/modules.sh
    export MODULEPATH=/home/sila/modules/compilers:/home/sila/modules/libraries/generic
    export MODULECONFIGFILE=/home/sila/modules/config/modulerc
    • Pour éviter toute interférence avec les commandes module, nous vous conseillons de commenter dans le fichier $HOME/.bashrc toutes les lignes qui modifient les variables PATH ou MANPATH pour les applications prises en charge par modules ainsi que les lignes qui chargent l'environnement pour les compilateurs Intel (de la forme ". /opt/intel/...").

  2. Rajouter des alias dans le fichier $HOME/.alias pour simplifier la saisie des commandes (étape optionnelle) :

    # Module sub-command aliases
    alias ml="module list"
    alias ms="module switch"
    alias ma="module avail"
    alias mlo="module load"
    alias mrm="module rm"
    alias md="module display"
    alias mp="module purge"
  3. Se déconnecter/reconnecter à Summit2 pour que les changements soient pris en compte.

2. Les sous-commandes de 'module'

Lister les modules disponibles

module avail

ma

Lister les modules actuellement chargés

module list

ml

Charger le module ncl/6.4.0

module load ncl/6.4.0

mlo ncl/6.4.0

Décharger le module intel/14.0.1.106

module rm intel/14.0.1.106
module unload intel/14.0.1.106

mrm intel/14.0.1.106

Décharger TOUS les modules

module purge

mp

Obtenir des informations sur le module cuda/8.0.61

module display cuda/8.0.61

md cuda/8.0.61

3. Exemples d'utilisation

4. Travailler avec les Modules sur Summit2

4.1. Utilisation typique

En supposant qu'aucun module n'est chargé et que votre environnement est correctement configuré pour la commande 'module', la liste des modules disponibles s'obtient avec :

summit2:~> module list
No Modulefiles Currently Loaded.

summit2:~> module avail

----------------------------- /home/sila/modules/compilers -----------------------------
gnu/4.8.5(default)        intel/14.0.1.106          intel/17.0.1.132(default)

------------------------- /home/sila/modules/libraries/generic -------------------------
cdo/1.7.2    expert-mode  ncl/6.3.0    nco/4.6.5
cuda/8.0.61  hdfview/2.13 ncl/6.4.0    ncview/2.1.7

Les commandes module... peuvent être utilisées aussi bien en interactif que dans vos scripts de soumission de job SBATCH. Généralement, la démarche est la suivante :

  1. sélection d'une version de compilateur (chemin /home/sila/modules/compilers) qui introduit un nouveau chemin (/home/sila/modules/libraries/vendor/*), par exemple :

    summit2:~> module load intel/14.0.1.106
    
    summit2:~> module list
    Currently Loaded Modulefiles:
      1) intel/14.0.1.106
    
    summit2:~> module avail
    
    ----------------- /home/sila/modules/libraries/vendor/intel-14.0.1.106 -----------------
    intel_ompi/1.10.6 intel_ompi/1.6.5
    
    ----------------------------- /home/sila/modules/compilers -----------------------------
    gnu/4.8.5(default)        intel/14.0.1.106          intel/17.0.1.132(default)
    
    ------------------------- /home/sila/modules/libraries/generic -------------------------
    cdo/1.7.2    expert-mode  ncl/6.3.0    nco/4.6.5
    cuda/8.0.61  hdfview/2.13 ncl/6.4.0    ncview/2.1.7
  2. sélection d'une librairie associée au compilateur dans ce nouveau chemin (par exemple OpenMpi-1.6.5 compilé avec ifort 14.0.1)

    summit2:~> module load intel_ompi/1.6.5
    
    summit2:~> module list
    Currently Loaded Modulefiles:
      1) intel/14.0.1.106   2) intel_ompi/1.6.5

{i} Vous pouvez aussi charger directement un module listé dans le chemin /home/sila/modules/libraries/generic.

4.2. Lister toutes les librairies gérées par Modules

Pour lister toutes les librairies associées à tous les compilateurs, vous pouvez charger le module file expert-mode qui inclut le chemin /home/sila/modules/libraries/vendor :

summit2:~> module load expert-mode

summit2:~> module list
Currently Loaded Modulefiles:
  1) expert-mode

summit2:~> module avail

----------------------------- /home/sila/modules/compilers -----------------------------
gnu/4.8.5(default)        intel/14.0.1.106          intel/17.0.1.132(default)

------------------------- /home/sila/modules/libraries/generic -------------------------
cdo/1.7.2    expert-mode  ncl/6.3.0    nco/4.6.5
cuda/8.0.61  hdfview/2.13 ncl/6.4.0    ncview/2.1.7

------------------------- /home/sila/modules/libraries/vendor --------------------------
gnu-4.7.2/gnu_gribapi/1.9.9        gnu-4.8.5/gnu_ompi/1.10.6
gnu-4.7.2/gnu_hdf5/1.8.9           gnu-4.8.5/gnu_ompi/1.6.5
gnu-4.7.2/gnu_hdf5/1.8.9ll         intel-10.1.021/intel_hdf5/1.8.9
gnu-4.7.2/gnu_hdfeos5/1.14         intel-10.1.021/intel_netcdf/3.6.3
gnu-4.7.2/gnu_netcdf/3.6.3         intel-10.1.021/intel_ompi/1.6.3
gnu-4.7.2/gnu_ompi/1.6.3           intel-14.0.1.106/intel_ompi/1.10.6
gnu-4.7.2/gnu_petsc/3.2p7          intel-14.0.1.106/intel_ompi/1.6.5
gnu-4.7.2/gnu_szip/2.1             intel-17.0.1.132/intel_ompi/1.10.6
gnu-4.8.5/gnu_gribapi/1.13.1       intel-17.0.1.132/intel_ompi/1.6.5

Lorsque le module expert-mode est chargé, veuiller éviter de charger directement les modules listés dans /home/sila/modules/libraries/vendor : utilisez cette liste simplement comme une indication. Par exemple, si vous êtes intéressé par le module intel-14.0.1.106/intel_ompi/1.10.6 (c'est à dire la librairie Open-MPI version 1.10.6 compilée en ifort version 14.0.1.106), nous vous conseillons de charger tout d'abord le module compilateur intel/14.0.1.106 puis le module intel_ompi/1.10.6 plutôt que le module intel-14.0.1.106/intel_ompi/1.10.6.

4.3. Afficher les variables d'environnement positionnées

Pour connaître les effets du chargement d'un module, utiliser module show :

summit2:~> module show ncl/6.3.0
-------------------------------------------------------------------
/home/sila/modules/libraries/generic/ncl/6.3.0:

conflict         ncl
module-whatis    Add NCL/NCAR 6.3.0 to your environment variables
setenv           NCARG_ROOT /opt/ncl/6.3.0
prepend-path     PATH /opt/ncl/6.3.0/bin
setenv           NCL_INCLUDE /opt/ncl/6.3.0/include
setenv           NCL_LIB /opt/ncl/6.3.0/lib
-------------------------------------------------------------------

Ici, charger le module ncl/6.3.0 préfixe la variable PATH avec /opt/ncl/6.3.0/bin et positionne 3 nouvelles variables NCARG_ROOT, NCL_INCLUDE et NCL_LIB.


CatégorieDocUnix

WikiSummit2: ModulesSummit2 (dernière édition le 2019-01-21 14:41:09 par DidierGazen)