GRMS System Zarządzania Zadaniami Interfejs użytkownika systemu GRMS wprowadzenie Bogdan Ludwiczak bogdanl@man.poznan.pl
GRMS co to jest / do czego to służy? GRMS jest systemem szeregowania zadań dla dużych, rozproszonych systemów obliczeniowych, Główny cel: zarządzać całym procesem obsługi zadań obliczeniowych użytkowników w sposób satysfakcjonujący użytkowników (właścicieli zadań) przy spełnieniu wymagań zasobowych aplikacji, Jednocześnie administratorzy zasobów (właściciele zasobów) zachowują pełną kontrolę nad zasobami wykonującymi obliczenia.
GRMS co to jest / do czego to służy? Przygotowany z myślą o wyzwaniach środowisk typu Grid: Równoważenie obciążenia między klastrami, Zdalne zlecanie i kontrola zadań, Przygotowywanie środowiska wykonawczego zadania przed jego uruchomieniem, Kopiowanie plików użytkownika (files staging), Współpraca z innymi serwisami (CDMS, system monitorujący itp.)... Stworzony w oparciu o mechanizmy dynamicznego odkrywania i wyboru zasobów, zaawansowane algorytmy mapowania i szeregowania zadań w środowiskach typu Grid
System GRMS Funkcjonalność uruchamianie zadań użytkownika listowanie zadań użytkownika z uwzględnieniem zadanych kryteriów zarządzanie zadaniami pobieranie informacji o zadaniach znajdowanie zasobów spełniających wymagania użytkownika notyfikacja funkcje pomocnicze
Uruchamianie zadań użytkownika (job submission) najistotniejsza część funkcjonalności zdolność zapuszczenia zadania na zdalnej maszynie najlepiej spełniającej wymagania użytkownika lub na maszynie wskazanej z góry przez użytkownika
listowanie zadań użytkownika getjobslist zwraca listę (identyfikatorów) zadań należących do użytkownika, opcjonalnie listę można ograniczyć tylko do zadań o zadanym statusie
Pobieranie informacji o zadaniach Pobieranie złożonych informacji o zadaniu getjobinfo czas zlecenia, status, czas zakończenia, opis stanu, długość historii i ostatni wspis w historii), getjobhistory tablica informacji związanych z historią przetwarzania zadanie (opis zadania, czas uruchomienia, czas zlecenia i zakończenia itp.).
Zarządzanie zadaniami funkcje registerapplicationaccess rejestrowanie danych potrzebnych do checkpointowania zadania. (GRMS_JOB_ID, Web Service) addoutputfiledirs, addcheckpointfiledirs dynamiczne rejestrowanie plików i katalogów wyjściowych i checkpointowych getoutputfiledirs, getcheckpointfiledirs pobieranie listy plików wyjściowych i checkpointowych danego zadania, deleteoutputfiledirs, deletecheckpointfiledirs wyrejestrowywanie plików
Znajdowanie zasobów GRMS zwraca listę zasobów spełniających wymagania użytkownika wymagania specyfikowane są przy użyciu tego samego języka co przy uruchamianiu zadań findresources zwraca listę zasobów w formie JMC
Notyfikacja Jeśli klient (n.p. portal) lub serwis chcą byś informowane przez GRMS a n.p. o zmianach stanu zadania to muszą zaimplementować interfejs notyfikacji i zarejestrować się w GRMS ie
Funkcje pomocnicze testjobdescription weryfikowanie poprawności opisu zadania i/lub wymagań zasobowych
Cykl życia zadania
Stany zadania w systemie GRMS QUEUED zadanie zostało odebrane i oczekuje na obsługę, PREPROCESSING GRMS wykonuje pewne kroki niezbędne przed uruchomienie zadania wyszukiwanie zasobów, przenoszenie plików, itp.. PENDING zadanie oczekuje w systemie kolejkowym w stanie pending RUNNING zadanie jest wykonywane, STOPPED zadanie zakończyło się lub zostało zcheckpointowane, ale GRMS nie pobrał jeszcze jego plików wyjściowych
Stany zadania w systemie GRMS c.d. POSTPROCESSING GRMS wykonuje pewne kroki po zakończeniu wykonywania zadania, np.: pobieranie plików wyjściowych, czyszczenie katalogu roboczego, itp.. FINISHED zadanie zostało zakończone, SUSPENDED zadanie zostało zawieszone, FAILED wykonanie zadania nie powiodło się CANCELED zadanie zostało usunięte przez użytkownika
GRMS_JOB_ID Każde zadanie w systemie GRMS w momencie zlecenia otrzymuje unikalny identyfikator: GRMS_JOB_ID Wszelkie operacje na zadaniu wymagają podania jego GRMS_JOB_ID Uruchomione zadanie może pobrać swoje własne GRMS_JOB_ID z odpowiedniej zmiennej środowiskowej ustawionej przez GRMS a
Język opisu zadania GRMS Job Description (GJD) Zadania I ich wymagania zasobowe definiowane są przy pomocy języka GJD. Opis ten jest dokumentem XML zgodnym ze schemą GJD. Elementy dostępne w GJD job executable: lokalizacja pliku binarnego, argumenty wywołania, pliki które muszą być dotępne w katalogu roboczym aplikacji, zmienne środowiskowe,
GRMS Job Description standard input, standard output, standard error, checkpoint definition, (GJD)(c.d.) Wymagania zasobowe: nazwa hosta na którym zadanie ma być wykonane (jeśli jest określona to GRMS nie wykorzystuje wew. algorytmów rozdziału zasobów), system operacyjny, lokalny system kolejkowy(lsf, pbs, condor, itp.), minimalna pamięć,
GRMS Job Description (GJD)(c.d.) minimalna liczba procesorów, minimalna prędkość procesorów, parametry sieciowe (bandwidth, latency and capacity), i inne Pliki mogą być specyfikowane jako URL e gridftp i GASS oraz identyfikatory systemu zarządzania danymi (np. CDMS)
Przykłady opisu zadań Najprostszy opis programu, który nie potrzebuje żadnych argumentów, nie ma wymagań zasobowych, a użytkownik nie jest zainteresowany otrzymaniem wyników programu: <grmsjob appid="appid"> <simplejob> <executable type="single" count="1"> <file name="exec file" type="in"> </file> </executable> </simplejob> </grmsjob> <url>file:////bin/date</url>
Jeśli użytkownik chce pobrać pliki wygenerowane przez program to musi to opisać w sekcji <arguments> przy pomocy elementów <file> typu out. <grmsjob appid="appid"> <simplejob> <executable type="single" count="1"> <file name="exec file" type="in"> <url>file:////bin/tar</url> </file> <arguments> <value>cfv</value> <value>file.tar</value> <value>report</value> <file name="report" type="in"> <url>gsiftp:// access.pcss.clusterix.pl/~/examples/report</url> </file> <file name="report.tar" type="out"> <url>gsiftp:// access.pcss.clusterix.pl/~/examples/report.tar</url> </file> </arguments> </executable> </simplejob> </grmsjob>
Dostęp do GRMSa (klienty): interfejst web service owy (zaawansowane aplikacje) klient linii komend klient dla urządzeń mobilnych Portal
Klient linii komend
Portal
Klient mobilny
Instalacje i konfiguracja GRMSa na klastrze lokalnym Żadne elementy GRMSa nie wymagają instalacji na klastrze lokalnym GRMS wymaga sprawnej infrastruktury: Sieć, System kolejkowy (PBS/Torque), Globus, Serwisy clusterixowe (VUS, Sys. Monitorujący, itp..)
Globus i MPICH G2 Instalacja: Dość dobrze opisana na stronie www.globus.org, ale: są problemy z gcc ver. 4.x wymaga programu yacc/bison Pakiet globus resource management sdk zainstalować z flavorem mpicc Postępować zgodnie z raportem przygotowanym przez WP2 Ważna jest kolejność: PBS/Torque vendormpi Globus( flavor=mpicc32) MPICH G2 ( device=globus2: flavor=mpicc32)
Globus i MPICH G2 Konfiguracja: /etc/grid security/ Akceptowane CA (./certificates) Certyfikat hosta: hostkey.pem i hostcert.pem (prawa dostępu: 600 i 644)./grid mapfile GLOBUS_TCP_PORT_RANGE Otworzyć możliwie szeroki zakres portów TCP Liczba otwartych portów limituje liczbę zadań jakie mogą być zlecone przez system GRMS, Ustawić w środowisku wszystkich demonów i narzędzi (gatekeeper, gridftp, globusrun...)
MPICH G2 route owalne adresy IP węzłów obliczeniowych i zakres otwartych portów na węzłach, MPICH G2 na MPICHu Pamiętać o zmiennej P4_SETS_ALL_ENVVARS UWAGA!!! MPI_Init z biblioteki MPICH G2 powoduje zmianę katalogu bieżącego na katalog w którym znajduje się plik wykonywalny
Dodatkowe informacje i materiały http://www.clusterix.pcz.pl