===== 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 long, medium, short, test. Kazda z partycji ma inny maksymalny czas wykonywania zadania (TIMELIMIT : long - 6 dni, medium - 3 dni, short - 1 dzien, test - godzina i 30 minut). Widoczne jest takze, ze wszystie wezly obliczeniowe sa w obecnie dostepne (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 long up 6-00:00:00 10 idle ant[007-008,602-609] medium up 3-00:00:00 10 idle ant[007-008,602-609] short up 1-00:00:00 10 idle ant[007-008,602-609] test* up 1:30:00 10 idle ant[007-008,602-609] [anowak@anthill23 tmp]$ ==== squeue ==== Podglad aktualnie wykonywanych i czekajacych na wykonanie zadan obliczeniowych mozliwy jest za pomoca polecenie ''squeue''. 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) 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 ant607 [anowak@anthill23 tmp]$ ==== scancel ==== Polecenie ''scancel'' sluzy do zakonczenia zadania, ktore znajduje sie w kolejce. Najpierw wydajemy polecenie ''squeue'' w celu poznania numeru zadania (kolumna JOBID), 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 itp. 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 ant007. **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@ant007 tmp:~$ hostname ant007 anowak@ant007 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 alogowania zasobow, z ktorych skrypt ma korzystac. #SBATCH --ntasks=2 # liczba rezerwowanych rdzeni #SBATCH --mem=400M # calkowita ilosc zarezerowanej pamieci (400 MB) #SBATCH --partition=short # 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 [[anthill_desc|tu]].