Systemy kolejkowe
Informacje ogólne
Funkcje systemu kolejkowego
- umożliwienie współdzielenia zasobów w postaci wieloprocesorych 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 kolejkowym można wyróżnić kilka logicznych modułów:
- programy klienckie - programy umożliwiające uzytkownikom, wstawianie, monitorowanie i kontrolowanie zadań np: qsub, qstat, qdel w PBS, bsub, bjobs, bkill w LSFie
- serwer - koordynuje działanie całości, zbiera informacje o systemi, 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ć inne również inne elementy. W różnych systemach moduły te mogą być róznie 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 okresowao 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
Na komputerach TASK stosowane są dwa systemy kolejkowe: LSF oraz PBS