Table of Contents |
---|
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).
...
Info |
---|
Zalecamy wykorzystanie Katalogu Aplikacji i Usług do wyszukiwania dostępnego w PLGrid oprogramowania oraz modułów. |
Dla komendy module
należy podać parametr określający
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 przygotowano wersję też domyślną i przy jej ładowaniu ostatni człon modułu (tj. wersję)
można pominąć.
Załadowanie najnowszej domyślnej wersji kompilatora Intel
Code Block | ||
---|---|---|
| ||
module add plgrid/tools/intel |
Załadowanie kompilatora Intel w wersji 13.0
Code Block | ||
---|---|---|
| ||
module add plgrid/tools/intel/13.0 |
Spis wszystkich dostępnych wersji kompilatorów Intel
Code Block | ||
---|---|---|
| ||
module avail plgrid/tools/intel |
Zamiana wersji Matlab z wersji R2012b na R2013b
Code Block | ||
---|---|---|
| ||
module switch plgrid/apps/matlab/R2012b plgrid/apps/matlab/R2013b |
Usunięcie ścieżek do kompilatora Intel w wersji 13.0 z środowiska
Code Block | ||
---|---|---|
| ||
module addrm plgrid/tools/intel/13.0 |
Przykładowy skrypt PBS skrypt SLURM 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)
Code Block | ||
---|---|---|
| ||
#!/bin/shbash #przykladowe#SBATCH opcje dla polecenia qsub #PBS -l walltime=5:00 #PBS -l mem=1gb #PBS -q-N 1 #SBATCH --ntasks-per-node=2 #SBATCH -t 10:00 #SBATCH -p 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$SLURM_OSUBMIT_WORKDIRDIR/matlab.m > $PBS$SLURM_OSUBMIT_WORKDIRDIR/matlab.out #skasuj katalog tymczasowy: rm -rf $TMPDIR |
...
Info |
---|
Dokumentacja pakietu Lmod wykorzystywanego na klastrze Prometheus oraz Zeus: https |
...
...
...
...
...
...
readthedocs.io oraz https://www.tacc.utexas.edu/research-development/tacc-projects/lmod/user-guide |
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 module 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
Code Block | ||
---|---|---|
| ||
module avail 2>&1 | grep nazwa |
...
module spider <nazwa>
Pakiet Modules umożliwia 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 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 lmod 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.języków TCL lub Lua.
Code Block | ||||
---|---|---|---|---|
| ||||
-- -*- lua -*-
local pkgName = myModuleName()
local fullVersion = myModuleVersion()
whatis("Name: "..pkgName)
whatis("Version "..fullVersion)
whatis("Category: apps/chemistry")
whatis("Description: Molcas@UU 8.0 (v.15-06-18) quantum chemistry chemistry package")
whatis("URL: http://www.kvant.kemi.uu.se/molcas/index.html")
whatis("Keyword: QC, chemistry")
-- add path to Molcas to PATH environmental variable and set MOLCAS environmental variable
prepend_path('PATH','/net/archive/groups/plg******/software/molcas.uu.8/molcas-8.0-15.06.18_CentOS_7.0_x86_64/bin')
setenv('MOLCAS', '/net/archive/groups/plg******/software/molcas.uu.8/molcas-8.0-15.06.18_CentOS_7.0_x86_64')
add_property("state","testing")
require "math"
-- set Molcas scratch dir accordingly to SLURM environment
if (os.getenv('SLURM_JOB_ID') ~= nil) then
setenv('MOLCAS_WORKDIR', os.getenv('SCRATCHDIR'))
else
setenv('MOLCAS_WORKDIR', os.getenv('SCRATCH'))
end |