Utiliser des modules: Difference between revisions

Jump to navigation Jump to search
m
heading levels
No edit summary
m (heading levels)
Line 11: Line 11:
voir des détails pour le module en tapant la commande <tt>module show <nom de module></tt>.
voir des détails pour le module en tapant la commande <tt>module show <nom de module></tt>.


= Principales commandes de <tt>module</tt> = <!--T:4-->
== Principales commandes de <tt>module</tt> == <!--T:4-->
La commande <tt>module</tt> a plusieurs sous-commandes. La syntaxe normale est  
La commande <tt>module</tt> a plusieurs sous-commandes. La syntaxe normale est  
{{Commande|module commande [autres options]}}
{{Commande|module commande [autres options]}}
Line 19: Line 19:
{{Commande|module help}}
{{Commande|module help}}


== Sous-commande <tt>spider</tt> == <!--T:6-->
=== Sous-commande <tt>spider</tt> === <!--T:6-->
La sous-commande <tt>spider</tt> fait afficher tous les modules qui se trouvent dans [[Standard software environments/fr|l'environnement logiciel standard]] courant.  
La sous-commande <tt>spider</tt> fait afficher tous les modules qui se trouvent dans [[Standard software environments/fr|l'environnement logiciel standard]] courant.  
{{Commande|module spider}}
{{Commande|module spider}}
Line 33: Line 33:
cela affichera la liste des options de module à charger afin d'accéder à cette version.
cela affichera la liste des options de module à charger afin d'accéder à cette version.


== Sous-commande <tt>avail</tt> == <!--T:9-->
=== Sous-commande <tt>avail</tt> === <!--T:9-->
Pour lister les modules que vous pouvez charger, utilisez
Pour lister les modules que vous pouvez charger, utilisez
{{Commande|module avail}}
{{Commande|module avail}}
Line 45: Line 45:




== Sous-commande <tt>list</tt> == <!--T:12-->
=== Sous-commande <tt>list</tt> === <!--T:12-->
La sous-commande '''<tt>list</tt>''' affiche les modules qui sont présentement chargés dans votre environnement.
La sous-commande '''<tt>list</tt>''' affiche les modules qui sont présentement chargés dans votre environnement.
{{Commande|module list}}
{{Commande|module list}}


== Sous-commande <tt>load</tt> == <!--T:13-->
=== Sous-commande <tt>load</tt> === <!--T:13-->
La sous-commande '''<tt>load</tt>''' permet de charger un module donné. Par exemple
La sous-commande '''<tt>load</tt>''' permet de charger un module donné. Par exemple
{{Commande|module load gcc/9.3}}
{{Commande|module load gcc/9.3}}
Line 62: Line 62:
Si vous chargez un module qui est incompatible avec un module déjà chargé, Lmod vous indiquera qu'il a remplacé l'ancien module par le nouveau. Ceci peut se produire en particulier pour des compilateurs et des implémentations MPI.
Si vous chargez un module qui est incompatible avec un module déjà chargé, Lmod vous indiquera qu'il a remplacé l'ancien module par le nouveau. Ceci peut se produire en particulier pour des compilateurs et des implémentations MPI.


== Sous-commande <tt>unload</tt> == <!--T:16-->
=== Sous-commande <tt>unload</tt> === <!--T:16-->
Au contraire de la sous-commande '''<tt>load</tt>''', '''<tt>unload</tt>''' enlève un module de votre environnement. Par exemple
Au contraire de la sous-commande '''<tt>load</tt>''', '''<tt>unload</tt>''' enlève un module de votre environnement. Par exemple
{{Commande|module unload gcc/9.3}}
{{Commande|module unload gcc/9.3}}
Line 70: Line 70:
Si certains modules dépendaient de ce compilateur, Lmod vous indiquera qu'ils ont été désactivés.
Si certains modules dépendaient de ce compilateur, Lmod vous indiquera qu'ils ont été désactivés.


== Sous-commande <tt>purge</tt> == <!--T:18-->
=== Sous-commande <tt>purge</tt> === <!--T:18-->
La sous-commande '''<tt>purge</tt>''' permet d'enlever d'un seul coup tous les modules que vous avez chargés.
La sous-commande '''<tt>purge</tt>''' permet d'enlever d'un seul coup tous les modules que vous avez chargés.
{{Commande|module purge}}
{{Commande|module purge}}
Line 77: Line 77:
Certains modules peuvent être marqués comme ''sticky'' (permanents) par les administrateurs de système et ne seront pas enlevés.
Certains modules peuvent être marqués comme ''sticky'' (permanents) par les administrateurs de système et ne seront pas enlevés.


== Sous-commandes <tt>show</tt>, <tt>help</tt> et <tt>whatis</tt> == <!--T:20-->
=== Sous-commandes <tt>show</tt>, <tt>help</tt> et <tt>whatis</tt> === <!--T:20-->
Les sous-commandes '''<tt>show</tt>''', '''<tt>help</tt>''' et '''<tt>whatis</tt>''' permettent d'avoir de l'information supplémentaire sur un module donné. La sous-commande '''<tt>show</tt>''' affiche l'intégralité du module, la commande '''<tt>help</tt>''' affiche un message d'aide, et la commande '''<tt>whatis</tt>''' montre une description du module.
Les sous-commandes '''<tt>show</tt>''', '''<tt>help</tt>''' et '''<tt>whatis</tt>''' permettent d'avoir de l'information supplémentaire sur un module donné. La sous-commande '''<tt>show</tt>''' affiche l'intégralité du module, la commande '''<tt>help</tt>''' affiche un message d'aide, et la commande '''<tt>whatis</tt>''' montre une description du module.
{{Commande|module help gcc/9.3}}
{{Commande|module help gcc/9.3}}


== Sous-commande <tt>apropos</tt> ou <tt>keyword</tt> == <!--T:21-->
=== Sous-commande <tt>apropos</tt> ou <tt>keyword</tt> === <!--T:21-->
Les sous-commandes <tt>apropos</tt> ou <tt>keyword</tt> permettent de chercher un mot-clé dans l'ensemble des modules. Si vous ne savez pas quel module est approprié pour réaliser votre calcul, vous pouvez ainsi chercher dans les descriptions.
Les sous-commandes <tt>apropos</tt> ou <tt>keyword</tt> permettent de chercher un mot-clé dans l'ensemble des modules. Si vous ne savez pas quel module est approprié pour réaliser votre calcul, vous pouvez ainsi chercher dans les descriptions.


= Chargement automatique des modules = <!--T:22-->
== Chargement automatique des modules == <!--T:22-->
Nous vous '''déconseillons de charger des modules automatiquement dans votre .bashrc'''. Nous vous recommandons plutôt de charger les modules nécessaires au besoin, par exemple dans vos scripts de tâches. Afin de faciliter le chargement d'un grand nombre de modules, il est préférable d'utiliser une collection de modules.  
Nous vous '''déconseillons de charger des modules automatiquement dans votre .bashrc'''. Nous vous recommandons plutôt de charger les modules nécessaires au besoin, par exemple dans vos scripts de tâches. Afin de faciliter le chargement d'un grand nombre de modules, il est préférable d'utiliser une collection de modules.  


= Collection de modules = <!--T:23-->
== Collection de modules == <!--T:23-->
Lmod vous permet de créer une collection de modules. Pour ce faire, chargez d'abord les modules requis avec, par exemple  
Lmod vous permet de créer une collection de modules. Pour ce faire, chargez d'abord les modules requis avec, par exemple  
{{Commande|module load gcc/9.3 openmpi/4.0.3 mkl}}
{{Commande|module load gcc/9.3 openmpi/4.0.3 mkl}}
Line 100: Line 100:
{{Commande|module restore mes_modules}}
{{Commande|module restore mes_modules}}


= Modules cachés = <!--T:34-->
== Modules cachés == <!--T:34-->
Certains modules sont cachés. Vous pouvez les ignorer. Il s'agit généralement de modules que vous n'avez pas à charger manuellement. Ils sont chargés automatiquement selon les besoins.  
Certains modules sont cachés. Vous pouvez les ignorer. Il s'agit généralement de modules que vous n'avez pas à charger manuellement. Ils sont chargés automatiquement selon les besoins.  


= Hiérarchie de modules = <!--T:27-->
== Hiérarchie de modules == <!--T:27-->
Plusieurs des systèmes de calcul informatique de pointe à travers le monde utilisent une structure de modules plate avec tous les modules au même niveau. Ceci devient problématique lorsqu'un grand nombre de combinaisons de versions de différents modules sont disponibles. Par exemple, si vous avez à utiliser la bibliothèque [[FFTW]], et que le module <tt>fftw</tt> est disponible en plusieurs versions, dont une version compilée avec le compilateur <tt>gcc</tt> version 4.8 et <tt>openmpi</tt> 1.6, vous avez peut-être déjà vu des modules nommés <tt>openmpi/4.0_gcc9.3</tt> et <tt>fftw/3.8_gcc9.3_openmpi4.0</tt>. Ceci n'est ni élégant ni pratique. Pour résoudre ce problème, nous utilisons une hiérarchie de modules. Plutôt que d'utiliser la commande
Plusieurs des systèmes de calcul informatique de pointe à travers le monde utilisent une structure de modules plate avec tous les modules au même niveau. Ceci devient problématique lorsqu'un grand nombre de combinaisons de versions de différents modules sont disponibles. Par exemple, si vous avez à utiliser la bibliothèque [[FFTW]], et que le module <tt>fftw</tt> est disponible en plusieurs versions, dont une version compilée avec le compilateur <tt>gcc</tt> version 4.8 et <tt>openmpi</tt> 1.6, vous avez peut-être déjà vu des modules nommés <tt>openmpi/4.0_gcc9.3</tt> et <tt>fftw/3.8_gcc9.3_openmpi4.0</tt>. Ceci n'est ni élégant ni pratique. Pour résoudre ce problème, nous utilisons une hiérarchie de modules. Plutôt que d'utiliser la commande
{{Commande|module load gcc/9.3 openmpi/4.0_gcc9.3 fftw/3.8_gcc9.3_openmpi4.0}}
{{Commande|module load gcc/9.3 openmpi/4.0_gcc9.3 fftw/3.8_gcc9.3_openmpi4.0}}
Line 113: Line 113:
L'inconvénient d'utiliser une hiérarchie de modules est que, puisque des modules peuvent avoir le même nom, seuls les modules compatibles avec les modules ''parents'' sont affichés par la commande <tt>module avail</tt>. Charger un parent est donc un prérequis afin d'avoir accès à certains modules. Pour avoir l'information complète, le système de module rend disponible la commande <tt>module spider</tt>. Celle-ci parcourt la hiérarchie complète et affiche tous les modules. En spécifiant un module et une version particulière, il est alors possible de savoir quels chemins de la hiérarchie permettent de charger le module désiré.
L'inconvénient d'utiliser une hiérarchie de modules est que, puisque des modules peuvent avoir le même nom, seuls les modules compatibles avec les modules ''parents'' sont affichés par la commande <tt>module avail</tt>. Charger un parent est donc un prérequis afin d'avoir accès à certains modules. Pour avoir l'information complète, le système de module rend disponible la commande <tt>module spider</tt>. Celle-ci parcourt la hiérarchie complète et affiche tous les modules. En spécifiant un module et une version particulière, il est alors possible de savoir quels chemins de la hiérarchie permettent de charger le module désiré.


= Remplacement automatique de modules = <!--T:32-->
== Remplacement automatique de modules == <!--T:32-->
Lorsque le système de modules détecte deux modules de la même famille, ou deux versions du même module, la commande <tt>module load</tt> remplacera automatiquement le module original par celui qui doit être chargé. Dans le cas où le module remplacé est un nœud de la hiérarchie de modules, les modules dépendants seront chargés de nouveau s'il existe une version compatible, ou désactivés dans le cas contraire.
Lorsque le système de modules détecte deux modules de la même famille, ou deux versions du même module, la commande <tt>module load</tt> remplacera automatiquement le module original par celui qui doit être chargé. Dans le cas où le module remplacé est un nœud de la hiérarchie de modules, les modules dépendants seront chargés de nouveau s'il existe une version compatible, ou désactivés dans le cas contraire.


= Créer des modules = <!--T:36-->
== Créer des modules == <!--T:36-->
Pour des instructions sur comment créer des modules, veuillez vous référer à la [http://lmod.readthedocs.io/en/latest/015_writing_modules.html documentation officielle].  
Pour des instructions sur comment créer des modules, veuillez vous référer à la [http://lmod.readthedocs.io/en/latest/015_writing_modules.html documentation officielle].  


= Utiliser des modules avec ZSH et KSH = <!--T:37-->
== Utiliser des modules avec ZSH et KSH == <!--T:37-->
Si vous voulez utiliser des modules avec les ''shells'' ZSH ou KSH, exécutez les commandes suivantes :
Si vous voulez utiliser des modules avec les ''shells'' ZSH ou KSH, exécutez les commandes suivantes :
{{Command|source $LMOD_PKG/init/zsh}}
{{Command|source $LMOD_PKG/init/zsh}}
cc_staff
82

edits

Navigation menu