OpenPBS
< Podręcznik użytkownika KDM < System kolejkowy < PBS
OpenPBS (Open Portable Batch System) jest darmowym systemem kolejkowania i dystrybucji obciążenia, zaprojektowanym dla NASA Ames Research Center. OpenPBS jest aplikacją sieciową i działa na wielu platformach unix'owych (włącznie z heterogenicznymi klastrami stacji roboczych), superkomputerach i systemach masywnie równoległych. OpenPBS jest darmową wersją systemu PBSPro.
OpenPBS działał na klastrach Układ i Gromada. Na Gromadzie zastąpiony został aktualniejszą wersją Torque/PBS. Po wycofaniu tych klastrów z eksploatacji nie jest wykorzystywany w WCSS.
Opcje skryptów OpenPBS
Przedstawione poniżej opcje można podać w linii wywołania polecenia qsub lub wewnątrz skryptu uruchamiającego zadanie (patrz także Przykładowy skrypt OpenPBS).
Pełna lista opcji znajduje się w manualu systemowym polecenia qsub (man qsub).
- -a date_time - określa datę i czas, po którym zadanie może zostać uruchomione. Parametr date_time musi mieć format: [[[[CC]YY]MM]DD]hhmm[.S].
- -e path - docelowa ścieżka dla strumienia standardowego wyjścia błędów zadania. Parametr path musi mieć format: [hostname:]path_name.
- -I określa zadanie jako interaktywne. Zadanie takie zostanie w typowy sposób wstawione do kolejki, ale po uruchomieniu strumienie standardowego wejścia i wyjścia zostaną podłączone do terminala z którego wydano polecenie kolejkowania.
- -j join - łączy lub rozdziela strumienie standardowego wyjścia i standardowego wyjścia błędów w zależności od argumentu join:
- oe - dołącza standardowe wyjście błędów do standardowego wyjścia
- eo - dołącza standardowe wyjście do standardowego wyjścia błędów
- n - rozłącza strumienie standardowego wyjścia od standardowego wyjścia błędów (domyślne)
- -l resource_list - określa listę zasobów wymaganych przez zadanie i jednocześnie nakłada na zadanie takie limity.
- -m mail_options - określa kiedy wysłać do użytkownika pocztę z informacją o zadaniu, gdzie opcje to: n - brak poczty; a - (domyślne) zadanie zostało "zabite"; b - zadanie zostało uruchomione; e - zadanie zakończyło się poprawnie.
- -N name określa nazwę zadania (może mieć do 15 znaków i pierwszym znakiem musi być litera).
- -o path określa ścieżkę dla strumienia standardowego wyjścia. Parametr path musi mieć format: [hostname:]path_name.
- -q destination określa docelową kolejkę.
- -S path_list określa interpreter, który ma przetworzyć skrypt uruchamiający zadanie. Jeśli interpreter nie zostanie podany, to użyty będzie shell startowy użytkownika.
- -v variable_list określa listę zmiennych środowiskowych do przekazania zadaniu. Jest to lista elementów typu zmienna=wartość oddzielonych przecinkami.
- -V eksportuje wszystkie bieżąco ustawione zmienne środowiskowe do zadania kolejkowanego poleceniem qsub.
Przykładowy skrypt OpenPBS
# Przykładowy skrypt OpenPBS.
# interpreter skryptu: #PBS -S /bin/tcsh
# wyślij pocztę gdy zadanie uruchomi się, zakończy lub zostanie # przerwane #PBS -m abe
# ustaw limity: 1 CPU, 24 godziny czasu realnego, 2 godziny czasu CPU, # 100MB pamięci #PBS -l ncpus=1 #PBS -l walltime=24:00:00,cput=2:00:00 #PBS -l mem=100MB
# nazwa zadania: #PBS -N my_simple_job
rm my_simple_job.o* # skasuj poprzednio wygenerowane przez OpenPBS-a pliki rm my_simple_job.e* cd fortran # zmień katalog rm ./*.out # skasuj zbędne/przeszkadzające pliki
f77 simple.f # uruchom kompilację ./a.out >> simple.out # uruchom kompilat z przekierowaniem wyników
Przykłady wyników poleceń OpenPBS'a
wodor:~ $ qstat
Job id Name User Time Use S Queue --------------- ----------- ------- -------- - ------ 1300.uklad.wcss startpp user1 875:14:0 R normal 1448.uklad.wcss g98_FlCS3b user2 540:07:0 R normal 1476.uklad.wcss g98_5r user3 239:07:3 R normal 1478.uklad.wcss g98_5t user4 198:56:4 R normal 1675.uklad.wcss g98_hfc.in user5 0 Q normal 1676.uklad.wcss g98_hfct.in user5 0 Q normal 1677.uklad.wcss STDIN user6 0 Q normal
wodor:~ $ qstat -Q
Queue Max Tot Ena Str Que Run Hld Wat Trn Ext Type ---------------- --- --- --- --- --- --- --- --- --- --- --------- short 16 0 yes yes 0 0 0 0 0 0 Execution normal 16 19 yes yes 3 16 0 0 0 0 Execution
wodor:~ $ qstat -a
wodor.uklad.wcss.wroc.pl: Req'd Req'd Elap Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time --------------- -------- -------- ---------- ------ --- --- ------ ----- - ----- 1300.uklad.wcss user1 normal startpp 30871 -- 1 -- 900:0 R 875:1 1448.uklad.wcss user2 normal g98_FlCS3b 1914 -- 1 -- 744:0 R 540:0 1476.uklad.wcss user3 normal g98_5r 10602 -- 1 -- 744:0 R 239:0 1478.uklad.wcss user4 normal g98_5t 16815 -- 1 -- 744:0 R 198:5 1675.uklad.wcss user5 normal g98_hfc.in -- -- 1 -- 744:0 Q -- 1676.uklad.wcss user5 normal g98_hfct.i -- -- 1 -- 744:0 Q -- 1677.uklad.wcss user6 normal STDIN -- -- 1 -- 744:0 Q --
wodor:~ $ qstat -f 1677
Job Id: 1677.uklad.wcss.wroc.pl Job_Name = STDIN Job_Owner = user6@uklad.wcss.wroc.pl job_state = Q queue = normal server = uklad.wcss.wroc.pl Checkpoint = u ctime = Wed Jun 12 12:36:19 2002 Error_Path = uklad.wcss.wroc.pl:/home/user6/STDIN.e1677 Hold_Types = n Join_Path = n Keep_Files = n Mail_Points = a mtime = Wed Jun 12 12:36:19 2002 Output_Path = uklad.wcss.wroc.pl:/home/user6/STDIN.o1677 Priority = 0 qtime = Wed Jun 12 12:36:19 2002 Rerunable = True Resource_List.cput = 744:00:00 Resource_List.ncpus = 1 Resource_List.vmem = 800mb substate = 10 Variable_List = PBS_O_HOME=/home/user6,PBS_O_LANG=pl_PL, PBS_O_LOGNAME=user6, PBS_O_PATH=.:/home/user6/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/X11 R6/bin:/usr/local/ifc/compiler50/ia32/bin:/usr/local/pgi/linux86/bin:/u sr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games, PBS_O_MAIL=/var/mail/user6,PBS_O_SHELL=/bin/bash, PBS_O_HOST=uklad.wcss.wroc.pl,PBS_O_WORKDIR=/home/user6, PBS_O_QUEUE=normal euser = user6 egroup = user6 queue_rank = 684 queue_type = E etime = Wed Jun 12 12:36:19 2002
wodor:~ $ qstat -B
Server Max Tot Que Run Hld Wat Trn Ext Status ---------------- --- --- --- --- --- --- --- --- ---------- uklad.wcss.wroc. 0 19 3 16 0 0 0 0 Active
Zobacz też: Konfiguracja kolejek PBS, system kolejkowy, układ, gromada, tezro.
Systemy kolejkowe |
PBSPro |
---|