Version 42 (modified by piontek, 14 years ago) (diff) |
---|
QCG-Klient dla infrastruktury PL-Grid
Infrastruktura QoSCosGrid wraz z opisem wymagań i procedur dla projektu PL-Grid.
Dostęp do infrastruktury QCG
Dostęp do infrastruktury QCG możliwy jest z dowolnego komputera na którym zainstalowany jest klient QCG-Broker. Dla wygody użytkowników uruchomiona została maszyna dostępowa (qcg.man.poznan.pl) z zainstalowaną wersją klienta dla użytkowników PL-GRID.
Logowanie: ssh <plguser>@qcg.man.poznan.pl
np.
ssh plgpiontek@qcg.man.poznan.pl
Przy logowaniu należy podać hasło ustawione w portalu PL-GRID.
Po zalogowaniu przed pierwszym użyciem klienta konieczna jest konfiguracja środowiska użytkownika zgodnie z wytycznymi opisanymi na maszynie dostępowej.
Opis zadania - QCG-JobProfile
Każdy eksperyment obliczniowy zlecany do wykonania na ingrastrukturze QosCosGrid musi być opisany przez dokument w formacie XML zwany pózniej "opisem zadania". Infrastruktura QCG akceptuje opisy zadań wyrazone w:
- języku QCG-JobProfile zdefiniowanym formalnie przez schemat XML - QCG-JobProfile.
- w języku JSLD (Job Submission Description Language) z rozszerzeniem HPC Basic Profile.
Przykłady opisów zadań w formacie QCG-JobProfile dostępne są na maszynie dostępowej - qcg.man.poznan.pl.
Użycie klienta
Klient QCG może być uruchomiony w twóch trybach:
- tryb poleceń – Każde odwołanie do isfrastruktury QCG jest pojedynczym wywołaniem klienta, a argumety tego wywoałania są przekazywane bezpośrednio z lini poleceń. Tryb poleceń wykorzystywany jest głównie przy wywoływaniu klienta z wszelkiego rodzaji skryptów, szczególnie wtedy, gdy przetwarzanie odpowiedzi systemu służy sterowaniu przebiegiem eksperymentu,
- tryb konsoli – tryb ten działa podobnie do kosoli poleceń systemu operacyjnego Linux/Unix. Wprowadzane przez użytkownika linie tekstu są interpretowane przez klienta.Tryb konsoli daje dodatkową funkcjonalnoćś niedostępną w trybie poleceń taka jak: aliasy, historię poleceń dostępna poprzez klawisze strzałek, zarządzanie proxy użytkownika, uzupełnianie poleceń i ścieżek plików.
Schemat użycia klient zależy od wybranego trybu:
- dla trybu poleceń: "qcg-client OPRATION [ARG1 .. ARGn]"
- dla trybu konsoli: "qcg-client -console" poczym użytkownik podaje linie tekstu w formacie "OPERATION [ARG1 .. ARGn]" do przetworzenia i wykonania na infrastrukturze QCG.
WAŻNE: Do uwierzytelnienia i delegacji uprawnień użytkownika klient wymaga poprawnej konfiguracji i dostępu do certyfikatu proxy użytkownika.
Polecenia
Niezależnie od tryby klient infrastruktury QCG wspiera następujące polecenia:
Polecenie | Argumenty | Opis |
---|---|---|
submit_job | <plik_z_opisem> [QCG lub JSDL] | Zleca eksperyment obliczeniowy do wykonania na infrastrukturze QCG. Opis zadania może być wyrażony albo przy pomocy domyślnego języka QCG, albo przy użyciu języka JSDL (Job Submission Description Language) z rozszerzeniem HPC Basic Profile. W przypadku opisu w języku JSDL format opisu (JSDL musi być jawnie podany jako parametr wywołania. Jeżeli opis jest skladniowo i logicznie poprawny zwracany jest globalnie unikalny identyfikator zadania. QCG definiuje eksperymenty obliczeniowe (ang. job) jako zbiór zadań (ang. task) z zależnościami kolejnościowymi (ang. workflow). QCG wspiera zarówno proste zadnia jak również zadania parametryczne (ang. parameter sweep) czy zadania rozproszone (w tym zadania hybrydowe MPI/OpenMP). Dla każdego zadania możliwe jest zdefiniowanie wymaganej przez nie jakości usług (ang. Quality of Service) dotyczącej zarówno charakterystyki zasobów jak i czasu wykonania. |
list_jobs | [<limit>] [<status>] | Wyświetla listę eksperymentów obliczeniowych należących do danego użytkownika. Możliwe jest ograniczenie listy do zadanej liczby ostatnich eksperymentów i/lub eksperymentów o określonym statusie. Lista wszystkich możliwych statusów z ich znaczeniami zebrana została pod poniższą tabelą. |
list_user_jobs | <użytkownik> [<limit>] [<status>] | Wyślietla listę eksperymentów należącą do podanego użytkownika. Poledenie to ma charakter administracyjny i wymaga określonych uprawnień |
test_description | <plik_z_opisem> [QCG lub JSDL] | Waliduje opis eksperymentu obliczeniowego |
translate_description | <plik_z_opisem> JSDL | Tłumaczy opis zadania z formatu JSDL do formatu QCG |
job_info | <jobId> [<pokażOpis>] | Wyświetla pełną informację o podanym eksperymencie obliczeniowym. Jeżeli pokażOpis ma wartość true opis eksperymentu jest wyświetlany. |
cancel_job | <jobId> | Anuluje lub przerywa wykonywanie eksperymentu obliczeniowego. |
commit_job | <jobId> | Zatwierdza do wykonania eksperyment zlecony z opcja commitWait=true. Mechanizm ten umożliwia zarejestrowanie notyfikacji zanim rozpocznie sie przetważanie eksperymentu. |
list_tasks | <jobId> [<status>] | Wyświetla liste zadań wchodzących w skład eksperymentu. Opcjonalnie możliwe jest ograniczenie listy do zadań o konkretnym statusie. Lista wszystkich możliwych statusów z ich znaczeniami zebrana została pod poniższą tabelą. |
tasks_statuses | <jobId> [<podsumowanie>] | Wyświetla listę zadań należacych do danego eksperymentu wraz z ich statusami. Jeżeli argument podsumowanie ma wartość true dodatkowa statystyka jest wyświetlana. |
register_job_notification | <jobId> <url> | Rejestruje odbiorcę powiadomień dla danego eksperymentu. |
list_job_notifications | <jobId> | Wyświetla liste zarejestrowanych powiadomień dla danego eksperymentu |
register_tasks_notification | <jobId> <url> | Rejestruje odbiorcę powiadomień dla wszystkich zadań danego eksperymentu. |
monitor_job | <jobId> [<odstęp>] | Monitoruje zmiany statusów zadań należących do danego eksperymentu. Argument odstęp określa odstęp w sekundach pomiędzy kolejnymi sprawdzeniami. |
monitor_task | <jobId> <taskId> [<odstęp>] | Monitoruje zmiany statusów alokacji należących do danego zadania. Argument odstęp określa odstęp w sekundach pomiędzy kolejnymi sprawdzeniami. |
task_info | <jobId> <taskId> [<pokażOpis> [<limit>]] | Wyświetla informację o danym zadaniu. Jeżeli argument pokażOpis ma wartość true to opis zadania jest wyświetlany. Jeżeli argument limit jest podany to długość historii zadania (informacja o kolejnych migracjach) jest ograniczona do zadanej wartości. |
register_task_notification | <jobId> <taskId> <url> | Rejestruje odbiorcę powiadomień dla danego zadania. |
list_task_notifications | <jobId> <taskId> | lists task's notifications |
cancel_task | <jobId> <taskId> | Anuluje lub przerywa wykonywanie danego zadania. |
commit_task | <jobId> <taskId> | Zatwierdza do wykonania zadanie zlecone z opcja commitWait=true. Mechanizm ten umożliwia zarejestrowanie notyfikacji zanim rozpocznie sie przetważanie zadania. |
reserve_resources | [<taskId>] <job_desc> (QCG or JSDL) | Rezerwuje zasoby spełniające wymagania całego eksperymentu lub pojedynczego zadania. Wyświetlany jest identyfikator rezerwacji. Funkcjonalność nie jest jeszcze dostępna! |
reservation_info | <reservationId> | Zwraca informację dotyczącą danej rezerwacji: listę zarezerwowanych zasobów, lokalnych identyfikatorów rezerwacji, czas rezerwacji. Funkcjonalność nie jest jeszcze dostępna! |
cancel_reservation | <reservationId> | Zwalnia zarezerwowane zasoby. Funkcjonalność nie jest jeszcze dostępna! |
Lista statusów
Statusy eksperymentów
- UNCOMMITTED - eksperyment został zlecony z flagą commitWait i oczekuje na zatwierdzenie,
- SUBMITTED – eksperyment został zlecony i jest przetwarzany,
- SUSPENDED – przetwarzanie eksperymentu zostało wstrzymane,
- ACTIVE – eksperyment jest "aktywny", przynajmniej jedno zadanie jest przetwarzane,
- FINISHED – eksperyment jest zakończony,
- FAILED – eksperyment sie nie powiódł. Przynajmniej jedno "kluczowe" zadanie zakończyło się błędem.
- CANCELED – eksperyment został anulowany,
- BROKEN - jedno lub więcej "kluczowych" zadań zakończyło się błędem. System czeka na zakończenie uruchomionych zadań, poczym status eksperymentu zostanie zmieniony na FAILED.|
Statusy zadań
- UNSUBMITTED – przetważanie zadania wstrzymane z powodu zależności kolejnościowych,
- UNCOMMITED - zadanie oczekuje na zatwierdzenie do przetwarzania,
- QUEUED – zadanie oczekuje w kolejce na przetwarzanie,
- PREPROCESSING – system przygotowuje środowisko uruchomieniowe dla zadania,
- PENDING – aplikacja w ramach danego zadania oczekuje na wykonanie w systemie kolejkowym,
- RUNNING – aplikacja użytkownika jest wykonywana w ramch zadania,
- STOPPED – aplikacja została zakończona, system nie rozpoczął jeszcze czynności związanych z kopiowaniem wyników i czyszczeniem środowiska wykonawczego,
- POSTPROCESSING – system wykonuje akcje mające na calu zakończenie zadania: kopije pliky wynikowe, czyści środowisko wykonawcze, etc.,
- FINISHED – zadanie zostało zakończone,
- SUSPENDED – przetwarzanie zadania zostało wstrzymane,
- FAILED – błąd przetwarzania zadania,
- CANCELED – zadanie anulowane przez użytkownika.