Différences entre versions de « Modules »

De POLR
Sauter à la navigation Sauter à la recherche
 
(16 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
== Introduction ==
 
== Introduction ==
L'application Environment Modules permet de modifier l'environnement d'un utilisateur afin qu'il puisse avoir accès à certaines fonctionnalités. Cet outil est commode lorsque plusieurs utilisateurs utilisent, par exemple, différentes versions d'un même logiciel, ou bien lorsque différents modèles requièrent différentes version d'un même compilateur.
+
L'application Environment Modules permet de modifier l'environnement d'un utilisateur afin qu'il puisse avoir accès à certaines fonctionnalités. Cet outil est commode lorsque plusieurs utilisateurs utilisent, par exemple, différentes versions d'un même logiciel, ou bien lorsque différents modèles requièrent différentes versions d'un même compilateur.
  
 
== Comment utiliser les modules ==
 
== Comment utiliser les modules ==
Par défaut module est initialisé pour tous les utilisateurs de [[Mingan]] via le fichier <tt>/etc/bashrc</tt>. La commande <tt>module avail</tt> permet de voir la liste des modules qui sont disponibles, i.e. qui ont été préalablement installés par l'administrateur. Sur [[Mingan]], en date du 26 février 2015, on obtient:
+
Par défaut module est initialisé pour tous les utilisateurs de [[:Category:Mingan | Mingan]] via le fichier ''/etc/bashrc''. La commande ''module avail'' permet de voir la liste des modules qui sont disponibles, i.e. qui ont été préalablement installés par l'administrateur. En date du 31 mai 2016:
 +
$ module avail
 +
--------------------------- /usr/share/Modules/modulefiles ---------------------------
 +
dot              module-info      null            rocks-openmpi    use.own
 +
module-git      modules          opt-python      rocks-openmpi_ib
  
$ module avail
+
  ---------------------------------- /etc/modulefiles ----------------------------------
  ---------------------- /usr/share/Modules/modulefiles -----------------------
 
dot              modules          rocks-openmpi
 
module-git      null            rocks-openmpi_ib
 
module-info      opt-python      use.own
 
 
----------------------------- /etc/modulefiles ------------------------------
 
 
  openmpi-x86_64
 
  openmpi-x86_64
 
---------------------- /share/apps/modules/modulefiles ----------------------
 
gcc/4.9.2    mpich2        openmpi-1.8.3-gcc-4.9.2
 
makedepf90  openmpi/1.8.3  rom_nc_lib
 
  
Les modules peuvent être chargés ou déchargés avec les commandes <tt>module load</tt> ou <tt>module unload</tt>, respectivement. Pour voir quels modules sont chargés, utilisez la commande <tt>module list</tt>
+
-------------------------- /share/apps/modules/modulefiles ---------------------------
 +
fcm                            matlab2015b                    openmpi/1.8.3_new-gcc-4.9.2
 +
ferret                        mpich2                        openspeedshop
 +
ffmpeg                        ncview                        rom_nc_lib/gcc-4.4.7
 +
fftw/3.3.4                    netcdf/gcc-4.9.2              rom_nc_lib/gcc-4.9.2
 +
gcc/4.9.2                      netcdf/ifort                  rom_nc_lib/ifort
 +
gdal                          octave/3.8.2                  rom_nc_lib/ifort-mcmodel_large
 +
libmapproj                    openmpi/1.8.3                  wordnet
 +
libtm                          openmpi/1.8.3-gcc-4.9.2
 +
makedepf90                    openmpi/1.8.3_new
 +
 
 +
 
 +
Les modules peuvent être chargés ou déchargés avec les commandes ''module load'' ou ''module unload'', respectivement. Pour voir quels modules sont chargés, utilisez la commande ''module list''
 
  $ module list
 
  $ module list
 
  No Modulefiles Currently Loaded.
 
  No Modulefiles Currently Loaded.
Ligne 28 : Ligne 34 :
 
  Currently Loaded Modulefiles:
 
  Currently Loaded Modulefiles:
 
   1) mpich2
 
   1) mpich2
 +
 +
Pour connaître les propriété d'un module,
 +
 +
$ module whatis dot
 +
dot: adds '.' to your PATH environment variable
 +
 +
ou encore,
 +
 +
$ module display dot
 +
-------------------------------------------------------------------
 +
/usr/share/Modules/modulefiles/dot:
 +
module-whatis adds `.' to your PATH environment variable
 +
append-path PATH .
 +
-------------------------------------------------------------------
  
 
== Description des modules ==
 
== Description des modules ==
  
 +
{| class="wikitable" border="1"
 +
! Module
 +
! Description
 +
|-
 +
|dot
 +
|Ajoute le répertoire courant (./) à la variable PATH
 +
|-
 +
|modules
 +
|Charge l'environnement pour modules
 +
|-
 +
|rocks-openmpi
 +
|Utiliser OpenMPI compilé avec Rocks avec trasnport tcp
 +
|-
 +
|module-git
 +
|Obtenir les codes sources de la version courante de l'environnement module
 +
|-
 +
|null
 +
|Module qui ne fait absolument rien
 +
|-
 +
|rocks-openmpi_ib
 +
|Utiliser OpenMPI compilé avec Rocks avec trasnport ib (pas utilisable sur mingan)
 +
|-
 +
|module-info
 +
|retourne les informations et valeurs concernant le logiciel module
 +
|-
 +
|opt-python
 +
|Charge Python version 2.7.6 ou 3.3 au lieu du Python par défaut qui est à la version 2.6.6
 +
|-
 +
|netcdf/gcc-4.9.2
 +
|Bibliothèque NetCDF compilée avec gcc 4.9.2 (Requiert le module gcc/4.9.2)
 +
|-
 +
|use.own
 +
|Ajoute vos propres fichiers module à la variable MODULEPATH
 +
|-
 +
|openmpi-x86_64
 +
|Version de openmpi compilée avec GCC 4.4 sans interaction avec TORQUE
 +
|-
 +
|gcc/4.9.2
 +
|Charge la version 4.9.2 des compilateurs GNU
 +
|-
 +
|mpich2
 +
|Charge l'environnement mpich2
 +
|-
 +
|openmpi/1.8.3-gcc-4.9.2
 +
|Charge la version 1.8.3 de openmpi compilée avec GCC version 4.9.2 et interaction avec TORQUE (Requiert le module gcc/4.9.2)
 +
|-
 +
|octave/3.8.2
 +
|Charge la version 3.8.2 d'Octave
 +
|-
 +
|openmpi/1.8.3
 +
|Charge openmpi version 1.8.3 avec interraction avec TORQUE
 +
|-
 +
|makedepf90
 +
|Rend disponible le générateur de dépendences pour Fortran 90
 +
|-
 +
|rom_nc_lib
 +
|Charge l'environnement permettant d'utiliser la bibliothèque rom_nc_lib pour les sorties netcdf du modèle MOR
 +
|-
 +
|ncview
 +
|Charge l'environnement pour l'utilitaire ncview. Disponible uniquement sur le noeud de connexion mingan
 +
|-
 +
|gdal
 +
|Charge l'environnement pour GDAL V1.11.2
 +
|}
 +
 +
== Modules et scripts lancés avec ''cron'' ==
 +
 +
 +
Sur la grappe ''mingan'', pour lancer un script utilsant des modules (''module load ...'') dans un script lancé à partir d'un crontab, il faut modifier la première ligne du script pour initialiser l'environnement de login.
 +
 +
#!/bin/bash
 +
#
 +
 +
doit être remplacé par
 +
 +
#!/bin/bash -l  (-ell)
 +
#
 +
#Charger un module
 +
module load gcc
 +
 +
Ainsi, les commandes ''module load ...'' sont reconnues dans le script.
 +
 +
 +
[[Category:Mingan]]
  
 
== Références ==
 
== Références ==
 
* [https://portal.ivec.org/docs/Supercomputers/Modules https://portal.ivec.org/docs/Supercomputers/Modules]
 
* [https://portal.ivec.org/docs/Supercomputers/Modules https://portal.ivec.org/docs/Supercomputers/Modules]
 
* [http://modules.sourceforge.net/ http://modules.sourceforge.net/]
 
* [http://modules.sourceforge.net/ http://modules.sourceforge.net/]

Version actuelle datée du 19 juillet 2017 à 09:20

Introduction

L'application Environment Modules permet de modifier l'environnement d'un utilisateur afin qu'il puisse avoir accès à certaines fonctionnalités. Cet outil est commode lorsque plusieurs utilisateurs utilisent, par exemple, différentes versions d'un même logiciel, ou bien lorsque différents modèles requièrent différentes versions d'un même compilateur.

Comment utiliser les modules

Par défaut module est initialisé pour tous les utilisateurs de Mingan via le fichier /etc/bashrc. La commande module avail permet de voir la liste des modules qui sont disponibles, i.e. qui ont été préalablement installés par l'administrateur. En date du 31 mai 2016:

$ module avail
--------------------------- /usr/share/Modules/modulefiles ---------------------------
dot              module-info      null             rocks-openmpi    use.own
module-git       modules          opt-python       rocks-openmpi_ib
---------------------------------- /etc/modulefiles ----------------------------------
openmpi-x86_64
-------------------------- /share/apps/modules/modulefiles ---------------------------
fcm                            matlab2015b                    openmpi/1.8.3_new-gcc-4.9.2
ferret                         mpich2                         openspeedshop
ffmpeg                         ncview                         rom_nc_lib/gcc-4.4.7
fftw/3.3.4                     netcdf/gcc-4.9.2               rom_nc_lib/gcc-4.9.2
gcc/4.9.2                      netcdf/ifort                   rom_nc_lib/ifort
gdal                           octave/3.8.2                   rom_nc_lib/ifort-mcmodel_large
libmapproj                     openmpi/1.8.3                  wordnet
libtm                          openmpi/1.8.3-gcc-4.9.2
makedepf90                     openmpi/1.8.3_new


Les modules peuvent être chargés ou déchargés avec les commandes module load ou module unload, respectivement. Pour voir quels modules sont chargés, utilisez la commande module list

$ module list
No Modulefiles Currently Loaded.

Pour charger un module,

$ module load mpich2
$ module list
Currently Loaded Modulefiles:
  1) mpich2

Pour connaître les propriété d'un module,

$ module whatis dot
dot: adds '.' to your PATH environment variable

ou encore,

$ module display dot
-------------------------------------------------------------------
/usr/share/Modules/modulefiles/dot:
module-whatis	 adds `.' to your PATH environment variable 
append-path	 PATH . 
-------------------------------------------------------------------

Description des modules

Module Description
dot Ajoute le répertoire courant (./) à la variable PATH
modules Charge l'environnement pour modules
rocks-openmpi Utiliser OpenMPI compilé avec Rocks avec trasnport tcp
module-git Obtenir les codes sources de la version courante de l'environnement module
null Module qui ne fait absolument rien
rocks-openmpi_ib Utiliser OpenMPI compilé avec Rocks avec trasnport ib (pas utilisable sur mingan)
module-info retourne les informations et valeurs concernant le logiciel module
opt-python Charge Python version 2.7.6 ou 3.3 au lieu du Python par défaut qui est à la version 2.6.6
netcdf/gcc-4.9.2 Bibliothèque NetCDF compilée avec gcc 4.9.2 (Requiert le module gcc/4.9.2)
use.own Ajoute vos propres fichiers module à la variable MODULEPATH
openmpi-x86_64 Version de openmpi compilée avec GCC 4.4 sans interaction avec TORQUE
gcc/4.9.2 Charge la version 4.9.2 des compilateurs GNU
mpich2 Charge l'environnement mpich2
openmpi/1.8.3-gcc-4.9.2 Charge la version 1.8.3 de openmpi compilée avec GCC version 4.9.2 et interaction avec TORQUE (Requiert le module gcc/4.9.2)
octave/3.8.2 Charge la version 3.8.2 d'Octave
openmpi/1.8.3 Charge openmpi version 1.8.3 avec interraction avec TORQUE
makedepf90 Rend disponible le générateur de dépendences pour Fortran 90
rom_nc_lib Charge l'environnement permettant d'utiliser la bibliothèque rom_nc_lib pour les sorties netcdf du modèle MOR
ncview Charge l'environnement pour l'utilitaire ncview. Disponible uniquement sur le noeud de connexion mingan
gdal Charge l'environnement pour GDAL V1.11.2

Modules et scripts lancés avec cron

Sur la grappe mingan, pour lancer un script utilsant des modules (module load ...) dans un script lancé à partir d'un crontab, il faut modifier la première ligne du script pour initialiser l'environnement de login.

#!/bin/bash
#

doit être remplacé par

#!/bin/bash -l   (-ell)
#
#Charger un module
module load gcc

Ainsi, les commandes module load ... sont reconnues dans le script.

Références