Wiss. Rechnen » Module
 

Auf dem Cluster ist das sogenannte Module Environment System LMod in der Version 7.7 installiert. Module dienen dazu, die Umgebung (siehe Linux-Grundlagen) auf einfache Weise austauschen zu können. Beispielsweise wäre, wenn eine Software in mehreren Versionen installiert ist, der Befehl zum Aufrufen der Software mehrdeutig. Sie als Nutzer können in solchen Fällen auswählen, welche Version Sie verwenden wollen.

Beim Einloggen sind einige Module automatisch geladen, andere müssen Sie von Hand laden, damit die Befehle überhaupt erst zur Verfügung stehen. Wieder andere Module werden automatisch mitgeladen, wenn Sie ein Modul laden, dass ein anderes benötigt.

Die einzelnen Module sind in jeweils einer Moduldatei definiert.

Benutzung des Modulsystems

LMod verwendet einige Befehle, die alle mit dem Wort module anfangen.

Zum Anzeigen der verfügbaren Module dient der Befehl module avail:

$ module avail

---------------------------- /cm/shared/modulefiles ---------------------------- 
DefaultModules                     (L) 
PrgEnv/gcc-openmpi/6.3.0-1.10.3 
PrgEnv/intel-openmpi/17.0.5-1.10.3 (L) 
abaqus/6.13-2 
abaqus/2017 
abaqus/2018                        (D)

----------------------- /cm/shared/ohpc/pub/modulefiles ------------------------ 
EasyBuild/3.6.1 gnu7/7.3.0       (D) papi/5.6.0 (D) 
autotools       intel/17.0.5.239     prun/1.2

Geladene Module werden mit (L) gekennzeichnet, Standardmodule mit (D) (für “Default”). Wie Sie erkennen können, gibt es eine Hierarchie der Namen, die Ebenen sind wie bei Dateipfaden durch Schrägstriche getrennt. Beispielsweise würde mit module load abaqus/2017 eine bestimmte Version der Software Abaqus geladen. Es kann aber auch nur module load abaqus angegeben werden, dann wird das entsprechende Standardmodul geladen (abaqus/2018 in diesem Fall).

Beachten Sie auch, dass es eine Unterteilung nach Pfaden im MODULEPATH gibt (die waagrechten Linien). Der MODULEPATHbestimmt, wo Kollektionen von Moduldateien stehen.

Weitere Befehle

Der wichtigste Befehl ist das Laden oder Entladen eines Moduls:

$ module load <Modulname> 
$ module unload <Modulname>

Geladene Module können angezeigt werden mit

$ module list

Es gibt noch einige weitere Befehle, die mit module help angezeigt werden können.

Eigene Module definieren

Obwohl Sie üblicherweise vor allem die vom ZIMT bereitgestellten Module verwenden werden, existiert theoretisch die Möglichkeit, eigene Module zu schreiben. Dazu müssen zwei Sachen getan werden: erstens muss eine entsprechende Moduldatei geschrieben werden und zweitens muss der Pfad, indem die Moduldatei steht, zur Umgebungsvariable MODULEPATH hinzugefügt werden.

Moduldateien

Eine Moduldatei in LMod ist ein in der Sprache Lua geschriebenes Skript. Es muss die Endung .lua haben. Dort werden bestimmte Aktionen definiert, die beim Laden des Moduls ausgeführt werden sollen. Dafür gibt es vorgefertigte Lua-Funktionen. Hier ist als einfaches Beispiel das Modul dot gezeigt. Dies ist ein tatsächlich auf dem Cluster existierendes Modul, das das aktuelle Verzeichnis (.) zum PATH hinzufügt (siehe auch Linux-Grundlagen).

whatis("adds.' to your PATH environment variable ") append_path("PATH",".") help([[ Adds.' to your PATH environment variable

    This makes it easy to add the current working directory
    to your PATH environment variable.  This allows you to
    run executables in your current working directory
    without prepending ./ to the excutable name

    Version 3.2.10
]])

Die Funktion append_path() bewirkt das eigentliche Hinzufügen, die Funktionen help() undwhatis() dienen dazu, Nutzern Informationen über das Modul zur Verfügung zu stellen. Hier ist eine Liste mit möglichen Funktionen in LMod.

Sie können mit module show <Modulname> den Inhalt von bestehenden Moduldateien anzeigen lassen.

Hinzufügen zu MODULEPATH

Um einen Pfad zu einer Umgebungsvariable hinzuzufügen, wird die Variable neu exportiert:

$ export MODULEPATH=$MODULEPATH:/home/demo_user/exampledir

Mehr dazu auf der Seite Linux-Grundlagen. Dort ist auch beschrieben, wie diese Einstellung permanent gemacht wird, indem sie in der Datei .bashrc hinzugefügt wird.

Achtung: Das Ändern von Umgebungsvariablen, insbesondere das permanente Ändern, kann unter Umständen dazu führen, dass bestimmte Befehle in Linux nicht mehr funktionieren. Es sollte nur mit äußerster Vorsicht geschehen. Sie können Änderungen an Umgebungsvariablen testen, indem Sie sie manuell in der Konsole eingeben. Mit einem Logout und einem erneuten Login kann dann die vorherige Einstellung wiederhergestellt werden.

 

Aktualisiert um 14:16 am 21. August 2018 von Jan Philipp Stephan