Podstawy systemu kolejkowego SLURM



Podobne dokumenty
Migracja obliczeń na system Hydra

Efektywne wykorzystanie klastra Zeus w obliczeniach naukowych

Wprowadzenie do obsługi systemów obliczeniowych PCSS

Pracownia Technik Obliczeniowych

Użytkowanie systemów obliczeniowych PCSS Artur Trojanowski

Efektywne wykorzystanie klastra Zeus w obliczeniach wykonywanych pakietem Blender. Maciej Czuchry, Klemens Noga

Wykorzystanie klastra Wydziału Informatyki PB do prowadzenia własnych obliczeń. Wojciech Kwedlo Wydział Informatyki PB

Skrócony Poradnik Użytkownika

Klaster obliczeniowy

Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 4

Wprowadzenie do obliczeń na komputerach ICM

Kompilacja i uruchamianie zadań na klastrach Perszeron i Mustang.

Bartosz Bosak Piotr Kopta Tomasz Piontek

Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>

Komputery Dużej Mocy w Cyfronecie. Andrzej Oziębło Patryk Lasoń, Łukasz Flis, Marek Magryś

Logowanie z zewnątrz. Np. Program PUTTY, SSH

Materiały dodatkowe. Simulink Real-Time

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Podstawy pracy w ICM

Win Admin Replikator Instrukcja Obsługi

Instrukcja konfiguracji programu KS-ASW do pracy w trybie wielopodmiotowym

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

PROCEDURA BACKUP & RECOVER Dokument opisuje procedurę backup u i odtwarzania dla bazy Oracle 11gR2

trainxx tramxx

INSTRUKCJA INSTALACJI I PIERWSZEGO URUCHOMIENIA APLIKACJI Rodzajowa Ewidencja Wydatków plus Zamówienia i Umowy

wiczenia MPI-2 Mirosław Kupczyk PCSS,

Tworzenie i obsługa wirtualnego laboratorium komputerowego

WZÓR UMOWY. Zawarta w Białymstoku, w dniu.. pomiędzy:

Efektywne wykorzystanie zasobów obliczeniowych KDM w PCSS

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Ćwiczenie 6. Wiadomości ogólne.

Niezawodne usługi outsourcingowe na przykładzie usług kampusowych i Krajowego Magazynu Danych w sieci PIONIER

Wprowadzenie do obliczeń na komputerach ICM

Pracownia komputerowa. Dariusz wardecki, wyk II

Modelowanie Data Mining na wielką skalę z SAS Factory Miner. Paweł Plewka, SAS

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Systemy operacyjne i sieci komputerowe Szymon Wilk Konsola MMC 1

Usługi i narzędzia QCG

Infrastruktura PL-Grid - usługi dla chemii obliczeniowej

Infrastruktura PLGrid (nie tylko) dla młodych naukowców

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

Synchronizator plików (SSC) - dokumentacja

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Instalacja aplikacji

epuap Archiwizacja w Osobistym Składzie Dokumentów

Konwersja maszyny fizycznej na wirtualną.

str. 1 Informacja o zmianie treści specyfikacji istotnych warunków zamówienia Oświęcim, dnia r.

Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Sieciowa instalacja Sekafi 3 SQL

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a

III. Lista prawdopodobnych przyczyn usterek systemu komputerowego wynikających z zadania i załączników

Zasoby i usługi Wrocławskiego Centrum Sieciowo-Superkomputerowego

IBM SPSS Modeler Social Network Analysis 16 podręcznik instalowania i konfigurowania

Wykaz zmian w programie WinAdmin Replikator

SPIS TREŚCI: KARTY GRAFICZNE... 15

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Tom 6 Opis oprogramowania

ZADANIE nr 4 Sprawdzian z informatyki

Instrukcja instalacji usługi Sygnity Service

Postępowanie WCh AB Wrocław, 12 lutego 2014 r.

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

SERWER AKTUALIZACJI UpServ

Laboratorium systemów MES. Instrukcja korzystania z środowiska do ćwiczeń laboratoryjnych z zakresu Wonderware MES

Cyfronet w CTA. Andrzej Oziębło DKDM

Wprowadzenie do użytkowania infrastruktury PL Grid. Bartosz Bosak Piotr Kopta Tomasz Piontek

Tomasz Greszata - Koszalin

NOWY OPIS TECHNICZNY PRZEDMIOTU ZAMÓWIENIA

AE/ZP-27-16/14. Oprogramowanie do wykonywania kopii zapasowych oraz zarządzania maszynami wirtualnymi

VinCent Administrator

finiownia loginów. W zależności od ustawionej opcji użytkownik login:

Wykaz zmian w programie Win Admin Replikator

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

SERWER AKTUALIZACJI UpServ

Infrastruktura PLGrid dla młodych polskich naukowców

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików Konsola Zapisanie rezultatu do pliku... 50

Uruchamianie zadań w środowisku CLUSTERIX z wykorzystaniem klienta tekstowego systemu GRMS

Wykaz zmian w programie WinAdmin Replikator

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

EXSO-CORE - specyfikacja

JAVA (wersja 1.5.x SUN Microsystems), ShockWave FLASH, lokalne wyświetlanie plików w standardzie PDF (moduł zewnętrzny).

Tekla Structures 20 Instalacja

Wykaz zmian w programie Win Admin Replikator

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj Poznań, Polska

Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

SYSTEM OPERACYJNY. Monika Słomian

NS-2. Krzysztof Rusek. 26 kwietnia 2010

WorkingDoc CostControl: Precyzyjna kontrola kosztów wydruku na urządzeniach Grupy Ricoh

7 Business Ship Control dla Symfonia Handel

PR P E R Z E E Z N E T N A T C A JA C JA KO K RP R O P RA R C A Y C JN Y A JN ACTINA DATA MANAGER

Klastrowanie bazy IBM DB2. Adam Duszeńko

Instrukcja obsługi. Karta video USB + program DVR-USB/8F. Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia.

Zespól Szkół Ponadgimnazjalnych Nr 17 im. Jana Nowaka - Jeziorańskiego Al. Politechniki 37 Windows Serwer 2003 Instalacja

podstawowa obsługa panelu administracyjnego

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Mazowiecki Elektroniczny Wniosek Aplikacyjny

7 Business Ship Control dla Systemu Zarządzania Forte

Transkrypt:

Podstawy systemu kolejkowego SLURM Uniwersytet Warszawski Matematycznego i Komputerowego http:// Marcin Stolarek m.stolarek@icm.edu.pl Maciej Szpindler m.szpindler@icm.edu.pl

Plan szkolenia Organizacja i dostęp do zasobów ICM Podstawowe informacje o SLURM Tryby pracy w SLURM Przykład 1, 2 praca w trybie graficznym Specyficzne informacje o klastrze Hydra Przykład 2, 3, 4 tworzenie zadań w SLURM Przykład 5, 6 uruchamianie programów równoległych Przykład 8 użycie SLURM na BlueGene/Q Przykład 9 obliczenia na kartach GPU w SLURM Dodatkowe funkcjonalności SLURM

Login.icm.edu.pl Logowanie do sieci ICM Używamy protokołu SSH Putty (Windows), ssh (Linux, Mac) Łączenie poprzez serwer dostępowy (kolejkowy) login.icm.edu.pl (hpc.icm.edu.pl) Zastępuje dostęp przez delta/gw/atol Środowisko w stanie prawie-stabilnym

Organizacja zasobów Serwer login posiada dostęp do wszystkich ważniejszych zasobów dyskowych z różnych maszyn Aktualnie z wyjątkiem: Notos-a (BlueGene/P) i Boreasz-a (Power775) Nie ma potrzeby podwójnego transferowania danych z przesiadką na delcie Możliwość zlecania zadań bezpośrednio na systemy: Hydra, Halo2, Grom W przygotowaniu: Nostromo (BlueGene/Q) Nie dotyczy: Notos(BlueGene/P),Boreasz (Power775)

Organizacja zasobów cd. Kompilacja w trybie cross-compilation nie dostępna na serwerze kolejkowym (login) Kompilacje wykonujemy na docelowej maszynie (Nostromo) lub na węzłach obliczeniowych (Hydra, Halo2, Grom)

Organizacja zasobów (schemat) Internet (Dom, Instytut) ssh login.icm.edu.pl /icm/* boreasz notos ssh nostromo /icm/nostromo/home hydra/grom /icm/hydra/home /icm/hydra/software /icm/hydra/* halo2 /icm/halo2/home slurm /icm/home /icm/tmp

Dostępne informacje Strona wiki centrum obliczeniowego ICM UW http:///kdm/

System SLURM Menadżer zasobów (system kolejkowy) dla klastrów obliczeniowych na licencji GNU https://computing.llnl.gov/linux/slurm/ Funkcjonalność Alokacja określonych zasobów (węzłów obliczeniowych) na wyłączne użycie lub bez wyłączności Uruchamianie i zarządzenie zadaniami równoległymi na przydzielonych zasobach Kolejkowanie zadań

Terminologia SLURM Węzeł (node) - pojedynczy węzeł klastra na którym można alokować zasoby Partycja (partition) zbiór węzłów na którym kolejkowane są zadania (odpowiednik kolejki w innych systemach) Zadanie (job, job step) zestaw programów użytkownika wraz z zasobami i potencjalnymi zależnościami Własności (constraint) funkcjonalności węzła zdefiniowane przez administratora

SLURM komendy (szybki start) salloc - alokuje węzły i inne zasoby dla zadania użytkownika sbatch - wstawia skrypt zadania wsadowego do kolejki sbatch n4 moje_zadanie.sl scancel - wysyła sygnał / przerywa wykonanie zadania scancel --signal=sigkill 1234 scontrol- podgląd i modyfikacje zadań, partycji, rezerwacji sinfo - wyświetla informacje o węzłach i partycjach squeue - wyświetla stan kolejki zadań srun - uruchamia zadanie (równoległe) srun n4 --exclusive moj_program.exe

Komendy SLURM vs PBS salloc sbatch srun scancel scontrol sinfo squeue qsub qdel qalter qstat qrun

Organizacja środowiska: SLURM i moduły Narzędzie Modules służy do wyboru środowiska: docelowej architektury oraz dostępu do wymaganych aplikacji Typowy schemat pracy 1. W pierwszej kolejności wybór architektury, np.: 2. Alokacja zasobów SLURM poprzez salloc / sbatch / srun, np.: 3. Następnie w ramach zadania wybór aplikacji, np.: 4. Podobnie dostęp do kompilatorów, bibliotek, np.: UWAGA: Kolejność operacji ma znaczenie module load hydra-sl6 srun --pty p hydra bash -l module load vasp module load compilers/intel

Tryb interaktywny W trybie interaktywnym system przydziela nam określone zasoby i pozwala pracować na nich z poziomu konsoli Obliczenia wykonujemy wydając kolejne komendy Możliwość interakcji z programem Możliwość pracy z programami graficznymi (okienkowe GUI, trudne do obsługi w windows) srun --pty bash -l

Tryb wsadowy W trybie wsadowym system przydziela określone zasoby oraz uruchamia sekwencję komend opisaną w skrypcie Skrypt musi posiadać odpowiednią strukturę Brak interakcji z uruchomionym programem Komendy SLURM zamiennie jako opcje sbatch lub na początku skryptu w linii #SBATCH sbatch moje_zadanie.sl #!/bin/sh #SBATCH --time=1 #SBATCH N4 srun hostname sort moje_zadanie.sl

Zmiana parametrów zadania scontrol pozwala użytkownikowi na zmianę parametrów jego zadań, np. scontrol update JobId=<id> TimeLimit=+10 Dodaje do pierwotnego limitu czasu zadania 10 min. Format zmiany czasu to: = (nadpisanie), =+ (dodanie) lub =- (odjęcie) minuty, minuty:sekundy, godziny:minuty:sekundy, dni-godziny, dnigodziny:minuty <id> to numer zadania w SLURM, widoczny np. przez squeue

Zmienne środowiskowe SLURM W ramach zadania kontrolowanego przez SLURM dostęp do zmiennych środowiskowych SLURM_XXX SLURM_JOB_ID Zawiera identyfikator zadania SLURM_NODELIST Pozwala listować węzły na których działą zadanie SLURM_NTASKS Pozwala sprawdzić liczbę wszystkich procesów w ramach zadania Wiele innych

Przykład - SAXPY Przykładowy problem do ćwiczeń ze SLURM SAXPY (singleprecision A*X plus Y): y <- αx + y α x,y - skalar - wektory Elementarna implementacja [C]: void saxpy(int n, float a, float *x, float *y) { for (int i = 0; i < n; ++i) y[i] = a*x[i] + y[i]; } Katalog z przykładami: export EXAMPLES=/icm/hydra/software/icm/examples/slurm

Przykład 1: Hydra Zadanie interaktywnego z trybem graficznym: SAXPY w MATLAB 1. ssh Y login.icm.edu.pl 2. module load hydra-sl6 3. srun --pty p hydra A szkolenia bash l 4. module load matlab 5. export EXAMPLES=/icm/hydra/software/icm/examples/slurm 6. cp $EXAMPLES/saxpy.m. 7. matlab >> a = 2; >> n = 100; >> x = ones(1,n); y = a * ones(1,n); >> y = saxpy(n, a, x, y);

Przykład 2: Hydra SAXPY jako zadanie równoległe w MATLAB przez SLURM 1. Uruchomienie matlab 2. Import profilu równoległego (GenericSLURM) >> c = parcluster( GenericSLURM ); >> j = createjob( c ); >> n = 100; >> x = ones(1,n); y = 2.0 * ones(1,n); >> for i = 1 : 4 createtask(j, @saxpy, 1, {n, i, x, y} ); >> end >> submit(j); >> wait(j); >> out = fetchoutputs(j); out{1}

Hydra specyficzne własności Własności węzłów (constraint) Model CPU Liczba CPU x rdzeni RAM Roboczy system plików(scratch) Interconnect Liczba węzłów AMD2435,ib,noht AMD Opteron 2435 2 x 6 32 GB 250 GB Infiniband DDR + 1Gb Ethernet 96 intelx5660,ib,noht Intel(R) Xeon(R) X5660 2 x 6 24 GB 188 GB Infiniband QDR + 1Gb Ethernet 120 magnycours,noht AMD Opteron 6128 4 x 12 256 GB 188 GB 10Gb Ethernet 30 interlagos,noht AMD Opteron 6272 4 x 16 512 GB 188 GB 10Gb Ethernet 16 Pełna wersja tabeli: http:///kdm/hydra

Hydra specyficzne własności cd. Lokalizacja Zmienna środowiskowa z katalogiem dostępnym dla użytkownika Przeznaczenie Całkowita przestrzeń Współdzielona? Przeznaczona do Czy są robione intensywnych kopie zapasowe operacji (backup)? zapisu/odczytu? Quota (limit miejsca) /icm/home/ $HOME Przestrzeń przechowywania wyników obliczeń. 130TB Tak (wszystkie wezły klastra i submit host) Nie Nie Tak (min 100GB) /mnt/software - Zainstalowane aplikacje dla węzłów z SL6 20T Tak (Wszystkie węzły klastra) Nie Tak, wewnętrzny mechanizm tzw.disaster recoveryz wykorzystaniem innej siedziby Nie (przestrzeń używana dla oprogramowania). Dostępna na **nowej hydrze** $TMPDIR Lokalny scratch obliczeniowy (katalog tymczasowy) <1TB Nie Tak Nie Nie $TMPSHARED Współdzielony pomiędzy węzłami scratch obliczeniowy 108 TB Tak (Wszystkie węzły klastra) Tak Nie Tak. 10TB. Podlega automatycznemu kasowaniu. Pełna wersja tabeli: http:///kdm/hydra

Job array Funkcjonalność pozwalająca na tworzenie wielu zadań o identycznych ustawieniach Dodatkowa zmienna środowiskowa SLURM_ARRAY_TASK_ID pozwala parametryzować zadania z grupy Dostępne tylko dla zadań wsadowych uruchamianych przez sbatch, dodatkowo z opcją array sbatch --array=0,7 N1 moje_zadanie.sl sbatch --array=1,2,5,7 N1 moje_zadanie.sl sbatch --array=1-8:2 N1 moje_zadanie.sl

Zależności pomiędzy zadaniami Używamy sbatch / srun z opcją --dependency= <dependency_list> after:job_id[:jobid...] Start po rozpoczęciu określonego zadania / zadań afterany:job_id[:jobid...] Start po zakończeniu (jakimkolwiek) określonych zadań afternotok:job_id[:jobid...] Start po zakończeniu z błędem określonych zadań afterok:job_id[:jobid...] Start po poprawnym zakończeniu expand:job_id Zadanie ma wystartować jako rozszerzenie określonego zadania w tej samej partycji singleton Start po zakończeniu wszystkich innych zadań tego samego użytkownika

Przykład 3: Hydra SAXPY w C: kompilator intela 1. Alokacja węzła na hydrze module load hydra-sl6 srun --pty p hydra bash -l 2. Kompilacja na węźle cp $EXAMPLES/saxpy.c. module load compilers/intel icc o saxpy_c saxpy.c 3. Uruchomienie programu./saxpy_c

Przykład 4: Hydra SAXPY w C + MKL + kompilator intela 1. Alokacja węzła na hydrze module load hydra-sl6 srun --pty p hydra bash -l 2. Kompilacja i linkowanie na węźle cp $EXAMPLES/saxpy_mkl.c. module load compilers/intel icc mkl o saxpy_mkl saxpy_mkl.c 3. Uruchomienie programu./saxpy_mkl

Przykład 5: Hydra Job array + SAXPY 1. Przygotowanie programu na węźle cp $EXAMPLES/saxpy_arg.c. module load compilers/intel icc mkl o saxpy_arg saxpy_arg.c 2. Utworzenie skryptu kolejkowego #!/bin/bash -l #SBATCH -N 1 #SBATCH -n 1 #SBATCH A szkolenia module load compilers/intel srun saxpy_arg $SLURM_ARRAY_TASK_ID saxpy_arr.sl 3. Wstawienie do kolejki macierzy zadań sbatch --array=1,2,4 saxpy_arr.sl

Przykład 6: Hydra SAXPY z MPI 1. Przygotowanie programu na węźle cp $EXAMPLES/saxpy_mpi.c. module load compilers/intel module load mpi/openmpi/1.6.5-intel13.1.3 mpicc mkl o saxpy_mpi saxpy_mpi.c 2. Utworzenie skryptu kolejkowego #!/bin/bash l #SBATCH A szkolenia saxpy_mpi.sl module load compilers/intel mpi/openmpi/1.6.5-intel13.1.3 mpiexec saxpy_mpi 3. Wstawienie zadania równoległego do kolejki sbatch N1 n4 saxpy_mpi.sl

Przykład 7: Hydra SAXPY + OpenMP 1. Przygotowanie programu na węźle cp $EXAMPLES/saxpy_omp.c. module load compilers/intel icc openmp mkl o saxpy_omp saxpy_omp.c 2. Uruchomienie programu wielowątkowego export OMP_NUM_THREADS=4./saxpy_omp

Przykład 8: Nostromo SAXPY w Fortranie z użyciem ESSL 1. Przejście na nostromo (BlueGene/Q) ssh nostromo 2. Ustawienie środowiska module load mpi/xl module load essl 3. Przygotowanie programu dla węzłów obliczeniowych cp /opt/examples/essl/saxpy_essl.f90. mpif90 saxpy_essl.f90 -L$ESSL_LIB -lesslbg

Przykład 8: Nostromo, cd 4. Na BlueGene nie ma dostępnego trybu interaktywnego, tworzymy skrypt kolejkowy #!/bin/csh #SBATCH --nodes=1 #SBATCH --account=szkolenia srun --ntasks-per-node 1./a.out 5. Wstawiamy zadanie do kolejki sbatch saxpy_essl.sl saxpy_essl.sl

Przykład 9: Grom SAXPY w CUDA + kompilator CUDA 1. Zalogowanie na węzeł z GPU (grom) module unload hydra-sl6 srun --pty p grom --gres=gpu:1 bash -l 2. Przygotowanie programu dla GPU Przykład ze strony: https://developer.nvidia.com/content/easy-introduction-cuda-c-and-c cp /mnt/lustre/temp/mszpindl/saxpy_cuda.cu. module load cuda nvcc o saxpy_cuda saxpy_cuda.cu 3. Uruchomienie programu./saxpy_cuda

Strigger i notification SLURM może informować nas o konkretnych zdarzeniach Poprzez tzw. triggery strigger --set --jobid=1234 --time \ --offset=-600 --program=mój_program Ustawia trigger (set), który uruchomi program mój_program na 10 (offset 600) minut przed przekroczeniem limitu czasu (time) przez dane zadanie (id=1234) Poprzez komunikaty wysyłane e-mailem, sterowane opcjami srun / sbatch --mail-user=<user> --mail-type=<type> Powiadomienie o stanie zadania (type): BEGIN, END, FAIL, REQUEUE, ALL

Przydatne opcje srun --propagate=stack=unlimited --exclusive

Profiling SLURM wspiera profiling zadań Sprawdzanie profilu zakończonego zadania sh5util -j <jobid> w lokalnym katalogu utworzony zostanie plik opisujący zadanie w formacie hdf5, np.: hpc$ sh5util -j 13526 sh5util: Merging node-step files into./job_13526.h5 Zawartość pliku otwieramy narzędziem graficznym hdfview module load tools/hdfview hdfview

Profiling cd. Przykładowy profil otwarty w programie hdfview

sreport cluster AccountUtilizationByUser user=mstol start=01/09/13 end=12/10/13 format=accounts,cluster,cpucount,login,proper,used Accounting SLURM pozwala na sprawdzanie zużytych zasobów (w minutach procesora) Dla pojedynczego zadania przy użyciu sacct sacct j <jobid> -S <start zadania> \ -E <koniec zaadnia> \ -o JobID,AveRSS,MaxRSS,CPUTime,AllocCPUS,State Dla zadań użytkownika w określonym przedziale czasu przy użyciu sreport sreport cluster \ AccountUtilizationByUser user=<userid> \ start=01/09/13 end=12/10/13 \ format=accounts,cluster,cpucount,login,proper,used

Dziękujemy za uwagę! pomoc@icm.edu.pl hydra-admins@icm.edu.pl