Modules/Lmod: Różnice pomiędzy wersjami

Z Komputery Dużej Mocy w ACK CYFRONET AGH
Skocz do:nawigacja, szukaj
Linia 44: Linia 44:
 
===Uwagi ===
 
===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.
 
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 <tt>modules avail <nazwa></tt> znajduje jedynie moduły zaczynające się od ciągu znaków <tt><nazwa></tt> dlatego, jeżeli poszukuje się modułów zawierających gdziekolwiek ciąg <tt><nazwa></tt>, należy wykonać polecenie
 +
<pre>
 +
module avail 2>&1 | grep <nazwa>
 +
</pre>

Wersja z 09:42, 13 sie 2013

Opis pakietu

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 budowane są wg schematu nazwa-programu/wersja. W przypadku bibliotek schemat ma postać libs/nazwa-biblioteki/wersja, a dla programów narzędziowych (np. języki oprogramowania R lub Python) tools/nazwa-biblioteki/wersja. Zarówno dla pakietów oprogramowania jak i bibliotek najnowsza wersja jest domyślną, zatem ostatni człon wersja można pominąć. Zmian dokonuje się za pomocą komendy module i parametru określającego akcję.

Strona projektu: http://modules.sourceforge.net/ Dokumentacja projektu: http://modules.sourceforge.net/man/modulefile.html Inna dokumentacja: wersje źródłowe modułów lokalnych w /software/local/Modules

Najczęściej wykorzystywane opcje:

  • module add <moduł> lub module load <moduł> – załadowanie modułu danego programu
  • module rm <moduł> lub module unload <moduł> – usunięcie modułu danego programu
  • module list – wyświetlenie listy aktualnie załadowanych modułów
  • module avail – wyświetla listę wszystkich dostępnych modułów
  • module avail <nazwa_oprogramowania> – wyświetla listę wszystkich dostępnych wersji oprogramowania o nazwie nazwa_oprogramowania
  • module purge – usunięcie wszystkich załadowanych modułów
  • module show <moduł> lub module display <moduł> – wyświetl informacje nt. danego modułu
  • module switch <moduł-1> <moduł-2> – wymiana modułów w powłoce

Przykładowe użycie

  • Załadowanie najnowszej wersji kompilatora Intel
module add intel
  • Załadowanie kompilatora Intel w wersji 10.0
module add intel/10.0
  • Wylistowanie wszystkich dostępnych wersji kompilatorów Intel
module avail intel
  • Zamiana wersji Ethernet OpenMPI na wersję z Infiniband
module switch openmpi/1.4.3-intel-11.1-eth openmpi/1.4.3-intel-11.1-ib
  • Usunięcie ścieżek do kompilatora Intel w wersji 10.0 z środowiska
module rm intel/10.0

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

module avail 2>&1 | grep <nazwa>