Modules/Lmod: Różnice pomiędzy wersjami
m  | 
				 (aktualziacja opisu. Dodanie nowych opcji)  | 
				||
| Linia 1: | Linia 1: | ||
==Opis pakietu==  | ==Opis pakietu==  | ||
| − | Pakiet   | + | Pakiet '''[https://www.tacc.utexas.edu/research-development/tacc-projects/lmod Lmod]''' 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 <tt>plgrid/nazwa-programu/wersja</tt>. W przypadku bibliotek schemat ma postać <tt>plgrid/libs/nazwa-biblioteki/wersja</tt>, a dla programów narzędziowych (np. języki oprogramowania R lub Python) <tt>plgrid/tools/nazwa-biblioteki/wersja</tt>. Zarówno dla pakietów oprogramowania jak i bibliotek najnowsza wersja jest domyślną, zatem ostatni człon <tt>wersja</tt> można pominąć. Zmian dokonuje się za pomocą komendy <tt>module</tt> i parametru określającego akcję.  | 
| − | |||
| − | |||
| − | |||
===Najczęściej wykorzystywane opcje:===  | ===Najczęściej wykorzystywane opcje:===  | ||
| − | * <tt>module add <moduł></tt> lub <tt>module load <moduł></tt>   | + | * <tt>module add <moduł></tt> lub <tt>module load <moduł></tt> - załadowanie modułu danego programu  | 
| − | * <tt>module rm <moduł></tt> lub <tt>module unload <moduł></tt>   | + | * <tt>module rm <moduł></tt> lub <tt>module unload <moduł></tt> - usunięcie modułu danego programu  | 
| − | * <tt>module   | + | * <tt>module swap <moduł-1> <moduł-2></tt> - wymiana modułów w powłoce  | 
| − | * <tt>module avail</tt>   | + | |
| − | * <tt>module avail <  | + | |
| − | * <tt>module purge</tt>   | + | * <tt>module avail</tt> - wyświetla listę wszystkich dostępnych modułów  | 
| − | * <tt>module show <moduł></tt>   | + | * <tt>module avail <nazwa></tt> - wyświetla listę wszystkich dostępnych wersji oprogramowania o nazwie <tt>nazwa</tt>  | 
| − | * <tt>module   | + | * <tt>module spider <tekst> </tt> - wyszukuje wszystkie moduły posiadające w nazwie określony <tt>tekst</tt>  | 
| + | * <tt>module keyword <tekst> </tt> - wyszukuje wszystkie moduły posiadające w nazwie i opisie określony <tt>tekst</tt>  | ||
| + | |||
| + | |||
| + | * <tt>module list</tt> - wyświetlenie listy aktualnie załadowanych modułów  | ||
| + | * <tt>module purge</tt> - usunięcie wszystkich załadowanych modułów  | ||
| + | |||
| + | |||
| + | * <tt>module show <moduł></tt> - wyświetla komendy wykonywane przez dany moduł  | ||
| + | * <tt>module whatis <moduł></tt> - wyświetl informacje nt. danego modułu  | ||
| + | |||
| + | |||
| + | *<tt>module save [kolekcja]</tt> - zapisuje załadowane moduły do kolecji domyślnej lub kolekcji o nazwie <tt>kolekcja</tt>  | ||
| + | *<tt>module restore [kolekcja]</tt> - ładuje moduły z kolecji domyślnej lub kolekcji o nazwie <tt>kolekcja</tt>  | ||
| + | *<tt>module savelist</tt> - wyświetla liste zapisanych kolekcji modułów  | ||
| + | *<tt>module describe [kolekcja]</tt> - wyświetla zawartość danej kolecji modułów  | ||
| + | *<tt>module use /path/to/personal/modulefiles</tt> - dołącza moduły z katalogu <tt>/path/to/personal/modulefiles</tt> do ścieżki wyszukiwania modułów  | ||
| + | |||
| + | |||
| + | *<tt>module help</tt> - zwraca obszerną pomoc komendy <tt>module</tt> i jej podkomend  | ||
===Przykładowe użycie===  | ===Przykładowe użycie===  | ||
* Załadowanie najnowszej wersji kompilatora Intel  | * Załadowanie najnowszej wersji kompilatora Intel  | ||
<pre>  | <pre>  | ||
| − | module add intel  | + | module add plgrid/tools/intel  | 
</pre>  | </pre>  | ||
| − | * Załadowanie kompilatora Intel w wersji   | + | * Załadowanie kompilatora Intel w wersji 17.0.1  | 
<pre>  | <pre>  | ||
| − | module add intel/  | + | module add plgrid/tools/intel/17.0.1  | 
</pre>  | </pre>  | ||
* Wylistowanie wszystkich dostępnych wersji kompilatorów Intel  | * Wylistowanie wszystkich dostępnych wersji kompilatorów Intel  | ||
<pre>  | <pre>  | ||
| − | module avail intel  | + | module avail plgrid/tools/intel  | 
| + | </pre>  | ||
| + | * Wylistowanie wszystkich modułów dla blibliotek MPI na klastrze  | ||
| + | <pre>  | ||
| + | module avail mpi  | ||
</pre>  | </pre>  | ||
| − | + | lub   | |
<pre>  | <pre>  | ||
| − | module   | + | module spider mpi  | 
</pre>  | </pre>  | ||
| − | *   | + | * Zamiana wersji 5.1.3 IntelMPI na wersję 2017.1  | 
<pre>  | <pre>  | ||
| − | module   | + | module swap plgrid/tools/impi/5.1.3 plgrid/tools/impi/2017.1  | 
</pre>  | </pre>  | ||
| + | * Usunięcie ścieżek do kompilatora Intel w wersji 17.0.1 z środowiska  | ||
| + | <pre>  | ||
| + | module rm plgrid/tools/intel/17.0.1  | ||
| + | </pre>  | ||
| + | |||
| + | ===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.  | ||
| + | * Gdy istnieje potrzeba załadowania wiele razy (np. w wielu zadaniach obliczeniowych) takich samych list modułów mozna stworzyc kolekcje poleceniem <tt>module save [kolekcja]</tt> i następnie ich ładowanie poleceniem <tt>module restore [kolekcja]</tt>.  | ||
| + | * Moduł może ładować moduły zależne, zatem jedno polecenie <tt>module add <nazwa></tt> może załadować wiele modułów.  | ||
| + | * Komenda <tt>module</tt> ma skróconą wersję <tt>ml</tt>. Również niektóre podkomendy mają skrócone wersje  | ||
| + | ** <tt>ml</tt> jest równoważna <tt>module list</tt>  | ||
| + | ** <tt>ml <nazwa></tt> jest równoważna <tt>module add <nazwa></tt>  | ||
| + | ** <tt>ml -<nazwa></tt> jest równoważna <tt>module rm <nazwa></tt>  | ||
| + | ** <tt>ml av</tt> jest równoważna <tt>module avail</tt>  | ||
| + | ** <tt>ml s</tt> jest równoważna <tt>module save</tt>  | ||
| + | ** <tt>ml r</tt> jest równoważna <tt>module restore</tt>  | ||
===Wykorzystanie własnych modułów (Zaawansowane) ===  | ===Wykorzystanie własnych modułów (Zaawansowane) ===  | ||
| − | Pakiet   | + | Pakiet Lmod umożliwia również tworzenie własnych modułów ([https://pl.wikipedia.org/wiki/Tcl_(język_programowania) TCL] lub [https://pl.wikipedia.org/wiki/Lua Lua]). W tym celu należy wykonać polecenie <tt>module use /path/to/personal/modulefiles</tt>. Podana ścieżka określa katalog w którym użytkownik przetrzymuje własne moduły. Program <tt>lmod</tt> automatycznie sprawdzi nowe zainstalowane moduły i doda je do listy dostępnych. W modułach można wykorzystywać funkcje języków [https://pl.wikipedia.org/wiki/Tcl_(język_programowania) TCL]  lub [https://pl.wikipedia.org/wiki/Lua Lua].    | 
| − | ===  | + | Informacje jak tworzyć własne moduły znajdują się w dokumentacji Lmod: [http://lmod.readthedocs.io/en/latest/020_advanced.html#user-created-modules moduły użytkownika] oraz [http://lmod.readthedocs.io/en/latest/015_writing_modules.html tworzenie nowych modułów].  | 
| − | + | ||
| + | ===Odnosniki===  | ||
| + | '''Strona projektu:''' https://www.tacc.utexas.edu/research-development/tacc-projects/lmod  | ||
| − | + | '''Dokumentacja projektu:''' https://www.tacc.utexas.edu/research-development/tacc-projects/lmod/user-guide oraz http://lmod.readthedocs.io/  | |
| − | |||
| − | |||
| − | |||
Wersja z 13:42, 23 sty 2017
Spis treści
Opis pakietu
Pakiet Lmod 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 plgrid/nazwa-programu/wersja. W przypadku bibliotek schemat ma postać plgrid/libs/nazwa-biblioteki/wersja, a dla programów narzędziowych (np. języki oprogramowania R lub Python) plgrid/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ę.
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 swap <moduł-1> <moduł-2> - wymiana modułów w powłoce
 
- module avail - wyświetla listę wszystkich dostępnych modułów
 - module avail <nazwa> - wyświetla listę wszystkich dostępnych wersji oprogramowania o nazwie nazwa
 - module spider <tekst> - wyszukuje wszystkie moduły posiadające w nazwie określony tekst
 - module keyword <tekst> - wyszukuje wszystkie moduły posiadające w nazwie i opisie określony tekst
 
- module list - wyświetlenie listy aktualnie załadowanych modułów
 - module purge - usunięcie wszystkich załadowanych modułów
 
- module show <moduł> - wyświetla komendy wykonywane przez dany moduł
 - module whatis <moduł> - wyświetl informacje nt. danego modułu
 
- module save [kolekcja] - zapisuje załadowane moduły do kolecji domyślnej lub kolekcji o nazwie kolekcja
 - module restore [kolekcja] - ładuje moduły z kolecji domyślnej lub kolekcji o nazwie kolekcja
 - module savelist - wyświetla liste zapisanych kolekcji modułów
 - module describe [kolekcja] - wyświetla zawartość danej kolecji modułów
 - module use /path/to/personal/modulefiles - dołącza moduły z katalogu /path/to/personal/modulefiles do ścieżki wyszukiwania modułów
 
- module help - zwraca obszerną pomoc komendy module i jej podkomend
 
Przykładowe użycie
- Załadowanie najnowszej wersji kompilatora Intel
 
module add plgrid/tools/intel
- Załadowanie kompilatora Intel w wersji 17.0.1
 
module add plgrid/tools/intel/17.0.1
- Wylistowanie wszystkich dostępnych wersji kompilatorów Intel
 
module avail plgrid/tools/intel
- Wylistowanie wszystkich modułów dla blibliotek MPI na klastrze
 
module avail mpi
lub
module spider mpi
- Zamiana wersji 5.1.3 IntelMPI na wersję 2017.1
 
module swap plgrid/tools/impi/5.1.3 plgrid/tools/impi/2017.1
- Usunięcie ścieżek do kompilatora Intel w wersji 17.0.1 z środowiska
 
module rm plgrid/tools/intel/17.0.1
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.
 - Gdy istnieje potrzeba załadowania wiele razy (np. w wielu zadaniach obliczeniowych) takich samych list modułów mozna stworzyc kolekcje poleceniem module save [kolekcja] i następnie ich ładowanie poleceniem module restore [kolekcja].
 - Moduł może ładować moduły zależne, zatem jedno polecenie module add <nazwa> może załadować wiele modułów.
 - Komenda module ma skróconą wersję ml. Również niektóre podkomendy mają skrócone wersje
- ml jest równoważna module list
 - ml <nazwa> jest równoważna module add <nazwa>
 - ml -<nazwa> jest równoważna module rm <nazwa>
 - ml av jest równoważna module avail
 - ml s jest równoważna module save
 - ml r jest równoważna module restore
 
 
Wykorzystanie własnych modułów (Zaawansowane)
Pakiet Lmod umożliwia również tworzenie własnych modułów (TCL lub Lua). W tym celu należy wykonać polecenie module use /path/to/personal/modulefiles. Podana ścieżka określa katalog w którym użytkownik przetrzymuje własne moduły. Program lmod automatycznie sprawdzi nowe zainstalowane moduły i doda je do listy dostępnych. W modułach można wykorzystywać funkcje języków TCL lub Lua.
Informacje jak tworzyć własne moduły znajdują się w dokumentacji Lmod: moduły użytkownika oraz tworzenie nowych modułów.
Odnosniki
Strona projektu: https://www.tacc.utexas.edu/research-development/tacc-projects/lmod
Dokumentacja projektu: https://www.tacc.utexas.edu/research-development/tacc-projects/lmod/user-guide oraz http://lmod.readthedocs.io/
