Version 34 (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> przerywa wykonywanie eksperymentu obliczeniowego.
commit_job <jobId> allows to approve the job submitted with two phase commit mechanism to be processed by the system. The two phase commit mechanism can be used to register notifications before the processing of the job will be started by broker.
list_tasks <jobId> [<status>] lists tasks belonging to given job. Optionally it is possible to specify the task's status. Possible task statuses are listed below the table.
tasks_statuses <jobId> [<summary>] lists tasks constituting the given job with their statuses. If the summary argument is true some additionall statistics is displayed.
register_job_notification <jobId> <url> registers notification consumer for the given job
list_job_notifications <jobId> lists notifications registered for the given job
register_tasks_notification <jobId> <url> register notification for all tasks of the given job
monitor_job <jobId> [<interval>] monitors status changes of tasks belonging to given job. The interval argument determines delay in seconds between next status checks.
monitor_task <jobId> <taskId> [<interval>] monitors status changes of allocations belonging to the given tasks. The interval argument determines delay in seconds between next status checks.
task_info <jobId> <taskId> [<showDesc> [<limit>]] displays information about the given task. If the showDesc is false the task description is not shown. If the limit argument is specified the history of the task is limited to given value.
register_task_notification <jobId> <taskId> <url> registers task's notification consumer
list_task_notifications <jobId> <taskId> lists task's notifications
cancel_task <jobId> <taskId> cancels execution of the given task
commit_task <jobId> <taskId> commits the given task to be processed by the system
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