Kolejkowanie
W artykule przedstawiona jest zasada działania systemu kolejkowania. Po zapoznaniu się z nim zachęcamy do przejścia do poradników:
Zadania
Wszystkie obliczenia w klastrze realizowane są jako zadania zarządzane przez system Slurm. Poprzez zadanie (job w nomenklaturze Slurm) rozumiana jest jednostka pracy zawierająca między innymi:
- unikalny identyfikator
- nazwę
- informacje o właścicielu i koncie rozliczeniowym
- priorytet
- stan
- ograniczenia czasowe
- zasoby obliczeniowe - rdzenie CPU, RAM, GPU
- treść - program do wykonania
Użytkownicy klastra zgłaszają żądania wykonania zadań do systemu kolejkowego Slurm, który stara się optymalnie rozdzielić zadania na ograniczone zasoby sprzętowe.
Zarówno sesje interaktywne jak i obliczenia wsadowe tworzą zadania w systemie.
Partycje
Zasoby sprzętowe przydzielone są do partycji (partition). Lista partycji znajduje się w sekcji zasoby klastra.
Zadania przesyłane do systemu kolejkowania muszą być przypisane do co najmniej jednej partycji, która na podstawie skonfigurowanych parametrów decyduje o kolejności ich wykonywania.
Użytkownik może przekazać wiele docelowych partycji w parametrze zadania co może potencjalnie zwiększyć szanse jego szybszego uruchomienia. Brak specyfikacji partycji powoduje użycie tylko domyślnej wartości dla klastra.
Partycja gpu_spot
Jest specjalną partycją przeznaczoną do uruchamiania wyłącznie zadań wsadowych, które mogą być przerywane bez utraty dotychczas przetworzonych wyników. Będą one uruchamiane na pozostałych partycjach GPU jeśli nie są one aktualnie obciążone. Dotyczy to także normalnie niedostępnych partycji.
Zadania kolejkowane w tej partycji powinny obsługiwać przerywanie i wznawianie obliczeń, na przykład za pomocą mechanizmu snapshot.
Ze względu na możliwość zatrzymania i ponownego uruchomienia zadania w tej partycji zalecane jest użycie parametru --open-mode=append
aby pliki logów nie zostały nadpisane w takim wypadku. Dzieki temu zostaną zachowane komunikaty sprzed zatrzymania danego zadania.
Partycje gpu_csi
Partycje z nazwami zaczynającymi się od gpu_csi
są dostępne tylko dla Centrum Sztucznej Inteligencji
Priorytety
Każde zadanie przesłane do systemu kolejkowania ma nadawany priorytet decydujący od kolejności wykonywania. Wartość ta jest dynamiczna i zależna od wielu czynników, między innymi:
- czasu przebywania danego zadania w kolejce
- priorytetu użytkownika wysyłającego zadanie obliczanego według algorytmu Fair Share
- typu i liczbie zasobów potrzebnych do wykonanie zadania
- partycji i jej konfiguracji
- wartości parametrów
Nice
orazQoS
nadanych przy przesłaniu zadania
Parametr Nice
służy do obniżania priorytetu zadań przez użytkownika. Obsługa QoS
nie jest obecnie zaimplementowana.
Backfill
Mniejsze zadania o mniejszym priorytecie mogą być uruchamiane w przerwach między większymi zadaniami o wyższym priorytecie aby optymalizować efektywność użycia sprzętu.