Mechanizm Modules umożliwia łatwą i dynamiczną modyfikację zmiennych powłoki (ścieżki wyszukiwania aplikacji itp.) dostosowując ją do specyficznych wymagań danego pakietu oprogramowania. Dla każdego z pakietów oprogramowania dostępnego w Infrastrukturze PLGrid zdefiniowano odpowiadający mu moduł (lub moduły, jeśli istnieje więcej niż jedna wersja danego pakietu).
Oprogramowanie oraz moduły dostępne w Infrastrukturze PLGrid najwygodniej można wyszukać korzystając z Katalogu Aplikacji.
Zmian dokonuje się za pomocą komendy module
i parametru określającego akcję. Najczęściej wykorzystywane opcje to:
module add <moduł>
lub module load <moduł>
– załadowanie modułu danego programumodule rm <moduł>
lub module unload <moduł>
– usunięcie modułu danego programumodule list
– wyświetlenie listy aktualnie załadowanych modułówmodule avail
– wyświetla listę wszystkich dostępnych modułówmodule avail <nazwa>
– wyświetla listę wszystkich dostępnych wersji oprogramowania o nazwie rozpoczynającej się od <nazwa>
module purge
– usunięcie wszystkich załadowanych modułówmodule show <moduł>
lub module display <moduł>
– wyświetl informacje nt. danego modułumodule switch <moduł-1> <moduł-2>
– wymiana modułów w powłoceNazwy modułów dla aplikacji naukowych budowane są według schematu plgrid/apps/nazwa-programu/wersja
. W przypadku bibliotek schemat ma postać plgrid/libs/nazwa-biblioteki/wersja
, a dla programów narzędziowych (np. język oprogramowania Python) plgrid/tools/nazwa-narzedzia/wersja
. Zarówno dla pakietów oprogramowania jak i bibliotek przygotowano wersję też domyślną i przy jej ładowaniu ostatni człon modułu (tj. wersję)
można pominąć.
Załadowanie najnowszej wersji kompilatora Intel
module add plgrid/tools/intel
Załadowanie kompilatora Intel w wersji 13.0
module add plgrid/tools/intel/13.0
Spis wszystkich dostępnych wersji kompilatorów Intel
module avail plgrid/tools/intel
Zamiana wersji Matlab z wersji R2012b na R2013b
module switch plgrid/apps/matlab/R2012b plgrid/apps/matlab/R2013b
Usunięcie ścieżek do kompilatora Intel w wersji 13.0 z środowiska
module add plgrid/tools/intel/13.0
Przykładowy skrypt PBS wykorzystujący polecenie Module do załadowania programu Matlab w domyślnej wersji i wykonania obliczeń zawartych w pliku matlab.m (skrypt to matlab.pbs)
#!/bin/sh #przykladowe opcje dla polecenia qsub #PBS -l walltime=5:00 #PBS -l mem=1gb #PBS -q plgrid-testing #przejdz do katalogu na pliki tymczasowe zadania cd $TMPDIR #ustaw srodowisko uruchomieniowe dla Matlab w wersji domyslnej module add plgrid/apps/matlab #uruchom program matlab < $PBS_O_WORKDIR/matlab.m > $PBS_O_WORKDIR/matlab.out #skasuj katalog tymczasowy: rm -rf $TMPDIR
Strona pakietu Modules: http://modules.sourceforge.net/
Dokumentacja pakietu Modules: http://modules.sourceforge.net/man/modulefile.html
Zaleca się ładować moduły jedynie w skryptach obliczeniowych, a nie w skryptach uruchamianych przy logowaniu na maszynę dostępową lub węzeł obliczeniowy. Dzięki temu łatwiej kontrolować środowisko uruchomieniowe oprogramowania, które ma zostać użyte oraz uniknąć konfliktów pomiędzy załadowanymi modułami.
Komenda modules avail <nazwa>
znajduje jedynie moduły zaczynające się od ciągu znaków <nazwa>
dlatego, jeżeli poszukuje się modułów zawierających gdziekolwiek ciąg <nazwa>
należy wykonać polecenie
module avail 2>&1 | grep nazwa
System Modules umożliwia również tworzenie własnych modułów. W tym celu należy załadować moduł use.own
. Przy pierwszym załadowaniu modułu use.own
zostanie założona w katalogu domowym użytkownika kartoteka privatemodules
. W niej należy umieszczać własne moduły. Program modules
automatycznie sprawdzi nowe zainstalowane moduły i doda je do listy dostępnych. W modułach można wykorzystywać funkcje języka Tcl. Informacje jak tworzyć własne moduły znajdują się na stronie pakietu Modules.