Podręcznik użytkownika modułów środowiskowych¶
Moduły środowiskowe to narzędzie do dynamicznej modyfikacji środowiska użytkownika
za pomocą plików modułów. Dla każdego z dostępnych pakietów oprogramowania zainstalowanych
w systemie istnieje odpowiedni plik modułu. Zatem, użytkownicy mogą użyć polecenia
module
, aby sprawdzić dostępne oprogramowanie w systemie. Polecenie to można też użyć,
aby dynamicznie ustawić lub usunąć zmienne środowiskowe powłoki takie jak PATH
, INCLUDE
,
LD_LIBRARY_PATH
, MANPATH
itp. dla odpowiedniego pakietu/wersji oprogramowania. Użytkownicy
mogą umieścić polecenie module
w swoim skrypcie uruchamiającym obliczenia, aby załadować odpowiednie
moduły w razie potrzeby. Alternatywnie, można dodać polecenie modułu do swojego ~/.bashrc
~/.bashrc
.
Sprawdzenie dostępnych modułów/pakietów¶
Aby sprawdzić jakie są dostępne moduły, należy wydać polecenie:
$ module avail
Przykład:
$ moduł avail
--------------------------------------------------- /opt/modulefiles/Core ---------------------------------------------------------------------------
crystal/09.1.0.1 intel/2019.1.144 mkl/2019.1.144 mpich plask/openblas qchem/mpich
crystal/09.2.0.1 intel/2021.1.1 (L,D) mkl/2020.0.166 openmpi/2.1.0 python/default qchem/openmp
crystal/17.1.0.2 (D) meep (L) mkl/2021.1.1 (L,D) openmpi/4.0.3rc4 (D) python/2.7 qchem/serial (D)
intel/2013.2.146 mkl/default mpb (L) plask/mkl (L,D) python/3.8 (D) turbomole
------------------------------------------- /usr/share/lmod/lmod/modulefiles/Core -------------------------------------------------------------------
lmod/6.6 settarg/6.6
Where:
L: Module is loaded
D: Default Module
Wyświetlenie listy załadowanych modułów/pakietów¶
Polecenie do wyświetlenia listy załadowanych modułów/pakietów to module list
$ module list
Currently Loaded Modules:
1) intel/2021.1.1 2) meep 3) mpb 4) mkl/2021.1.1 5) plask/mkl
Załadowanie modułu w celu ustawienia zmiennych środowiskowych¶
Polecenie akywujące moduł i ustawiające zmienne środowiskowe dla odpowiedniego pakietu
oprogramowania to module load [plik_modułu]
. Po jego użyciu, można sprawdzić
załadowane moduły używając polecenia module list
.
$ module load crystal
$ module list
Currently Loaded Modules:
1) intel/2021.1.1 2) meep 3) mpb 4) mkl/2021.1.1 5) plask/mkl 6) crystal/17.1.0.2
Aby wyświetlić, jakie zmienne środowiskowe zostały ustawione w module, należy użyć polecenia
module display [modulename]
:
$ module display crystal
-----------------------------------------------------------------------------------------------------------------------------------------------
/opt/modulefiles/Core/crystal/17.1.0.2.lua:
-----------------------------------------------------------------------------------------------------------------------------------------------
help([[
This module loads CRYSTAL.
]])
whatis("Name: crystal ")
whatis("Description: This module loads CRYSTAL. ")
whatis("Version: 17.1.0.2 ")
setenv("CRY_EXEDIR","/opt/crystal/Linux-ifort17_XE_emt64/v1.0.2")
setenv("CRY_SCRDIR","/tmp")
setenv("CRY_MPIBIN","/opt/openmpi-2.1.0/bin/mpirun")
prepend_path("PATH","/opt/crystal/bin")
family("crystal")
Aby wyświetlić podstawowe informacje pomocy dla modułu należy użyć polecenia module help
:
$ module help [plik_modułu]
Usuwanie/dezaktywacja modułów¶
Polecenie do usunięcia zmiennych środowiskowych ustawionych przez dany moduł to
module unload [plik_modułu]
. Po jego użyciu, można sprawdzić pozostałe załadowane
moduły używając polecenia module list
.
$ module unload crystal
$ module list
Currently Loaded Modules:
1) intel/2021.1.1 2) meep 3) mpb 4) mkl/2021.1.1 5) plask/mkl
Usunięcie wszystkich załadowanych modułów¶
Polecenie pozwalające na usunięcie wszystkich załadowanych modułów to module purge
.
$ module purge
Zapisywanie i przywracanie załadowanych modułów¶
Polecenie do zapisywania załadowanych modułów to module save [nazwa_pliku]
.
To polecenie zapisze aktywne moduły/pakiety w pliku filename
w katalogu
~/.lmod.d
. Można załadować zapisane moduły używając module restore
[nazwa_pliku]
. Jeśli nazwa pliku zostanie w tym przypadku pominięta, to
zostanie użyty domyślny plik ~/.lmod.d/default
.
$ module save
$ module list
Currently Loaded Modules:
1) intel/2021.1.1 2) meep 3) mpb 4) mkl/2021.1.1 5) plask/mkl
$ module purge
$ module list
Currently Loaded Modules:
$ module restore
$ module list
Currently Loaded Modules:
1) intel/2021.1.1 2) meep 3) mpb 4) mkl/2021.1.1 5) plask/mkl
Wyszukiwanie modułu¶
Polecenie module spider
wyszukuje moduły pasujące do wyrażenia regularnego.
Jeśli wyrażenie regularne zostanie pominięte, wówczas wylistowane zostaną wszystkie
moduły. Wynikiem działania tego polecenia jest tabela z następującymi kolumnami:
Module: Nazwa modułu.
Version: Wersja modułu.
Description: Krótki opis modułu.
Keywords: Lista słów kluczowych używanych do wyszukiwania modułu.
URL: Adres URL, za pomocą którego można uzyskać więcej informacji o module.
Komenda module spider
jest potężnym narzędziem, które może być użyte do
wyszukiwania modułów. Należy zauważyć, że komenda nie jest ona tym samym co
polecenie module avail
, które po prostu wyświetla listę modułów dostępnych dla użytkownika.
Z kolei, polecenie module spider
wyszukuje moduły pasujące do wyrażenie regularnego, lub
— jeśli wyrażenie regularne zostanie pominięte — wszystkie moduły.
Komenda module spider
jest przydatna, do znalezienia modułu dla określonego pakietu
oprogramowania. Na przykład, aby znaleźć moduł dla pakietu FFTW, można użyć następującego polecenia
polecenia:
$ module spider FFTW
Spowoduje to wyświetlenie listy wszystkich modułów dostępnych dla FFTW. Polecenie
module spider
nie rozróżnia wielkości liter, więc można również użyć następującego polecenia:
$ module spider fftw
W przypadku, gdy znana jest nazwa modułu, ale nie wiadomo, jaka wersja jest dostępna, można użyć następującego polecenia
$ module spider fftw/3.3
Spowoduje to wyświetlenie listy wszystkich modułów dostępnych dla FFTW 3.3.
Wygodne narzędzie ml
¶
Dla wszystkich osób, które nie potrafią poprawnie wpisać komendy mdoule, moduel, lub module
lmod ma rozwiązanie! Zamiast niej można użyć prostszego polecenia ml
. Jako, że diw najczęściej
używane komendy to module list i module load <coś>, ml
pozwala na łatwe użycie każdej z nich:
$ ml
oznacza module list
. Zaś
$ ml foo
oznacza module load foo
. Z kolei
$ ml -bar
oznacza module unload bar
. Nie powinien być zaskoczeniem fakt, że dwie powyżse formy
można łączyć:
$ ml foo -bar
oznacza module unload bar; module load foo
. Ponadto, dostępne są wszystkie standardowe
polecenia komendy module
:
$ ml save
$ ml avail
$ ml spider
$ ml show foo
Jeśli ktokolwiek kiedykolwiek będzie musiał załadować moduł o nazwie spider, to może napisać:
$ ml load spider