Jest to polecenie, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
srun – Uruchamia zadania równoległe
STRESZCZENIE
upadek [OPCJE...] plik wykonywalny [args...]
OPIS
Uruchom zadanie równoległe w klastrze zarządzanym przez Slum. Jeśli to konieczne, srun najpierw utworzy plik
alokacja zasobów, w której ma zostać uruchomione zadanie równoległe.
Poniższy dokument opisuje wpływ różnych opcji na alokację
procesora do zadań i zadań.
http://slurm.schedmd.com/cpu_management.html
OPCJE
--accel-bind=<Opcje>
Kontroluj sposób, w jaki zadania są powiązane z zasobami ogólnymi typu GPU, mic i Nic.
Można określić wiele opcji. Obsługiwane opcje obejmują:
g Powiąż każde zadanie z procesorami graficznymi znajdującymi się najbliżej przydzielonych procesorów.
m Powiąż każde zadanie z MIC, które są najbliżej przydzielonych procesorów.
n Powiąż każde zadanie z kartami sieciowymi znajdującymi się najbliżej przydzielonych procesorów.
v Tryb szczegółowy. Rejestruj sposób powiązania zadań z urządzeniami GPU i NIC.
-A, --konto=<konto>
Zasoby używane przez to zadanie obciążają określone konto. The konto jest
dowolny ciąg. Nazwa konta może zostać zmieniona po wysłaniu pracy za pomocą
kontrola dowództwo.
--acctg-częst
Zdefiniuj interwały próbkowania rozliczania zadań i profilowania. Można to wykorzystać
zastąpić JobAcctGatherCzęstotliwość parametr w pliku konfiguracyjnym Slurma,
slurm.conf. Obsługiwany format jest następujący:
--acctg-częstotliwość==
gdzie = określa interwał próbkowania zadania dla
plugin jobacct_gather lub interwał próbkowania dla typu profilowania
przez wtyczkę acct_gather_profile. Wiele, oddzielone przecinkami
= odstępy czasu mogą być określone. Obsługiwane typy danych
są następujące:
zadanie=
gdzie to interwał próbkowania zadania w sekundach dla
wtyczek jobacct_gather oraz do profilowania zadań przez
wtyczka acct_gather_profile. UWAGA: Ta częstotliwość jest używana do
monitorować użycie pamięci. Jeśli limity pamięci są egzekwowane najwyższe
Częstotliwość, o jaką użytkownik może poprosić, jest skonfigurowana w pliku
plik slurm.conf. Nie mogą go też wyłączyć (=0).
energia =
gdzie jest interwałem próbkowania energii w sekundach
profilowanie za pomocą wtyczki acct_gather_energy
sieć=
gdzie to interwał próbkowania w sekundach dla
profilowanie infiniband za pomocą wtyczki acct_gather_infiniband.
system plików=
gdzie to interwał próbkowania w sekundach dla
profilowanie systemu plików za pomocą wtyczki acct_gather_filesystem.
Domyślna wartość interwału próbkowania zadania
wynosi 30. Wartością domyślną dla wszystkich pozostałych przedziałów jest 0. Interwał równy 0 wyłącza
pobieranie próbek określonego rodzaju. Jeśli interwał próbkowania zadania wynosi 0, rozliczanie
informacje są zbierane tylko po zakończeniu pracy (zmniejszenie ingerencji Slurm w
Praca).
Mniejsze (niezerowe) wartości mają większy wpływ na wydajność pracy, ale wartość
30 sekund prawdopodobnie nie będzie zauważalny w przypadku aplikacji o mniej niż
10,000 XNUMX zadań.
-B --dodatkowe informacje o węźle=<Gniazda[:rdzenie[:threads]]>
Poproś o konkretny przydział zasobów ze szczegółami co do liczby i rodzaju
zasobów obliczeniowych w klastrze: liczba gniazd (lub fizycznych
procesorów) na węzeł, rdzeni na gniazdo i wątków na rdzeń. Łączna kwota
żądane zasoby są iloczynem wszystkich warunków. Każda określona wartość
jest uważany za minimalny. Gwiazdka (*) może służyć jako oznaczenie zastępcze
że wszystkie dostępne zasoby tego typu mają być wykorzystane. Podobnie jak w przypadku węzłów,
w razie potrzeby poszczególne poziomy można również określić w osobnych opcjach:
--gniazda-na-węzeł=<Gniazda>
--rdzeni-na-gniazdo=<rdzenie>
--wątków-na-rdzeń=<threads>
Jeśli wtyczka zadania/powinowactwa jest włączona, określenie alokacji w ten sposób
ustawia również wartość domyślną --powiązanie_cpu opcja threads Jeśli -B opcja określa a
liczba wątków, w przeciwnym razie opcja rdzenie jeśli określono liczbę rdzeni, w przeciwnym razie
opcja Gniazda. Jeśli SelectType jest skonfigurowany do selekcji/cons_res, musi tak być
w tym celu parametr CR_Core, CR_Core_Memory, CR_Socket lub CR_Socket_Memory
możliwość bycia uhonorowanym. Ta opcja nie jest obsługiwana w systemach BlueGene
(wtyczka Select/bluegene jest skonfigurowana). Jeśli nie określono, zadanie pokazu scontrol
wyświetli „ReqS:C:T=*:*:*”.
--nocleg ze śniadaniem=<specyfikacja>
Specyfikacja bufora Burst. Forma specyfikacji zależy od systemu.
Zobacz także --bbf.
--bbf=<Nazwa pliku>
Ścieżka pliku zawierającego specyfikację bufora serii. Forma specyfikacji
jest zależne od systemu. Zobacz także --nocleg ze śniadaniem.
--bcast[=ścieżka_docelowa>]
Skopiuj plik wykonywalny do przydzielonych węzłów obliczeniowych. Jeśli określono nazwę pliku, skopiuj
plik wykonywalny do określonej ścieżki pliku docelowego. Jeżeli nie określono ścieżki,
skopiuj plik do pliku o nazwie „slurm_bcast_ . " w aktualnej
pracujący. Na przykład „srun --bcast=/tmp/mine -N3 a.out” skopiuje plik
„a.out” z bieżącego katalogu do pliku „/tmp/mine” w każdym z trzech
przydzielone węzły obliczeniowe i wykonaj ten plik.
--rozpocząć=<czas>
Odłóż rozpoczęcie tego zadania do określonego czasu. Akceptuje czasy
Nasz formularz GG:MM:SS aby uruchomić zadanie o określonej porze dnia (sekundy są opcjonalne). (Jeśli
ten czas już minął, zakładany jest następny dzień.) Możesz także określić
północ, południe, fika (3:XNUMX) lub podwieczorek (4:XNUMX) i możesz mieć porę dnia
z przyrostkiem AM or PM do biegania rano lub wieczorem. Możesz też powiedzieć
w jakim dniu zlecenie będzie realizowane, podając w formularzu datę MMDDRR or MM/DD/RR
RRRR-MM-DD. Połącz datę i godzinę, używając następującego formatu
RRRR-MM-DD[THH:MM[:SS]]. Możesz też podać czasy np już dziś + liczyć jednostki czasu, Gdzie
jednostki czasu mogą być sekund (Domyślne) minuty, godzin, dnilub tydzień i Ty możesz
powiedz Slurmowi, aby wykonał dziś zadanie ze słowem kluczowym już dziś i do pracy jutro
ze słowem kluczowym jutro. Wartość można zmienić po wysłaniu zadania za pomocą
kontrola Komenda. Na przykład:
--początek=16:00
--begin=teraz+1godzina
--begin=now+60 (domyślnie sekundy)
--begin=2010-01-20T12:34:00
Uwagi dotyczące specyfikacji daty/godziny:
- Chociaż pole „sekundy” specyfikacji czasu GG:MM:SS jest dozwolone przez
kodu, zwróć uwagę, że czas odpytywania harmonogramu Slurm nie jest wystarczająco dokładny
gwarantuje wysłanie zadania dokładnie w sekundzie. Praca będzie kwalifikować się do
rozpocząć od następnej ankiety następującej po określonym czasie. Dokładny interwał ankiety
zależy od harmonogramu Slurm (np. 60 sekund z domyślnym sched/wbudowanym).
- Jeśli nie określono godziny (GG:MM:SS), wartością domyślną jest (00:00:00).
- Jeśli data jest określona bez roku (np. MM/DD), to bieżący rok
zakłada się, chyba że kombinacja MM/DD i HH:MM:SS już to przeszła
roku, w którym to przypadku stosuje się następny rok.
--punkt kontrolny=<czas>
Określa odstęp między tworzeniem punktów kontrolnych kroku zadania. Domyślnie,
w kroku zadania nie zostaną utworzone żadne punkty kontrolne. Dopuszczalne formaty czasu obejmują
„minuty”, „minuty:sekundy”, „godziny:minuty:sekundy”, „dni-godziny”,
„dni-godziny:minuty” i „dni-godziny:minuty:sekundy”.
--checkpoint-każ=<katalog>
Określa katalog, w którym powinien znajdować się punkt kontrolny zadania lub kroku zadania
zapisane (używane tylko przez wtyczki checkpoint/blcr i checkpoint/xlch). The
wartością domyślną jest bieżący katalog roboczy. Pliki punktu kontrolnego będą miały format
formularz " .ckpt” dla zadań i „ . .ckpt” dla kroków zadania.
--komentarz=<ciąg>
Dowolny komentarz.
-C, --ograniczenie=<podstęp>
Węzły mogą mieć cechy przydzielone im przez administratora Slurmu. Użytkownicy mogą
podaj który z nich cechy są wymagane przez ich pracę przy użyciu ograniczenia
opcja. Zostaną użyte tylko węzły posiadające cechy pasujące do ograniczeń zadania
spełnić prośbę. Można określić wiele ograniczeń za pomocą funkcji AND, OR, dopasowując
LUB, liczba zasobów itp. Obsługiwane opcje ograniczeń obejmują:
Jedna Imię
Zostaną użyte tylko węzły, które mają określoną cechę. Na przykład,
--constraint="intel"
Node Liczyć
Żądanie może określać liczbę węzłów wymaganych dla niektórych funkcji według
dodanie gwiazdki i liczby po nazwie funkcji. Na przykład
"--węzły=16 --ograniczenie=grafika*4 ... " wskazuje, że praca wymaga 16
węzłów i że co najmniej cztery z tych węzłów muszą mieć tę cechę
"grafika."
ROLNICZE Jeśli zostaną użyte tylko węzły ze wszystkimi określonymi cechami. Ampersand jest
używany dla operatora AND. Na przykład, --constraint="intel&gpu"
OR Jeśli zostaną użyte tylko węzły z co najmniej jedną z określonych cech. The
pionowa kreska jest używana dla operatora OR. Na przykład,
--constraint="intel|amd"
Dopasowywanie OR
Jeśli tylko jedna z zestawu możliwych opcji powinna być użyta dla wszystkich przydzielonych
węzłów, a następnie użyj operatora OR i umieść opcje w kwadracie
nawiasy. Na przykład: "--constraint=[rack1|rack2|rack3|rack4]" może być
używany do określenia, że wszystkie węzły muszą być przydzielone na jednym stojaku
klastra, ale można użyć dowolnego z tych czterech stojaków.
Wielokrotność Liczy się
Konkretne liczby wielu zasobów można określić za pomocą operatora AND
operatora i umieszczając opcje w nawiasach kwadratowych. Na przykład:
"--constraint=[stojak1*2&stojak2*4]" można użyć do określenia tych dwóch węzłów
muszą być przydzielone z węzłów z cechą „rack1” i cztery węzły muszą
być przydzielane z węzłów z cechą „rack2”.
OSTRZEŻENIE: Kiedy srun jest wykonywany z poziomu salloc lub sbatch,
wartość ograniczenia może zawierać tylko jedną nazwę obiektu. Żadne inne
operatorzy są obecnie obsługiwani w zakresie etapów zadania.
--przyległy
Jeśli jest ustawiony, przydzielone węzły muszą tworzyć ciągły zestaw. Nie uhonorowany tzw
topologia/drzewo or topologia/3d_torus wtyczki, z których obie mogą modyfikować plik node
zamawianie. Brak honoru za przydział etapu zadania.
--rdzeni-na-gniazdo=<rdzenie>
Ogranicz wybór węzłów do węzłów z co najmniej określoną liczbą rdzeni na
gniazdo elektryczne. Zobacz dodatkowe informacje w -B opcja powyżej, gdy wtyczka zadania/powinowactwa
jest włączony.
--powiązanie_cpu=[{cichy, obszerny},]rodzaj
Powiąż zadania z procesorami. Używane tylko wtedy, gdy jest wtyczka zadania/powinowactwa lub zadania/grupy c
włączony. Parametr konfiguracyjny ZadaniePluginParam może zastąpić te opcje.
Na przykład, jeśli ZadaniePluginParam jest skonfigurowany do wiązania z rdzeniami, Twoje zadanie nie będzie
móc wiązać zadania z gniazdami. UWAGA: Aby Slum zawsze raportował
wybrane powiązanie procesora dla wszystkich poleceń wykonywanych w powłoce, możesz włączyć pełne
tryb, ustawiając wartość zmiennej środowiskowej SLURM_CPU_BIND na „verbose”.
Następujące informacyjne zmienne środowiskowe są ustawiane kiedy --powiązanie_cpu jest w
posługiwać się:
SLURM_CPU_BIND_VERBOSE
SLURM_CPU_BIND_TYPE
SLURM_CPU_BIND_LIST
Zobacz ŚRODOWISKO ZMIENNE sekcja zawiera bardziej szczegółowy opis
indywidualne zmienne SLURM_CPU_BIND. Zmienne te są dostępne tylko wtedy, gdy
wtyczka zadania/powinowactwa jest skonfigurowana.
Podczas używania --cpus-na-zadanie aby uruchamiać zadania wielowątkowe, należy pamiętać, że powiązanie procesora jest
dziedziczone od rodzica procesu. Oznacza to, że zadanie wielowątkowe
powinien albo określić, albo wyczyścić samo powiązanie procesora, aby uniknąć posiadania wszystkich wątków
zadania wielowątkowego używaj tej samej maski/procesora co element nadrzędny. Alternatywnie tłuszcz
do zadań można używać masek (masek, które określają więcej niż jeden dozwolony procesor).
w celu zapewnienia wielu procesorów do zadań wielowątkowych.
Domyślnie krok zadania ma dostęp do każdego procesora przydzielonego do zadania. Aby zapewnić
że do każdego etapu zadania przydzielone są odrębne procesory, użyj opcji --Ekskluzywny opcja.
Należy pamiętać, że do etapu zadania można przydzielić różną liczbę procesorów w każdym węźle
przydzielone procesory nie zaczynają się od lokalizacji zerowej. Dlatego jedna z opcji, która
Zalecane jest automatyczne generowanie powiązania zadania. Jawnie określone maski
lub powiązania są honorowane tylko wtedy, gdy do etapu zadania przydzielono wszystkie dostępne elementy
Procesor w węźle.
Powiązanie zadania z domeną lokalną NUMA oznacza powiązanie zadania z zestawem procesorów
należące do domeny lokalnej NUMA lub „węzła NUMA”. Jeśli domena lokalna NUMA
opcje są używane w systemach bez obsługi NUMA, wówczas każde gniazdo jest uważane za
domena lokalna.
Automatyczna Wiążący
Ma zastosowanie tylko wtedy, gdy włączone jest zadanie/powinowactwo. Jeśli alokacja kroków zadania
obejmuje alokację z liczbą gniazd, rdzeni lub wątków równą
liczba zadań razy procesor na zadanie, wówczas zadania będą domyślnie
powiązane z odpowiednimi zasobami (automatyczne wiązanie). Wyłącz ten tryb
operację poprzez jawne ustawienie „--cpu_bind=none”. Używać
TaskPluginParam=autobind=[threads|cores|sockets], aby ustawić domyślny procesor
wiązanie w przypadku, gdy „automatyczne wiązanie” nie znajdzie dopasowania.
Obsługiwane opcje obejmują:
cichy]
Ciche wiązanie przed uruchomieniem zadania (domyślnie)
gadatliwy]
Szczegółowe powiązanie raportu przed uruchomieniem zadania
nic] Nie wiąż zadań z procesorami (domyślnie, chyba że zastosowano automatyczne wiązanie)
rankingu Automatycznie wiąż według rangi zadania. Zadanie o najniższym numerze w każdym z nich
węzeł jest powiązany z gniazdem (lub rdzeniem lub wątkiem) zerowym itp. Nieobsługiwane
chyba że cały węzeł zostanie przydzielony do zadania.
mapa_procesora:
Powiąż, mapując identyfikatory procesorów do zadań zgodnie z określeniem gdzie Jest
, ,... . Mapowanie jest określone dla węzła
i identyczne mapowanie jest stosowane do zadań w każdym węźle (tj
najniższy identyfikator zadania w każdym węźle jest mapowany na pierwszy określony identyfikator procesora
na liście itp.). Identyfikatory procesorów są interpretowane jako wartości dziesiętne, chyba że
są one poprzedzone znakiem „0x”, w którym to przypadku są interpretowane jako
wartości szesnastkowe. Nieobsługiwane, chyba że cały węzeł jest
przydzielony do pracy.
maska_procesora:
Powiąż, ustawiając maski procesora dla zadań zgodnie z określeniem gdzie Jest
, ,... . Mapowanie jest określone dla węzła i
identyczne mapowanie jest stosowane do zadań w każdym węźle (tj
najniższy identyfikator zadania w każdym węźle jest mapowany na pierwszą maskę określoną w
lista itp.). Maski procesora są zawsze interpretowane jako szesnastkowe
wartości, ale mogą być poprzedzone opcjonalnym „0x”. Nieobsługiwany
chyba że cały węzeł zostanie przydzielony do zadania.
ranga_dom
Powiąż z domeną lokalną NUMA według rangi. Nieobsługiwane, chyba że
cały węzeł jest przydzielany do zadania.
mapa_ldom:
Powiąż, mapując identyfikatory domeny lokalnej NUMA na zadania zgodnie z określeniem gdzie
Jest , ,... . Identyfikatory domeny lokalnej to
interpretowane jako wartości dziesiętne, chyba że są poprzedzone znakiem „0x”.
w tym przypadku są one interpretowane jako wartości szesnastkowe. Nieobsługiwany
chyba że cały węzeł zostanie przydzielony do zadania.
maska_ldom:
Powiąż, ustawiając maski domeny lokalizacji NUMA dla zadań zgodnie z opisem
Gdzie Jest , ,... . Domena lokalna NUMA
maski są zawsze interpretowane jako wartości szesnastkowe, ale mogą być
poprzedzone opcjonalnym „0x”. Nieobsługiwane, chyba że cały węzeł
jest przydzielany do pracy.
Gniazda
Automatycznie generuj maski wiążące zadania z gniazdami. Tylko procesory
na gnieździe, które zostały przydzielone do zadania, zostaną wykorzystane. Jeśli
liczba zadań różni się od liczby przydzielonych gniazd
może skutkować nieoptymalnym wiązaniem.
rdzenie Automatycznie generuj maski wiążące zadania z rdzeniami. Jeśli numer
zadań różni się od liczby przydzielonych rdzeni, z czego może to wynikać
w nieoptymalnym wiązaniu.
threads
Automatycznie generuj maski wiążące zadania z wątkami. Jeśli numer
zadań różni się od liczby przydzielonych wątków, z czego może to wynikać
w nieoptymalnym wiązaniu.
domy Automatycznie generuj maski wiążące zadania z domenami lokalnymi NUMA.
Jeżeli liczba zadań różni się od liczby przydzielonych miejscowości
domenach, może to skutkować nieoptymalnym wiązaniem.
płyty Automatycznie generuj maski wiążące zadania z tablicami. Jeśli numer
zadań różni się od liczby przydzielonych tablic z tego może wynikać
w nieoptymalnym wiązaniu. Ta opcja jest obsługiwana przez zadanie/cgroup
tylko wtyczka.
pomoc Pokaż komunikat pomocy dla cpu_bind
--częstotliwość procesora =<p1[-p2[:p3]]>
Zażądaj, aby etap zadania zainicjowany przez tę komendę srun został uruchomiony na żądanie
częstotliwość, jeśli to możliwe, na procesorach wybranych do kroku w węzłach obliczeniowych.
p1 może być [#### | niski | średni | wysoki | highm1], który ustawi częstotliwość
scaling_speed na odpowiednią wartość i ustaw częstotliwość scaling_governor na
Przestrzeń użytkownika. Zobacz poniżej definicje wartości.
p1 może być [konserwatywny | na żądanie | Wydajność | PowerSave], który ustawi
scaling_governor na odpowiednią wartość. Gubernator musi być na liście
przez opcję slurm.conf CpuFreqGovernors.
Kiedy p2 jest obecna, p1 będzie minimalną częstotliwością skalowania, a p2 będzie częstotliwością
maksymalna częstotliwość skalowania.
p2 może być [#### | średni | wysoki | highm1] p2 musi być większe niż p1.
p3 może być [konserwatywny | na żądanie | Wydajność | Oszczędzanie energii | Przestrzeń użytkownika], która
ustawi regulator na odpowiednią wartość.
If p3 jest UserSpace, częstotliwość skalowania_prędkości zostanie ustawiona przez moc lub energię
świadomej strategii planowania do wartości między p1 a p2, która pozwala na uruchomienie zadania w ramach
cel mocy witryny. Zadanie może zostać opóźnione, jeśli p1 jest wyższe niż częstotliwość
pozwala pracy przebiegać zgodnie z celem.
Jeśli aktualna częstotliwość jest < min, zostanie ustawiona na min. Podobnie, jeśli prąd
częstotliwość jest > max, zostanie ustawiona na max.
Obecnie dopuszczalne wartości to:
#### częstotliwość w kilohercach
niski najniższa dostępna częstotliwość
Wysoki najwyższą dostępną częstotliwość
WysokaM1 (wysoki minus jeden) wybierze następną najwyższą dostępną częstotliwość
Średni próbuje ustawić częstotliwość w środku dostępnego zakresu
Konserwatywny próbuje użyć konserwatywnego zarządcy procesora
Na żądanie próbuje użyć zarządcy procesora OnDemand (wartość domyślna)
Wydajność próbuje użyć zarządcy wydajności procesora
Oszczędzanie energii próbuje użyć zarządcy procesora PowerSave
Przestrzeń użytkownika próbuje użyć zarządcy procesora UserSpace
W zadaniu ustawiona jest następująca informacyjna zmienna środowiskowa
krok kiedy --częstotliwość procesora opcja jest wymagana.
SLURM_CPU_FREQ_REQ
Tej zmiennej środowiskowej można również użyć do podania wartości dla procesora
żądanie częstotliwości, jeśli jest ustawione podczas wydawania polecenia „srun”. The --częstotliwość procesora
w wierszu poleceń zastąpi wartość zmiennej środowiskowej. Formularz na
zmienna środowiskowa jest taka sama jak w wierszu poleceń. Zobacz ŚRODOWISKO
ZMIENNE sekcja opisu zmiennej SLURM_CPU_FREQ_REQ.
UWAGA: Ten parametr jest traktowany jako żądanie, a nie wymaganie. Jeśli etap pracy
węzeł nie obsługuje ustawiania częstotliwości procesora lub żądana wartość jest na zewnątrz
granic dopuszczalnych częstotliwości, rejestrowany jest błąd, ale krok zadania jest
pozwolono kontynuować.
UWAGA: Ustawienie częstotliwości tylko dla procesorów kroku zadania oznacza, że
zadania są ograniczone do tych procesorów. Jeśli ograniczenie zadania (tj.
TaskPlugin=task/affinity lub TaskPlugin=task/cgroup z „ConstrainCores”
opcja) nie jest skonfigurowana, parametr ten jest ignorowany.
UWAGA: Po zakończeniu kroku wyświetlana jest częstotliwość i regulator każdego wybranego procesora
zresetować do skonfigurowanego Częstotliwość procesora wartość z wartością domyślną procesora OnDemand
gubernator.
UWAGA: Podczas przesyłania zadań z rozszerzeniem --częstotliwość procesora opcja z linuxproc jako
ProctrackType może powodować zbyt szybkie uruchamianie zadań, zanim Księgowość będzie mogła sondować
w celu uzyskania informacji o pracy. W rezultacie nie wszystkie informacje księgowe będą obecne.
-c, --cpus-na-zadanie=<ncpus>
Poproś o to ncpus zostać przydzielony dla wygląda tak. Może to być przydatne, jeśli jest to praca
wielowątkowy i wymaga więcej niż jednego procesora na zadanie w celu uzyskania optymalnej wydajności. The
domyślnie jest to jeden procesor na proces. Jeśli -c jest określony bez -n, jak wiele zadań będzie
być przydzielane na węzeł, jak to możliwe, przy spełnieniu warunku -c ograniczenie. Na przykład
w klastrze z 8 procesorami na węzeł, żądanie zadania dla 4 węzłów i 3 procesorów na zadanie
w zależności od tego można przydzielić 3 lub 6 procesorów na węzeł (1 lub 2 zadania na węzeł).
zużycie zasobów przez inne miejsca pracy. Takie zadanie może nie być w stanie wykonać więcej niż a
w sumie 4 zadania. Ta opcja może być również przydatna do tworzenia zadań bez przydzielania
zasoby do etapu zadania z alokacji zadania w przypadku uruchamiania wielu etapów zadania
z --Ekskluzywny opcja.
OSTRZEŻENIE: Istnieją konfiguracje i opcje różnie interpretowane w zależności od zadania i
żądań etapów zadania, co może powodować niespójności w przypadku tej opcji. Na przykład
upadek -c2 --wątki na rdzeń=1 żarcie może przydzielić do zadania dwa rdzenie, ale jeśli każdy
z tych rdzeni zawiera dwa wątki, przydział zadań obejmie cztery procesory. The
alokacja kroków zadania uruchomi następnie dwa wątki na procesor, łącznie dla dwóch zadań.
OSTRZEŻENIE: Kiedy srun jest wykonywany z poziomu salloc lub sbatch, istnieją
konfiguracje i opcje, które mogą skutkować niespójnymi alokacjami, gdy -c ma
wartość większa niż -c na salloc lub próbce.
-d, --zależność=<lista_zależności>
Odłóż rozpoczęcie tego zadania do momentu spełnienia określonych zależności
zakończony. Ta opcja nie ma zastosowania do kroków zadania (wykonań srun w pliku
istniejąca alokacja salloc lub partii) tylko do alokacji zadań.lista_zależności>
jest w formiewpisz:identyfikator_zadania[:id_zadania][,wpisz:id_zadania[:id_zadania]]> lub
<wpisz:identyfikator_zadania[:id_zadania][?typ:id_zadania[:id_zadania]]>. Wszystkie zależności muszą być spełnione
jeśli używany jest separator ",". Każda zależność może być spełniona, jeśli znak „?” separator
Jest używane. Wiele zadań może współdzielić tę samą zależność, a te zadania mogą nawet do nich należeć
różnych użytkowników. Wartość można zmienić po przesłaniu zadania za pomocą scontrol
Komenda. Gdy zależność zadania nie powiedzie się z powodu stanu zakończenia poprzedniego
zadanie, zadanie zależne nigdy nie zostanie uruchomione, nawet jeśli poprzednie zadanie zostanie ponownie umieszczone w kolejce i
ma inny stan zakończenia w kolejnym wykonaniu.
po:identyfikator_pracy[:identyfikator pracy...]
To zadanie może rozpocząć się po rozpoczęciu wykonywania określonych zadań.
afterany:identyfikator_pracy[:identyfikator pracy...]
To zadanie może rozpocząć się po zakończeniu określonych zadań.
afternotok:identyfikator_pracy[:identyfikator pracy...]
To zadanie może rozpocząć się po zakończeniu określonych zadań w
jakiś stan awarii (niezerowy kod wyjścia, awaria węzła, przekroczony limit czasu itp.).
afterok:identyfikator_pracy[:identyfikator pracy...]
To zadanie może rozpocząć się po pomyślnym wykonaniu określonych zadań
wykonane (wykonane do końca z kodem wyjścia równym zero).
rozwiń:identyfikator_zadania
Zasoby przydzielone do tego zadania powinny zostać wykorzystane do rozszerzenia określonego zadania.
Zadanie do rozszerzenia musi mieć ten sam QOS (Quality of Service) i
przegroda. Planowanie grupowe zasobów w partycji również nie jest
utrzymany.
syngielton
To zadanie może rozpocząć się po udostępnieniu wszystkich wcześniej uruchomionych zadań
ta sama nazwa zadania i użytkownik zostały zakończone.
-D, --chdir=<ścieżka>
Niech zdalne procesy wykonają polecenie chdir ścieżka przed rozpoczęciem realizacji. The
domyślnie jest to chdir do bieżącego katalogu roboczego pliku upadek proces. Ścieżka
można określić jako pełną ścieżkę lub ścieżkę względną do katalogu, w którym znajduje się polecenie
jest wykonywany.
-e, --błąd=<tryb>
Określ sposób przekierowania stderr. Domyślnie w trybie interaktywnym upadek
przekierowuje stderr do tego samego pliku co stdout, jeśli taki jest określony. The --błąd
dostępna jest opcja umożliwiająca przekierowanie stdout i stderr do innych
lokalizacje. Widzieć IO przekierowanie poniżej, aby uzyskać więcej opcji. Jeśli określony plik
już istnieje, zostanie nadpisany.
-E, --zachowaj-środ
Przekaż bieżące wartości zmiennych środowiskowych SLURM_NNODES i SLURM_NTASKS
do plik wykonywalny, zamiast obliczać je na podstawie parametrów wiersza poleceń.
--epilog=<plik wykonywalny>
upadek będzie działać plik wykonywalny zaraz po zakończeniu etapu zadania. Linia poleceń
argumenty dla plik wykonywalny będzie poleceniem i argumentami kroku zadania. Jeśli
plik wykonywalny ma wartość „none”, wówczas żaden epilog nie zostanie uruchomiony. Ten parametr zastępuje
Parametr SrunEpilog w slurm.conf. Parametr ten jest całkowicie niezależny od
parametr Epilog w pliku slurm.conf.
--exclusive[=użytkownik]
Ta opcja ma dwa nieco różne znaczenia w przypadku alokacji zadań i kroków zadań.
W przypadku użycia do inicjowania zadania przydział zadania nie może współużytkować węzłów z innymi
uruchomione zadania (lub po prostu inni użytkownicy z opcją „=użytkownik”). Domyślny
zachowanie współdzielone/wyłączne zależy od konfiguracji systemu i partycji
wspólne opcja ma pierwszeństwo przed opcją zadania.
Opcji tej można także użyć podczas inicjowania więcej niż jednego etapu zadania w ramach jednego zadania
istniejącą alokację zasobów, do której chcesz przydzielić osobne procesory
każdy etap pracy. Jeśli nie jest dostępna wystarczająca liczba procesorów do zainicjowania etapu zadania,
zostanie to odroczone. Można to traktować jako zapewnienie mechanizmu zasobów
kierownictwo do stanowiska w ramach swojego przydziału.
Wyłączny przydział procesorów dotyczy tylko kroków zadania, które są jawnie wywoływane
dotychczasowy --Ekskluzywny opcja. Na przykład do zadania można przypisać jeden węzeł z czterema
Procesory i zdalna powłoka wywoływana w przydzielonym węźle. Jeśli ta powłoka nie zostanie wywołana
z --Ekskluzywny opcję, wówczas może utworzyć etap zadania z czterema zadaniami przy użyciu
dotychczasowy --Ekskluzywny opcję i nie powoduje konfliktu z zasobami zdalnej powłoki
przydział. Użyj --Ekskluzywny możliwość wywołania każdego etapu zadania, aby zapewnić odrębność
zasoby na każdym etapie.
Należy pamiętać, że wszystkie procesory przydzielone do zadania są dostępne dla każdego kroku zadania, chyba że
--Ekskluzywny używana jest opcja i skonfigurowano powinowactwo zadań. Ponieważ zasób
zarządzanie zapewnia procesor, tj --nzadania należy określić opcję, ale plik
NIE należy określać następujących opcji --względny, --dystrybucja=arbitralny.
See PRZYKŁAD poniżej.
--eksport=<środowisko zmienne | BRAK>
Określ, które zmienne środowiskowe są propagowane do uruchomionej aplikacji.
Nazwy wielu zmiennych środowiskowych należy oddzielić przecinkami. Środowisko
można określić nazwy zmiennych w celu propagowania bieżącej wartości tych zmiennych
(np. „--export=EDITOR”) lub można wyeksportować określone wartości zmiennych
(np. „--export=EDITOR=/bin/vi”) oprócz zmiennych środowiskowych that
w przeciwnym razie zostałby ustawiony. Domyślnie propagowane są wszystkie zmienne środowiskowe.
--kołowacizna=<grupa>
If upadek jest uruchamiany jako root, a plik --kołowacizna opcja jest używana, prześlij zadanie za pomocą grupa's
uprawnienia dostępu do grupy. grupa może być nazwą grupy lub numerycznym identyfikatorem grupy.
--gres=<podstęp>
Określa rozdzielaną przecinkami listę ogólnych zasobów eksploatacyjnych. format
każdy wpis na liście to „nazwa[[:typ]:liczba]”. Nazwa pochodzi od
zasób zużywalny. Liczba to liczba zasobów z wartością domyślną
wartość 1. Określone zasoby zostaną przydzielone do zadania w każdym węźle.
Dostępne ogólne zasoby materiałów eksploatacyjnych są konfigurowane przez system
administrator. Zostanie wydrukowana lista dostępnych ogólnych materiałów eksploatacyjnych
a polecenie zakończy działanie, jeśli argumentem opcji jest „pomoc”. Przykłady użycia
dołącz „--gres=gpu:2,mic=1”, „--gres=gpu:kepler:2” i „--gres=help”. UWAGA: przez
domyślnie do etapu zadania przydzielane są wszystkie przydzielone zasoby ogólne
do pracy. Aby zmienić zachowanie tak, aby każdemu etapowi zadania nie przydzielono żadnego ogólnego
Resources, jawnie ustaw wartość --gres, aby określić zerową liczbę dla każdego
zasób ogólny LUB ustaw „--gres=none” LUB ustaw środowisko SLURM_STEP_GRES
zmienna na „brak”.
-H, --trzymać
Określ, że zadanie ma zostać przesłane w stanie wstrzymania (priorytet zero). Przetrzymywana praca
można teraz zwolnić za pomocą scontrol, aby zresetować jego priorytet (np.kontrola zwolnić
").
-h, --help
Wyświetl informacje pomocy i wyjdź.
--Wskazówka=<rodzaj>
Wiąż zadania zgodnie ze wskazówkami aplikacji.
Compute_bound
Wybierz ustawienia dla aplikacji związanych z obliczeniami: użyj wszystkich rdzeni w każdym
gniazdo, jeden wątek na rdzeń.
pamięć_powiązana
Wybierz ustawienia dla aplikacji związanych z pamięcią: używaj tylko jednego rdzenia w każdym
gniazdo, jeden wątek na rdzeń.
[nie] wielowątkowy
[nie] używaj dodatkowych wątków z wielowątkowością w rdzeniu, co może przynieść korzyści
aplikacje intensywnie komunikujące się. Obsługiwane tylko z zadaniem/koligacją
wtyczki.
pomoc pokaż tę wiadomość pomocy
-I, --natychmiastowy[=sekund>]
wyjdź, jeśli zasoby nie są dostępne w określonym czasie. Jeśli nie
podany jest argument, zasoby muszą być natychmiast dostępne, aby żądanie mogło zostać zrealizowane
odnieść sukces. Domyślnie, --natychmiastowy jest wyłączone, a polecenie będzie blokowane do czasu
zasoby stają się dostępne. Ponieważ argument tej opcji jest opcjonalny, dla właściwego
parsowaniu opcji jednoliterowej należy natychmiast podać wartość i
nie zawierają spacji między nimi. Na przykład „-I60”, a nie „-I 60”.
-i, --Wejście=<tryb>
Określ sposób przekierowania stdin. Domyślnie, upadek przekierowuje stdin z
zakończ wszystkie zadania. Widzieć IO przekierowanie poniżej, aby uzyskać więcej opcji. W przypadku systemu OS X plik
Funkcja poll() nie obsługuje stdin, więc wprowadzanie danych z terminala nie jest możliwe.
-J, --Nazwa pracy=<Nazwa pracy>
Określ nazwę zadania. Podana nazwa pojawi się wraz z identyfikatorem zadania
numer podczas odpytywania uruchomionych zadań w systemie. Wartość domyślna to dostarczona
plik wykonywalny nazwa programu. UWAGA: Informacje te mogą zostać zapisane w pliku
plik slurm_jobacct.log. Ten plik jest rozdzielany spacjami, więc jeśli w pliku zostanie użyta spacja
Nazwa pracy name spowoduje to problemy z prawidłowym wyświetlaniem zawartości pliku
slurm_jobacct.log, gdy plik św używane jest polecenie.
--oferta pracy=<Jobid>
Zainicjuj krok zadania w ramach już przydzielonego zadania z identyfikatorem zadania id. Za pomocą tego
opcja spowoduje upadek zachowywać się dokładnie tak, jakby środowisko SLURM_JOB_ID
zmienna została ustawiona.
-K, --zabij przy złym wyjściu[=0|1]
Kontroluje, czy zakończyć zadanie, jeśli dowolne zadanie zakończy się niezerowym wyjściem
kod. Jeśli ta opcja nie zostanie określona, domyślna akcja będzie oparta na
Parametr konfiguracyjny slumsów Zabij przy złym wyjściu. Jeśli ta opcja jest określona, to
będzie miało pierwszeństwo Zabij przy złym wyjściu. Argument opcji o wartości zero nie będzie
zakończyć pracę. Argument niezerowy lub brak argumentu zakończy zadanie.
Uwaga: ta opcja ma pierwszeństwo przed -W, --czekać możliwość zakończenia pracy
natychmiast, jeśli zadanie zakończy się z niezerowym kodem zakończenia. Ponieważ ta opcja jest
argument jest opcjonalny, w celu prawidłowego przeanalizowania należy zastosować opcję jednoliterową
natychmiast z wartością i nie uwzględniaj spacji między nimi. Na przykład „-K1”
a nie „-K 1”.
-k, --nie zabijaj
Nie kończ automatycznie zadania, jeśli jeden z węzłów został mu przydzielony
kończy się niepowodzeniem. Ta opcja jest rozpoznawana tylko w przypadku przydziału zadania, a nie w przypadku przesłania
poszczególnych etapów pracy. Osoba na tym stanowisku będzie przejmowała wszystkie obowiązki
odporność na błędy. Zadania uruchomione przy użyciu tej opcji nie będą uważane za zakończone
(na przykład -K, --zabij przy złym wyjściu i -W, --czekać opcje nie będą miały wpływu na
etap pracy). W aktywnym kroku zadania (zadanie MPI) prawdopodobnie wystąpi błąd krytyczny, ale
kolejne etapy zadania mogą zostać uruchomione, jeśli określono tę opcję. Domyślną akcją jest
aby zakończyć zadanie w przypadku awarii węzła.
--uruchom-cmd
Wydrukuj polecenie uruchomienia zewnętrznego zamiast normalnie uruchamiać zadanie przez Slum. Ten
opcja jest ważna tylko wtedy, gdy używasz czegoś innego niż uruchomienie/załamanie wtyczki.
--Opcje programu uruchamiającego=<Opcje>
Opcje zewnętrznego programu uruchamiającego, jeśli używasz czegoś innego niż uruchomienie/załamanie
wtyczki.
-l, --etykieta
Dołącz numer zadania do linii stdout/err. The --etykieta opcja doda linie na początek
wyjścia z identyfikatorem zdalnego zadania.
-L, --licencje=<licencja>
Specyfikacja licencji (lub innych zasobów dostępnych na wszystkich węzłach sieci
klaster), który musi być przydzielony do tego zadania. Po nazwach licencji może następować a
dwukropek i liczba (domyślna liczba to jeden). Wiele nazw licencji powinno być rozdzielonych przecinkami
oddzielone (np. "--licenses=foo:4,bar").
-m, --dystrybucja=
*|blok|cykliczny|arbitralny|samolot = [:*|blok|cykliczny|fcykliczny[:*|blok|
cykliczny|fcykliczny]][,Pakować|Brak pakietu]
Określ alternatywne metody dystrybucji dla procesów zdalnych. Ta opcja steruje
podział zadań na węzły, na które przydzielono zasoby, oraz
podział tych zasobów na zadania do powiązania (powinowactwo zadań). Pierwszy
metoda dystrybucji (przed pierwszym „:”) kontroluje dystrybucję zadań do
węzły. Druga metoda dystrybucji (po pierwszym „:”) kontroluje
dystrybucja przydzielonych procesorów pomiędzy gniazdami w celu powiązania z zadaniami. Trzeci
metoda dystrybucji (po drugim „:”) kontroluje dystrybucję przydzielonych
Procesory w rdzeniach do wiązania z zadaniami. Obowiązuje drugi i trzeci podział
tylko wtedy, gdy włączona jest koligacja zadań. Trzecia dystrybucja jest obsługiwana tylko wtedy, gdy
wtyczka zadania/grupy c jest skonfigurowana. Wartość domyślna dla każdego typu dystrybucji to
określone przez *.
Należy pamiętać, że w przypadku opcjiselect/cons_res liczba procesorów przydzielonych do każdego gniazda i
węzeł może być inny. Odnosić się do http://slurm.schedmd.com/mc_support.html więcej
informacje o alokacji zasobów, podziale zadań na węzły i wiązaniu
zadania procesorom.
Pierwsza metoda dystrybucji (dystrybucja zadań pomiędzy węzłami):
* Użyj domyślnej metody dystrybucji zadań do węzłów (blok).
blok Metoda dystrybucji bloków rozdzieli zadania do węzła w taki sposób, że
kolejne zadania współdzielą węzeł. Rozważmy na przykład alokację trzech
węzłów, każdy z dwoma procesorami. Żądanie dystrybucji czterech bloków zadań będzie
przydziel te zadania do węzłów z zadaniami pierwszym i drugim na pierwszym
węźle, zadanie trzecie w drugim węźle i zadanie czwarte w trzecim węźle. Blok
dystrybucja jest domyślnym zachowaniem, jeśli liczba zadań przekracza
liczba przydzielonych węzłów.
cykliczny Metoda dystrybucji cyklicznej przydziela zadania do węzła w taki sposób, że
kolejne zadania są rozdzielane na kolejne węzły (w trybie okrężnym
moda). Rozważmy na przykład alokację trzech węzłów, z których każdy ma dwa
procesor. Żądanie cyklicznej dystrybucji czterech zadań spowoduje dystrybucję tych zadań do
węzły z zadaniami XNUMX i XNUMX w pierwszym węźle, zadanie XNUMX w drugim
węźle i zadanie trzecie w trzecim węźle. Zauważ, że gdy SelectType jest
select/cons_res, ta sama liczba procesorów może nie być przydzielona na każdym węźle.
Dystrybucja zadań będzie odbywała się w trybie okrężnym między wszystkimi węzłami z procesorami, które jeszcze nie zostały uruchomione
przypisać do zadań. Dystrybucja cykliczna jest zachowaniem domyślnym, jeśli
liczba zadań nie jest większa niż liczba przydzielonych węzłów.
samolot Zadania są podzielone na bloki o określonej wielkości. Opcje
zawierać liczbę reprezentującą rozmiar bloku zadań. To jest przestrzegane
poprzez opcjonalne określenie schematu podziału zadań w obrębie bloku
zadań i między blokami zadań. Liczba przydzielonych zadań
do każdego węzła jest taki sam jak dla dystrybucji cyklicznej, ale zadania
przypisane do każdego węzła zależą od wielkości płaszczyzny. Więcej szczegółów (m.in
przykłady i diagramy), patrz
http://slurm.schedmd.com/mc_support.html
i
http://slurm.schedmd.com/dist_plane.html
arbitralny
Dowolna metoda dystrybucji przydziela procesy w kolejności jako
wymienione w pliku wyznaczonym przez zmienną środowiskową SLURM_HOSTFILE. Jeśli
ta zmienna jest wymieniona, zastąpi każdą inną określoną metodę. Jeśli
nie ustawiona, metoda domyślnie będzie blokować. Wewnątrz pliku hosta musi zawierać
co najmniej żądaną liczbę hostów i po jednym w wierszu lub przecinku
rozdzielony. W przypadku określenia liczby zadań (-n, --nzadania=<numer>), swoje zadania
zostaną rozmieszczone na węzłach w kolejności pliku.
UWAGA: Opcja arbitralnej dystrybucji tylko dla przydziału zadań kontroluje
węzły, które mają być przydzielone do zadania, a nie alokację procesorów na nich
węzły. Ta opcja jest przeznaczona przede wszystkim do kontrolowania układu zadania kroku zadania w programie
istniejący przydział zadań dla komendy srun.
Druga metoda dystrybucji (dystrybucja procesorów pomiędzy gniazdami w celu powiązania):
* Użyj domyślnej metody dystrybucji procesorów pomiędzy gniazdami (cyklicznie).
blok Metoda dystrybucji blokowej będzie dystrybuować przydzielone procesory po kolei
z tego samego gniazda w celu powiązania z zadaniami, przed użyciem następnego z rzędu
gniazdo elektryczne.
cykliczny Metoda dystrybucji cyklicznej będzie dystrybuować przydzielone procesory do powiązania
dane zadanie kolejno z tego samego gniazda i z następnego
kolejne gniazdo dla następnego zadania, w sposób okrężny
gniazda.
fcykliczny
Metoda dystrybucji fcyklicznej będzie dystrybuować przydzielone procesory do powiązania
do zadań z kolejnych gniazd w sposób okrężny w całej sieci
gniazda.
Trzecia metoda dystrybucji (dystrybucja procesorów pomiędzy rdzeniami w celu powiązania):
* Użyj domyślnej metody dystrybucji procesorów pomiędzy rdzeniami (odziedziczonej z
druga metoda dystrybucji).
blok Metoda dystrybucji blokowej będzie dystrybuować przydzielone procesory po kolei
z tego samego rdzenia w celu powiązania z zadaniami, przed użyciem następnego z rzędu
rdzeń.
cykliczny Metoda dystrybucji cyklicznej będzie dystrybuować przydzielone procesory do powiązania
dane zadanie kolejno z tego samego rdzenia i z następnego kolejnego
rdzeń do następnego zadania, w sposób okrężny między rdzeniami.
fcykliczny
Metoda dystrybucji fcyklicznej będzie dystrybuować przydzielone procesory do powiązania
do zadań z kolejnych rdzeni w sposób okrężny pomiędzy rdzeniami.
Opcjonalna kontrola dystrybucji zadań pomiędzy węzłami:
Pakować Zamiast równomiernie rozdzielać zadania w ramach etapu zadania
przydzielone węzły, upakuj je tak ciasno, jak to możliwe w węzłach.
Brak pakietu Zamiast upakować zadania etapu zadania tak ciasno, jak to możliwe w węzłach,
rozprowadź je równomiernie. Ta opcja użytkownika zastąpi opcję
Parametr konfiguracyjny SelectTypeParameters CR_Pack_Nodes.
--typ poczty=<rodzaj>
Powiadamiaj użytkownika e-mailem o wystąpieniu określonych typów zdarzeń. Ważny rodzaj wartości to BRAK,
BEGIN, END, FAIL, REQUEUE, ALL (odpowiednik BEGIN, END, FAIL, REQUEUE i
STAGE_OUT), STAGE_OUT (zakończono fazę bufora impulsowego), TIME_LIMIT, TIME_LIMIT_90
(osiągnięto 90 procent czasu), TIME_LIMIT_80 (osiągnięto 80 procent czasu
limit) i TIME_LIMIT_50 (osiągnięto 50 procent limitu czasu). Wiele rodzaj wartości
można określić na liście oddzielonej przecinkami. Zostanie wskazany użytkownik, który ma zostać powiadomiony
w --użytkownik-poczty.
--użytkownik-poczty=<użytkownik>
Użytkownik, który ma otrzymywać powiadomienia e-mail o zmianach stanu zgodnie z definicją --typ poczty,
wartością domyślną jest użytkownik przesyłający.
--pam=<MB>
Określ rzeczywistą pamięć wymaganą na węzeł w megabajtach. Wartość domyślna to
DefMem na węzeł a maksymalna wartość to Maksymalna ilość pamięci na węzeł. Jeśli skonfigurowano, oba z
parametry można zobaczyć za pomocą kontrola pokazać config Komenda. Ten parametr
byłby ogólnie używany, gdyby całe węzły były przydzielane do zadań
(SelectType=wybierz/liniowy). Określenie limitu pamięci równego zero dla kroku zadania
ogranicz krok zadania do ilości pamięci przydzielonej do zadania, ale nie usuwaj go
alokację pamięci zadania dla innych etapów zadania. Również
widzieć --pamięć-na-procesor. --pam i --pamięć-na-procesor wykluczają się wzajemnie. UWAGA: wspomnienie
specyfikacja rozmiaru traktowana jest jako przypadek specjalny i zapewnia dostęp do zadania wszystkim
pamięć w każdym węźle. UWAGA: Obecnie zależy od egzekwowania limitów pamięci
wtyczka zadania/grupy c lub włączenie rozliczania, które próbkuje użycie pamięci na komputerze
okresowo (dane nie muszą być przechowywane, wystarczy je zebrać). W obu przypadkach użycie pamięci
opiera się na rozmiarze zestawu rezydentnego (RSS) zadania. Zadanie może przekroczyć limit pamięci
do następnej okresowej próby księgowej.
--pamięć-na-procesor=<MB>
Minimalna pamięć wymagana na przydzielony procesor w megabajtach. Wartość domyślna to
DefMem na CPU a maksymalna wartość to Maksymalna ilość pamięci na procesor (patrz wyjątek poniżej). Jeśli
skonfigurowany, oba parametry można zobaczyć za pomocą kontrola pokazać config dowództwo.
Zauważ, że jeśli praca jest --pamięć-na-procesor wartość przekracza skonfigurowaną Maksymalna ilość pamięci na procesor,
wtedy limit użytkownika będzie traktowany jako limit pamięci na zadanie; --pamięć-na-procesor
zostanie zredukowany do wartości nie większej niż Maksymalna ilość pamięci na procesor; --cpus-na-zadanie zostanie ustawiony
i wartość --cpus-na-zadanie pomnożone przez nowe --pamięć-na-procesor wartość będzie
dorównać oryginałowi --pamięć-na-procesor wartość określona przez użytkownika. Ten parametr będzie
zwykle używane, jeśli poszczególne procesory są przydzielane do zadań
(SelectType=select/cons_res). Jeśli zasoby są przydzielane przez rdzeń, gniazdo lub
całe węzły; liczba procesorów przydzielonych do zadania może być wyższa niż zadania
liczyć i wartość --pamięć-na-procesor należy odpowiednio dostosować. Określanie
limit pamięci wynoszący zero dla kroku zadania ograniczy krok zadania do ilości
pamięci przydzielonej do zadania, ale nie usuwaj żadnej części pamięci przydzielonej zadaniu
dostępność do innych etapów pracy. Zobacz także --pam. --pam i --pamięć-na-procesor jest
wzajemnie się wykluczające.
--mem_bind=[{cichy, obszerny},]rodzaj
Powiąż zadania z pamięcią. Używane tylko wtedy, gdy wtyczka zadania/powinowactwa jest włączona, a plik
Dostępne są funkcje pamięci NUMA. Note że dotychczasowy rozkład of CPU i pamięć
wiążący może różnić się on kilka architektury. Na przykład może zostać wykonane powiązanie procesora
na poziomie rdzeni w procesorze podczas wykonywania wiązania pamięci
na poziomie węzłów, gdzie definicja „węzłów” może się różnić w zależności od systemu
pomimo napiętego harmonogramu Kurs posługiwać się of każdy rodzaj inny niż "Żaden" or "lokalny" is nie zalecane. If
chcesz mieć większą kontrolę, spróbuj uruchomić prosty kod testowy z opcjami
„--cpu_bind=verbose,none --mem_bind=verbose,none”, aby określić konkretny
konfiguracja.
UWAGA: Aby Slurm zawsze raportował wybrane powiązanie pamięci dla wszystkich poleceń
wykonywany w powłoce, możesz włączyć tryb pełny, ustawiając SLURM_MEM_BIND
wartość zmiennej środowiskowej na „verbose”.
Następujące informacyjne zmienne środowiskowe są ustawiane kiedy --mem_bind jest w
posługiwać się:
SLURM_MEM_BIND_VERBOSE
SLURM_MEM_BIND_TYPE
SLURM_MEM_BIND_LIST
Zobacz ŚRODOWISKO ZMIENNE sekcja zawiera bardziej szczegółowy opis
poszczególne zmienne SLURM_MEM_BIND*.
Obsługiwane opcje obejmują:
cichy]
cicho powiąż przed uruchomieniem zadania (domyślnie)
gadatliwy]
szczegółowe raportowanie wiązania przed uruchomieniem zadania
nic] nie wiąż zadań z pamięcią (domyślnie)
rankingu powiąż według rangi zadania (niezalecane)
miejscowy Użyj pamięci lokalnej dla używanego procesora
pamięć_mapy:
powiązać, mapując pamięć węzła na zadania, jak określono gdzie Jest
, ,... . Identyfikatory procesora są interpretowane jako wartości dziesiętne
chyba że są poprzedzone „0x”, w którym to przypadku są interpretowane jako
wartości szesnastkowe (niezalecane)
pamięć_maski:
powiąż, ustawiając maski pamięci dla zadań, jak określono gdzie Jest
, ,... . maski pamięci są zawsze interpretowane jako
wartości szesnastkowe. Zauważ, że maski muszą być poprzedzone znakiem „0x”, jeśli tak
nie zaczynaj się od [0-9], więc są one postrzegane przez srun jako wartości liczbowe.
pomoc pokaż tę wiadomość pomocy
--mincpus=<n>
Określ minimalną liczbę procesorów logicznych/procesorów na węzeł.
--msg-limit czasu=<sekund>
Zmodyfikuj limit czasu komunikatu o uruchomieniu zadania. Wartość domyślna to Limit czasu wiadomości
Plik konfiguracyjny Slurma slurm.conf. Zmiany w tym zakresie zazwyczaj nie są
zalecane, ale może być przydatne do diagnozowania problemów.
--mpi=<typ_mpi>
Określ typ MPI, który ma zostać użyty. Może skutkować unikalnymi procedurami inicjowania.
podstęp Wyświetla listę dostępnych typów MPI do wyboru.
chłostać Inicjuje jeden proces „lamd” na węzeł i ustanawia niezbędne środowisko
zmienne dla LAM/MPI.
mpich1_shmem
Inicjuje jeden proces na węzeł i ustanawia niezbędne środowisko
zmienne dla modelu pamięci współdzielonej mpich1. Działa to również w przypadku kompilacji mvapich
za wspólną pamięć.
mpicgm
Do użytku z Myrinetem.
mvapich
Do użytku z Infinibandem.
otwórzmpi
Do użytku z OpenMPI.
pmi2 Aby włączyć obsługę PMI2. Obsługa PMI2 w Slurmie działa tylko wtedy, gdy MPI
implementacja to obsługuje, innymi słowy, jeśli MPI ma interfejs PMI2
wdrożony. Opcja --mpi=pmi2 załaduje bibliotekę lib/slurm/mpi_pmi2.so
który zapewnia funkcjonalność po stronie serwera, ale strona klienta musi
zaimplementuj PMI2_Init() i inne wywołania interfejsu.
Żaden Brak specjalnego przetwarzania MPI. Jest to ustawienie domyślne i działa z wieloma innymi
wersje MPI.
--wieloprogramowy
Uruchom zadanie z różnymi programami i różnymi argumentami dla każdego zadania. W tym
przypadku określony program wykonywalny jest w rzeczywistości plikiem konfiguracyjnym określającym
plik wykonywalny i argumenty dla każdego zadania. Widzieć WIELOKROTNOŚĆ PROGRAM KONFIGURACJA
poniżej znajdziesz szczegółowe informacje na temat zawartości pliku konfiguracyjnego.
-N, --węzły=<minnody[-maxwęzły]>
Poproś o min minnody węzły zostaną przydzielone do tego zadania. Maksymalny węzeł
liczba może być również określona za pomocą maxwęzły. Jeśli określono tylko jedną liczbę, this
jest używany zarówno jako minimalna, jak i maksymalna liczba węzłów. Limity węzłów partycji
zastąpić tych z pracy. Jeśli limity węzłów zadania są poza zakresem
dozwolone dla powiązanej partycji, zadanie pozostanie w stanie OCZEKUJĄCYM.
Pozwala to na ewentualną realizację w późniejszym czasie, gdy limit partycji wynosi
zmienione. Jeśli limit węzłów zadania przekracza liczbę węzłów skonfigurowanych w pliku
partycji, zadanie zostanie odrzucone. Zauważ, że zmienna środowiskowa
SLURM_JOB_NUM_NODES (I SLURM_NNODES dla kompatybilności wstecznej) zostanie ustawiona na
liczba węzłów faktycznie przydzielonych do zadania. Zobacz ŚRODOWISKO ZMIENNE
sekcja zawiera więcej informacji. Jeśli -N nie jest określony, domyślnym zachowaniem jest
przydzielić wystarczającą liczbę węzłów, aby spełnić wymagania -n i -c opcje. ten
zadaniu zostanie przydzielona jak największa liczba węzłów w określonym zakresie i
bez opóźniania rozpoczęcia pracy. Specyfikacja liczby węzłów może
zawierać wartość liczbową, po której następuje przyrostek „k” (mnoży wartość liczbową przez
1,024) lub „m” (mnoży wartość liczbową przez 1,048,576 XNUMX XNUMX).
-n, --nzadania=<numer>
Określ liczbę zadań do uruchomienia. Poproś o to upadek przydzielać zasoby na zadania
zadania. Wartość domyślna to jedno zadanie na węzeł, ale należy pamiętać, że plik --cpus-na-zadanie opcja
zmieni to ustawienie domyślne.
--sieć=<rodzaj>
Podaj informacje dotyczące przełącznika lub sieci. Interpretacja
rodzaj jest zależny od systemu. Ta opcja jest obsługiwana podczas uruchamiania Slurm na Cray
natywnie. Służy do żądania za pomocą liczników wydajności sieciowej. Tylko jedna wartość
na żądanie jest ważne. We wszystkich opcjach jest rozróżniana wielkość liter. W tej konfiguracji
obsługiwane wartości obejmują:
system
Korzystaj z ogólnosystemowych liczników wydajności sieci. Tylko żądane węzły będą
być oznaczone jako używane do przydziału zadań. Jeśli praca nie wypełnia
całego systemu, pozostałe węzły nie mogą być używane przez inne zadania
za pomocą NPC, jeśli są bezczynne, ich stan pojawi się jako PerfCnts. Te węzły są
nadal dostępne dla innych zadań nie korzystających z NPC.
nóż Użyj liczników wydajności sieci kasetowej. Będą tylko żądane węzły
oznaczone jako używane do przydziału zadań. Jeśli praca nie wypełnia całości
ostrza przydzielone do zadania te ostrza nie mogą być używane przez inne osoby
zadania używające NPC, jeśli są bezczynne, ich stan będzie wyświetlany jako PerfCnts. Te węzły są
nadal dostępne dla innych zadań nie korzystających z NPC.
We wszystkich przypadkach żądanie przydzielenia zadania lub kroku musi sprecyzować dotychczasowy
--ekskluzywna opcja. W przeciwnym razie prośba zostanie odrzucona.
Również w przypadku żadnej z tych opcji kroki nie mogą udostępniać ostrzy, więc zasoby
pozostanie bezczynny w alokacji, jeśli krok uruchomiony na ostrzu nie zostanie wykonany
wszystkie węzły na ostrzu.
Kurs sieć Opcja ta jest również obsługiwana w systemach ze środowiskiem równoległym firmy IBM
(PE). Zapoznaj się z dokumentacją słowa kluczowego komendy zadania LoadLeveler firmy IBM, aby uzyskać informacje na temat tego słowa kluczowego
„sieć”, aby uzyskać więcej informacji. W przecinku można podać wiele wartości
oddzielna lista. We wszystkich opcjach jest rozróżniana wielkość liter. Obsługiwane wartości obejmują:
BULK_XFER[=zasoby>]
Włącz masowy transfer danych przy użyciu zdalnego bezpośredniego dostępu do pamięci (RDMA).
Opcjonalne zasoby specyfikacja jest wartością liczbową, którą może mieć
przyrostek „k”, „K”, „m”, „M”, „g” lub „G” dla kilobajtów, megabajtów lub
gigabajty. Zanotuj zasoby specyfikacja nie jest obsługiwana przez
podstawowa infrastruktura IBM od wersji 2.2 środowiska równoległego
i w tym momencie nie należy podawać żadnej wartości. Przydzielone urządzenia
do zadania muszą być tego samego typu. Wartość domyślna zależy od
zależy od dostępnego sprzętu i kolejności preferencji
IPONLY (co nie jest brane pod uwagę w trybie przestrzeni użytkownika), HFI, IB, HPCE i
KMUX.
CAU=<liczyć> Wymagana liczba zbiorczych jednostek przyspieszenia (CAU). Dotyczy tylko
do procesorów IBM Power7-IH. Wartość domyślna to zero. Niezależny CAU
zostaną przydzielone dla każdego interfejsu programistycznego (MPI, LAPI itp.)
NAZWA DEV=<Nazwa>
Określ nazwę urządzenia, które ma być używane do komunikacji (np. „eth0” lub
"mlx4_0").
TYP URZĄDZENIA=<rodzaj>
Określ typ urządzenia używanego do komunikacji. Obsługiwane
wartości rodzaj są: „IB” (InfiniBand), „HFI” (P7 Host Fabric
interfejs), „IPONLY” (interfejsy obsługujące tylko IP), „HPCE” (HPC Ethernet) i
„KMUX” (emulacja jądra HPCE). Urządzenia przydzielone do zadania muszą
wszystkie będą tego samego typu. Wartość domyślna zależy od zależy od
jaki sprzęt jest dostępny i w kolejności preferencji to IPONLY (który
nie jest uwzględniany w trybie przestrzeni użytkownika), HFI, IB, HPCE i KMUX.
NATYCHMIAST =<liczyć>
Wymagana liczba miejsc do natychmiastowego wysyłania na okno. Dotyczy tylko
Procesory IBM Power7-IH. Wartość domyślna to zero.
INSTANCJE =<liczyć>
Określ liczbę połączeń sieciowych dla każdego zadania w każdej sieci
połączenie. Domyślna liczba instancji to 1.
IPV4 Użyj protokołu internetowego (IP) w wersji 4 (domyślnie).
IPV6 Korzystaj z komunikacji protokołu internetowego (IP) w wersji 6.
LAPI Użyj interfejsu programowania LAPI.
MPI Użyj interfejsu programowania MPI. Domyślnym interfejsem jest MPI.
PAMI Użyj interfejsu programowania PAMI.
SZMEM Użyj interfejsu programistycznego OpenSHMEM.
SN_ALL Użyj wszystkich dostępnych sieci przełączników (domyślnie).
SN_POJEDYNCZY Użyj jednej dostępnej sieci przełączników.
UPC Skorzystaj z interfejsu programistycznego UPC.
US Korzystaj z komunikacji w przestrzeni użytkownika.
Kilka przykładów specyfikacji sieci:
Instancje=2, USA, MPI, SN_ALL
Utwórz dwa połączenia przestrzeni użytkownika do komunikacji MPI na każdym
przełącz sieć dla każdego zadania.
USA,MPI,Instancje=3,Devtype=IB
Utwórz trzy połączenia w przestrzeni użytkownika dla komunikacji MPI na każdym
Sieć InfiniBand dla każdego zadania.
IPV4, LAPI, SN_Pojedynczy
Utwórz połączenie IP w wersji 4 do komunikacji LAPI na jednym przełączniku
sieć dla każdego zadania.
Instancje=2, USA, LAPI, MPI
Utwórz po dwa połączenia w przestrzeni użytkownika dla komunikacji LAPI i MPI
w każdej sieci przełączników dla każdego zadania. Zauważ, że SN_ALL jest wartością domyślną
opcja, więc używana jest każda sieć przełączników. Zauważ też, że Instancje=2
określa, że dla każdego protokołu ustanawiane są dwa połączenia (LAPI
i MPI) i każdego zadania. Jeśli włączone są dwie sieci i cztery zadania
węzła, wówczas ustanawiane są łącznie 32 połączenia (2 instancje x
2 protokoły x 2 sieci x 4 zadania).
--Ładny[=regulacja]
Uruchom zadanie z dostosowanym priorytetem planowania w Slurm. Bez regulacji
wartość priorytet planowania jest zmniejszany o 100. Zakres regulacji wynosi od
-10000 (najwyższy priorytet) do 10000 (najniższy priorytet). Tylko uprzywilejowani użytkownicy mogą
określić korektę ujemną. UWAGA: Ta opcja jest obecnie ignorowana, jeśli
SchedulerType=sched/wiki or Typ harmonogramu=sched/wiki2.
--ntasks-na-rdzeń=<zadania>
Poproś o maksimum zadania być wywoływane na każdym rdzeniu. Ta opcja dotyczy zadania
alokacji, ale nie alokacji stopniowej. Przeznaczony do użytku z --nzadania
opcja. Związany z --ntasks-na-węzeł z wyjątkiem poziomu rdzenia zamiast węzła
poziom. Maski zostaną automatycznie wygenerowane w celu powiązania zadań z konkretnym rdzeniem
chyba że --cpu_bind=brak jest specyficzne. UWAGA: Ta opcja nie jest obsługiwana, chyba że
SelectTypeParameters=CR_Core or SelectTypeParameters=CR_Core_Memory jest skonfigurowany.
--ntasks-na-węzeł=<zadania>
Poproś o to zadania być wywoływana w każdym węźle. Jeśli używany z --nzadania opcja,
--nzadania opcja będzie miała pierwszeństwo i --ntasks-na-węzeł będzie traktowany jako
maksymalny liczba zadań na węzeł. Przeznaczony do użytku z --węzły opcja. To
odnosi się do --cpus-na-zadanie=ncpus, ale nie wymaga znajomości stanu faktycznego
liczba procesorów w każdym węźle. W niektórych przypadkach wygodniej jest mieć możliwość
zażądać, aby w każdym węźle wywoływano nie więcej niż określoną liczbę zadań.
Przykładem może być przesyłanie hybrydowej aplikacji MPI/OpenMP, w której jest tylko jeden MPI
„zadanie/ranga” powinno być przypisane do każdego węzła, pozwalając na to części OpenMP
wykorzystać całą równoległość obecną w węźle lub przesłać pojedynczą
zadania konfiguracji/czyszczenia/monitorowania do każdego węzła istniejącej wcześniej alokacji jako jeden krok
w większym skrypcie pracy.
--ntasks-na-gniazdo=<zadania>
Poproś o maksimum zadania być wywoływane na każdym gnieździe. Opcja ta dotyczy
przydziału zadań, ale nie przydziału stopni. Przeznaczony do użytku z --nzadania
opcja. Związany z --ntasks-na-węzeł z wyjątkiem poziomu gniazda zamiast
poziom węzła. Maski zostaną automatycznie wygenerowane w celu powiązania zadań z konkretnymi
gniazdka, chyba że --cpu_bind=brak jest specyficzne. UWAGA: Ta opcja nie jest obsługiwana
chyba że SelectTypeParameters=CR_Socket or SelectTypeParameters=CR_Socket_Memory is
skonfigurowany.
-O, --zaangażowanie
Przeciążaj zasoby. Po zastosowaniu do alokacji zadań przydzielany jest tylko jeden procesor
zadanie na węzeł i opcje używane do określenia liczby zadań na węzeł, gniazdo,
rdzeń itp. są ignorowane. Po zastosowaniu do alokacji etapów pracy (tzw upadek komenda
gdy jest wykonywany w ramach istniejącego przydziału zadań), tej opcji można użyć do uruchomienia
więcej niż jedno zadanie na procesor. normalnie, upadek nie przydzieli więcej niż jednego procesu
na procesor. Określając --zaangażowanie wyraźnie zezwalasz na więcej niż jeden
proces na procesor. Jednak nie więcej niż MAX_TASKS_PER_NODE zadania są dozwolone
wykonać na węzeł. NOTATKA: MAX_TASKS_PER_NODE jest zdefiniowany w pliku slums.h i jest
nie jest zmienną, jest ustawiana w czasie kompilacji Slurm.
-o, --wyjście=<tryb>
Określ tryb przekierowania na standardowe wyjście. Domyślnie w trybie interaktywnym upadek
zbiera standardowe wyjście ze wszystkich zadań i wysyła je poprzez protokół TCP/IP do dołączonego pliku
terminal. Z --wyjście standardowe wyjście może zostać przekierowane do pliku, do jednego pliku na zadanie,
lub do /dev/null. Patrz sekcja IO przekierowanie poniżej dla różnych form tryb.
Jeśli określony plik już istnieje, zostanie nadpisany.
If --błąd nie jest również określony w wierszu poleceń, zarówno stdout, jak i stderr
kierowany do pliku określonego przez --wyjście.
--tryb otwarty=<dołącz|obetnij>
Otwórz pliki wyjściowe i pliki błędów, korzystając z trybu dołączania lub obcinania, jak określono. The
wartość domyślna jest określona przez parametr konfiguracyjny systemu PlikZadaniaDołącz.
-p, --przegroda=<nazwy_partycji>
Zażądaj określonej partycji dla alokacji zasobów. Jeśli nie określono,
domyślnym zachowaniem jest umożliwienie kontrolerowi slurm wybrania partycji domyślnej
zgodnie z wytycznymi administratora systemu. Jeśli praca może korzystać z więcej niż jednego
partycji, podaj ich nazwy na liście oddzielonej przecinkami i jedną ofertę
używana będzie najwcześniejsza inicjacja bez względu na nazwę partycji
kolejności (chociaż partycje o wyższym priorytecie będą brane pod uwagę w pierwszej kolejności). Kiedy
zadanie zostanie zainicjowane, nazwa używanej partycji zostanie umieszczona jako pierwsza w zadaniu
zapisz ciąg partycji.
--moc=<Flagi>
Oddzielona przecinkami lista opcji wtyczek do zarządzania energią. Aktualnie dostępne flagi
obejmują: poziom (wszystkie węzły przydzielone do zadania powinny mieć identyczne limity mocy,
może być wyłączona przez opcję konfiguracji Slurm PowerParameters=job_no_level).
--priorytet=
Poproś o określony priorytet zadania. Może zależeć od konfiguracji
ograniczenia. Tylko operatorzy i administratorzy Slurm mogą ustawić priorytet a
praca.
--profil=
umożliwia gromadzenie szczegółowych danych przez wtyczkę acct_gather_profile. Szczegółowe dane
są zazwyczaj szeregami czasowymi, które są przechowywane w pliku HDF5 dla zadania.
Wszystkie produkty Gromadzone są wszystkie typy danych. (Nie można łączyć z innymi wartościami.)
żaden Nie są gromadzone żadne typy danych. To jest ustawienie domyślne.
(Nie można łączyć z innymi wartościami.)
Energia Gromadzone są dane dotyczące energii.
Zadanie Zbierane są dane zadania (we/wy, pamięć, ...).
System plików
Gromadzone są dane dotyczące systemu plików.
Sieć Zbierane są dane sieciowe (InfiniBand).
--prolog=<plik wykonywalny>
upadek będzie działać plik wykonywalny tuż przed rozpoczęciem kroku zadania. Linia poleceń
argumenty dla plik wykonywalny będzie poleceniem i argumentami kroku zadania. Jeśli
plik wykonywalny ma wartość „none”, wówczas żaden prolog srun nie zostanie uruchomiony. Ten parametr zastępuje
Parametr SrunProlog w slurm.conf. Parametr ten jest całkowicie niezależny od
parametr Prolog w slurm.conf.
--propagować[=granice]
Umożliwia użytkownikom określenie, które z modyfikowalnych (miękkich) limitów zasobów mają być propagowane
do węzłów obliczeniowych i zastosować do ich zadań. Jeśli granice nie jest określony, to
wszystkie limity zasobów zostaną propagowane. Obsługiwane są następujące nazwy limitów
autorstwa Slurma (chociaż niektóre opcje mogą nie być obsługiwane w niektórych systemach):
WSZYSTKO Wszystkie limity wymienione poniżej
AS Maksymalna przestrzeń adresowa procesu
CORE Maksymalny rozmiar pliku core
CPU Maksymalna ilość czasu procesora
DATA Maksymalny rozmiar segmentu danych procesu
FROZMIAR Maksymalny rozmiar tworzonych plików. Należy pamiętać, że jeśli użytkownik ustawi FSIZE na
mniejszy niż bieżący rozmiar pliku slurmd.log, uruchomienie zadań nie powiedzie się
błąd „Przekroczono limit rozmiaru pliku”.
PAMIĘĆ Maksymalny rozmiar, który można zablokować w pamięci
BRAK PLIKU Maksymalna liczba otwartych plików
NPROC Maksymalna liczba dostępnych procesów
RSS Maksymalny rozmiar zestawu rezydentnego
STACK Maksymalny rozmiar stosu
--pt Wykonaj zadanie zero w trybie pseudoterminalu. Niejawnie ustawia --niebuforowane.
Niejawnie ustawia --błąd i --wyjście do /dev/null dla wszystkich zadań z wyjątkiem zadania zerowego,
co może spowodować natychmiastowe zakończenie tych zadań (np. powłoki zwykle kończą się).
natychmiast w takiej sytuacji). Obecnie nie jest obsługiwane na platformach AIX.
-Q, --cichy
Pomiń komunikaty informacyjne od srun. Błędy będą nadal wyświetlane.
-q, --wyjdź po przerwaniu
Zakończ natychmiast po pojedynczym SIGINT (Ctrl-C). Użycie tej opcji powoduje wyłączenie statusu
funkcja zwykle dostępna, gdy upadek otrzymuje pojedynczy Ctrl-C i powoduje upadek do
zamiast tego natychmiast zakończ uruchomione zadanie.
--qos=<qos>
Poproś o jakość usług dla tego zadania. Dla każdego można zdefiniować wartości QOS
powiązanie użytkownika/klastra/konta w bazie danych Slurm. Użytkownicy będą ograniczeni do
zdefiniowany zestaw qos ich powiązania, gdy parametr konfiguracyjny Slurm,
AccountingStorageEnforce zawiera w swojej definicji „qos”.
-r, --względny=<n>
Uruchom krok zadania względem węzła n aktualnej alokacji. Ta opcja może być
używany do rozłożenia kilku etapów zadania pomiędzy węzłami bieżącego zadania. Jeśli -r is
używany, bieżący etap zadania rozpocznie się w węźle n przydzielonej listy węzłów, gdzie
pierwszy węzeł jest uważany za węzeł 0. The -r opcja nie jest dozwolona w przypadku -w or -x
opcję i spowoduje błąd krytyczny, jeśli nie zostanie uruchomiony w ramach wcześniejszej alokacji
(tzn. gdy nie ustawiono SLURM_JOB_ID). Wartość domyślna dla n wynosi 0. Jeśli wartość
--węzły przekracza liczbę węzłów zidentyfikowanych za pomocą --względny opcja, a
zostanie wydrukowany komunikat ostrzegawczy i --względny opcja będzie miała pierwszeństwo.
--restart
Wymuś ponowne uruchomienie przydzielonych węzłów przed rozpoczęciem zadania. To jest tylko
obsługiwane w niektórych konfiguracjach systemu i w przeciwnym razie będą dyskretnie ignorowane.
--resv-ports
Zarezerwuj porty komunikacyjne dla tego zadania. Użytkownicy mogą określić numer portu
chcesz zarezerwować. Należy określić parametr MpiParams=ports=12000-12999
slurm.conf. Jeśli nie określono domyślnej rezerwowej liczby portów równej
liczba zadań. Jeśli liczba zarezerwowanych portów wynosi zero, żaden port nie jest zarezerwowany.
Używany w OpenMPI.
--rezerwacja=<Nazwa>
Przydziel zasoby dla zadania z nazwanej rezerwacji.
--restart-katalog=<katalog>
Określa katalog, z którego należy odczytać punkt kontrolny zadania lub kroku zadania
(używane tylko przez wtyczki checkpoint/blcrm i checkpoint/xlch).
-s, --udział
Alokacja zadania może współdzielić zasoby z innymi uruchomionymi zadaniami. Zasoby do
współużytkowane mogą być węzły, gniazda, rdzenie lub hiperwątki, w zależności od tego
konfiguracja. Domyślne wspólne zachowanie zależy od konfiguracji systemu i
partycji wspólne opcja ma pierwszeństwo przed opcją zadania. Ta opcja może
skutkować przyznaniem alokacji wcześniej niż w przypadku braku opcji --share
ustawić i pozwolić na większe wykorzystanie systemu, ale wydajność aplikacji prawdopodobnie będzie
cierpieć z powodu rywalizacji o zasoby. Zobacz także opcję --exclusive.
-S, --core-spec=<num>
Liczba wyspecjalizowanych rdzeni na węzeł zarezerwowanych przez zadanie dla operacji systemowych i
nie jest używany przez aplikację. Aplikacja nie będzie korzystała z tych rdzeni, ale będzie
opłata za ich przydział. Wartość domyślna zależy od węzła
skonfigurowana wartość CoreSpecCount. Jeśli wyznaczona jest wartość zero, a Slurm
opcja konfiguracji AllowSpecResourcesUsage jest włączona, zadanie będzie dozwolone
zastąp CoreSpecCount i używaj wyspecjalizowanych zasobów w przydzielonych mu węzłach.
Tej opcji nie można używać z --specyfikacja-wątku opcja.
--sicp Zidentyfikuj pracę jako taką, od której mogą zależeć oferty przesłane do innych klastrów.
--sygnał=<numer_sygn>[@sig_time>]
Kiedy praca jest w środku sig_time sekund jego czasu zakończenia, wyślij mu sygnał numer_sygn.
Ze względu na rozdzielczość obsługi zdarzeń przez Slurm, sygnał może być wysłany do 60
sekundy wcześniej niż podano. numer_sygn może być numerem sygnału lub nazwą
(np. „10” lub „USR1”). sig_time musi mieć wartość całkowitą z zakresu od 0 do 65535.
Domyślnie żaden sygnał nie jest wysyłany przed czasem zakończenia zadania. Jeśli numer_sygn jest specyficzne
bez sig_time, domyślnym czasem będzie 60 sekund.
--slurmd-debug=<poziom>
Określ poziom debugowania dla slums(8). The poziom można określić jako liczbę całkowitą
wartość z zakresu od 0 [cicho, wyświetlane są tylko błędy] do 4 [operacja pełna] lub
SlurmdDebug tagi.
cichy Nic nie loguj
fatalny Rejestruj tylko błędy krytyczne
błąd Rejestruj tylko błędy
Informacje Rejestruj błędy i ogólne komunikaty informacyjne
gadatliwy Rejestruj błędy i szczegółowe komunikaty informacyjne
Informacje debugowania slurmd są kopiowane na stderr pliku
Praca. Domyślnie wyświetlane są tylko błędy.
--gniazda-na-węzeł=<Gniazda>
Ogranicz wybór węzłów do węzłów z co najmniej określoną liczbą gniazd.
Zobacz dodatkowe informacje w -B opcja powyżej, gdy jest wtyczka zadania/powinowactwa
włączone.
--przełączniki=<liczyć>[@maksymalny czas>]
Gdy używana jest topologia drzewa, określa to maksymalną liczbę żądanych przełączników
dla przydziału zadań i opcjonalnie maksymalny czas oczekiwania na tę liczbę
przełączniki. Jeśli Slurm znajdzie alokację zawierającą więcej przełączników niż liczba
określony, zadanie pozostaje w toku, dopóki nie znajdzie odpowiedniego przydziału
liczba przełączeń lub upłynie limit czasu. Nie ma limitu liczby przełączników
nie ma opóźnienia w rozpoczęciu pracy. Dopuszczalne formaty czasu obejmują „minuty”,
„minuty:sekundy”, „godziny:minuty:sekundy”, „dni-godziny”, „dni-godziny:minuty” i
„dni-godziny: minuty: sekundy”. Maksymalne opóźnienie zadania może być ograniczone przez
administrator systemu za pomocą Parametry harmonogramu parametr konfiguracyjny z
max_switch_wait opcja parametru. Domyślny maksymalny czas to max_switch_wait
Parametry harmonogramu.
-T, --wątki=<nwątki>
Umożliwia ograniczenie liczby jednoczesnych wątków używanych do wysyłania żądania zadania
proces srun na procesy slurmd w przydzielonych węzłach. Domyślnie jest używane
jeden wątek na przydzielony węzeł, maksymalnie do 60 jednoczesnych wątków. Określanie
ta opcja ogranicza liczbę współbieżnych wątków do nwątki (mniejsze lub równe
do 60). Należy tego używać tylko do ustawiania małej liczby wątków do testowania na bardzo
komputery o małej pamięci.
-t, --czas=<czas>
Ustaw limit całkowitego czasu działania przydziału zadań. Jeśli żądany czas
przekroczy limit czasu partycji, zadanie pozostanie w stanie OCZEKUJĄCYM
(prawdopodobnie na czas nieokreślony). Domyślnym limitem czasu jest domyślny czas partycji
limit. Po osiągnięciu limitu czasu każde zadanie w każdym kroku zadania jest wysyłane SIGTERM
następnie SIGKILL. Odstęp między sygnałami jest określony przez Slurm
parametr konfiguracyjny Zabij Czekaj, Limit nadgodzin parametr konfiguracyjny może
pozwolić, aby zadanie trwało dłużej niż zaplanowano. Rozdzielczość czasowa to jedna minuta i
drugie wartości są zaokrąglane w górę do następnej minuty.
Limit czasu zero żąda, aby nie nakładać żadnego limitu czasu. Akceptowalny czas
formaty obejmują „minuty”, „minuty:sekundy”, „godziny:minuty:sekundy”,
„dni-godziny”, „dni-godziny:minuty” i „dni-godziny:minuty:sekundy”.
--epilog zadania=<plik wykonywalny>
Kurs błotnisty demon będzie działać plik wykonywalny zaraz po zakończeniu każdego zadania. Ten
zostanie wykonany przed wykonaniem dowolnego parametru TaskEpilog w slurm.conf. To jest
miał być programem bardzo krótkotrwałym. Jeśli nie zakończy się w ciągu kilku
sekund, zostanie zabity wraz ze wszystkimi procesami potomnymi.
--prolog zadania=<plik wykonywalny>
Kurs błotnisty demon będzie działać plik wykonywalny tuż przed uruchomieniem każdego zadania. Ten
zostanie wykonane po wykonaniu dowolnego parametru TaskProlog w slurm.conf. Oprócz
normalne zmienne środowiskowe, ma dostępny SLURM_TASK_PID do identyfikacji
identyfikator procesu uruchamianego zadania. Standardowe wyjście z tego programu
formularz „nazwa eksportu=wartość” zostanie użyty do ustawienia zmiennych środowiskowych dla zadania
rodzi się.
--tylko test
Zwraca szacunkową datę uruchomienia zadania, biorąc pod uwagę bieżące zadanie
kolejka i cała reszta upadek argumenty określające zadanie. To ogranicza Srun'a
zachowanie polegające na zwróceniu informacji; w rzeczywistości nie złożono żadnego zadania. WYJĄTEK: Włączony
Systemy Bluegene/Q włączone, gdy działają w ramach istniejącego przydziału zadań, powoduje to wyłączenie
użycie „runjob” do uruchamiania zadań. Program będzie wykonywany bezpośrednio przez
demon slurmd.
--specyfikacja-wątku=<num>
Liczba wyspecjalizowanych wątków na węzeł zarezerwowanych przez zadanie dla operacji systemowych i
nie jest używany przez aplikację. Aplikacja nie będzie używać tych wątków, ale będzie
pobierać opłatę za ich przydział. Tej opcji nie można używać z --core-spec
opcja.
--wątków-na-rdzeń=<threads>
Ogranicz wybór węzłów do węzłów z co najmniej określoną liczbą wątków na
rdzeń. UWAGA: „Wątki” odnoszą się raczej do liczby jednostek przetwarzających na każdym rdzeniu
niż liczba zadań aplikacji do uruchomienia na rdzeń. Zobacz dodatkowe
informacje pod -B opcja powyżej, gdy wtyczka zadania/powinowactwa jest włączona.
--czas-min=<czas>
Ustaw minimalny limit czasu przydziału zadań. Jeśli określono, zadanie może mieć
to --czas limit obniżony do wartości nie niższej niż --czas-min jeśli to pozwoli
aby zadanie rozpoczęło się wcześniej niż jest to możliwe w inny sposób. Limit czasu pracy
nie ulegnie zmianie po przydzieleniu zasobów do zadania. Dokonuje tego A
algorytm planowania uzupełniania w celu przydzielenia zasobów zarezerwowanych w inny sposób dla wyższych
prace priorytetowe. Dopuszczalne formaty czasu to „minuty”, „minuty:sekundy”,
„godziny:minuty:sekundy”, „dni-godziny”, „dni-godziny:minuty” i
„dni-godziny: minuty: sekundy”.
--tmp=<MB>
Określ minimalną ilość tymczasowego miejsca na dysku.
-u, --niebuforowane
Domyślnie połączenie pomiędzy slurmstepd a aplikacją uruchomioną przez użytkownika to
nad rurą. Dane wyjściowe stdio zapisane przez aplikację są buforowane przez bibliotekę glibc
dopóki nie zostanie opróżniony lub wyjście nie zostanie ustawione jako niebuforowane. Widzieć ustaw(3). Jeśli to
określono opcję, zadania są wykonywane za pomocą pseudoterminalu, dzięki czemu
Dane wyjściowe aplikacji są niebuforowane.
--stosowanie
Wyświetl krótki komunikat pomocy i wyjdź.
--uid=<użytkownik>
Próba przesłania i/lub uruchomienia zadania jako użytkownik zamiast wywołującego identyfikatora użytkownika. The
wywołanie poświadczeń użytkownika zostanie użyte do sprawdzenia uprawnień dostępu dla celu
przegroda. Użytkownik root może użyć tej opcji do uruchamiania zadań jako zwykły użytkownik w trybie RootOnly
partycja np. Jeśli uruchomisz jako root, upadek zrzuci swoje uprawnienia do uid
określony po pomyślnym przydzieleniu węzła. użytkownik może być nazwą użytkownika lub
numeryczny identyfikator użytkownika.
-V, --wersja
Wyświetl informacje o wersji i zakończ.
-v, --gadatliwy
Zwiększ szczegółowość komunikatów informacyjnych Srun. Wiele -vwola
jeszcze bardziej zwiększ gadatliwość Srun. Domyślnie wyświetlane będą tylko błędy.
-W, --czekać=<sekund>
Określ czas oczekiwania po zakończeniu pierwszego zadania przed zakończeniem wszystkich
pozostałe zadania. Wartość 0 oznacza nieograniczone oczekiwanie (zostanie wygenerowane ostrzeżenie).
po 60 sekundach). Wartość domyślna jest ustawiana przez parametr WaitTime w slumsie
plik konfiguracyjny (zobacz slurm.conf(5)). Ta opcja może być przydatna, aby zapewnić, że a
praca zostaje zakończona w odpowiednim czasie w przypadku zakończenia jednego lub większej liczby zadań
przedwcześnie. Zanotuj -K, --zabij przy złym wyjściu opcja ma pierwszeństwo przed -W,
--czekać aby natychmiast zakończyć zadanie, jeśli zadanie zakończy się z niezerowym kodem zakończenia.
-w, --lista węzłów=<host1, host2,... or filename>
Poproś o konkretną listę gospodarzy. Praca będzie zawierać cała kolekcja tych gospodarzy i
ewentualnie dodatkowych hostów w razie potrzeby, aby spełnić wymagania dotyczące zasobów. Lista może
być określony jako oddzielona przecinkami lista hostów, zakres hostów (host[1-5,7,...]
na przykład) lub nazwę pliku. Lista hostów zostanie uznana za nazwę pliku, jeśli tak
zawiera znak „/”. W przypadku określenia minimalnej liczby węzłów lub procesorów większa
niż może być spełniony przez dostarczoną listę hostów, będą dodatkowe zasoby
przydzielane w innych węzłach w miarę potrzeb. Zamiast powtarzać wielokrotnie nazwę hosta
razy, do nazwy hosta można dołączyć gwiazdkę i liczbę powtórzeń. Dla
przykład „host1, host1” i „host1*2” są równoważne.
--wckey=<wckey>
Określ klucz wckey, który ma być używany z zadaniem. Jeśli TrackWCKey=no (domyślnie) w pliku slurm.conf
ta wartość jest ignorowana.
-X, --stan-wyłączenia
Wyłącz wyświetlanie statusu zadania, gdy srun otrzyma pojedynczy SIGINT (Ctrl-C).
Zamiast tego natychmiast przekaż SIGINT do działającego zadania. Bez tej opcji a
drugie Ctrl-C w ciągu jednej sekundy jest wymagane, aby wymusić zakończenie zadania i upadek będzie
natychmiast wyjdź. Można również ustawić za pomocą zmiennej środowiskowej
SLURM_DISABLE_STATUS.
-x, --wykluczać=<host1, host2,... or filename>
Zażądaj, aby konkretna lista hostów nie była uwzględniana w przydzielonych zasobach
ta praca. Zakłada się, że lista hostów jest nazwą pliku, jeśli zawiera
"/"postać.
-Z, --nie-przydziel
Uruchom określone zadania na zestawie węzłów bez tworzenia „zadania” Slurm w pliku
Struktura kolejki slumsów z pominięciem normalnego etapu alokacji zasobów. Lista
węzły muszą być określone za pomocą -w, --lista węzłów opcja. To coś uprzywilejowanego
opcja dostępna tylko dla użytkowników "SlurmUser" i "root".
Poniższe opcje obsługują systemy Blue Gene, ale mogą mieć zastosowanie do innych systemów
dobrze.
--blrts-image=<ścieżka>
Ścieżka do obrazu blrts dla bloku bluegene. Tylko BGL. Domyślnie od blugene.conf if
nie ustawiony.
--cnload-image=<ścieżka>
Ścieżka do obrazu węzła obliczeniowego dla bloku bluegene. Tylko BGP. Domyślnie od
blugene.conf jeśli nie jest ustawiony.
--conn-typ=<rodzaj>
Wymagaj, aby typ połączenia blokowego był określonego typu. Na Blue Gene
dopuszczalne z rodzaj to SIATKA, TORUS i NAV. Jeśli NAV lub jeśli nie jest ustawiony, Slurm to zrobi
spróbuj dopasować ustawienie DefaultConnType w bluegene.conf, jeśli tak nie jest
ustaw domyślną wartość TORUS. Zwykle nie należy ustawiać tej opcji. Jeśli biegnie dalej
system BGP i chęć pracy w trybie HTC (tylko dla 1 płaszczyzny pośredniej i niższej). Ty
może używać HTC_S dla SMP, HTC_D dla Dual, HTC_V dla trybu węzła wirtualnego i HTC_L dla
Tryb Linuksa. W przypadku systemów, które pozwalają na inny typ połączenia w zależności od wymiaru
może podać oddzieloną przecinkami listę typów połączeń, można podać jeden dla
każdy wymiar (tj. M, T, T, T da ci połączenie torusa we wszystkich wymiarach
spodziewać się pierwszego).
-g, --geometria=<XxYxZ> |AxXxYxZ>
Określ wymagania dotyczące geometrii zadania. W systemach BlueGene/L i BlueGene/P
są trzy liczby określające wymiary w kierunkach X, Y i Z, gdy są włączone
W systemach BlueGene/Q są cztery liczby określające wymiary w A, X, Y i Z
kierunkach i nie może być używany do przydzielania podbloków. Na przykład
„--geometry=1x2x3x4”, określa blok węzłów mający 1 x 2 x 3 x 4 = 24 węzły
(właściwie płaszczyzny środkowe na BlueGene).
--ioload-image=<ścieżka>
Ścieżka do obrazu io dla bloku bluegene. Tylko BGP. Domyślnie od blugene.conf Jeśli nie
ustawiony.
--obraz-linux=<ścieżka>
Ścieżka do obrazu Linuksa dla bloku bluegene. Tylko BGL. Domyślnie od blugene.conf if
nie ustawiony.
--mloader-image=<ścieżka>
Ścieżka do obrazu mloadera dla bloku bluegene. Domyślnie od blugene.conf jeśli nie jest ustawiony.
-R, --bez obracania
Wyłącza obrót żądanej geometrii zadania w celu dopasowania odpowiedniej
blok. Domyślnie określona geometria może obracać się w trzech wymiarach.
--ramdysk-obraz=<ścieżka>
Ścieżka do obrazu ramdysku dla bloku bluegene. Tylko BGL. Domyślnie od blugene.conf if
nie ustawiony.
upadek prześle żądanie zadania do kontrolera zadań slumsu, a następnie zainicjuje wszystkie procesy
na odległych węzłach. Jeżeli prośba nie może zostać natychmiast spełniona, upadek będzie blokować do
zasoby są wolne do wykonania zadania. Jeśli -I (--natychmiastowy) opcja jest określona upadek będzie
zakończyć, jeśli zasoby nie są natychmiast dostępne.
Podczas inicjowania procesów zdalnych upadek będzie propagować bieżący katalog roboczy, chyba że
--chdir=<ścieżka> jest określone, w takim przypadku ścieżka stanie się katalogiem roboczym dla pliku
procesy zdalne.
Kurs -N, -c, -N Opcje kontrolują sposób przydzielania procesorów i węzłów do zadania. Gdy
określając tylko liczbę procesów, z którymi ma zostać uruchomiony -n, domyślnie jeden procesor na proces
jest przydzielane. Określając liczbę procesorów wymaganych na zadanie (-c), więcej niż jeden procesor
mogą być przydzielane na proces. Jeśli liczba węzłów jest określona za pomocą -N, upadek będzie
spróbuj przydzielić at najmniej określoną liczbę węzłów.
Aby zmienić sposób działania procesów, można zastosować kombinacje powyższych trzech opcji
rozproszone pomiędzy węzłami i procesorem. Na przykład, określając zarówno liczbę
procesów i liczby węzłów, na których mają być uruchamiane, liczba procesów na węzeł wynosi
ukryty. Jeśli jednak liczba procesorów na proces jest ważniejsza niż liczba
procesy (-n) i liczbę procesorów na proces (-c) należy określić.
upadek odmówi przydzielenia więcej niż jednego procesu na procesor, chyba że --zaangażowanie (-O) jest
również określone.
upadek podejmie próbę spełnienia powyższych specyfikacji „co najmniej”. Oznacza to, że jeśli 16 węzłów
są wymagane dla 32 procesów, a niektóre węzły nie mają 2 procesorów, alokacja węzłów
zostanie zwiększona w celu zaspokojenia zapotrzebowania na procesory. Innymi słowy, A minimum lub 16
żądane są węzły. Jeśli jednak dla 16 procesów zażądanych zostanie 15 węzłów, upadek będzie
uznaj to za błąd, ponieważ 15 procesów nie może działać w 16 węzłach.
IO przekierowanie
Domyślnie stdout i stderr zostaną przekierowane ze wszystkich zadań na stdout i stderr
of upadek, a stdin zostanie przekierowane ze standardowego wejścia upadek do wszystkich zdalnych zadań.
Jeśli stdin ma być czytany tylko przez podzbiór utworzonych zadań, określenie pliku do odczytania
from zamiast przekazywać stdin z upadek polecenie może być lepsze, ponieważ pozwala uniknąć
przenoszenia i przechowywania danych, które nigdy nie zostaną odczytane.
W systemie OS X funkcja poll() nie obsługuje standardowego wejścia, więc dane wejściowe z terminala nie są obsługiwane
możliwe.
W przypadku BGQ srun obsługuje tylko stdin do 1 zadania uruchomionego w systemie. Domyślnie jest to zadanie
0, ale można to zmienić za pomocą opcji -i jak opisano poniżej, lub
--launcher-opts="--stdinrank= „.
To zachowanie można zmienić za pomocą polecenia --wyjście, --błąd, --Wejście (-o, -e, -i) opcje.
Prawidłowe specyfikacje formatu dla tych opcji to:
cała kolekcja stdout stderr jest przekierowywany ze wszystkich zadań do srun. stdin jest rozgłaszany wszystkim
zadania zdalne. (To jest zachowanie domyślne)
Żaden stdout i stderr nie są odbierane z żadnego zadania. stdin nie jest wysyłany do żadnego zadania
(stdin jest zamknięty).
zadanie stdout i/lub stderr są przekierowywane tylko z zadania o względnym identyfikatorze równym
zadanie, gdzie 0 <= zadanie <= zadania, Gdzie zadania to całkowita liczba zadań
w bieżącym kroku zadania. stdin jest przekierowywane ze stdin upadek do tego
to samo zadanie. Plik ten zostanie zapisany w węźle wykonującym zadanie.
filename upadek przekieruje stdout i/lub stderr do nazwanego pliku ze wszystkich zadań. stdin
zostanie przekierowany z nazwanego pliku i rozesłany do wszystkich zadań w zadaniu.
filename odnosi się do ścieżki na hoście, który jest uruchomiony upadek. W zależności od
układ systemu plików klastra, może to spowodować pojawienie się danych wyjściowych w
różnych miejscach w zależności od tego, czy zadanie jest uruchamiane w trybie wsadowym.
format ciąg
upadek pozwala na użycie ciągu formatującego do wygenerowania nazwanego pliku IO
opisane powyżej. Poniższa lista specyfikatorów formatu może być używana w pliku
format string do wygenerowania nazwy pliku, która będzie unikalna dla danego jobidu,
krokowy, węzeł lub zadanie. W każdym przypadku otwierana jest odpowiednia liczba plików
i powiązane z odpowiednimi zadaniami. Należy pamiętać, że dowolny ciąg formatujący
zawierające %t, %n i/lub %N zostaną zapisane w węźle wykonującym zadanie
zamiast węzła, w którym upadek jest wykonywany, te specyfikatory formatu nie są
obsługiwane w systemie BGQ.
%A Główny numer alokacji zadania tablicy zadań.
%a Numer identyfikacyjny (indeks) tablicy zadań.
%J jobid.stepid działającego zadania. (np. „128.0”)
%j identyfikator zadania uruchomionego.
%s krok działającego zadania.
%N krótka nazwa hosta. Spowoduje to utworzenie osobnego pliku IO dla każdego węzła.
%n Identyfikator węzła względem bieżącego zadania (np. „0” to pierwszy węzeł
uruchomione zadanie) Spowoduje to utworzenie osobnego pliku IO dla każdego węzła.
%t identyfikator zadania (ranking) w stosunku do bieżącego zadania. Spowoduje to utworzenie
oddzielny plik IO dla każdego zadania.
%u Nazwa użytkownika.
Można użyć liczby umieszczonej pomiędzy znakiem procentu a specyfikatorem formatu
do zerowania wyniku w nazwie pliku IO. Liczba ta jest ignorowana w przypadku formatu
specyfikator odpowiada danym nienumerycznym (na przykład%N).
Kilka przykładów użycia ciągu formatującego w etapie zadania składającym się z 4 zadań z a
Poniżej znajduje się identyfikator zadania 128 i identyfikator kroku 0:
praca%J.out praca128.0.out
praca%4j.out praca0128.out
praca%j-%2t.out praca128-00.out, praca128-01.out, ...
WEJŚCIE ŚRODOWISKO ZMIENNE
Niektóre opcje srun można ustawić za pomocą zmiennych środowiskowych. Te zmienne środowiskowe,
wraz z odpowiadającymi im opcjami są wymienione poniżej. Uwaga: Opcje wiersza poleceń będą
zawsze zastępuj te ustawienia.
PMI_FANOUT Jest to używane wyłącznie z PMI (MPICH2 i MVAPICH2) i elementami sterującymi
rozkwit transmisji danych. Polecenie srun wysyła wiadomości
do programów aplikacyjnych (poprzez bibliotekę PMI) i tych aplikacji
możemy zostać wezwani do przekazania tych danych maksymalnie do tej liczby
dodatkowe zadania. Wyższe wartości odciążają pracę komendy srun
do aplikacji i prawdopodobnie zwiększyć podatność na
niepowodzenia. Wartość domyślna to 32.
PMI_FANOUT_OFF_HOST Jest to używane wyłącznie z PMI (MPICH2 i MVAPICH2) i elementami sterującymi
rozkwit transmisji danych. Polecenie srun wysyła wiadomości
do programów aplikacyjnych (poprzez bibliotekę PMI) i tych aplikacji
może zostać poproszony o przekazanie tych danych do dodatkowych zadań. Przez
domyślnie srun wysyła jedną wiadomość na host i jedno zadanie na tym hoście
przekazuje dane do innych zadań na tym hoście do PMI_FANOUT. Jeśli
PMI_FANOUT_OFF_HOST jest zdefiniowana, może być wymagane wykonanie zadania użytkownika
przesyłać dane do zadań na innych hostach. Ustawienie
PMI_FANOUT_OFF_HOST może zwiększyć wydajność. Ponieważ jest więcej pracy
wykonywane przez bibliotekę PMI ładowaną przez aplikację użytkownika,
awarie mogą być również częstsze i trudniejsze do zdiagnozowania.
PMI_TIME Jest to używane wyłącznie z PMI (MPICH2 i MVAPICH2) i elementami sterującymi
w jakim stopniu komunikacja z zadań do srun jest rozproszona
na czas, aby uniknąć przytłaczania polecenia srun
praca. Wartość domyślna to 500 (mikrosekund) na zadanie. NA
stosunkowo wolne procesory lub systemy z bardzo dużym procesorem
liczników (i dużych zbiorów danych PMI), mogą być wymagane wyższe wartości.
SLURM_KONF Lokalizacja pliku konfiguracyjnego Slurm.
KONTO SLURM Taki sam jak -DO, --konto
SLURM_ACCTG_FREQ Taki sam jak --acctg-częst
SLURM_BCAST Taki sam jak --bcast
SLURM_BLRTS_IMAGE Taki sam jak --blrts-image
SLURM_BURST_BUFFER Taki sam jak --nocleg ze śniadaniem
SLURM_PUNKT KONTROLNY Taki sam jak --punkt kontrolny
SLURM_CHECKPOINT_DIR Taki sam jak --checkpoint-każ
SLURM_CNLOAD_IMAGE Taki sam jak --cnload-image
SLURM_CONN_TYPE Taki sam jak --conn-typ
SLURM_CORE_SPEC Taki sam jak --core-spec
SLURM_CPU_BIND Taki sam jak --powiązanie_cpu
SLURM_CPU_FREQ_REQ Taki sam jak --częstotliwość procesora.
SLURM_CPUS_PER_TASK Taki sam jak -C, --cpus-na-zadanie
SLURM_DEBUG Taki sam jak -v, --gadatliwy
SlurmD_DEBUG Taki sam jak -D, --slurmd-debug
SLURM_DEPENDENCY -P, --zależność=<Jobid>
SLURM_DISABLE_STATUS Taki sam jak -X, --stan-wyłączenia
SLURM_DIST_PLANESIZE Taki sam jak -m samolot
SLURM_DISTRIBUTION Taki sam jak -M, --dystrybucja
SLURM_EPILOG Taki sam jak --epilog
SLURM_EXCLUSIVE Taki sam jak --Ekskluzywny
SLURM_EXIT_ERROR Określa kod wyjścia generowany po wystąpieniu błędu Slurm (np
nieprawidłowe opcje). Może to być użyte przez skrypt do rozróżnienia
kody wyjścia aplikacji z różnych warunków błędów Slurm. Również
widzieć SLURM_EXIT_IMMEDIATE.
SLURM_EXIT_IMMEDIATE Określa kod zakończenia generowany podczas --natychmiastowy Jest opcja
wykorzystywane, a zasoby nie są obecnie dostępne. Może to być wykorzystane przez
skrypt do rozróżniania kodów wyjścia aplikacji z różnych Slurmów
warunki błędu. Zobacz także SLURM_EXIT_ERROR.
SLURM_GEOMETRIA Taki sam jak -G, --geometria
SLURM_WSKAZÓWKA Taki sam jak --Wskazówka
SLURM_GRES Taki sam jak --gres. Zobacz także SLURM_STEP_GRES
SLURM_IMMEDIATE Taki sam jak -i, --natychmiastowy
SLURM_IOLOAD_IMAGE Taki sam jak --ioload-image
SLURM_JOB_ID (I SLURM_JOBID dla kompatybilności wstecznej)
Taki sam jak --oferta pracy
SLURM_JOB_NAME Taki sam jak -J, --Nazwa pracy z wyjątkiem istniejącego przydziału, w
w takim przypadku jest ono ignorowane, aby uniknąć użycia nazwy zadania wsadowego jako nazwy zadania wsadowego
nazwa każdego etapu zadania.
SLURM_JOB_NUM_NODES (I SLURM_NNODES dla kompatybilności wstecznej)
Całkowita liczba węzłów w alokacji zasobów zadania.
SLURM_KILL_BAD_EXIT Taki sam jak -K, --zabij przy złym wyjściu
SLURM_LABELIO Taki sam jak -ja, --etykieta
SLURM_LINUX_IMAGE Taki sam jak --obraz-linux
SLURM_MEM_BIND Taki sam jak --mem_bind
SLURM_MEM_PER_CPU Taki sam jak --pamięć-na-procesor
SLURM_MEM_PER_NODE Taki sam jak --pam
SLURM_MLOADER_IMAGE Taki sam jak --mloader-image
SLURM_MPI_TYPE Taki sam jak --mpi
SLURM_NETWORK Taki sam jak --sieć
SLURM_NNODES Taki sam jak -N, --węzły
SLURM_NO_ROTATE Taki sam jak -R, --bez obracania
SLURM_NTASKS (I SLURM_NPROCS dla kompatybilności wstecznej)
Taki sam jak -N, --nzadania
SLURM_NTASKS_PER_CORE Taki sam jak --ntasks-na-rdzeń
SLURM_NTASKS_PER_NODE Taki sam jak --ntasks-na-węzeł
SLURM_NTASKS_PER_SOCKET
Taki sam jak --ntasks-na-gniazdo
SLURM_OPEN_MODE Taki sam jak --tryb otwarty
SLURM_OVERCOMMIT Taki sam jak -O, --zaangażowanie
SLURM_PARTITION Taki sam jak -P, --przegroda
SLURM_PMI_KVS_NO_DUP_KEYS
Jeśli jest ustawione, pary kluczy PMI nie będą zawierać duplikatów kluczy. MPI może
użyj tej zmiennej, aby poinformować bibliotekę PMI, że nie będzie ona używana
zduplikowane klucze, aby PMI mogło pominąć sprawdzanie duplikatów kluczy. Ten
ma to miejsce w przypadku MPICH2 i zmniejsza obciążenie podczas testowania
duplikaty w celu poprawy wydajności
SLURM_POWER Taki sam jak --moc
SLURM_PROFIL Taki sam jak --profil
SLURM_PROLOG Taki sam jak --prolog
SLURM_QOS Taki sam jak --qos
SLURM_RAMDISK_IMAGE Taki sam jak --ramdysk-obraz
SLURM_REMOTE_CWD Taki sam jak -D, --chdir=
SLURM_REQ_SWITCH Gdy używana jest topologia drzewa, określa to maksymalną liczbę
przełączniki wymagane do przydziału zadań i opcjonalnie maksimum
czas oczekiwania na taką liczbę przełączników. Widzieć --przełączniki
SLURM_REZERWACJA Taki sam jak --rezerwacja
SLURM_RESTART_DIR Taki sam jak --restart-katalog
SLURM_RESV_PORTS Taki sam jak --resv-ports
SLURM_SICP Taki sam jak --sicp
SLURM_SIGNAL Taki sam jak --sygnał
SLURM_STDERRMODE Taki sam jak -mi, --błąd
SLURM_STDINMODE Taki sam jak -ja, --Wejście
SLURM_SRUN_REDUCE_TASK_EXIT_MSG
jeśli ustawione i niezerowe, kolejne komunikaty o wyjściu zadania zawierające to samo
kod wyjścia zostanie wydrukowany tylko raz.
SLURM_STEP_GRES Taki sam jak --gres (dotyczy tylko etapów zadania, a nie przydziału zadań).
Zobacz także SLURM_GRES
SLURM_STEP_KILLED_MSG_NODE_ID=identyfikator
Jeśli jest ustawione, tylko określony węzeł będzie rejestrował zadanie lub krok
zabity sygnałem.
TRYB SLURM_STDOUT Taki sam jak -o, --wyjście
SLURM_TASK_EPILOG Taki sam jak --epilog zadania
SLURM_TASK_PROLOG Taki sam jak --prolog zadania
SLURM_TEST_EXEC jeśli zdefiniowano, sprawdź istnienie programu wykonywalnego na dysku
komputer lokalny przed próbą uruchomienia go na węzłach obliczeniowych.
SLURM_THREAD_SPEC Taki sam jak --specyfikacja-wątku
SLURM_THREADS Taki sam jak -T, --wątki
SLURM_TIMELIMIT Taki sam jak -T, --czas
SLURM_UNBUFFEREDIO Taki sam jak -ty, --niebuforowane
SLURM_OCZEKIWANIE Taki sam jak -W, --czekać
PRZEŁĄCZNIK SLURM_WAIT4 Maksymalny czas oczekiwania na żądane przełączniki. Widzieć --przełączniki
SLURM_WCKEY Taki sam jak -W, --wckey
SLURM_WORKING_DIR -D, --chdir
WYDAJNOŚĆ ŚRODOWISKO ZMIENNE
srun ustawi pewne zmienne środowiskowe w środowisku wykonywania zadań na serwerze
zdalne węzły obliczeniowe. Te zmienne środowiskowe to:
SLURM_CHECKPOINT_IMAGE_DIR
Katalog, w którym powinny być zapisywane obrazy punktów kontrolnych, jeśli
określone w linii wykonania.
NAZWA SLURM_KLASTRA Nazwa klastra, w którym wykonywane jest zadanie.
SLURM_CPU_BIND_VERBOSE
--cpu_bind gadatliwość (cichy, gadatliwy).
SLURM_CPU_BIND_TYPE --cpu_bind typ (brak, pozycja, map_cpu:, maska_cpu:).
SLURM_CPU_BIND_LIST --cpu_bind mapa lub lista masek (lista identyfikatorów procesorów Slurm lub masek do tego
węzeł, CPU_ID = Board_ID x threads_per_board + Socket_ID x
wątki_na_gniazdo + ID_rdzenia x wątki_na_rdzeń + ID_wątku).
SLURM_CPU_FREQ_REQ Zawiera wartość żądaną dla częstotliwości procesora w poleceniu srun
jako częstotliwość numeryczna w kilohercach lub zakodowana wartość a
zapytanie o Niska, średni,wysokim1 or wysoka dla częstotliwości. Zobacz
opis --częstotliwość procesora opcja lub SLURM_CPU_FREQ_REQ wkład
zmienna środowiskowa.
SLURM_CPUS_ON_NODE Liczba procesorów dostępnych dla zadania w tym węźle. Zanotuj
wtyczkaselect/linear przydziela całe węzły do zadań, więc wartość
wskazuje całkowitą liczbę procesorów w węźle. Dla
wybierz wtyczkę/cons_res, liczba ta wskazuje liczbę włączonych rdzeni
ten węzeł przydzielony do zadania.
SLURM_CPUS_PER_TASK Wymagana liczba procesorów na zadanie. Ustaw tylko, jeśli --cpus-na-zadanie
opcja jest określona.
SLURM_DISTRIBUTION Typ dystrybucji przydzielonych zadań. Ustaw dystrybucję za pomocą
-m, --dystrybucja.
SLURM_GTIDS Globalne identyfikatory zadań działających w tym węźle. Zero początku i przecinka
rozdzielony.
SLURM_JOB_CPUS_PER_NODE
Liczba procesorów na węzeł.
SLURM_JOB_DEPENDENCY Ustaw na wartość opcji --dependent.
SLURM_JOB_ID (I SLURM_JOBID dla kompatybilności wstecznej)
Identyfikator zadania wykonującego.
SLURM_JOB_NAME Ustaw na wartość opcji --job-name lub nazwę polecenia kiedy
srun służy do tworzenia nowego przydziału zadań. Nieustawione, gdy jest srun
używany tylko do tworzenia kroku zadania (tj. w obrębie istniejącego zadania
przydział).
SLURM_JOB_PARTITION Nazwa partycji, w której jest uruchomione zadanie.
SLURM_LAUNCH_NODE_IPADDR
Adres IP węzła, z którego zainicjowano uruchomienie zadania
(skąd pochodziło polecenie srun).
SLURM_LOCALID Identyfikator lokalnego zadania węzła dla procesu w ramach zadania.
SLURM_MEM_BIND_VERBOSE
--mem_bind gadatliwość (cichy, gadatliwy).
SLURM_MEM_BIND_TYPE --mem_bind typ (brak,rank,map_mem:,mask_mem:).
SLURM_MEM_BIND_LIST --mem_bind mapa lub lista masek ( ).
SLURM_NNODES Całkowita liczba węzłów w alokacji zasobów zadania.
SLURM_NODE_ALIASES Zestawy nazw węzłów, adresów komunikacyjnych i nazw hostów dla węzłów
przydzielonych do zadania z chmury. Każdy element zbioru if
oddzielone dwukropkiem, a każdy zestaw oddzielony przecinkiem. Na przykład:
SLURM_NODE_ALIASES=ec0:1.2.3.4:foo,ec1:1.2.3.5:bar
SLURM_NODEID Względny identyfikator węzła bieżącego węzła.
LISTA SLURM_NODELIST Lista węzłów przydzielonych do zadania.
SLURM_NTASKS (I SLURM_NPROCS dla kompatybilności wstecznej)
Całkowita liczba procesów w bieżącym zadaniu.
SLURM_PRIO_PROCES Priorytet planowania (wartość niezła) w momencie przesyłania zadania.
Wartość ta jest propagowana do procesów spawnowanych.
SLURM_PROCID Ranga MPI (lub względny identyfikator procesu) bieżącego procesu.
SLURM_SRUN_COMM_HOST Adres IP hosta komunikacyjnego Srun.
SLURM_SRUN_COMM_PORT port komunikacyjny Srun.
SLURM_STEP_LAUNCHER_PORT
Port uruchamiania kroków.
SLURM_STEP_NODELIST Lista węzłów przypisanych do kroku.
SLURM_STEP_NUM_NODES Liczba węzłów przydzielonych do kroku.
SLURM_STEP_NUM_TASKS Liczba procesów w kroku.
SLURM_STEP_TASKS_PER_NODE
Liczba procesów na węzeł w ramach kroku.
SLURM_STEP_ID (I SLURM_STEPID dla kompatybilności wstecznej)
Identyfikator kroku bieżącego zadania.
SLURM_SUBMIT_DIR Katalog, z którego upadek został powołany.
SLURM_SUBMIT_HOST Nazwa hosta komputera, z którego sallok został powołany.
SLURM_TASK_PID Identyfikator procesu uruchamianego zadania.
SLURM_TASKS_PER_NODE Liczba zadań do zainicjowania w każdym węźle. Wartości są przecinkiem
oddzielone i w tej samej kolejności co SLURM_NODELIST. Jeśli dwa lub więcej
kolejne węzły mają mieć tę samą liczbę zadań, tzn
po którym następuje „(x#)”, gdzie „#” to liczba powtórzeń. Na przykład,
„SLURM_TASKS_PER_NODE=2(x3),1” wskazuje, że pierwsze trzy węzły
każdy wykona trzy zadania, a czwarty węzeł wykona jedno
zadaniem.
SLURM_TOPOLOGY_ADDR Jest to ustawiane tylko wtedy, gdy system ma wtyczkę topologii/drzewa
skonfigurowany. Wartość zostanie ustawiona na nazwy przełączników sieciowych
które mogą być zaangażowane w komunikację dotyczącą zadania z systemu
przełącznik najwyższego poziomu w dół do przełącznika liściowego i kończący się nazwą węzła.
Nazwy poszczególnych komponentów sprzętowych oddziela się kropką.
SLURM_TOPOLOGY_ADDR_PATTERN
Jest to ustawiane tylko wtedy, gdy system ma wtyczkę topologii/drzewa
skonfigurowany. Wartość zostanie ustawiona dla typów komponentów wymienionych w
SLURM_TOPOLOGY_ADDR. Każdy komponent zostanie zidentyfikowany jako którykolwiek z nich
„przełącznik” lub „węzeł”. Do oddzielenia każdego sprzętu używana jest kropka
typ komponentu.
SRUN_DEBUG Ustaw poziom rejestrowania pliku upadek Komenda. Wartość domyślna to 3
(poziom informacyjny). Wartość jest zwiększana lub zmniejszana w zależności od
opcje --verbose i --quiet.
MPIRUN_NOALLOCATE Nie przydzielaj bloku tylko w systemach Blue Gene.
MPIRUN_NOFREE Nie zwalniaj bloku tylko w systemach Blue Gene.
MPIRUN_PARTITION Nazwa bloku tylko w systemach Blue Gene.
SYGNAŁY ROLNICZE ESCAPE SEKWENCJE
Sygnały wysłane do upadek polecenie jest automatycznie przekazywane do zadań, do których należy
kontrolowane z kilkoma wyjątkami. Sekwencja ucieczki zgłosi stan
wszystkich zadań związanych z upadek Komenda. Gdyby jest wpisywany dwukrotnie w ciągu jednego
po drugie, powiązany sygnał SIGINT zostanie wysłany do wszystkich zadań i zakończenia
sekwencja zostanie wprowadzona, wysyłając SIGCONT, SIGTERM i SIGKILL do wszystkich utworzonych zadań. Jeśli
trzeci zostanie odebrany, program srun zostanie zakończony bez czekania
zdalne zadania do zakończenia lub ich wejścia/wyjścia do zakończenia.
Sekwencja ucieczki jest obecnie ignorowany. Naszym zamiarem jest w tym celu umieścić upadek
polecenie w tryb, w którym można wywołać różne akcje specjalne.
MPI WSPIERAJ
Użycie MPI zależy od rodzaju używanego MPI. Istnieją trzy zasadniczo różne
tryby działania wykorzystywane przez różne implementacje MPI.
1. Slurm bezpośrednio uruchamia zadania i inicjuje komunikację
(Quadrics MPI, MPICH2, MPICH-GM, MVAPICH, MVAPICH2 i niektóre tryby MPICH1). Na przykład:
„srun -n16 a.out”.
2. Slurm tworzy przydział zasobów dla zadania, a następnie mpirun uruchamia zadania za pomocą
Infrastruktura Slurma (OpenMPI, LAM/MPI, HP-MPI i niektóre tryby MPICH1).
3. Slurm tworzy przydział zasobów dla zadania, a następnie mpirun uruchamia zadania za pomocą
jakiś mechanizm inny niż Slurm, taki jak SSH lub RSH (BlueGene MPI i niektóre tryby MPICH1).
Zadania te zostały zainicjowane poza monitorowaniem i kontrolą Slurma. Epilog Slurma taki powinien być
skonfigurowany tak, aby usuwał te zadania po rezygnacji z przydzielenia zadania.
See http://slurm.schedmd.com/mpi_guide.html aby uzyskać więcej informacji na temat korzystania z tych różnych
Implementacja MPI w Slurmie.
WIELOKROTNOŚĆ PROGRAM KONFIGURACJA
Komentarze w pliku konfiguracyjnym muszą mieć znak „#” w pierwszej kolumnie. Plik konfiguracyjny
zawiera następujące pola oddzielone spacją:
Ranga zadania
Co najmniej jeden stopień zadania do użycia tej konfiguracji. Wiele wartości może być przecinkiem
rozdzielony. Zakresy mogą być oznaczone dwiema liczbami oddzielonymi znakiem „-” i znakiem
najpierw mniejsza liczba (np. „0-4”, a nie „4-0”). Aby wskazać wszystkie zadania nie
określono inaczej, określ rangę „*” jako ostatnią linię pliku. Jeżeli
zostanie podjęta próba zainicjowania zadania, dla którego nie zdefiniowano żadnego programu wykonywalnego,
zostanie wyświetlony następujący komunikat o błędzie: „Nie określono dla tego programu wykonywalnego
zadanie".
Plik wykonywalny
Nazwa programu do wykonania. W razie potrzeby może to być w pełni kwalifikowana nazwa ścieżki.
Argumenty
Argumenty programu. Wyrażenie "%t" zostanie zastąpione numerem zadania.
Wyrażenie „%o” zostanie zastąpione przesunięciem zadania w tym zakresie (np
skonfigurowana wartość rangi zadania „1-5” będzie miała wartości przesunięcia „0-4”). Pojedynczy
Aby uniknąć interpretacji załączonych wartości, można użyć cudzysłowów. To pole jest
opcjonalny. Dodane zostaną wszelkie argumenty programu wprowadzone w wierszu poleceń
do argumentów określonych w pliku konfiguracyjnym.
Na przykład:
################################################### ##################
# srun plik konfiguracyjny wielu programów
#
# srun -n8 -l --multi-prog głupi.conf
################################################### ##################
4-6 nazwa hosta
1,7 zadanie echa:%t
Przesunięcie echa 0,2-3:%o
> srun -n8 -l --multi-prog głupi.conf
0: przesunięcie: 0
1: zadanie: 1
2: przesunięcie: 1
3: przesunięcie: 2
4: linux15.llnl.gov
5: linux16.llnl.gov
6: linux17.llnl.gov
7: zadanie: 7
PRZYKŁADY
Ten prosty przykład ilustruje wykonanie polecenia hosta w ośmiu zadaniach. Na
do zadania zostanie przydzielonych co najmniej osiem procesorów (tak samo jak liczba zadań).
jednakże do zaspokojenia żądania potrzeba wielu węzłów. Wynikiem każdego zadania będzie
kontynuował numer zadania. (Maszyna „dev” w poniższym przykładzie ma w sumie
dwa procesory na węzeł)
> srun -n8 -l nazwa hosta
0: odw0
1: odw0
2: odw1
3: odw1
4: odw2
5: odw2
6: odw3
7: odw3
Srun -r Opcja jest używana w skrypcie zadania do uruchomienia dwóch etapów zadania na rozłącznych węzłach
następujący przykład. Skrypt jest uruchamiany w trybie alokacji, a nie jako zadanie wsadowe
ta sprawa.
> test kota.sh
#!/ Bin / sh
echo $SLURM_NODELIST
srun -lN2 -r2 nazwa hosta
srun -lN2 nazwa hosta
> salloc -N4 test.sh
deweloper [7-10]
0: odw9
1: odw10
0: odw7
1: odw8
Poniższy skrypt uruchamia równolegle dwa etapy zadania w ramach przydzielonego zestawu węzłów.
> test kota.sh
#!/ bin / bash
srun -lN2 -n4 -r 2 śpij 60 i
srun -lN2 -r 0 śpij 60 &
spać 1
wycisnąć
wyciskać -s
czekać
> salloc -N4 test.sh
ZADANIE NAZWA PARTYCJI UŻYTKOWNIK ST CZAS LISTA WĘZŁÓW
65641 test wsadowy.sh grondo R 0:01 4 dev[7-10]
LISTA WĘZŁÓW CZASU UŻYTKOWNIKA PODZIAŁU KROKOWEGO
65641.0 grono wsadowe 0:01 deweloper [7-8]
65641.1 grono wsadowe 0:01 deweloper [9-10]
Ten przykład ilustruje sposób wykonania prostego zadania MPICH. Używamy upadek zbudować
lista maszyn (węzłów), które mają być używane mpiruna w wymaganym formacie. Przykładowe polecenie
po nim następuje linia i skrypt do wykonania.
> test kota.sh
#!/ Bin / sh
MACHINEFILE="węzły.$SLURM_JOB_ID"
# Wygeneruj plik maszynowy dla mpich tak, aby hosty znajdowały się w tym samym miejscu
# zamówienie tak, jakby było uruchamiane przez srun
#
srun -l /bin/nazwa hosta | sortuj -n | awk '{print $2}' > $MACHINEFILE
# Uruchom przy użyciu wygenerowanego pliku maszynowego:
mpirun -np $SLURM_NTASKS -plik maszynowy $MACHINEFILE mpi-app
rm $MACHINEFILE
> salloc -N2 -n4 test.sh
Ten prosty przykład ilustruje wykonywanie różnych zadań w różnych węzłach w pliku
ten sam srun. Można to zrobić dla dowolnej liczby węzłów lub dowolnej liczby zadań. The
pliki wykonywalne są umieszczane w węzłach znajdujących się w środowisku SLURM_NODEID env var. Zaczynając od 0 i
przejście do numeru określonego w linii poleceń srun.
> test kota.sh
przypadek $SLURM_NODEID w
0) echo „Uruchamiam”
nazwa hosta ;;
1) nazwa hosta
echo "to tam biegnę" ;;
to C
> srun -N2 test.sh
dev0
to miejsce, w którym biegnę
Biegnę dalej
dev1
Ten przykład ilustruje użycie opcji wielordzeniowych do kontrolowania układu zadań. My
zażądać, aby do tego zadania przydzielono cztery gniazda na węzeł i dwa rdzenie na gniazdo.
> srun -N2 -B 4-4:2-2 a.out
Ten przykład pokazuje skrypt, w którym Slum jest używany do zarządzania zasobami dla:
zadanie, wykonując różne etapy zadania, gdy procesory staną się dostępne dla ich dedykowanych
używać.
> kot mój.skrypt
#!/ bin / bash
srun --exclusive -n4 prog1 &
srun --exclusive -n3 prog2 &
srun --exclusive -n1 prog3 &
srun --exclusive -n1 prog4 &
czekać
KOPIOWANIE
Copyright (C) 2006-2007 Regenci Uniwersytetu Kalifornijskiego. Wyprodukowano w Lawrence
Livermore National Laboratory (por. ZASTRZEŻENIE).
Prawa autorskie (C) 2008-2010 Lawrence Livermore National Security.
Prawa autorskie (C) 2010-2015 SchedMD LLC.
Ten plik jest częścią Slurm, programu do zarządzania zasobami. Aby uzyskać szczegółowe informacje, zobacz
<http://slurm.schedmd.com/>.
Slurm to darmowe oprogramowanie; możesz go redystrybuować i/lub modyfikować zgodnie z warunkami
Powszechna Licencja Publiczna GNU opublikowana przez Free Software Foundation; albo wersja 2
Licencji lub (według Twojego wyboru) dowolnej późniejszej wersji.
Slurm jest rozpowszechniany w nadziei, że będzie przydatny, ale BEZ ŻADNEJ GWARANCJI; z pominięciem
nawet dorozumiana gwarancja WARTOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Zobacz
Powszechna Licencja Publiczna GNU po więcej szczegółów.
Użyj srun online, korzystając z usług onworks.net