Uruchamianie zada obliczeniowych na komputerach KDM 1
plan wykładu idea kolejek algorytmy szeregowania zada zlecanie zada polecenia zwizane z zadaniem uytkownika przygotowanie skryptu uruchomieniowego 2
literatura - kolejki 1. R. Bronson, G. Naadimuthu, Operations Research, McGraw-Hill 1997 2. M. Kupczyk, Zarzdzanie systemami rozproszonymi, PCSS 3
literatura - PBS 4. M. Corbatto, An Introduction to Portable Batch System, 2000, http://hpc. Sissa.it/pbs/pbs.html 5. PBS User Guide, www.doesciencegrid.org/public/pbs 6. PBSpro, OpenPBS http://www.pbspro.com/openpbs.html http://pbs.gridworks.com/ 4
literatura - LSF 7. Running Jobs with Platform LSF, Platform, Nov. 2003, pp. 66. 8. Platform LSF Administrator s Primer, Platform, Nov. 2003, pp. 66. 9. Administering Platform LSF, Platform, Jan. 2004, pp. 580. 10.http://www.platform.com/services/supp ort/docs/index_51.html 5
kolejki - definicje proces kolejkowy składa si z klientów zgłaszajcych si do usługi, oczekujcych w kolejce, uzyskujcych usług i opuszczajcych usług system kolejkowy jest zbiorem klientów, zbiorem serwerów oraz porzdkiem, w jakim obsługiwane s zgłoszenia klientów 6
kolejki - definicje system kolejkowy jest procesem narodzin i mierci, którego populacja składa si z klientów oczekujcych na usług, albo aktualnie korzystajcych z usługi: do narodzin dochodzi, kiedy klient zgłasza si po usług, mier zachodzi, kiedy klient opuszcza usług stan systemu kolejkowego to liczba klientów usługi 7
charakterystyka kolejki system kolejkowy jest opisany przez pi elementów: wzorzec zgłosze klientów wzorzec usługi liczba serwerów pojemno usługi porzdek obsługi klienta 8
wzorzec zgłosze klientów wzorzec ten jest okrelany czasem midzy zgłoszeniami czas ten moe by deterministyczny (znany dokładnie), albo moe by zmienn losow o rozkładzie prawdopodobiestwa, o którym zakłada si, e jest znany czas ten moe by zaleny od liczby klientów w systemie, albo nie 9
wzorzec zgłosze klientów interesujce jest równie, czy zgłoszenia przychodz pojedynczo, czy grupowo oraz czy dozwolone s odmowa i rezygnacja załoeniem standardowym jest, e klienci zgłaszaj si pojedynczo, oraz e nie wystpuje ani odmowa, ani rezygnacja 10
wzorzec zgłosze klientów odmowa (balking) wystpuje, kiedy klient zgłaszajcy si odmawia wejcia do usługi, gdy kolejka jest za długa rezygnacja (reneging) wystpuje, gdy klient bdcy ju w kolejce si z niej wycofuje 11
wzorzec usługi wzorzec ten jest okrelany czasem obsługi, czyli czasem wymaganym przez jeden serwer do obsługi jednego klienta czas obsługi moe by deterministyczny, albo moe by zmienn losow o rozkładzie prawdopodobiestwa, o którym zakłada si, e jest znany czas ten moe by zaleny od liczby klientów w systemie, albo nie 12
wzorzec usługi interesujce jest równie, czy klient jest obsługiwany kompleksowo przez jeden serwer, czy przez kilka kolejnych serwerów (szeregowo) standardowym załoeniem jest, e jeden serwer jest w stanie obsłuy kompleksowo jednego klienta 13
wzorzec usługi obsługa klienta moe by realizowana w nastpujcych układach: jedna kolejka, jeden serwer jedna kolejka, wiele serwerów równolegle wiele kolejek, wiele serwerów równolegle jedna kolejka, wiele serwerów szeregowo 14
jedna kolejka, jeden serwer rozwamy system kolejkowy [Bronson1997]: 15
jedna kolejka, wiele serwerów równolegle rozwamy system kolejkowy [Bronson1997]: 16
wiele kolejek, wiele serwerów równolegle rozwamy system kolejkowy [Bronson1997]: 17
jedna kolejka, wiele serwerów szeregowo rozwamy system kolejkowy [Bronson1997]: 18
pojemno systemu kolejkowego pojemno systemu jest maksymaln liczb klientów, zarówno tych obsługiwanych, jak i tych w kolejce, których dopuszcza usługa system bez ograniczenia na liczb dopuszczonych klientów ma pojemno nieskoczon, system z ograniczeniem ma pojemno skoczon 19
organizacja kolejki organizacja kolejki (queue discipline) okrela porzdek, w jakim klienci s obsługiwani: FIFO (obsługa w kolejnoci zgłosze) LIFO (obsługiwane ostatnie zgłoszenie, stos) losowy priorytetowy 20
notacja Kendalla v/w/x/y/z gdzie: v wzorzec zgłosze w wzorzec usługi x liczba serwerów y pojemno systemu z organizacja kolejki 21
notacja - czas midzy zgłoszeniami albo czas obsługi D deterministyczny M rozkład wykładniczy Ek rozkład Erlanga G inny rozkład 22
notacja organizacja kolejki FIFO LIFO SIRO PRI GD First in, first out Last in, first out Service in random order Priority ordering kady inny porzdek 23
notacja - przykład M/D/2/5/LIFO: czasy zgłosze o rozkładzie wykładniczym czasy obsługi deterministyczne 2 serwery 5 klientów do obsługi w jednym czasie ostatni zgłoszony klient pierwszym obsługiwanym 24
notacja - przykład D/D/1: czasy zgłosze deterministyczne czasy obsługi deterministyczne tylko jeden serwer liczba obsługiwanych klientów nieograniczona organizacja kolejki FIFO 25
system kolejkowy - cele grupowanie zada w klasy pod ktem wykorzystywanych zasobów lepsze wykorzystanie zasobów zabezpieczenie przed awariami systemu, w postaci zapisywanych obrazów zada 26
rozwój systemów kolejkowych 27
kolejki typu pipe kolejki organizacyjne przekazuj zadania do kolejek typu batch, w zalenoci od parametrów zadania i aktualnego stanu kolejek day_small Kolejki typu pipe day night day_medium day_large night_small night_large Kolejki typu batch 28
kolejki typu batch kolejki obliczeniowe kada kolejka ma okrelony priorytet i limit zasobów, które zadanie moe wykorzystywa definiowana jest maksymalna liczba uruchomionych zada w kolejce. Pozostałe s kolejkowane i uruchamiane w razie moliwoci 29
kolejki typu interaktywnego kolejki zada interaktywnych (np. vi, ABAQUS, Matlab) - zadania nie wymagaj wiele czasu CPU ubieganie si o zasoby w systemie wsadowo-interakcyjnym - sterowanie parametrami kolejek wsadowych w celu uniknicia rezerwacji wszystkich dostpnych zasobów 30
kolejki typu interaktywnego najwaniejsza jest minimalizacja liczby dostpów do pamici wirtualnej, im jest ona wiksza, tym czas odpowiedzi systemu mniejszy niektóre systemy kolejkowe dostarczaj narzdzia uruchamiajcego zadania w klastrze bez koniecznoci specyfikowania nazwy serwera 31
równowaenie obcienia statyczny przydział zasobów do zadania na podstawie wiedzy o biecym obcieniu wszystkich systemów usypianie i budzenie zada w zwizku z ich priorytetami usypianie zada w kolejce aktywnej np. tylko w nocy 32
równowaenie obcienia dynamiczna migracja zada pomidzy mocno - słabo obcionymi serwerami migracja zada na serwery o bardziej odpowiednich zasobach wada migracji - niekompatybilno obrazów pamici procesów pomidzy architekturami komputerów 33
Portable Batch System (PBS) oprogramowanie realizujce szeregowanie zada przydziela zadania obliczeniowe, np. zadania wsadowe dostpnym zasobom czsto stosowane w klastrach protoplast PBS jest MRJ rozwijany w NASA w latach 90-tych 34
składniki PBS polecenia (commands) serwer zada (job server), zarzdza kolejkami wykonawca zada (job executor), pbs_mom program szeregujcy zadania (job scheduler) 35
dostpne wersje PBS OpenPBS, (open source): http://www.openpbs.org/ przekierowana na stron pbsgridworks TORQUE, (wersja OpenPBS, płatna): http://www.clusterresources.com/ PBS Professional, (płatna, Altair Eng.): http://www.pbsgridworks.com/ 36
PBS: zlecanie zada typowe zadanie przechodzi przez nastpujce etapy: zadanie jest zgłoszone do systemu (gridu, klastra) przez uytkownika: umieszczone w kolejce i czeka na uszeregowanie system znajduje dostpn maszyn, na której mona uruchomi zadanie 37
PBS: zlecanie zada typowe zadanie przechodzi przez nastpujce etapy (c.d.): system przesyła zadanie do maszyny maszyna uruchamia zadanie wyniki i komunikaty błdu umieszcza si w katalogu, z którego uruchomiono zadanie po zakoczeniu zadanie usuwane jest z kolejki i proces si koczy 38
PBS: zlecanie zada zgłoszenie zadania wykonuje si poleceniem qsub qsub [options] script_file plik script_file zawiera polecenia uruchamiane przez zadanie opcje podaj np. dat i czas wykonania zadania 39
PBS: przykład skryptu #!/bin/sh #PBS N JobName #PBS l nodes=1,walltime=6:00:00 #PBS q workqueue #PBS M uniqname@man.poznan.pl #PBS m abe -N nazwa zadania, walltime czas dostpny na maszynie, -M adres pod który podaje si stan zadania, -m co zawiera stan zadania 40
PBS: stan zadania stan zadania bada si poleceniem qstat: stan E oznacza, e zadanie zakoczyło si wykonywa, i naley posprzta H jest wstrzymywane (od przetwarzania) Q oznacza, e zadanie jest w kolejce do uruchomienia 41
PBS: stan zadania R oznacza, e zadanie jest uruchamiane S oznacza, e zadanie jest zawieszone T oznacza, e zadanie próbuje przej do innej maszyny W oznacza, e zadanie jest oczekujce, nie jest wstrzymane, ale atrybut czasu wykonania okrela czas, który nie został osignity 42
PBS: stan zadania przykład opcji: qstat u uniqname pokazuje zadania zgłoszone przez okrelonego uytkownika qstat f podaje pełn informacj o kadym zadaniu w kolejce 43
PBS: stan zadania qstat rs podaje uruchomione zadania i kiedy rozpoczły wykonywanie qstat is podaje zadania, które si nie uruchomiły i dlaczego nie qstat q podaje stan wszystkich kolejek 44
PBS: stan zadania qstat f job_id podaje dokładn informacj o danym zadaniu qstat Qf [queue_name] podaje dokładn informacj o wszytkich kolejkach albo wybranej kolejce qstat -a pokazuje wszystkie zadania 45
PBS: zmiana atrybutów zawieszonego zadania polecenie qalter [options] job_id [-[script_args]] zmienia atrybuty zadania, w ten sposób pozwalajc na wykonanie zawieszonego zadania: qalter l swap_free=10m job_id 46
PBS: usuwanie zadania polecenie usuwajce zadania w kolejce i zadania uruchomione: qdel [-W force][job_id_list] opcja W zmusza system do usunicia zadania, nawet gdy maszyna na której jest ono uruchomione jest w danej chwili niedostpna podanie listy zada powoduje usuwanie ich po kolei 47
PBS: limity zadania i kolejki polecenie qlimit pokazuje limity zada i rónych kolejek wykonania 48
PBS: historia zadania tracejobs n N w 80 job_id historia zadnia przez ostatnie N dni, w formacie wyjcia 80 kolumn, opcja w gdy zapis do pliku 49
PBS: znalezienie zadania findjobs n N u username znajd wszystkie zadania danego uytkownika przez ostatnie N dni 50
PBS: profil procesu p_qstat job_id podaje informacje o procesach tworzcych zadanie 51
Load Sharing Facility (LSF) w skład LSF Standard Edition wchodzi: Batch: system do przetwarzania zada wsadowych w rozproszonych heterogenicznych rodowiskach JobScheduler: zarzdca zada w rodowisku rozproszonym, który integruje serwery heterogeniczne w wirtualny superkomputer 52
Load Sharing Facility (LSF) w skład LSF Standard Edition wchodzi: Base: wastwa oprogramowania, na której osadzone s wszystkie pozostałe moduły LSF. Zawiera komponenty LIM, RES, API i narzdzia do zarzdzania obcieniem systemów obliczeniowych MultiCluster: wspiera rozdział zasobów na wiele klastrów komputerów przy uyciu modułów LSF, zapewniajc niezaleno zasobów oraz autonomi klastrów 53
Load Sharing Facility (LSF) oprogramowanie LSF dostpne jest na wszystkie systemy operacyjne: Linux, Solaris, MSWindows współpracuje z innymi systemami kolejkowymi (Loadleveler, SGE, NQE, PBS) 54
multiklaster - charakterystyka klastry mona budowa w oparciu o róne architektury komputerów heterogeniczne klastry mog tworzy multiklaster definiowanie kolejek do zada, które mog wykonywa si w systemach, znajdujcych si w innych klastrach łatwo zarzdzania serwerami w obrbie pojedynczego klastra. Klaster mog tworzy komputery w jednej instytucji 55
checkpointing (punkty kontrolne) LSF od wersji 3.2 umoliwia checkpointing zada na trzech poziomach: poziom jdra nie wymaga si dołczania adnych bibliotek do programu uytkownika poziom uytkownika wymaga si dołczenia do programu uytkownika specjalnej biblioteki poziom aplikacji - program musi by napisany tak, aby sam wykonywał checkpointing 56
checkpointing właciciel zadania musi mie prawo zapisu do katalogu w którym znajduj si pliki checkpointu zadania aby restartowa (uruchomi od ostatniego punktu kontrolnego - checkpointu) zadanie na innym serwerze, pliki checkpointu musz by dostpne dla obu serwerów 57
checkpointing (c.d.) bsub -k chkdir [period] job - przedłoenie zadania podlegajcego operacji automatycznego checkpointingu brestart chkdir jobid - restartowanie checkpointowanego zadania przez uytkownika - wymagana jest identyczna architektura serwera automatyczny restart zadania jest realizowany, gdy bsub podano z opcj-r 58
migracja zada zadania mogce by checkpointowane mog by migrowane do innych serwerów obliczeniowych jeli biecy serwer jest zbyt obciony, lub planowane jest jego wyłczenie. Docelowy serwer musi by binarnie kompatybilny z serwerem ródłowym bmig jobid - wymuszenie checkpointu przez właciciela zadania lub administratora LSF i wykonanie migracji do innego serwera. 59
migracja zada aby zapewni automatyczn migracj zada, zadanie musi zosta umieszczone w kolejce ze zdefiniowanym progiem migracji. Parametr MIG=number w pliku konfiguracyjnym lsb.queues lub lsb.hosts. number jest progiem migracji podawanych w minutach 60
migracja zada kolejka moe posiadac opcje PRE_EXEC i POST_EXEC zdefiniowane w pliku konfiguracyjnym lsb.queues. Zdefiniwane akcje zostan wykonane przed i/albo po wykonaniu przedłoonego zadania z identycznym JobID, z pominiciem systemu kolejkowania. 61
zrównowaenie obcienia zrównowaenie obcienia (loadbalancing) w klastrze otrzymuje si dziki zastosowaniu migracji zada - automatycznej lub manualnej przez właciciela zadania uytkownik ma moliwo przedłoenia zadanie do klastra, w którym si znajduje, bd te do zdalnego klastra, bd do konkretnego serwera. 62
zrównowaenie obcienia problem wystpuje wtedy, gdy serwery nie współdziel tego samego systemu plików: uytkownik ma moliwo manualnego skopiowania plików danych wejciowych i wyjciowych do/ze swojego katalogu domowego dziki poleceniu lsrcp dostarczonego w pakiecie LSF. Polecenie to bazuje na własnych mechanizmach zaimplementowanych w LSF uytkownik ma moliwo operowania na danych wej/wyj podajc je jako argumenty polecenia bsub z opcj -f istnieje moliwo zdefiniowania operacji kopiowania danych przed i po wykonaniu zadania wsadowego dziki parametrom kolejki: PRE_EXEC i POST_EXEC 63
współdzielenie kont uytkowników mapowanie kont uytkownika na zdalnych systemach moe zosta zrealizowane na poziomach: uytkownika: konfiguracji dokonuj zaufani uytkownicy w plikach.lsfhosts w swoich domowych katalogach umoliwiajc wolny dostp dla wyspecyfikowanych uytkowników administratora LSF: administrator dokonuje wpisu UserMap do pliku lsb.users. To rozwizanie równie opiera si na wzajemnym zaufaniu pomidzy klastrami osadzenie LSF na warstwie DCE/DFS, koncepcja kluczy wirtualnych 64
tryb interaktywny polecenia do uruchomienia zadania interaktywnego: lsgrun -m lista hostów job polecenie umoliwiajce wykonanie zadania na kadym z wyspecyfikowanych serwerów obliczeniowych lsrun job - wykonanie zadania na serwerze, który jest najmniej obciony 65
tryb interaktywny system automatycznie zapewnia poprawno zmiennych rodowiskowych na zdalnych systemach. lstcsh - interaktywny shell. Umoliwia przekierowanie wykonania zadania na zdalny serwer np.: > myjob @remotehost & 66
Load Sharing Facility (LSF) zlecanie zadania modyfikacja przedłoonego zadania (oczekujcego i uruchomionego) kontrola zadania (usunicie zadania, zawieszenie i odwieszenie zadania) 67
LSF: zlecanie zadania zlecanie zadania bsub my_job Job <567> is submitted to default queue <normal> zlecanie zadania do kolejki bsub -q [name of a queue] gdzie [name of a queue]: night (w nocy) priority (priorytetowa) idle (aktualnie wolna) short (krótka, o wysokim priorytecie) 68
LSF: modyfikacja przedłoonego zadania modyfikacja oczekujcego zadania: polecenie zmiany czasu rozpoczcia zadania 123 na godzin 3:00: bmod b 3:00 123 69
LSF: modyfikacja przedłoonego zadania modyfikacja uruchomionego zadania: polecenie zmiany wielkoci pamici i obszaru wymiany: bmod R rusage[mem=30: swp=60] 123 70
LSF: kontrola zadania polecenia zawieszenia zadania: bstop 123 Job <123> is being stopped polecenie odwieszenia zadania: bresume 123 Job <123> is being resumed 71
LSF: kontrola zadania polecenia usunicia zadania (w s.oper): bkill 123 Job <123> is being terminated usunicie zadania w LFS: bkill r 123 72
LSF: stan zadania polecenia pokazania stanu zada: bjobs pokazanie stanu zada uruchomionych: bjobs r pokazanie stanu zada oczekujcych: bjobs p 73
LSF: stan zadania polecenia pokazania stanu zada: bjobs pokazanie stanu zada uruchomionych: bjobs r pokazanie stanu zada oczekujcych: bjobs p 74
LSF: stan zadania polecenia pokazania stanu konkretnego zadania: bjobs l 123 polecenie pokazania historii zadania: bhist l 123 75
stany zadania w LSF 76
wnioski przedstawiono podstawowe informacje na temat uruchamiania zada obliczeniowych w nowoczesnych równoległych rodowiskach obliczeniowych: klastrach, multiklastrach i gridach moemy przej do czci praktycznej 77