Na klastrze może być zainstalowane kilka wersji tego samego programu. Każda wersja korzysta z innych bibliotek programistycznych, w zależności od używanego kompilatora, opcji użytych podczas kompilacji itd. Przed korzystaniem z danej wersji, wymagane moduły muszą być dostępne dla programu. Polecenie module służy do ustawienia środowiska pracy programu pod kątem tych zależności.
Aby mieć dostęp do wszystkich dostępnych modułów - konieczne jest zlecenie zadania interaktywnego komendą
sub-interactive
lubsrun
("Jak zlecać zadania interaktywne) lub zadania wsadowego (poniżej przykład skrptu wsadowego)
Na węźle dostępowym ui nie ma wszystkich modułów (np. modułu Gaussian) Ładowanie modułów na węźle ui nie jest zalecane, sub-skrypty są dedykowane do wykonaywania na ui.
Skrypty sub- są tak skonfigurowane, by ładować wszystkie wymagane moduły.
Dostępne są skrypty w formacie:sub-<nazwa_programu>-<numer_wersji>
które należy uruchamiać wyłącznie na węźle dostępowym ui.wcss.pl.
Dokumentacja Sub-skrypty
W celu wyświetlenia listy dostępnych modułów trzeba napisać polecenie:
abcd@ui ~ $ module avail
ABINIT/9.4.1-intel-2020b GCC/9.3.0 Libint/2.6.0-GCC-10.2.0-lmax-6-cp2k PCRE2/10.40-GCCcore-11.3.0
ABINIT/9.4.2-foss-2021a GCC/10.2.0 libjpeg-turbo/2.0.3-GCCcore-8.3.0 Perl/5.28.0-GCCcore-7.3.0
ABINIT/9.6.2-intel-2021a GCC/10.3.0 libjpeg-turbo/2.0.4-GCCcore-9.3.0 Perl/5.28.1-GCCcore-8.2.0
Możemy również podać nazwę interesującego nas modułu, by zobaczyć listę dostępnych wersji:
abcd@ui ~ $ module avail openmpi
OpenMPI/3.1.1-GCC-7.3.0-2.30 OpenMPI/4.0.3-GCC-9.3.0 OpenMPI/4.0.5-gcccuda-2020b OpenMPI/4.1.1-GCC-11.2.0
OpenMPI/3.1.3-GCC-8.2.0-2.31.1 OpenMPI/4.0.5-GCC-10.2.0 OpenMPI/4.1.1-GCC-10.3.0 OpenMPI/4.1.2-GCC-11.2.0
Do załadowania danego modułu do środowiska, wystarczy podać polecenie:
abcd@ui ~ $ module load OpenMPI/3.1.1-GCC-7.3.0-2.30
Do wyświetlanie listy aktualnie załadowanych modułów:
abcd@ui ~ $ module list
OpenMPI/3.1.1-GCC-7.3.0-2.30
Do usuwanie modułu służy polecenie:
abcd@ui ~ $ module unload OpenMPI/3.1.1-GCC-7.3.0-2.30
lub aby usunąć wszystkie moduły ze środowiska:
abcd@ui ~ $ module purge
Pełna lista dostępnych opcji, można uzyskać za pomocą man module
w zadaniu wsadowym konieczne jest umieszczenie w skrypcie
sbatch
source /usr/local/sbin/modules.sh
aby poprawnie ładowały się moduły.
Przykładowy skrypt wstawiający do kolejki zadanie wsadowe `sbatch.sh:
#!/bin/bash
##SBATCH -t 01:00:00
#SBATCH --job-name="TEST"
#SBATCH --nodes=2
#SBATCH --tasks-per-node=2
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=1GB
source /usr/local/sbin/modules.sh
module load OpenMPI/4.1.2-GCC-11.2.0