Utiliser des modules: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 86: Line 86:




= Lmod vs Environment Modules =
== Lmod vs Environment Modules ==
Les principales différences entre l'environnement mis à votre disposition sur les nouveaux serveurs de Calcul Canada et les serveurs que vous avez utilisé par le passé sont les suivantes.
 
=== Hiérarchie de modules ===
La majorité des systèmes utilisent une structure de modules plate : tous les modules sont à un même niveau. Ceci devient problématique lorsqu'un grand nombre de combinaisons de versions de différents modules sont disponibles sur un système. 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/1.6_gcc4.8</tt> et <tt>fftw/3.3_gcc4.8_openmpi1.6</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/4.8 openmpi/1.6_gcc4.8 fftw/3.3_gcc4.8_openmpi1.6}}
vous utiliserez la commande
{{Commande|module load gcc/4.8 openmpi/1.6 fftw/3.3}}
Ceci est rendu possible en utilisant une hiérarchie de modules. Le module <tt>fftw/3.3</tt> qui est chargé ne sera pas le même si vous avez chargé au préalable le compilateur Intel ou le compilateur GCC.
 
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>. Pour avoir l'information complète, Lmod rend disponible la commande <tt>module spider</tt>. Celle-ci parcours la hiérarchie complète et afficher tous les modules. En spécifiant un module et une version particulière, il est alors possible quels sont les chemins de la hiérarchie qui permettent de charger le module désiré.
 
=== Collections de modules ===
Les collections de modules sont l'une des fonctionnalités additionnelles fournies par Lmod. Voir la section [[#Collections de modules (Lmod seulement)|suivante]] pour plus de détails.
 
=== Une seule version chargée à la fois ===
Lmod refusera de charger deux versions d'un même module en même temps. Par exemple, vous ne pourrez pas charger les versions 4.8 et 5.4 du compilateur GCC en même temps.
 
=== Un seul module d'une même famille chargé à la fois ===
Il est possible pour les administrateurs de spécifier que deux modules portant des noms différents sont de la même famille. Lmod refusera alors de charger deux modules de la même famille. Des exemples typiques seraient les modules de compilateurs (gcc, intel), les modules MPI (openmpi, mvapich2), ou les modules de la bibliothèque BLAS (mkl, openblas).
 
=== Remplacement automatique de modules ===
Lorsque Lmod 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 noeud 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.
 






</translate>
</translate>
Bureaucrats, cc_docs_admin, cc_staff, rsnt_translations
2,807

edits

Navigation menu