Version 36 (modified by piontek, 13 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ść false opis eksperymentu nie 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ść false to opis zadania nie 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) reserve resources that meet either the wole job or given task requirements. The reservation identifier is returned. This functionality is not implemented yet!
reservation_info <reservationId> return complex information concerning the given reservation: list of reserved resources, local identifiers of reservations, reservation time slot. This functionality id not implemented yet!
cancel_reservation <reservationId> releases reserved resources. This functionality is not implemented yet!

List of Job statuses:

  • UNCOMMITTED - the job was submitted with two phase commit option and waits to be committed,
  • SUBMITTED – the job was submitted to the system and is executed by the system,
  • SUSPENDED – the job was suspended,
  • ACTIVE – the job is active, at least one task is processed,
  • FINISHED – the job was completed,
  • FAILED – the job (at least one crucial task belonging to the job) failed
  • CANCELED – the job was canceled by the user,
  • BROKEN - one or more of crucial tasks failed, system waits until active tasks will finish and change the status of the job to FAILED.|

List of Task statuses:

  • UNSUBMITTED – the task cannot be started because of dependencies,
  • UNCOMMITED - the task waits to be committed,
  • QUEUED – the task was put into the queue and waits for execution,
  • PREPROCESSING – system makes some actions needed to start the task (looks for the resource, stages in files),
  • PENDING – the task is pending in the queueing-system,
  • RUNNING – the task is active,
  • STOPPED – the task was finished or was checkpointed, but system did not start staging out files,
  • POSTPROCESSING – system makes some actions needed to complete the task, for example stages out files, cleares working environment, etc.,
  • FINISHED – the task was completed,
  • SUSPENDED – the task was suspended,
  • FAILED – the task failed,
  • CANCELED – the task was canceled by the user.

Usage examples

Przykłady użycia klienta QCG