Podstawy:PBS: Różnice pomiędzy wersjami
(Utworzył nową stronę „===Uruchamianie zadań === Do uruchamiania zadań służy komenda <tt>qsub</tt>. Zadania można uruchamiać w dwóch trybach: interaktywnym, gdzie do dyspozycji uż...”) |
(Dodane info o zeus-jobs-history) |
||
(Nie pokazano 18 wersji utworzonych przez 6 użytkowników) | |||
Linia 1: | Linia 1: | ||
− | + | {{DISPLAYTITLE:System kolejkowy}} | |
− | Do uruchamiania zadań służy komenda <tt>qsub</tt>. Zadania można uruchamiać w dwóch trybach: interaktywnym | + | [[Category:Podstawy]] |
+ | System kolejkowy jest wygodnym narzędziem uruchamiania zadań na zasobach obliczeniowych. W zależności od potrzeb, może on informować użytkownika o dacie i czasie rozpoczęcia, czy też zakończenia wykonywania danego zadania na wskazany adres e-mail. | ||
+ | |||
+ | ==Uruchamianie zadań == | ||
+ | Do uruchamiania zadań służy komenda <tt>qsub</tt>. Zadania można uruchamiać w dwóch trybach: interaktywnym (gdzie do dyspozycji użytkownika jest konsola terminala) lub wsadowym. W tym drugim przypadku wszystkie komendy umieszcza się w pliku. W takim pliku linijki zawierające instrukcje sterujące dla systemu kolejkowego muszą zaczynać się ciągiem znaków <tt>#PBS</tt>. Umieszcza się je w początkowej części pliku. Dzięki temu system kolejkowy jest w stanie odczytać opcje jemu właściwe właśnie z tych linijek i uruchomić pozostałe instrukcje, dotyczące już samego zadania obliczeniowego, z dalszej części pliku. Najważniejsze opcje i parametry komendy <tt>qsub</tt> zawiera poniższa tabela. | ||
{| class="wikitable" | {| class="wikitable" | ||
! width=5% |Opcja !!width=20%|Parametry !! width="50%" |Opis !!Uwagi | ! width=5% |Opcja !!width=20%|Parametry !! width="50%" |Opis !!Uwagi | ||
Linia 8: | Linia 12: | ||
| || <tt>nodes=<liczba_węzłów></tt> || Parametr służy do specyfikacji liczby wezłów || | | || <tt>nodes=<liczba_węzłów></tt> || Parametr służy do specyfikacji liczby wezłów || | ||
|- | |- | ||
− | | || <tt>ppn=<liczba rdzeni></tt> || Liczba żądanych rdzeni na każdym węźle || | + | | || <tt>ppn=<liczba rdzeni></tt> || Liczba żądanych rdzeni na każdym węźle || |
+ | |- | ||
+ | | || <tt>pmem=<ilość pamięci></tt> || Ilość pamięci operacyjnej dla każdego zaalokowanego rdzenia obliczeniowego. Alternatywnie można ustawić wymaganie pamięciowe dla całego zadania za pomocą parametru mem=. O obu przypadkach wartość należy podawać w mega- lub gigabajtach, np. 1gb. || | ||
|- | |- | ||
| || <tt>walltime=<czas obliczeń></tt> || Maksymalny czas obliczeń. Czas należy podawać w formacie DD:GG:MM:SS gdzie DD, GG, MM, SS oznaczają odpowiednio żądaną liczbę dni, godzin, minut i sekund na zadanie. || | | || <tt>walltime=<czas obliczeń></tt> || Maksymalny czas obliczeń. Czas należy podawać w formacie DD:GG:MM:SS gdzie DD, GG, MM, SS oznaczają odpowiednio żądaną liczbę dni, godzin, minut i sekund na zadanie. || | ||
Linia 16: | Linia 22: | ||
| <tt>-j</tt> || <tt>oe</tt> || Połączenie standardowego wyjścia ze standardowym wyjściem błędów podczas wykonywania obliczeń || | | <tt>-j</tt> || <tt>oe</tt> || Połączenie standardowego wyjścia ze standardowym wyjściem błędów podczas wykonywania obliczeń || | ||
|- | |- | ||
− | | <tt>-m</tt> || <tt>b</tt>, <tt>e</tt> lub <tt>a</tt> || System kolejkowy wyśle e-mail do użytkownika jeśli zadanie rozpocznie się wykonywać <tt>b</tt>, skończy wykonywać <tt>e</tt> lub zostanie przerwane <tt>a</tt>. | + | | <tt>-m</tt> || <tt>b</tt>, <tt>e</tt> lub <tt>a</tt> || System kolejkowy wyśle e-mail do użytkownika jeśli zadanie rozpocznie się wykonywać <tt>b</tt>, skończy wykonywać <tt>e</tt> lub zostanie przerwane <tt>a</tt>. || |
|- | |- | ||
| <tt>-M</tt> || <tt><adres@e-mail.użytkownika></tt> || Adres e-mail użytkownika na który ma zostać wysłana wiadomość o stanie zadania || | | <tt>-M</tt> || <tt><adres@e-mail.użytkownika></tt> || Adres e-mail użytkownika na który ma zostać wysłana wiadomość o stanie zadania || | ||
Linia 22: | Linia 28: | ||
| <tt>-q</tt> || <tt><nazwa_kolejki></tt> || Specyfikuje nazwę kolejki do której ma trafić zadanie || | | <tt>-q</tt> || <tt><nazwa_kolejki></tt> || Specyfikuje nazwę kolejki do której ma trafić zadanie || | ||
|- | |- | ||
− | | <tt>-I</tt> || || uruchomienie zadania | + | | <tt>-I</tt> || || uruchomienie zadania interaktywnego || |
|- | |- | ||
− | | <tt>-X</tt> || || w trybie interaktywnym pozwala na uruchamianie programów okienkowych || | + | | <tt>-X</tt> || || w trybie interaktywnym pozwala na uruchamianie programów okienkowych || |
|} | |} | ||
− | ===Wyświetlanie informacji o stanie zadań w kolejkach | + | ==Usuwanie zadań== |
+ | Do usuwania zadań służy komenda <tt>qdel</tt>. W celu sunięcia zadania z kolejki potrzebny jest również jego identyfikator numeryczny (jobid), który można wyświetlić komendą <tt>qstat</tt>. Cała sekwencja może wyglądać następująco: | ||
+ | <pre> | ||
+ | qdel 12345678910 | ||
+ | </pre> | ||
+ | Jeśli zadania nie da się usunąć należy skontaktować się z administratorem komputera. | ||
+ | |||
+ | ==Wyświetlanie informacji o stanie zadań w kolejkach== | ||
Do wyświetlania informacji o zadaniach oraz kolejkach służy komenda <tt>qstat</tt>. Wywołanie komendy bez parametrów spowoduje wyświetlenie informacji o wszystkich zadaniach w kolejkach. Najczęściej używane opcje komendy <tt>qstat</tt> zebrano w tabeli poniżej. | Do wyświetlania informacji o zadaniach oraz kolejkach służy komenda <tt>qstat</tt>. Wywołanie komendy bez parametrów spowoduje wyświetlenie informacji o wszystkich zadaniach w kolejkach. Najczęściej używane opcje komendy <tt>qstat</tt> zebrano w tabeli poniżej. | ||
Linia 39: | Linia 52: | ||
| <tt><identyfikator zadania></tt> || || Wyświetla informacje o danym zadaniu. || | | <tt><identyfikator zadania></tt> || || Wyświetla informacje o danym zadaniu. || | ||
|- | |- | ||
− | | <tt>-f</tt> || || Pełna | + | | <tt>-f</tt> || || Pełna informacja o wszystkich zadaniach systemu kolejkowego. || |
|} | |} | ||
− | == | + | Do wyświetlenia listy zakolejkowanych oraz uruchomionych już zadań można wykorzystać także komendę <tt>zeus-jobs</tt>. |
− | Do | + | Dzięki niej można wyświetlić także efektywność przeprowadzanych obliczeń oraz ich zapotrzebowanie na pamięć operacyjną. |
− | < | + | Dostępne opcje komendy <tt>pro-jobs</tt> można znaleźć pod przełącznikiem <tt>-h/--help</tt>, tj. <tt>zeus-jobs -h</tt>. |
− | + | Przykładowe użycie komendy: | |
− | </ | + | * informacje o wszystkich zadaniach użytkownika: <tt>zeus-jobs</tt> |
− | + | * statystyki tylko dla zadań aktualnie działających w kolejce <plgrid>plgrid</tt> wraz z informacją o węzłach (i ilości rdzeni na węźle) na których zadanie działa: <tt>zeus-jobs -rNQ plgrid</tt> | |
+ | * szczegółowe informacje na temat zadań o ID 12345 oraz 12346: <tt>zeus-jobs -f 12345,12346</tt> | ||
+ | |||
+ | ==Wyświetlanie informacji o zadaniach zakończonych== | ||
+ | Do wyświetlania informacji o zadaniach już zakończonych służy komenda <tt>zeus-jobs-history</tt>. Pozwala ona wyświetlić statystyki zadań w formacie podobnym do <tt>pro-jobs</tt>. Domyślnie komenda wyświetla 20 najwcześniej zakończonych zadań użytkownika. Opcje komendy można znaleźć pod przełącznikiem <tt>-h/--help</tt>, tj. <tt>zeus-jobs-history -h</tt>. | ||
+ | Przykłady użycia komendy: | ||
+ | * standardowy output 20 ostatnich zadań: <tt>zeus-jobs-history</tt> | ||
+ | * bardziej szczegółowe statystyki dla zadań 12345 oraz 12346: <tt>zeus-jobs-history -f 12345,12346</tt> | ||
+ | * statystyki ostatnich 50 zadań w odwrotnej kolejności bez wyświetlania nazw kolumn: <tt>zeus-jobs-history -til 50</tt> | ||
+ | |||
+ | |||
+ | ==Przydatne zmienne systemu kolejkowego== | ||
* <tt>$PBS_NODEFILE</tt> Zmienna wskazuje na plik z nazwami węzłów przydzielonymi dla zadania. Najczęściej wykorzystywany do określania liczby rdzeni przydzielonej zadaniu np.: | * <tt>$PBS_NODEFILE</tt> Zmienna wskazuje na plik z nazwami węzłów przydzielonymi dla zadania. Najczęściej wykorzystywany do określania liczby rdzeni przydzielonej zadaniu np.: | ||
<pre> | <pre> | ||
Linia 55: | Linia 79: | ||
<pre> | <pre> | ||
cd $PBS_O_WORKDIR | cd $PBS_O_WORKDIR | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | ==Przykłady== | ||
+ | ===Zadanie interaktywne=== | ||
+ | Uruchomienie zadanie interaktywnego w kolejce "l_interactive" z możliwością pracy w trybie tekstowym wymagające jednego rdzenia na jednym węźle obliczeniowym. | ||
+ | <pre> | ||
+ | qsub -I -q l_interactive -l nodes=1:ppn=1 | ||
+ | </pre> | ||
+ | |||
+ | Uruchomienie zadanie interaktywnego w kolejce "l_interactive" z możliwością pracy w trybie graficznym wymagające jednego rdzenia na jednym węźle obliczeniowym. | ||
+ | <pre> | ||
+ | qsub -IX -q l_interactive -l nodes=1:ppn=1 | ||
+ | </pre> | ||
+ | '''Uwaga:''' W przypadku chęci skorzystania z trybu graficznego należy pamiętać o [[Podstawy#Logowanie|połączeniu się]] z maszyną dostępową klastra w sposób umożliwiający przenoszenie tego trybu. | ||
+ | ===Zadanie jednordzeniowe=== | ||
+ | Uruchomienie z linii poleceń zadania w kolejce "l_infinite" wymagające jednego rdzenia na jednym węźle obliczeniowym: | ||
+ | <pre> | ||
+ | qsub -q l_infinite -l nodes=1:ppn=1 nazwa_skryptu_do_uruchomienia | ||
+ | </pre> | ||
+ | W przypadku skryptu należy użyć poniższych wpisów: | ||
+ | <pre> | ||
+ | #PBS -q l_infinite | ||
+ | #PBS -l nodes=1:ppn=1 | ||
+ | </pre> | ||
+ | ===Zadanie rezerwujące cały węzeł obliczeniowy === | ||
+ | W pierwszej kolejności należy wiedzieć, czy na danej maszynie wszystkie węzły obliczeniowe mają tę samę liczbę rdzeni. TODO | ||
+ | Uruchomienie z linii poleceń zadania w kolejce "l_infinite" rezerwujące cały 12-rdzeniowy węzeł obliczeniowy: | ||
+ | <pre> | ||
+ | qsub -q l_infinite -l nodes=1:ppn=12 nazwa_skryptu_do_uruchomienia | ||
+ | </pre> | ||
+ | W przypadku skryptu należy użyć poniższych wpisów: | ||
+ | <pre> | ||
+ | #PBS -q l_infinite | ||
+ | #PBS -l nodes=1:ppn=12 | ||
+ | </pre> | ||
+ | |||
+ | ===Zadanie rezerwujące po X procesorów na Y wezłach obliczeniowych === | ||
+ | '''Uwaga! Jeżeli używanych jest więcej, niż jeden węzeł obliczeniowy, wartość parametru ppn (ilość procesorów na węzeł, w tym przypadku X) musi wynosić maksymalną ilość procesorów na węźle (dla węzłów z procesorami Intel: 12; dla procesorów AMD: 64).''' | ||
+ | |||
+ | Uruchomienie z linii poleceń zadania w kolejce "l_infinite" rezerwujące po X procesorów na Y wezłach obliczeniowych: | ||
+ | <pre> | ||
+ | qsub -q l_infinite -l nodes=Y:ppn=X nazwa_skryptu_do_uruchomienia | ||
+ | </pre> | ||
+ | W przypadku skryptu należy użyć poniższych wpisów: | ||
+ | <pre> | ||
+ | #PBS -q l_infinite | ||
+ | #PBS -l nodes=Y:ppn=X | ||
</pre> | </pre> |
Aktualna wersja na dzień 09:27, 12 wrz 2016
System kolejkowy jest wygodnym narzędziem uruchamiania zadań na zasobach obliczeniowych. W zależności od potrzeb, może on informować użytkownika o dacie i czasie rozpoczęcia, czy też zakończenia wykonywania danego zadania na wskazany adres e-mail.
Spis treści
Uruchamianie zadań
Do uruchamiania zadań służy komenda qsub. Zadania można uruchamiać w dwóch trybach: interaktywnym (gdzie do dyspozycji użytkownika jest konsola terminala) lub wsadowym. W tym drugim przypadku wszystkie komendy umieszcza się w pliku. W takim pliku linijki zawierające instrukcje sterujące dla systemu kolejkowego muszą zaczynać się ciągiem znaków #PBS. Umieszcza się je w początkowej części pliku. Dzięki temu system kolejkowy jest w stanie odczytać opcje jemu właściwe właśnie z tych linijek i uruchomić pozostałe instrukcje, dotyczące już samego zadania obliczeniowego, z dalszej części pliku. Najważniejsze opcje i parametry komendy qsub zawiera poniższa tabela.
Opcja | Parametry | Opis | Uwagi |
---|---|---|---|
-l | Opcja służy do specyfikacji zasobów (rdzeni, węzłów pamięci) dla zadania. Poszczególne opcje można łączyć w jednej linii. W takim przypadku należy rozdzielić je znakiem dwukropka. | ||
nodes=<liczba_węzłów> | Parametr służy do specyfikacji liczby wezłów | ||
ppn=<liczba rdzeni> | Liczba żądanych rdzeni na każdym węźle | ||
pmem=<ilość pamięci> | Ilość pamięci operacyjnej dla każdego zaalokowanego rdzenia obliczeniowego. Alternatywnie można ustawić wymaganie pamięciowe dla całego zadania za pomocą parametru mem=. O obu przypadkach wartość należy podawać w mega- lub gigabajtach, np. 1gb. | ||
walltime=<czas obliczeń> | Maksymalny czas obliczeń. Czas należy podawać w formacie DD:GG:MM:SS gdzie DD, GG, MM, SS oznaczają odpowiednio żądaną liczbę dni, godzin, minut i sekund na zadanie. | ||
-N | <nazwa_zadania> | Nazwa zadania w systemie kolejkowym | |
-j | oe | Połączenie standardowego wyjścia ze standardowym wyjściem błędów podczas wykonywania obliczeń | |
-m | b, e lub a | System kolejkowy wyśle e-mail do użytkownika jeśli zadanie rozpocznie się wykonywać b, skończy wykonywać e lub zostanie przerwane a. | |
-M | <adres@e-mail.użytkownika> | Adres e-mail użytkownika na który ma zostać wysłana wiadomość o stanie zadania | |
-q | <nazwa_kolejki> | Specyfikuje nazwę kolejki do której ma trafić zadanie | |
-I | uruchomienie zadania interaktywnego | ||
-X | w trybie interaktywnym pozwala na uruchamianie programów okienkowych |
Usuwanie zadań
Do usuwania zadań służy komenda qdel. W celu sunięcia zadania z kolejki potrzebny jest również jego identyfikator numeryczny (jobid), który można wyświetlić komendą qstat. Cała sekwencja może wyglądać następująco:
qdel 12345678910
Jeśli zadania nie da się usunąć należy skontaktować się z administratorem komputera.
Wyświetlanie informacji o stanie zadań w kolejkach
Do wyświetlania informacji o zadaniach oraz kolejkach służy komenda qstat. Wywołanie komendy bez parametrów spowoduje wyświetlenie informacji o wszystkich zadaniach w kolejkach. Najczęściej używane opcje komendy qstat zebrano w tabeli poniżej.
Opcja | Parametry | Opis | Uwagi |
---|---|---|---|
-q | <nazwa_kolejki> | Bez parametrów wyświetla informacje o dostępnych kolejkach i ich parametrach. | |
-u | <nazwa_użytkownika> | Wyświetla informacje o zadaniach danego użytkownika. | |
<identyfikator zadania> | Wyświetla informacje o danym zadaniu. | ||
-f | Pełna informacja o wszystkich zadaniach systemu kolejkowego. |
Do wyświetlenia listy zakolejkowanych oraz uruchomionych już zadań można wykorzystać także komendę zeus-jobs. Dzięki niej można wyświetlić także efektywność przeprowadzanych obliczeń oraz ich zapotrzebowanie na pamięć operacyjną. Dostępne opcje komendy pro-jobs można znaleźć pod przełącznikiem -h/--help, tj. zeus-jobs -h. Przykładowe użycie komendy:
- informacje o wszystkich zadaniach użytkownika: zeus-jobs
- statystyki tylko dla zadań aktualnie działających w kolejce <plgrid>plgrid wraz z informacją o węzłach (i ilości rdzeni na węźle) na których zadanie działa: zeus-jobs -rNQ plgrid
- szczegółowe informacje na temat zadań o ID 12345 oraz 12346: zeus-jobs -f 12345,12346
Wyświetlanie informacji o zadaniach zakończonych
Do wyświetlania informacji o zadaniach już zakończonych służy komenda zeus-jobs-history. Pozwala ona wyświetlić statystyki zadań w formacie podobnym do pro-jobs. Domyślnie komenda wyświetla 20 najwcześniej zakończonych zadań użytkownika. Opcje komendy można znaleźć pod przełącznikiem -h/--help, tj. zeus-jobs-history -h. Przykłady użycia komendy:
- standardowy output 20 ostatnich zadań: zeus-jobs-history
- bardziej szczegółowe statystyki dla zadań 12345 oraz 12346: zeus-jobs-history -f 12345,12346
- statystyki ostatnich 50 zadań w odwrotnej kolejności bez wyświetlania nazw kolumn: zeus-jobs-history -til 50
Przydatne zmienne systemu kolejkowego
- $PBS_NODEFILE Zmienna wskazuje na plik z nazwami węzłów przydzielonymi dla zadania. Najczęściej wykorzystywany do określania liczby rdzeni przydzielonej zadaniu np.:
export NPROC=`cat $PBS_NODEFILE | wc -l`
- $PBS_O_WORKDIR Zmienna wskazuje na katalog, z kkórego uruchomiono obliczenia. Najczęściej wykorzystywana do wskazania plików dla zadania np.:
cd $PBS_O_WORKDIR
Przykłady
Zadanie interaktywne
Uruchomienie zadanie interaktywnego w kolejce "l_interactive" z możliwością pracy w trybie tekstowym wymagające jednego rdzenia na jednym węźle obliczeniowym.
qsub -I -q l_interactive -l nodes=1:ppn=1
Uruchomienie zadanie interaktywnego w kolejce "l_interactive" z możliwością pracy w trybie graficznym wymagające jednego rdzenia na jednym węźle obliczeniowym.
qsub -IX -q l_interactive -l nodes=1:ppn=1
Uwaga: W przypadku chęci skorzystania z trybu graficznego należy pamiętać o połączeniu się z maszyną dostępową klastra w sposób umożliwiający przenoszenie tego trybu.
Zadanie jednordzeniowe
Uruchomienie z linii poleceń zadania w kolejce "l_infinite" wymagające jednego rdzenia na jednym węźle obliczeniowym:
qsub -q l_infinite -l nodes=1:ppn=1 nazwa_skryptu_do_uruchomienia
W przypadku skryptu należy użyć poniższych wpisów:
#PBS -q l_infinite #PBS -l nodes=1:ppn=1
Zadanie rezerwujące cały węzeł obliczeniowy
W pierwszej kolejności należy wiedzieć, czy na danej maszynie wszystkie węzły obliczeniowe mają tę samę liczbę rdzeni. TODO Uruchomienie z linii poleceń zadania w kolejce "l_infinite" rezerwujące cały 12-rdzeniowy węzeł obliczeniowy:
qsub -q l_infinite -l nodes=1:ppn=12 nazwa_skryptu_do_uruchomienia
W przypadku skryptu należy użyć poniższych wpisów:
#PBS -q l_infinite #PBS -l nodes=1:ppn=12
Zadanie rezerwujące po X procesorów na Y wezłach obliczeniowych
Uwaga! Jeżeli używanych jest więcej, niż jeden węzeł obliczeniowy, wartość parametru ppn (ilość procesorów na węzeł, w tym przypadku X) musi wynosić maksymalną ilość procesorów na węźle (dla węzłów z procesorami Intel: 12; dla procesorów AMD: 64).
Uruchomienie z linii poleceń zadania w kolejce "l_infinite" rezerwujące po X procesorów na Y wezłach obliczeniowych:
qsub -q l_infinite -l nodes=Y:ppn=X nazwa_skryptu_do_uruchomienia
W przypadku skryptu należy użyć poniższych wpisów:
#PBS -q l_infinite #PBS -l nodes=Y:ppn=X