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.