Modules

module est un package permettant la gestion des environnements utilisateurs de manière dynamique. Il permet de gérer les dépendances et les environnements de compilation en facilitant les configurations des variables systèmes pour l'utilisation des codes, librairies, compilateurs. La version 4.6 est installée sur le calculateur.

Usage

Connaitre les softs disponibles :

  • module avail (module av)
$ module av
----------------------------------------- /zfs/softs/modulefiles -----------------------------------------
abaqus/2017                       lib/itk/5.1.2                     mpi/openmpi/gcc-4.8.5/4.0.4
abaqus/2019                       lib/metis/5.1.0                   mpi/openmpi/gcc-4.8.5/4.0.5
codes/endo/foxtrot/1.1.432        lib/mkl/2020u2                    mpi/openmpi/gcc-10.2/3.1.6
codes/endo/foxtrot/gcc4.8/1.1     lib/moab/5.1.0                    mpi/openmpi/gcc-10.2/4.0.4
codes/endo/foxtrot/intel/1.1      lib/moab/5.1.0_anac3.7            mpi/openmpi/gcc-10.2/4.0.5
codes/endo/S2M/0.4.325            lib/mpi4py/3.0.3/anac3.7          null
codes/endo/tfel/4.0.0             lib/mpi4py/3.0.3/py3.8            paraview/5.7.0_bin
compilers/gcc/10.2                lib/petsc/3.11/dbg/hpmpt_intel20  paraview/5.8.1
compilers/intel/all_2020u2        lib/petsc/3.11/opt/hpmpt_gcc10    paraview/5.8.1_bin
compilers/intel/compilers_2020u2  lib/petsc/3.11/opt/hpmpt_intel20  python/anaconda3
compilers/intel/tools_2020u2      lib/petsc/3.13/opt/hpmpt_cuda     python/py3.8
cuda/10.1                         lib/petsc/3.13/opt/hpmpt_intel20  singularity/3.6.4
cuda/11.1                         lib/scotch/6.0.3                  tensorflow/sing_20.10-tf1-py3
devel/cmake/3.8.2                 lib/vtk/7.1.1                     tensorflow/sing_20.10-tf2-py3
devel/cmake/3.18.3                lib/vtk/7.1.1_anac3.7             tools/extrae/3.6.1
dot                               lib/vtk/8.2.0                     tools/MPInside/4.2.48
gmsh/4.1.3                        lib/vtk/8.2.0_anac3.7             tools/mpiplace/2.00
lib/boost/1.70_gcc4.8             module-git                        tools/perfboost
lib/boost/1.70_gcc4.8_anac3.7     module-info                       use.own
lib/boost/1.70_gcc10              modules                           zebulon/Z8.6
lib/boost/1.70_intel20            mpi/hpempi-1.6/mpt/2.22           zebulon/Z9.1
lib/eigen/3.3.8                   mpi/intelmpi/2020u2
lib/fftw/3.3.4                    mpi/openmpi/gcc-4.8.5/3.1.6

Charger un soft :

  • module add soft ; module load soft
  • Par exemple, je souhaite utiliser le code de calcul zebulon :
$ module add zebulon/Z9.1
  • Par exemple, je souhaite utiliser la librairie parallèle openmpi 4 avec le compilateur gcc 10 ; il faut dans ce cas charger le compilateur, puis la librairie :
$ module add compilers/gcc/10.2
$ module add mpi/openmpi/gcc-10.2/4.0.5

Si la dépendance nécessaire n'est pas réalisée, une erreur apparait :

$ module add mpi/openmpi/gcc-10.2/4.0.5
Loading mpi/openmpi/gcc-10.2/4.0.5
  ERROR: mpi/openmpi/gcc-10.2/4.0.5 cannot be loaded due to missing prereq.
    HINT: the following module must be loaded first: compilers/gcc/10.2

Connaitre l'environnement actuel :

  • module list ; (module li)
$ module add compilers/intel/compilers_2020u2 mpi/hpempi-1.6/mpt/2.22 lib/petsc/3.11/opt/hpmpt_intel20
$ module li
Currently Loaded Modulefiles:
 1) compilers/intel/compilers_2020u2   2) mpi/hpempi-1.6/mpt/2.22   3) lib/petsc/3.11/opt/hpmpt_intel20

Purger l'environnement :

  • module purge ;
$ module purge
$ module li
No Modulefiles Currently Loaded.

Collections de modules

module permet de gérer une collection pouvant être (re)chargé par la suite ;
les sous-commandes à utiliser pour les collections : module save COLLECTION_NAME ; module restore COLLECTION_NAME ; module saveshow COLLECTION_NAME ; module saverm COLLECTION_NAME.

Créer sa collection :
  • Charger plusieurs librairies dans son l'environnement
$ module add compilers/intel/compilers_2020u2 mpi/hpempi-1.6/mpt/2.22 lib/petsc/3.11/opt/hpmpt_intel20
  • Sauvegarder l'environnement
$ module save intel-hpempi-petsc311
Réutilisation de la collection
$ module purge
$ module li
$ module restore intel-hpempi-petsc311
Loading compilers/intel/compilers_2020u2
Loading mpi/hpempi-1.6/mpt/2.22
Loading lib/petsc/3.11/opt/hpmpt_intel20
commandes
  • module savelist [-l] : liste les collection enregistrées
  • module saveshow COLLECTION_NAME : affiche les commandes exécutées par module
  • module saverm COLLECTION_NAME : détruit la collection

références

[@vision ~]$ module help
Modules Release 4.6.0 (2020-09-16)
Usage: module [options] [command] [args ...]

Loading / Unloading commands:
  add | load      modulefile [...]  Load modulefile(s)
  rm | unload     modulefile [...]  Remove modulefile(s)
  purge                             Unload all loaded modulefiles
  reload | refresh                  Unload then load all loaded modulefiles
  switch | swap   [mod1] mod2       Unload mod1 and load mod2
...