Systemy kolejkowe


Spis treści

Informacje ogólne

Funkcje systemu kolejkowego

  • umożliwienie współdzielenia zasobów w postaci wieloprocesorowych komputerów przez wielu użytkowników jednocześnie,
  • rozdział zasobów w sensie przyznawania użytkownikom żądanej ilości zasobów na określony czas,
  • umożliwienie korzystania z aplikacji równoległych przez przydzielanie odpowiedniej liczby procesorów, bez konieczności wyszukiwania wolnych procesorów przez użytkownika
  • szeregowanie zadań według kolejności ich zgłaszania lub innych priorytetów (polityki) ustalonych przez Administratora,
  • kontrola czasu i sposobu korzystania z zasobów i przerywanie zadań, które wyczerpały przydzielone limity,
  • umożliwienie administratorowi definiowania polityki przydzielania zasobów, priorytetów dla użytkowników, itp.
  • udostępnianie informacji o stanie zadań oczekujących i uruchomionych,
  • udostępnianie informacje rozliczeniowych po zakończeniu zadania.

Budowa systemu kolejkowego

W systemach kolejkowych można wyróżnić kilka logicznych modułów:

  • programy klienckie - programy umożliwiające użytkownikom wstawianie, monitorowanie i kontrolowanie zadań,
  • serwer - koordynuje działanie całości, zbiera informacje o systemie, przyjmuje zlecenia od programów klienckich i zwraca odpowiednie informacje,
  • moduł szeregujący (scheduler)- zajmuje się szeregowaniem zadań, przydziałem zasobów, zgodnie z ustaloną polityką, decyduje o kolejności uruchamiania zadań,
  • moduł monitorujący - dostarcza informacji o stanie nodów, zadań, o dostępności zasobów; zazwyczaj na każdym nodzie klastra działa osobny program,
  • moduł wykonawczo-nadzorczy - uruchamia zadania na nodach, kontroluje ich wykonanie, przekazuje wyniki do użytkownika.

Jest to zgrubny podział, systemy kolejkowe mogą zawierać również inne elementy. W różnych systemach moduły te mogą być różnie zaimplementowane - np. funkcje kilku modułów mogą być skupione w jednym programie.

Działanie systemu kolejkowego

Schemat działanie systemu kolejkowego może wyglądać następująco:

  • użytkownik za pomocą odpowiedniej komendy zgłasza zadanie,
  • system sprawdza podstawowe dane związane z żądaniem - nazwę kolejki, specyfikację wymagań. Jeśli są spełnione podstawowe kryteria, zlecenie jest przyjmowane i zapisywane w puli zleceń,
  • moduł szeregujący okresowo analizuje wszystkie zlecenia. Sprawdza dostępność zasobów, wymagania zadań, przydziela im priorytety zgodnie ze zdefiniowaną polityką, kieruje do uruchomienia zadania, dla których są wystarczające zasoby zgodnie z wyliczonymi priorytetami,
  • serwer przekazuje zadania gotowe do uruchomienia modułom nadzorczym na nodach,
  • zadanie jest wykonywane pod kontrolą modułu nadzorczego,
  • zadanie kończy się lub jest ubijane przez nadzorcę jeśli wyczerpało przyznane limity. Jeśli to konieczne kopiowane są wyniki, wysyłana jest poczta do użytkownika, zadanie jest usuwane z systemu, zapisywane są dane rozliczeniowe.

Obecnie na superkomputerach CI TASK działa system kolejkowy SLURM.

Wcześniej stosowane były: LSF oraz PBS.