This is an old revision of the document!
Slurm
Slurm - to system zarzadzania zasobami. Dzieki jego uzyciu nie dopuszcza sie do sytuacji kiedy wiele procesow obliczeniowych tego samego lub roznych uzytkownikow / uzytkowniczek probuje uzyc tych samych zasobow ( rdzenie, pamiec, dysk, … ) co moze doprowadzic do znacznego wydluzenia czasu ich wykonania, lub wrecz ich przerwania. Inne podobne programy to LSF, PBS/Torque, SGE ich porownanie mozna znalezc [tu.]
W Slurm :
partycja (ang. partition) - grupa wezlow obliczeniowych. Na klastrze moze istniec wiecej niz jedna partycja. Jeden wezel obliczeniowy moze nalezec do kilku partycji. zadanie obliczeniowe (ang. job) - m.in. skrypt z zadaniem obliczeniowym, ktory czeka na wykonanie lub jest wykonywany. kolejka (ang. queue) - grupa zadan obliczeniowych, ktore sie wykonuja i/lub czekajacych na wykonanie
sinfo
Polecenie sinfo wyswietla informacje o dostepnych partycjach i zasobach. Na ponizszym przykladzie widac ze na anthill23 sa dostepne 4 partycje all, long, short, test. Kazda z partycji ma inny maksymalny czas wykonywania zadania (TIMELIMIT : all - 1 dzien, long - 14 dni, short - 45 minut, test - 20 minut). Widoczne jest takze, ze wezly obliczeniowe sa w roznym stanie (STATE : down - niedostepne, mix - czesc z zasobow wezla jest wykorzystywana, alloc - wszystkie zasoby wezla sa wykorzystywane, idle - wezly oczekujace na zadania).
[anowak@anthill23 tmp]$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST all up 1-00:00:00 7 down* ant[001,102,106,108,206,302,311] all up 1-00:00:00 5 mix ant[007-008,107,208,309] all up 1-00:00:00 1 alloc ant009 all up 1-00:00:00 45 idle ant[002-006,011-012,100-101,103-105,109-110,200-205,207,209-211,300-301,303-308,310,400-411] long up 14-00:00:0 7 down* ant[001,102,106,108,206,302,311] long up 14-00:00:0 5 mix ant[007-008,107,208,309] long up 14-00:00:0 1 alloc ant009 long up 14-00:00:0 45 idle ant[002-006,011-012,100-101,103-105,109-110,200-205,207,209-211,300-301,303-308,310,400-411] short up 45:00 7 down* ant[001,102,106,108,206,302,311] short up 45:00 5 mix ant[007-008,107,208,309] short up 45:00 1 alloc ant009 short up 45:00 45 idle ant[002-006,011-012,100-101,103-105,109-110,200-205,207,209-211,300-301,303-308,310,400-411] test* up 20:00 7 down* ant[001,102,106,108,206,302,311] test* up 20:00 5 mix ant[007-008,107,208,309] test* up 20:00 1 alloc ant009 test* up 20:00 45 idle ant[002-006,011-012,100-101,103-105,109-110,200-205,207,209-211,300-301,303-308,310,400-411] [anowak@anthill23 tmp]$
squeue
Podglad aktualnie wykonywanych i czekajacych na wykonanie zadan obliczeniowych mozliwy jest za pomoca polecenie queue. Zadania w kolumnie ST (STATUS) moga byc w stanie: R oznacza zadanie ktore sie wykonuje (RUNNING), wartosc PD oznacza zadanie oczekujace na rozpoczecie wykonywania (PENDING), sa to dwa najczesniej spotykane statusy zadania.
[anowak@anthill23 tmp]$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 60589 long 1xi5_A prubach PD 0:00 1 (Priority) 60590 long 3kls_A prubach PD 0:00 1 (Priority) 60591 long 3km9_A prubach PD 0:00 1 (Priority) ... 60571 long 5l9u_A prubach PD 0:00 1 (Resources) 60580 long 6b3r_A prubach PD 0:00 1 (Priority) 60588 long 1xi4_A prubach R 1-21:04:01 1 ant009 60560 long 1vw1_A prubach R 1-21:12:51 1 ant007 60561 long 1vw2_F prubach R 1-21:12:51 1 ant008 59295 long make_kno prubach R 5-07:54:11 1 ant107 [anowak@anthill23 tmp]$
scancel
Polecenie scancel sluzy do zakonczenia zadania, ktore znajduje sie w kolejce. Najpierw wydajemy polecenie squeue w celu poznania numeru zadania, ktore chcemy zatrzymac. A nastepnie np. w celu zatrzymania zadania o numerze 59295 wydajemy polecenie :
[anowak@anthill23 tmp]$ scancel 59295
tworzenie zadan obliczeniowych, tryb interaktywny
Krotkie zadania, kompilacje oprogramowania, testy, zwykle wykonuje sie w trybie interaktywnym. Ponizej przyklad uruchomienia sesji interaktywnej z alokacja 2 rdzeni i 1GB pamieci w trybie interaktywnym. Jak widac, slurm przydzielil te zasoby na wezle obliczeniowym ant100. Nalezy pamietac zeby zakoczyc tryb interaktywny poleceniem exit dzieki temu zasoby wezla zostana zwolnione.
[anowak@anthill23 tmp]$ srun --ntasks=2 --mem=1G --pty bash -l anowak@ant100 tmp:~$ hostname ant100 anowak@ant100 tmp:~$ exit logout [anowak@anthill23 tmp]$
tworzenie zadan obliczeniowych, tryb wsadowy
Najczesciej wykorzytywany tryb rezerwowania zasobow klastra. Polega na przygotowaniu skryptu, ktory przekazujemy do wykonania na klastrze poleceniem sbatch. Cecha charakterystyczna takiego skryptu (te pliki nazywane sa batch-ami), jest to ze w ich naglowku dodaje sie dyrektywy #SBATCH, ktore sluza do definiowania, z ktorych zasobow skrypt ma korzystac.
#SBATCH --ntasks=2 # liczba rezerwowanych rdzeni #SBATCH --mem=400M # calkowita ilosc zarezerowanej pamieci (400 MB) #SBATCH --partition=all # nazwa partycji na ktorej ma byc wykonany skrypt #SBATCH --job-name="gromacs test" # nazwa dla zadania wsadowego widoczna przy przegladaniu kolejki #SBATCH --time=2-3:20 # limit czasu zadany dla zadania, w formacie (D-HH:MM) : 2 dni, 3 godziny, 20 minut #SBATCH --time=100:30:20 # limit czasu zadany dla zadania, w formacie (HH:MM:SS) : 100 godzin, 30 minut, 20 sekund #SBATCH --output=test-%A.output # sluzy do zmiany domyslnego formatu wyjscia programow uruchamianych za pomoca sbatch, '%A' zostanie zastapione nr zadania
W pelni funkcjonalne przyklady plikow batch mozna znalezc na podstronie Anthill w sekcji Anthill#Software_related_issues.