Fluent: Wstawianie do kolejki
From Centrum Komputerów Dużej Mocy, ICM Uniwersytet Warszawski
| FLUENT | |
|---|---|
| |
| Produkt: | FLUENT |
| Producent: | ANSYS |
| Licencja: | |
| Zainstalowany na: | halo2 rekin labuz1 labuz3 lab edukacyjny |
| Wersja: | 12.1, 13.0.LM2, 14.0 |
| Email: | fluent@icm.edu.pl |
| Program Fluent | |
| Licencja krajowa | |
| Fluent w ICM | |
| Uruchamianie | |
| Obliczenia równoległe | |
| Program Gambit | |
| Gambit w ICM | |
| Uruchamianie | |
| Program Tgrid | |
| Tgrid w ICM | |
| Uruchamianie | |
| Obliczenia w ICM | |
| Tryb wsadowy | |
| Fluent sekwencyjny | |
| Fluent równoległy | |
| Wstawianie do kolejki | |
| Rozmaitości | |
| Projekty użytkowników | |
| Linki | |
Uruchamianie obliczeń klastrze można wykonywać tylko za pośrednictwem systemu kolejkowego.
Przed wstawieniem zadania do kolejki należy upewnić się, że opisujący je skrypt zapisany jest w pliku wykonywalnym.
Contents |
Pliki wykonywalne - atrybuty pliku
Załóżmy, że skrypt kolejkowy został zapisany w pliku o nazwie job. Polecenie:
ls -l job
pozwala wyświetlić atrybuty tego pliku.
-rwxr-xr-x 1 user group 138 Oct 30 16:05 job
x oznacza, że plik jest wykonywalny.
Jeśli symbol x nie występuje na zaznaczonej pozycji, należy zmienić atrybuty pliku aby uczynić go wykonywalnym. Służy do tego polecenie:
chmod 755 job
Polecenie qsub
Zadanie wstawia się do kolejki za pomocą polecenia:
qsub ./job
Możliwość szybkiego sprawdzenia poprawności zadania wsadowego zapewnia kolejka test. Nie jest to kolejka przeznaczona do prowadzenia obliczeń i dlatego obowiązuje na niej ograniczenie czasu wykonywania zadania do 15 minut. Wstawienie zadania do kolejki test nastąpi w wyniku wydania polecenia:
qsub -q test ./job
Uwaga o kolejkach na klastrze halo
Wszelkie zadania należy wstawiać do kolejki halo, ewentualnie test. Przydział zasobów w zależności od ustaleń podanych w skrypcie kolejkowym jest następujący:
- zadania z
ppn>2 trafiają na węzły v40z (ośmioprocesorowe) - pozostałe w większości wypadków na e325 (dwuprocesorowe)
-
walltime < 15 minutoraz zadanie mieszczące się na dwóch węzłach dwuprocesorowych - kolejka test (praktycznie natychmiastowy start) - na zadanie testowe są przydzielone dwa węzły
- Krotki opis wezłów
- 97x 2-procesorowe Opteron 2GHz, 2GB ram, 76GB przestrzeni dyskowej IDE, oraz
- 12x 4-procesorowe Opteron 2.2GHz dual-core (widoczne jako 8 procesorow), 16GB ram, 112GB macierzy dyskowej SCSI.
- Zadania 1:ppn=(1|2) maja pierwszeństwo na 80 nodach dwuprocesorowych
Polecenie qstat
Po umieszczeniu zadania w kolejce warto jest sprawdzić, co dzieje się z zadaniem. Służy do tego polecenie qstat.
Polecenie qstat ma kilka zastosowań:
- sprawdzanie statusu zadania oraz danych dotyczących zarezerwowanych dla niego zasobów
- sprawdzanie zajętości komputera
- sprawdzanie limitów kolejek dostępnych w systemie (pełna lista kolejek)
Standardowy zestaw informacji wypisywanych po wydaniu polecenia qstat zawiera nastepujące pozycje:
-
Job idoznacza numer zadania przydzielony przez system kolejkowy -
Namenazwa zadania w kolejce (zgodna z nazwą podana w skrypcie kolejkowym frazą#PBS -N zadanie -
Usernazwa użytkownika -
Time Usewykorzystany czas -
Sstatus zadania.Roznacza, że zadanie jest wykonywane,Qoznacza, że zadanie oczekuje na wykonanie. -
Queuenazwa kolejki. Ustawienia na klastrze halo są takie, że dobór kolejki następuje automatycznie na podstawie charakterystyki zadania (liczba procesorów, czas obliczeń). Wyjątkiem jest kolejka testowa 'test'.
- Poniżej podany jest przykładowy zestaw informacji uzyskanych za pomocą polecenia
qstat:
Job id Name User Time Use S Queue ------------------- ---------------- ---------------- -------- - ----- 69195.halo test ala 311:28:1 R halo_1n_336h 69214.halo zadanie basia 621:42:4 R halo_1n_336h 69209.halo tunel_223 basia 621:54:4 R halo_1n_336h 71260.halo most zosia 0 Q halo_16n_336h
Wykonując polecenie qstat z różnymi opcjami pozwala modyfikować wypisywane informacje:
- -a wypisuje skolejkowane zadania
- -f podaje pełną informację o skolejkowanych zadaniach
- -q podaje informacje o limitach kolejek
- -Q podaje informacje o zajętości kolejek
- -B podaje informacje o serwerze kolejkowania
- -n wypisuje zadania w kolejkach z podaniem węzłów, na których są wykonywane
- -u nazwa_użytkownika wypisuje zadania wysłane przez użytkownika o podanej nazwie.
Opcje można ze sobą łączyć. Na przykład polecenie qsub -n -u ala wyświetli informację o wszystkich zadaniach umieszczonych w kolejce (oczekujących na wykonywanie oraz wykonywanych) przez użytkownika ala wraz z podaniem numerów węzłów przydzielonych do realizacji
tych zadań.
Po wstawieniu zadania do kolejki system kolejkowy powiadamia o przyznanym numerze zadania (job_id). Wykonanie polecenia:
qstat -f job_id
zwraca informacje o wszystkich parametrach, które system kolejkowy przyznał temu zadaniu. Jeśli polecenie to wykona się po uruchomieniu zadania (status R), można między innymi sprawdzić na których węzłach/procesorach wykonywane są nasze obliczenia.
Polecenie qdel
Polecenie qdel służy do usuwania zadania z systemu kolejkowego (np. gdy zorientowaliśmy się o popełnionym w skrypcie błędzie).
Składnia polecenia qdel:
qdel job_id
Uwaga na zakończenie - 'podglądanie' przebiegu obliczeń
Uruchamiając zadanie poprzez system kolejkowy należy 'mimo wszystko' kontrolować jego przebieg. Zdarza się, aczkolwiek rzadko,
że w wyniku chwilowych problemów z łącznością z serwerem licencji, Fluent nie potrafi kontynuować obliczeń, natomiast
do systemu kolejkowego nie jest przekazywany sygnał, że obliczenia zostały de facto zakończone. Takie uśpione zadania
należy usuwać z kolejki ręcznie, za pomocą polecenia qdel.
W szczególności zalecane jest sprawdzanie 'postępu' obliczeń, co w przypadku programu Fluent oznacza przede wszystkim sprawdzanie zawartości pliku, w którym znajduje się zapis konsoli (w konwencji przyjętej dla potrzeb opisu znajdującego się na tych stronach jest to plik output)
oraz zawartości plików zawierających 'monitory', czyli zapis ewolucji wybranych wartości i parametrów zadania. Ponieważ zapis tych informacji najczęściej odbywa się na dysku związanym z węzłem, na którym wykonywane są obliczenia (a nie w katalogu domowym na 'halo'), bezpośrednia kontrola przebiegu zadania wymaga:
- sprawdzenia, na którym węźle wykonywane są obliczenia:
qstat -n -u nazwa_użytkownika
- załóżmy, że w wyniku polecenia:
227:aniat@halo:/home/staff/aniat/test# qstat -1 -n -u aniat
- wyświetliła się następująca informacja:
halo:
Req'd Req'd Elap
Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time
-------------------- -------- -------- ---------- ------ ----- --- ------ ----- - -----
77015.halo aniat test test_autos 28544 1 -- 460mb 00:15 R -- n32/0
- Oznacza to, że obliczenia są wykonywane na węźle
n32
- zalogowania się na tę maszynę za pomocą polecenia
ssh, w tym przypadku poprzez:
ssh n32
- obejrzenia zawartości interesujących plików.
- Jeśli postępują Państwo zgodnie z konwencją podaną w przykładowym skrypcie kolejkowym, plików należy poszukiwać w katalogu
/tmp1/nazwa_użytkownika/numer_zadania. - W omawianym tu przykładzie można postąpić następująco:
201:aniat@n32:/home/staff/aniat# cd /tmp1/aniat
zmiana katalogu na katalog /tmp1/aniat
202:aniat@n32:/tmp1/aniat# ls -l /tmp1/aniat total 4 drwxr-xr-x 2 aniat icm-staff 4096 Aug 9 14:18 28552
wyświetlenie zawartości tego katalogu. 'Domyślamy się', że katalog 28552 jest katalogiem roboczym wykonywanego (i obserwowanego) zadania.
203:aniat@n32:/tmp1/aniat# cd 28552 204:aniat@n32:/tmp1/aniat/28552# ls -l
przejście do tego katalogu, wyświetlenie jego zawartości, możliwość oglądania zawartości plików, dat i godzin ich ostatnich modyfikacji (to bardzo znacząca informacja!), itd.
