Pakiet Modules umożliwia łatwą i dynamiczną modyfikację zmiennych powłoki dostosowując ją do specyficznych wymagań danego pakietu oprogramowania. Dla każdego z pakietów oprogramowania dostępnego na klastrze zdefiniowano odpowiadający mu moduł (lub moduły, jeśli istnieje więcej niż jedna wersja danego pakietu). Nazwy modułów dla aplikacji naukowych budowane są wg 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-biblioteki/wersja
. Zarówno dla pakietów oprogramowania jak i bibliotek przygotowano wersję jest domyślną, zatem przy jej ładowaniu ostatni człon wersja
można pominąć. Zmian dokonuje się za pomocą komendy module
i parametru określającego akcję.
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łoceZaładowanie najnowszej wersji kompilatora Intel
module add intel
Załadowanie kompilatora Intel w wersji 10.0
<pre>
module add intel/10.0
</pre>
Wylistowanie wszystkich dostępnych wersji kompilatorów Intel
<pre>
module avail intel
</pre>
Zamiana wersji Ethernet OpenMPI na wersję z Infiniband
<pre>
module switch openmpi/1.4.3-intel-11.1-eth openmpi/1.4.3-intel-11.1-ib
</pre>
Usunięcie ścieżek do kompilatora Intel w wersji 10.0 z środowiska
<pre>
module rm intel/10.0
</pre>
===Wykorzystanie własnych modułów (Zaawansowane) ===
Pakiet 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 projektu.
===Uwagi ===
* 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
<pre>
module avail 2>&1 | grep <nazwa>
</pre>