Logo: Leibniz Universität Hannover

Die Modules-Umgebung

Einführung

Das Modules Paket ist eine Software, mit der auf den RRZN-Computeservern (Ausnahme: Zen) auf einfache Art und Weise die Arbeitsumgebung modifiziert werden kann. Sie besteht im Wesentlichen aus Kommandos und zugehörigen Definitionsdateien (Modulefiles), in denen festgelegt wird, welche spezifischen Operationen durchgeführt werden sollen (zum Beispiel Erweitern der Umgebungsvariablen PATH, LD_LIBRARY_PATH usw.).

Auf den RRZN-Computeservern wird das Setzen geeigneter Arbeitsumgebungen für alle zusätzlich zum Linux-Betriebssystem installierten Softwareprodukte (CAE-Programme, Compiler usw.) über Modulefiles zur Verfügung gestellt.

Die Benutzung des Modules Paketes ist per Default initialisiert.

Module Kommandos

Das Kommando lautet:

module

Die weiteren Optionen erhält man mit

$ module help   

  Modules Release 3.2.5 2007-02-14 (Copyright GNU GPL v2 1991):

  Usage: module [ switches ] [ subcommand ] [subcommand-args ]

Switches:
        -H|--help               this usage info
       ......
  Available SubCommands and Args:
        + add|load              modulefile [modulefile ...]
        + rm|unload             modulefile [modulefile ...]
        + switch|swap           [modulefile1] modulefile2
        + display|show          modulefile [modulefile ...]
        + avail                 [modulefile [modulefile ...]]
        + use [-a|--append]     dir [dir ...]
        + list
        + help                  [modulefile [modulefile ...]]
        + whatis                [modulefile [modulefile ...]]

Hier ist die Ausgabe von module help nur unvollständig aufgeführt. Es gibt außerdem noch eine Manual-Page: man module

module avail

Das listet alle zur Verfügung stehenden Modulefiles.

module list

Das listet alle aktuell geladenen Modulefiles.

module show <name of modulefile>

Das zeigt, welche Umgebung durch das spezifische Modulefile gesetzt wird, ohne die Aktion durchzuführen.

module load <name of modulefile>

Das setzt die in dem spezifischen Modulefile definierte Umgebung.

module unload <name of modulefile>

Das setzt die in dem spezifischen Modulefile definierte Umgebung wieder zurück (gewissermaßen "undo").

Beispiel (auf Orac)

$ module list       
No Modulefiles Currently Loaded.

$ module avail      

------------------ /usr/share/Modules/modulefiles -------------------
dot         module-info null
module-cvs  modules     use.own

-------------------------- /sw/modulefiles --------------------------
abaqus/674               mathematica/6.0
abaqus/681(default)      matlab
ansys/11.0(default)      nagcl
ansys/110                nagf95
cfx/11.0(default)        nagfl90
comsol/3.3               ncl/5.0.0-gcc(default)
fluent                   numpy/1.1.0
g03                      patran
gams/227                 pgi/5.2
hfss                     pgi/6.2
icc/10.1.015(default)    pgi/7.2(default)
ict/3.1.1(default)       pgi-mpich/7.2(default)
idb/10.1.015(default)    povray/3.6
ifort/10.1.015(default)  starcd/4.06(default)
imkl/10.0.3.020(default) totalview/8.2.0(default)
impi/3.1(default)        totalview/8.5.0
itac/7.1(default)        vtk/5.0
marc/2007

$ module show ifort 
-------------------------------------------------------------------
/sw/modulefiles/ifort/10.1.015:
module-whatis    Intel Fortran compiler Version 10.1.015
prepend-path     PATH /sw/tools/intel/fce/10.1.015/bin
prepend-path     LD_LIBRARY_PATH /sw/tools/intel/fce/10.1.015/lib
prepend-path     LD_RUN_PATH /sw/tools/intel/fce/10.1.015/lib
prepend-path     MANPATH /sw/tools/intel/fce/10.1.015/man
setenv           INTEL_LICENSE_FILE 28518@licserv.rrzn.uni-hannover.de
-------------------------------------------------------------------
$ module load ifort
$ echo $PATH
/sw/tools/intel/fce/10.1.015/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:.

Modulefiles und Versionen

Von einem Softwareprodukt kann es mehrere Versionen geben. Das spiegelt sich dann bei den zugehörigen Modulefiles wider. Im Beispiel sind drei Versionen der PGI-Software aufgeführt. Mit

module load pgi

erhält man die Default-Version (im Beispiel 7.2). Will man eine andere Version haben, etwa 6.2, muss man eingeben:

module load pgi/6.2

Benutzung von Modules im Batch

In Batchjobs und Shellscripts muss man noch etwas für die vollständige Initialisierung des Module Paketes tun (s. auch Beispiele für Batchjobs):

. $MODULESHOME/init/ksh

wenn man mit der Kornshell arbeitet,

. $MODULESHOME/init/bash

wenn man mit der Bash arbeitet. Die Umgebungsvariable MODULESHOME wird vom Systemprolog gesetzt.

Leibniz Universität IT Services - URL: www.rrzn.uni-hannover.de/modules.html
 
Dr. Gerd Brand, Letzte Änderung: 27.09.2012
Copyright Gottfried Wilhelm Leibniz Universität Hannover