LSF: Różnice pomiędzy wersjami
m (1 wersja) |
(Brak różnic)
|
Wersja z 08:31, 18 sty 2010
< Podręcznik użytkownika KDM < System kolejkowy
LSF (Load Shearing Facility) - system kolejkowy firmy Platform Computing Corporation. Jest to program zarządzający zasobami, potrafiący monitorować, analizować obciążenie sieci serwerów obliczeniowych i planować kolejność uruchamiania zadań. Za pomocą LSF można też uruchamiać zadania zdalnie w taki sposób, w jaki byłyby one uruchomione lokalnie.
System LSF nie jest już używany w WCSS.
Podstawy działania
Zadanie LSF trafia do systemu w momencie wstawienia go do kolejki za pomocą komendy bsub
. Zadanie w kolejce może oczekiwać na uruchomienie (stan PEND), lub zostać uruchomione i przejść w stan działania (RUN).
Zadanie w trakcie oczekiwania można wstrzymać i zabronić tymczasowo jego uruchomienia (stan PSUSP), natomiast zadanie już uruchomione może zostać wstrzymane przez użytkownika (USUSP) lub system (SSUSP) i wznowione, gdy zostaną spełnione odpowiednie wymagania systemowe. Wreszcie, zadanie może się zakończyć poprawnie, z błędem lub wskutek działania z zewnątrz.
Jedynym przejściem ze stanu uruchomienia w stan oczekiwania jest migracja. Wiąże się ona z zapisem stanu zadania (tzw. checkpoint), który może zostać odtworzony tylko po spełnieniu odpowiednich warunków, w tym dostępności identycznych zasobów sprzed zapisu oraz jedynie na zgodnej platformie sprzętowo-systemowej. Nie wszystkie zadania można poddać tej operacji.
Operacje na zadaniach
Wstawianie zadania do kolejki
Zadanie umieszcza się w systemie kolejkowania za pomocą komendy bsub
:
> bsub [opcje] komenda
Po wstawieniu do kolejki zadanie otrzymuje swój unikalny identyfikator liczbowy (JOBID), którym można posługiwać się sterując później zadaniem (wartość JOBID można sprawdzić wywołując polecenie bjobs
).
Argumentami bsub
są opcje dotyczące dalszego zachowania się zadania oraz lista stanowiąca nazwę i argumenty programu-zadania do wykonania. Jeśli brakuje tej ostatniej listy, bsub
pobierze ją ze standardowego wejścia tworząc skrypt.
Opcje bsub
mogą być również podawane w skrypcie, oznakowane etykietami #BSUB
. Można w ten sposób w skrypcie umieścić wszystkie potrzebne informacje i wstawić zadanie do kolejki poleceniem:
> bsub < skrypt.lsf
Oba sposoby przedstawiono poniżej na przykładzie uruchomienia komendy ls -la
w kolejce normal
:
- z linii poleceń:
> bsub -q normal ls -la
- z użyciem skryptu:
> bsub < skrypt.lsf
gdzie skrypt.lsf
ma postać:
#!/bin/bash
# opcje dla bsub:
#BSUB -q normal
# komenda do wywołania:
ls -la
Sprawdzanie stanu zadań
Po wstawieniu zadań do kolejek LSF pozwala na podglądanie w jakim stanie znajdują się zadania i jakie są jego parametry.
Do podglądu zadań służy komenda bjobs
.
> bjobs
Najważniejsze parametry tej komendy wraz z opisem zawiera poniższa tabela.
Tabela 1. Parametry bjobs
parametr
opis
wartość domyślna
-m serwer
pokaż tylko zadania uruchomione lub zawieszone na serwerze serwer
wszystkie zadania na wszystkich serwerach w klastrze
-l
dodatkowe, szczegółowe informacje o wybranych zadaniach
krótki opis zadań
-p
tylko zadania oczekujące (PEND); podaje przyczynę oczekiwania
wszystkie zadania
-r
tylko zadania już uruchomione (RUN) i nie zawieszone
wszystkie zadania
-s
tylko zadania zawieszone (SSUSP i USUSP); podaje przyczynę zawieszenia
wszystkie zadania
-u user
tylko zadania użytkownika o nazwie user;
tylko zadania użytkownika wywołującego komendę bjobs
-u all
zadania każdego z użytkowników
tylko zadania użytkownika wywołującego komendę bjobs
-q kolejka
tylko zadania z kolejki kolejka
zadania ze wszystkich kolejek
-J nazwa
tylko zadania o nazwie nazwa
wszystkie zadania
-a
również zadania zakończone w ciągu ostatniej godziny
tylko zadania obecne w kolejkach
numer_ID
tylko zadanie o podanym numerze ID
wszystkie zadania
Zadania wybierane przez bjobs
do wyświetlenia, to zadania spełniające warunki nałożone przez wszystkie podane parametry lub ich brak. Kilka przykładów wywołań bjobs
:
- wyświetla podstawowe informacje o wszystkich moich zadaniach
> bjobs
- wyświetla podstawowe informacje o zadaniach wszystkich użytkowników w kolejce
normal
, które wystartowały na serwerze grom
> bjobs -m grom -q normal -u all
- wyświetla szczegółowe informacje o zadaniu użytkownika wywołującego polecenie o nazwie 'pierwsze_zadanie'
> bjobs -l -J pierwsze_zadanie
- wyświetla podstawowe informacje o zadaniach użytkownika 'maciek' oczekujących na uruchomienie i podaje bezpośrednią przyczynę oczekiwania
> bjobs -p -u maciek
Usuwanie, modyfikowanie i historia zadań
Zadania niepoprawnie wstawione do kolejek, lub błędnie wyspecyfikowane powinny być z nich usuwane. Oszczędza to czas procesora, a nowe, poprawione zadanie wykona się szybciej. Zamiast usuwać zadanie można także zmodyfikować jego parametry tak, aby odpowiadały oczekiwaniom użytkownika.
- Aby usunąć zadanie z kolejki należy skorzystać z polecenia
bkill
.
- Polecenie
bkill
usuwa zadanie oczekujące w kolejce, lub wysyła sygnał zakończenia do działającego zadania (domyślnie jest to sygnał KILL).
- Usunąć można także większą liczbę zadań. Należy jednak postępować ostrożnie, aby nie usunąć zadań, które mają być wykonywane. Parametrem komendy jest nazwa lub identyfikator ID zadania przeznaczonego do usunięcia:
> bkill 12345
- Powyższa komenda kasuje zadanie o numerze 12345. Zamiast identyfikatora można wybrać grupę zadań do usunięcia za pomocą opcji
-m
, -u
, -q
oraz -J
. Parametry te mają identyczne znaczenie jak w przypadku komendy bjobs
.
- Do modyfikacji zadań oczekujących w kolejce służy komenda
bmod
.
- Historię uruchamianych zadań można przeglądać korzystając z polecenia
bhist
.
Wynik działania zadania
Wynik działania zadania LSF (stdout i stderr) jest zapisywany do plików, które zostały podane podczas wstawiania zadania do kolejki w opcjach komendy bsub
. Jeżeli pliki te nie zostały wyspecyfikowane, wynik działania zadania zostanie przesłany do użytkownika pocztą elektroniczną.
Serwery obliczeniowe nie pełnią funkcji serwerów pocztowych, mają jednak możliwość wysłania wiadomości. Najskuteczniej jest umieścić w katalogu własnym na serwerze plik .forward
zawierający adres e-mail, na który system pocztowy ma przesyłać wiadomości. Poczta elektroniczna nie jest jednak polecanym sposobem przekazywania wyników obliczeń, ponieważ nie ma pracujących demonów obsługujących kolejki pocztowe, dlatego potencjalnie wiadomość może "utknąć" i nie dotrzeć do odbiorcy.
Pliki wynikowe (również te wyspecyfikowane opcjami -o>/code>
oraz -e
) pozostają na serwerze, na którym zadanie zostało uruchomione. Jeżeli pliki te mają zostać przekopiowane lub przeniesione z powrotem na serwer, z którego zadanie zostało wstawione do kolejki, powinno to zostać wskazane w opcji -f
komendy bsub
.
- Przykład. Wstawianie zadania ze specyfikacją przesyłanych plików
Przykład ilustruje prawidłowe wstawienie zadania do kolejki (bsub
), wskazanie pliku wejściowego (-i
), który ma być przekopiowany na serwer wybrany do obliczeń, przekierowanie wyjścia do plików (-o
, -e
) oraz przekopiowanie wybranych plików (-f
) po zakończeniu zadania na serwer, z którego zadanie zostało wstawione do kolejki:
> bsub -i input.txt -o output.txt -e error.txt -f "output.txt < output.txt" -f "error.txt < error.txt" g98 input.txt
Stan kolejek i zasobów
Do podglądu stanu i parametrów kolejek zdefiniowanych w klastrze LSF służy komenda:
> bqueues
Kolejki wyświetlane są w kolejności zgodnej z ich priorytetem (wartość PRIO). Dla każdej kolejki można odczytać liczbę wszystkich obecnych w niej zadań (NJOBS) oraz odpowiednio liczbę zadań oczekujących, uruchomionych i wstrzymanych (PEND, RUN, SUSP). STATUS określa, czy kolejka jest dostępna (Open) i czy uruchamia obecnie zadania (Active). Pozostałe pola opisują ograniczenia nałożone na kolejki.
Więcej szczegółowych informacji o kolejkach można uzyskać wydając komendę:
> bqueues -l
Nie wszystkie kolejki uruchamiają zadania na każdym serwerze. Aby wyświetlić listę kolejek dostępnych na konkretnym serwerze, należy wydać polecenie:
> bqueues -m serwer
Jeżeli ostatnim parametrem jest nazwa kolejki, wówczas informacje będą dotyczyły tylko tej wybranej kolejki:
> bqueues short
Do podglądu stanu i parametrów serwerów służy komenda:
> bhosts
Dla każdego z serwerów można odczytać liczbę wszystkich uruchomionych na nim zadań, działających oraz zawieszonych (NJOBS, RUN, SUSP). STATUS informuje o tym, czy serwer uruchamia zadania (ok) czy jest niedostępny lub przeciążony (unavail, closed).
Więcej szczegółowych informacji o serwerach można uzyskać wydając komendę:
> bhosts -l
Jeżeli ostatnim parametrem jest nazwa serwera, wówczas informacje będą dotyczyły tylko tego wybranego serwera:
> bhosts grom
LSF w sieci
Zobacz też: konfiguracja kolejek LSF, system kolejkowy
Systemy
kolejkowe
PBSPro