Wednesday, 29 November 2017

Qsub in binära alternativ


Sun Grid Engine (SGE) QuickStart Sun Grid Engine Queue System är användbart när du har många uppgifter att utföra och vill distribuera uppgifterna över ett kluster av maskiner. Du kan till exempel behöva springa hundratals simuleringsexperiment med varierande parametrar eller behöva konvertera 300 videoklipp från ett format till ett annat. Att använda ett köningssystem i dessa situationer har följande fördelar: Schemaläggning - gör att du kan schemalägga en praktiskt taget obegränsad mängd arbete som ska utföras när resurser blir tillgängliga. Det innebär att du enkelt kan skicka in så många uppgifter (eller jobb) som du vill, och låt köningssystemet hantera att utföra dem alla. Lastbalansering - distribuerar automatiskt uppgifter över klustret så att någon nod inte blir överbelastad jämfört med resten. MonitoringAccounting - förmåga att övervaka alla inlämnade jobb och fråga vilka klusternoder de8217r körs på, oavsett om de är färdiga, stöter på ett fel etc. Låter också att jobba historia för att se vilka uppgifter som utfördes på ett visst datum, av en viss användare etc. Naturligtvis, bara för att ett kösystem är installerat betyder inte att du behöver använda det alls. Du kan köra dina uppgifter över klustret på något sätt som du ser lämpligt och köningssystemet bör inte störa. Men du kommer sannolikt att sluta behöva implementera ovanstående funktioner på något sätt för att optimalt utnyttja klustret. Sända jobb Ett jobb i SGE representerar en uppgift som ska utföras på en nod i klustret och innehåller kommandoraden som används för att starta uppgiften. Ett jobb kan ha specifika resursbehov, men i allmänhet bör det vara agnostiskt till vilket nod i klustret det löper så länge som resursbehoven är uppfyllda. Alla jobb kräver åtminstone en ledig plats på en nod i klustret som ska köras. Sändning av jobb sker genom att använda kommandot qsub. Let8217s försöker skicka in ett enkelt jobb som kör värdnamnskommandot på en given klusternummer: - V-alternativet till qsub anger att jobbet ska ha samma miljövariabler som skalet utför qsub (rekommenderas) - b-alternativet till qsub anger att Kommando som körs kan vara ett enda binärt körbart eller ett bash script. I detta fall är kommandot värdnamn ett enda binärt. Detta alternativ tar ett y eller n-argument som anger antingen ja kommandot är ett binärt eller nej det är inte ett binärt. Alternativet - cwd till qsub berättar Sun Grid Engine att jobbet ska köras i samma katalog som qsub heter. Det sista argumentet för qsub är det kommando som ska utföras (värdnamn i det här fallet) Observera att qsub-kommandot, när det är framgångsrikt, kommer att skriva ut jobbnummeret till stdout. Du kan använda jobbnummeret för att övervaka statusen för job8217 och framsteg i kön som vi8217ll ser i nästa avsnitt. Övervakning av jobb i köen Nu när vårt jobb har skickats, let8217s ta en titt på job8217s status i köen med kommandot qstat: Från den här utgången kan vi se att jobbet är i qw-staten som står för kö och väntar . Efter några sekunder övergår jobbet till ett r. eller springa. ange vid vilken tid jobbet ska börja utföras: När jobbet är klart kommer jobbet att tas bort från kön och visas inte längre i utmatningen av qstat: Nu när jobbet är klart, går let8217s vidare till nästa avsnitt för att se hur vi ser en job8217s produktion. Visa en Job8217s Output Sun Grid Engine skapar stdout - och stderr-filer i job8217s arbetsmapp för varje utfört jobb. Om några ytterligare filer skapas under genomförandet av job8217 kommer de också att vara placerade i arbetsgruppens arbetsgrupp, om de inte uttryckligen sparas någon annanstans. Job8217s stdout - och stderr-filer namnges efter jobbet med förlängningen som slutar i job8217s nummer. För det enkla jobbet ovan har vi: Observera att Sun Grid Engine automatiskt namngav jobb värdnamn och skapade två utdatafiler: värdnamn. e1 och värdnamn. o1. E står för stderr och o för stdout. Den 1 i slutet av filstaven files8217 är jobbnummeret. Så om jobbet hade fått namnet mynewjob och jobbades 23, så skulle utdatafilerna se ut: Övervaka klusteranvändning Efter ett tag kan du vara nyfiken på att se lasten på Sun Grid Engine. För att göra detta använder vi qhost-kommandot: Utmatningen visar arkitekturen (ARCH), antalet cpus (NCPU), den aktuella belastningen (LOAD), det totala minnet (MEMTOT) och det aktuella minnet (MEMUSE) och byteutrymmet ( SWAPTO) för varje nod. Du kan också se den genomsnittliga belastningen (loadavg) per nod med hjälp av alternativet 8216-f8217 till qstat: Skapa en jobbskript I avsnittet 8216Sändning av en Job8217 inlämnades ett enda värdnamn. Det här är användbart för enkla jobb men för mer komplexa jobb där vi behöver ta med lite logik kan vi använda ett så kallat jobbskript. Ett jobbskript är i grunden ett bash-skript som innehåller en del logik och kör ett antal externa programskript: Som du kan se utför detta skript enkelt några kommandon (t. ex. eko, datum, katt etc.) och utgångar. Allt som skrivs ut på skärmen läggs i job8217s stdout-fil av Sun Grid Engine. Eftersom detta bara är ett bash-skript kan du lägga till någon form av logik som är nödvändig i jobbskriptet (det vill säga om uttalanden, medan slingor, för slingor etc.) och du kan ringa något antal externa program som behövs för att slutföra jobbet. Let8217 ser hur du kör det här nya jobbskriptet. Spara skriptet ovan till homesgeadminjobscript. sh på din StarCluster och kör följande som sgeadmin-användaren: Nu när jobbet har skickats letar vi upp call qstat periodiskt tills jobbet är klart eftersom det här jobbet bara tar en sekund att köra när it8217s körs : Nu när jobbet är klart letar let8217s en titt på utdatafilerna: Vi ser att vi tittar på utgången att stdout-filen innehåller utmatningen av echo-, datum - och kattanslutningarna i jobbskriptet och att stderr-filen är blank betyder att det inte fanns några fel under job8217s utförande. Hade något misslyckats, till exempel ett kommando som inte hittade fel till exempel, hade dessa fel uppstått i stderr-filen. Ta bort ett jobb från köet Om ett jobb fastnat i kön tar det för lång tid att köra eller helt enkelt startades med felaktiga parametrar. Du kan radera ett jobb från kön med kommandot qdel i Sun Grid Engine. Nedan startar vi ett enkelt 8216sleep8217-jobb som sover i 10 sekunder så att vi kan döda det med qdel: Efter att ha kört qdel you8217ll är jobbet borta från köen: OpenMPI och Sun Grid Engine OpenMPI måste sammanställas med SGE-support (8211with-sge ) för att utnyttja den snäva integrationen mellan OpenMPI och SGE som dokumenterat i detta avsnitt. Det här är fallet på alla StarCluster8217s offentliga AMI. OpenMPI stödjer en snabb integration med Sun Grid Engine. Denna integration möjliggör att Sun Grid Engine hanterar att ge värdar till parallella jobb och för att korrekt redovisa parallella jobb. OpenMPI Parallel Environment StarCluster ställer som standard in en parallell miljö, kallad 8220orte8221, som har konfigurerats för OpenMPI integration inom SGE och har ett antal slitsar lika med det totala antalet processorer i klustret. Du kan inspektera SGE-parallellmiljön genom att köra: Det här är standardkonfigurationen för ett två-nods, c1.xlarge kluster (16 virtuella kärnor). Round Robin vs Fill Up Modes Observera allokeringsinställningen i utgången av qconf-kommandot i föregående avsnitt. Detta definierar hur man tilldelar slots till ett jobb. Som standard konfigurerar StarCluster roundrobinallokering. Detta innebär att om ett jobb begär 8 slitsar till exempel, går det till den första maskinen, ta en enda slits om det är tillgängligt, gå till nästa maskin och ta en enda slits om det finns, och så vidare omklara om kluster igen om det behövs att fördela 8 slitsar till jobbet. Du kan också konfigurera parallellmiljön för att försöka lokalisera slots så mycket som möjligt med hjälp av fillup-allokeringsregeln. Med denna regel, om en användare begär 8 spår och en enda maskin har 8 spår tillgängliga, kommer det här jobbet att köras helt på en maskin. Om 5 luckor är tillgängliga på en värd och 3 på en annan, tar det alla 5 på den värden och alla 3 på den andra värden. Med andra ord kommer denna regel gärna ta alla slitsar på en given nod tills spaltkravet för jobbet är uppfyllt. Du kan byta mellan roundrobin och fillup-lägen med följande kommando: Detta öppnar vi (eller någon redigerare definierad i EDITOR env-variabel) och låter dig redigera de parallella miljöinställningarna. För att byta från roundrobin till fillup i ovanstående exempel, ändra allocationrule-linjen från: Skicka in OpenMPI-jobb med en parallell miljö Det allmänna arbetsflödet för att köra MPI-kod är: Kompilera koden med mpicc, mpicxx, mpif77, mpif90 etc. Kopiera den resulterande körbar till samma väg på alla noder eller till en NFS-delad plats på huvudnoden. Det är viktigt att sökvägen till körbarheten är identisk på alla noder för att mpirun ska kunna starta din parallella kod korrekt. Det enklaste sättet är att kopiera den körbara någonstans under hemma på masternoden eftersom hemmet är NFS-delat över alla noder i klustret. Kör koden på X-antal maskiner med: där värdfilen ser något ut: Men när du använder en SGE-parallellmiljö med OpenMPI behöver du inte längre ange alternativen - np, - hostfile, - host, etc. till mpirun. Detta beror på att SGE automatiskt tilldelar värdar och processorer som används av OpenMPI för ditt jobb. Du behöver inte heller skicka 8211byslot och 8211bynode-alternativen till mpirun med tanke på att dessa mekanismer hanteras nu av fillup - och roundrobin-lägena som anges i SGE-parallellmiljön. I stället för att använda ovanstående formulering skapar du ett enkelt jobbskript som innehåller ett mycket förenklat mpirunsamtal: Skicka sedan in jobbet med kommandot qsub och parallellmiljön för orte automatiskt konfigurerad för dig av StarCluster: Den - pe alternativtypen som parallell miljö ska använda och hur många slots att begära. Ovanstående exempel begär 24 luckor (eller processorer) med hjälp av parallellmiljön. Parallellmiljön tar hand om att distribuera MPI-jobbet bland generaldirektoratets nodar med hjälp av den tilldelningsruta som definieras i miljö8217s inställningar. Du kan också göra detta utan ett jobbskript som så: Sända binärfiler i Grid Engine 6.x Grid Engine 6 stöder direkt inlämning av binärer via qsub och qrsh via det nya argumentet - b yn. Standardbeteendet förutsätter - b n. använd - b för att direkt anropa en binär körbar. workgroupcluster: www qrsh - b y usrbinuptime 7:49 upp 107 dagar, 35 minuter, 0 användare, lägsta medelvärde: 0,12 0,03 0,01 arbetsgruppskluster: Kommandot qsub (1) kan inte användas för att direkt skicka in binära filer som jobb. Även om man kunde skriva ett litet omslagsskript runt binärer för att skicka in dem, finns det två praktiska tekniker för att skicka binärer som jobb helt enkelt utan att involvera ett separat skript. Skriv qsub-kommandot tillsammans med önskade flaggor och alternativ och tryck sedan på Retur utan att ange ett jobbskript. Du kommer då att se en sekundär shell prompt. Vid den här prompten kan du skriva in namnet på det binära. Du kan sedan trycka på retur och fortsätt att ange fler binära eller skalkommandon. När du är redo att ange ditt jobb, tryck på Control-D. qsub - l archsolaris64 sleep 60 ltctrl-Dgt ditt jobb 47427 (quotSTDINquot) har skickats Skriv in qsub-kommandot tillsammans med önskade flaggor och alternativ, använd sedan STDIN-omdirigeringskonstruktionen ltlt ltMARKERgt. Skriv in en eller flera rader som innehåller en kombination av binärer och skalkommandon vid sekundärprompten som ovan. Skriv sedan på LTMARKERgt på en rad av sig själv och tryck på Retur. qsub - N test ltt EOF sova 60 EOF ditt jobb 47428 (quottestquot) har skickats in Båda teknikerna ovan dra fördel av det faktum att qsub använder STDIN-strömmen som ett jobbskript om du inte anger en skriptfil som argument. För att integrera vissa applikationer i din miljö med ett Grid Engine-kluster kan det vara nödvändigt att skriva ett anpassat omslagsskript som gör vissa installationsarbeten innan du kör ett jobb. Den andra tekniken från ovan kan inbäddas i sådana omslagskript. Exempel: Skapa omslag för att skicka in ett binärt batchjobb från en SunRay till en back-end-gård. För att göra detta måste du ändra LDPRELOAD-variabeln för att ta bort SunRay-specifik post. Ett generiskt binärt inlämningsskript quotqbsubquot finns på denna länk. Den kan användas som en kvotisk version av qsub. Omslagsscriptet gör det möjligt för avsändaren att använda standardinställningsflaggarna, och det står också för de flaggor som anges i qtaskfilen (som används av qtcsh när det skickas binärt till systemet automatiskt). Ett exempel på användningen av det här skriptet är: Detta kör binära binära netscape samtidigt som VIS-miljövariabeln uttryckligen upprätthålls. OBS! Du måste självklart se till att binären matchar arkitekturen där den så småningom kommer att springa. Du kan exempelvis ange det här: Att skapa ett jobb är att skicka ett körbart skript till en serverns server. Satsservern kommer att vara standardserveren om inte - q-alternativet anges. Kommandot analyserar ett skript innan det exekverade scriptet körs, det utför inte ett skript i sig. Alla skriptskrivningsregler fortsätter att gälla, inklusive i huvudet på filen (se diskussion om PBSDEFAULT under miljövariabler). Typiskt är skriptet ett skalskript som kommer att utföras av ett kommandoskal, som sh eller csh. Alternativ på qsub-kommandot tillåter specifikation av attribut som påverkar uppförandet av jobbet. Kommandot qsub skickar vissa miljövariabler i attributet VariableList i jobbet. Dessa variabler kommer att vara tillgängliga för jobbet. Värdet för följande variabler kommer att tas från miljön i qsub-kommandot: HEM, LANG, LOGNAME, PATH, MAIL, SHELL och TZ. Dessa värden kommer att tilldelas ett nytt namn som är det aktuella namnet prefixat med strängen PBSO. Till exempel kommer jobbet att ha tillgång till en miljövariabel med namnet PBSOHOME som har värdet av variabeln HEM i qsub-kommandomiljön. Utöver ovanstående kommer följande miljövariabler att vara tillgängliga för batchjobbet: Namnet på den värd som qsub-kommandot körs på. Pbsserver värdnamn som qsub skickar jobbet till. Namnet på den ursprungliga köen som jobbet skickades till. Den absoluta vägen för den nuvarande arbetsmappen i qsub-kommandot. Varje medlem i en arbetsgrupp har tilldelats en unik identifierare (se - t-alternativ). Ange till PBSBATCH för att ange jobbet är ett partijobb eller till PBSINTERACTIVE för att indikera jobbet är ett PBS-interaktivt jobb (se - I alternativ). Namnet på filen som innehåller listan över tilldelade GPU: er. För mer information om hur du konfigurerar TORQUE med GPUS, se dokumentationen för Moab Workload Manager accelerator. Arbetsidentifieraren tilldelades jobbet av batchsystemet. Den kan användas i stdout och stderr stigar. TORQUE ersätter PBSJOBID med de jobb som jobbar (till exempel PBS - o tmpPBSJOBID. output). Arbetsnamnet som tillhandahålls av användaren. Namnet på filen innehåller listan över noder som tilldelats jobbet (för parallella och kluster system). Förklarar tiden då jobbet är berättigat till verkställighet. Datetime argumentet finns i formen: där CC är årets två första siffror (seklet), YY är årets andra två siffror, MM är de två siffrorna för månaden, DD är månadens dag, hh är timmen, mm är minuten och den valfria SS är sekunderna. Om månaden (MM) inte anges, kommer den att vara standard till den aktuella månaden om den angivna dagen (DD) är i framtiden. I annat fall kommer månaden att ställas in till nästa månad. På samma sätt, om dagen (DD) inte är specificerad, kommer den som standard till idag om tiden (hhmm) är i framtiden. Annars kommer dagen att ställas in imorgon. Om du till exempel skickar ett jobb klockan 11:15 med en tid på -1110. jobbet är berättigat att köra klockan 11:10 imorgon. Definierar kontosträngen som är associerad med jobbet. Kontot är en odefinierad sträng av tecken och tolkas av servern som utför jobbet. Se avsnitt 2.7.1 i PBS ERS. Definierar det maximala antalet sekunder qsub kommer att blockera försöker kontakta pbsserver. Om pbsserver är nere, eller för en rad kommunikationsfel, kommer qsub kontinuerligt att försöka ansluta till pbsserver för jobbinsändning. Detta värde överstyrar parametern CLIENTRETRY i torque. cfg. Detta är en icke-bärbar TORQUE-förlängning. Portability-minded-användare kan använda miljövariabeln PBSCLIENTRETRY. Ett negativt värde tolkas som oändlighet. Standardvärdet är 0. Definierar de alternativ som gäller för jobbet. Om jobbet körs på en värd som inte stöder kontrollpunkten ignoreras dessa alternativ. Giltiga kontrollpunkter är: ingen Ingen kontrollpunkt ska utföras. aktiverad Ange att kontrollpunkten är tillåten men måste uttryckligen åberopas av antingen qhold eller qchkpt-kommandona. avstängning Ange att kontrollpunkten ska göras på ett jobb vid pbsmom-avstängning. periodisk Ange att den periodiska kontrollpunkten är aktiverad. Standardintervallet är 10 minuter och kan ändras med alternativet checkpointinterval i MOM-konfigurationsfilen eller genom att ange ett intervall när jobbet skickas intervallminuter. Kontrollpunkten ska utföras med ett minutintervall, vilket är heltalet antal minuter av väggen tid som används av jobbet. Detta värde måste vara större än noll. depthnumber Ange ett antal (djup) av kontrollpunktsbilder som ska lagras i kontrollpostkatalogen. dirpath Ange en kontrollpostkatalog (standard är varspooltorquecheckpoint). Definierar prefixet som deklarerar ett direktiv till qsub-kommandot i skriptfilen. (Se avsnittet om skriptdirektiv under Utökad beskrivning.) Om c-alternativet presenteras med ett argumentprefix-argument som är nollsträngen, kommer qsub inte att skanna skriptfilen för direktiv. Definierar arbetsplatskartan som ska användas för jobbet. Om alternativet - d inte anges är standardkatalogen hemkatalogen. Det här alternativet ställer in miljövariabeln PBSOINITDIR. Definierar rotkatalogen som ska användas för jobbet. Det här alternativet ställer in miljövariabeln PBSOROOTDIR. Definierar vilken sökväg som ska användas för standardfelströdet för batchjobbet. Banvägsargumentet är av formuläret: där värdnamnet är namnet på en värd som filen kommer att returneras till och sökvägen är sökvägen på den värden i syntaxen som erkänts av POSIX. Argumentet tolkas enligt följande: sökväg där söknamn inte är ett absolut söknamn, då kommer qsub-kommandot att expandera sökvägsnamnet i förhållande till befintliga arbetsmapp för kommandot. Kommandot kommer att ge namnet på den värd som den exekverar för värdnamnskomponenten. värdnamn: sökväg där söknamn inte är ett absolut söknamn, då kommer kommandot qsub inte att expandera sökvägsnamnet i förhållande till befintliga arbetsmapp för kommandot. Vid leverans av standardfelet utvidgas sökvägen i förhållande till användarens hemkatalog på värdnamnssystemet. sökväg där söknamn anger ett absolut söknamn, då kommer qsub att ange namnet på den värd som den exekverar för värdnamnet. värdnamn: sökväg där söknamn anger ett absolut sökvägen, kommer sökvägen att användas som specificerat. Om alternativet - e inte anges, används standardfilnamnet för standardfelströmmen. Standardnamnet har följande formulär: jobname. esequencenumber där arbetsnamn är namnet på jobbet (se-ett namnalternativ) och sekvensnummer är det jobbnummer som tilldelats när jobbet skickas. Jobb är fel tolerant. Jobb som körs på flera noder pollas periodiskt av moderens överordnade. Om ett av noderna inte rapporterar, avbryts jobbet av moderens överordnade och ett fel rapporteras. Om ett jobb är feltolerant kommer det inte att avbrytas baserat på misslyckad polling (oavsett hur många noder misslyckas med att rapportera). Det kan vara önskvärt om övergående nätverksfel orsakar stora jobb att inte slutföra, där man ignorerar ett misslyckat pollningsförsök kan korrigeras vid nästa valprov. Om TORQUE är sammanställd med PBSNOPOSIXVIOLATION (det finns inget config-alternativ för detta) måste du använda - W Faulttoleranttrue för att markera jobbet som feltolerant. Anger de argument som ska skickas till arbetsskriptet när skriptet startas. Den accepterade syntaxen är: qsub - F myarg1 myarg2 myarg3myarg3value myscript2.sh Citat markeringar krävs. qsub misslyckas med ett felmeddelande om argumentet som följer med - F inte är ett citerat värde. Pbsmom-servern kommer att skicka det citerade värdet som argument till arbetsskriptet när det startar skriptet. Alternativet - W möjliggör specifikationen av ytterligare jobbattribut. Den allmänna syntaxen för - W finns i formuläret: Om det finns vitt utrymme någonstans inom alternativargumentsträngen eller likartat tecken, inträffar inom en attributvärdessträng, måste strängen bifogas antingen enskilda eller dubbla citattecken. PBS stöder för närvarande följande attribut inom alternativet - W: dependdependencylist Definierar beroende mellan detta och andra jobb. Dependencylisten finns i formuläret: Argumentet är antingen ett numeriskt tal eller ett PBS-jobb-id enligt typ. Om argumentet är ett tal måste det vara större än 0. Om det är ett jobb-id och inte fullständigt specificerat i formuläret seqnumber. server. name. Det kommer att utökas enligt standard serverregler som gäller för jobb-ID på de flesta kommandon. Om argumentet är null (föregående kolumn behöver inte anges), rensas beroende av motsvarande typ (avstängd). För mer information, se dependdependencylist giltiga beroenden. grouplistglist Definierar det gruppnamn under vilket jobbet ska köras på exekveringssystemet. Det glidande argumentet är av formuläret: Endast ett gruppnamn kan ges per angiven värd. Endast en av gruppspecifikationerna kan levereras utan motsvarande värdspecifikation. Det gruppnamnet används för körning på någon värd som inte heter i argumentlistan. Om den inte är inställd, går grouplisten till den primära gruppen för den användare under vilken jobbet ska köras. interactivetrue Om den interaktiva attributet är specificerat är jobbet ett interaktivt jobb. Alternativet - I är en alternativ metod för att specificera detta attribut. jobradix ltintgt Används för parallella jobb. Det leder mödrarna i jobbet för att skapa en distributionsradix av storlek mellan systrarna. Se Hantera flera noderjobb. stageinfilelist stageoutfilelist Anger vilka filer som är iscensatta (kopieras) innan jobbet startas eller iscensatt efter att jobbet fullbordat utförandet. När jobbet är slutfört tas alla inlagda och inlagda filer bort från exekveringssystemet. Filisten är i formen: oavsett kopieringens riktning. Namnet localfile är namnet på filen på det system där jobbet kördes. Det kan vara en absolut väg eller i förhållande till användarens hemkatalog. Namnet remotefile är destinationsnamnet på värden som anges av värdnamn. Namnet kan vara absolut eller relativt användarens hemkatalog på destinationsvärden. Användning av jokertecken i filnamnet rekommenderas inte. Filnamnskartan till ett fjärrkopieringsprogram (rcp) anrop på exekveringssystemet på följande sätt: För scenin: rcp värdnamn: remotefile localfile För scenoutgång: rcp localfile värdnamn: remotefile Dataställningsexempel: Om TORQUE har sammanställts med wordexp support , då kan variabler användas i de angivna sökvägarna. För närvarande bara PBSJOBID. HEM. och TMPDIR stöds för stagein. umaskXXX Sätter umask som används för att skapa stdout - och stderr-spoolfiler i pbsmom spool directory. Värden som börjar med 0 behandlas som oktalvärden, annars värderas värdet som ett decimalvärde. Som standard, om du skickar ett interaktivt jobb med ett skript, kommer manuskriptet att analyseras för PBS-direktiv, men resten av skriptet kommer att ignoreras eftersom det är ett interaktivt jobb. Alternativet - x gör att manuset kan utföras i det interaktiva jobbet och sedan fullbordas jobbet. Till exempel: script. sh binbash ls --- slutskript --- qsub - I script. sh qsub: väntar på jobb 5.napali för att starta dbeernapali: ltd visar innehållet i katalogen på grund av ls commandgt qsub: jobb 5.napali slutförd Aktiverar X11 vidarebefordran. DISPLAY-miljövariabeln måste ställas in. När det här jobbet avslutas kan jobb i arrayid börja. Om någon av de tidigare formulären används, måste de jobb som hänvisas till av arrayid har skickats in med en beroende av typen på. Om någon av de tidigare formulären används, måste de jobb som refereras av arrayid ha samma ägare som det jobb som skickas in. Annars ignoreras beroendet. Fel vid behandling av existensen, tillståndet eller villkoret för det jobb där det nyligen inlämnade jobbet är en uppskjuten tjänst, dvs kontrollen utförs efter att jobbet är i kö. Om ett fel upptäcks kommer det nya jobbet att raderas av servern. E-post kommer att skickas till arbetsgivaren som anger felet. qsub - W dependafterok: 123.big. iron tmpscript qsub - W dependbefore: 234.hunk1: 235.hunk1 qsub script. sh - W dependafterokarray: 427 (Detta förutsätter att alla jobb i array 427 måste slutföras framgångsrikt för att beroendet ska uppfyllas .) qsub script. sh - W dependafterokarray: 4275 (Det betyder att 5 av jobben i array 427 måste slutföras för att beroendet ska uppfyllas.) qsub-kommandot accepterar en scriptoperation som är sökvägen till manuset av jobbet. Om sökvägen är relativt, kommer den att expanderas i förhållande till arbetsboken för qsub-kommandot. Om manuskriptoperand inte tillhandahålls eller operand är det enda tecknet - läser qsub-kommandot manuset från standardinmatning. När skriptet läses från Standardinmatning kommer qsub att kopiera filen till en temporär fil. Denna temporära fil skickas till bibliotekets gränssnittrutinpbssubmit. Den temporära filen avlägsnas av qsub efter att du returnerat retur eller vid mottagandet av en signal som skulle orsaka att qsub avslutas. Qsub-kommandot läser manuset för jobbet från standardinmatning om manuskriptet operand saknas eller är det enda tecknet -. Skriptfilen läses av kommandot qsub. qsub agerar på alla direktiv som finns i skriptet. När jobbet skapas skapas en kopia av skriptfilen och den kopian kan inte ändras. Om inte - z-alternativet är inställt, kommer den jobbidentifierare som tilldelats jobbet att skrivas till standardutmatning om jobbet är framgångsrikt skapat. Qsub-kommandot skriver ett diagnostiskt meddelande till standardfel för varje feluppkomst. Värdena för vissa eller alla variablerna i qsub-kommandomiljön exporteras med jobbet (se - v och - v-alternativen). Omvandlingsvariabeln PBSDEFAULT definierar namnet på standardservern. Typiskt motsvarar det systemets namn på den värd som servern körs på. Om PBSDEFAULT inte är inställt definieras standarden av en administratörsupprättad fil. Omvandlingsvariabeln PBSDPREFIX bestämmer prefixsträngen som identifierar direktiv i skriptet. Omvandlingsvariabeln PBSCLIENTRETRY definierar det maximala antalet sekunder qsub kommer att blockera (se alternativet - b). Trots namnet är för närvarande qsub den enda klienten som stöder detta alternativ. Den torque. cfg-filen, som finns i PBSSERVERHOME (varspooltorque som standard) styr uppförandet av qsub-kommandot. Den här filen innehåller en lista över parametrar och värden som är separerade av blanksteg. QSUBSLEEP tar ett heltal operand som anger tid att sova när qsub-kommandot körs. Används för att förhindra att användare överväldigar schemaläggaren. SUBMITFILTER anger sökvägen till det inlämnade filtret som används för att förhandla jobbinsändning. Standardvägen är libexecdirqsubfilter, som faller tillbaka till usrlocalsbintorquesubmitfilter för bakåtkompatibilitet. Denna parameter moment. cfg överstyr denna standard. SERVERHOST QSUBHOST QSUBSENDUID XAUTHPATH CLIENTRETRY VALIDATEGROUP DEFAULTCKPT VALIDATEPATH RERUNNABLEBYDEFAULT Ett arbetsskript kan bestå av PBS-direktiv, kommentarer och körbara uttalanden. Ett PBS-direktiv ger ett sätt att ange jobbattribut utöver kommandoradsalternativen. Till exempel: PBS - l walltime10: 30, mem320kb steg1 arg1 arg2 step2 arg3 arg4 Kommandot qsub skannar linjerna i skriptfilen för direktiv. En första raden i manuset som börjar med tecknen eller tecknet. kommer att ignoreras och scanning börjar med nästa rad. Skanningen fortsätter till den första körbara raden, det vill säga en linje som inte är blank, inte en direktivlinje, eller en rad vars första icke-vita rymdkaraktär är. Om direktiv uppstår på efterföljande rader, kommer de att ignoreras. En rad i skriptfilen kommer att behandlas som ett direktiv till qsub om och endast om teckensträngen som börjar med det första nonwhite-tecknet på linjen och med samma längd som direktivets prefix matchar direktivets prefix. Resten av direktivlinjen består av alternativen till qsub i samma syntax som de visas på kommandoraden. Alternativ tecknet ska föregås med - tecknet. Om ett alternativ är närvarande i både ett direktiv och på kommandoraden kommer det alternativet och dess argument, om det finns, att ignoreras i direktivet. Kommandoraden har företräde. Om ett alternativ finns i ett direktiv och inte på kommandoraden, kommer det här alternativet och dess argument, om det finns, att behandlas som om det hade uppstått på kommandoraden. Direktivets prefixsträng bestäms i preferensordning från: Värdet av alternativet - c alternativ om alternativet anges på kommandoraden. Värdet av miljövariabeln PBSDPREFIX om den är definierad. Den fyra teckensträngen PBS. Om alternativet - c finns i ett direktiv i skriptfilen kommer det att ignoreras. När användaren skickar ett jobb från ett annat system än det som PBS-servern kör på, väljs det namn under vilket jobbet ska utföras enligt de regler som anges under - u-alternativet. Användaren som skickar jobbet måste ha behörighet att köra jobbet under användarnamnet för körning. Denna behörighet tillhandahålls om: Den värd som qsub körs på är betrodd av exekveringsvärden (se etchosts. equiv). Exekveringsanvändaren har en. rhosts-fil som namnger den inlämnande användaren på den inlämnande värden. C-Shell. logout-fil: Följande varning gäller för användare av c-shell, csh. Om jobbet körs under csh och a. logout-filen finns i den hemkatalog där jobbet exekveras är utträdesstatusen för jobbet det för utloggningsskriptet, inte arbetsskriptet. Detta kan påverka eventuella inter-jobber beroende. För att bevara jobbutgångsstatusen, antingen ta bort. logout-filen eller placera följande rad som första raden i. logout-filen: Ange EXITVAL-status och följande rad som den sista körbara raden i. logout: Om - I-alternativet är specificerat på kommandoraden eller i ett skriptdirektiv, eller om det interaktiva jobbattributet förklaras sant via - W-alternativet - W interactivetrue. either on the command line or in a script directive, the job is an interactive job. The script will be processed for directives, but will not be included with the job. When the job begins execution, all input to the job is from the terminal session in which qsub is running. When an interactive job is submitted, the qsub command will not terminate when the job is submitted. qsub will remain running until the job terminates, is aborted, or the user interrupts qsub with an SIGINT (the control-C key). If qsub is interrupted prior to job start, it will query if the user wishes to exit. If the user response yes, qsub exits and the job is aborted. One the interactive job has started execution, input to and output from the job pass through qsub. Keyboard generated interrupts are passed to the job. Lines entered that begin with the tilde ( ) character and contain special sequences are escaped by qsub. The recognized escape sequences are:

No comments:

Post a Comment