Sunday, 26 November 2017

Qsub Submit Binære Alternativer


Sun Grid Engine (SGE) QuickStart Sun Grid Engine kjølesystem er nyttig når du har mange oppgaver å utføre og ønsker å distribuere oppgavene over en maskinklynger. For eksempel kan det hende du må løpe hundrevis av simuleringseksperimenter med varierende parametere eller trenger å konvertere 300 videoer fra ett format til et annet. Bruke et køesystem i disse situasjonene har følgende fordeler: Planlegging - lar deg planlegge en nesten ubegrenset mengde arbeid som skal utføres når ressurser blir tilgjengelige. Dette betyr at du enkelt kan sende inn så mange oppgaver (eller jobber) som du vil, og la køesystemet håndtere å utføre dem alle. Lastbalanse - distribuerer automatisk oppgaver på tvers av klyngen slik at en node ikke blir overbelastet sammenlignet med resten. MonitoringAccounting - evnen til å overvåke alle sendte jobber og spørre hvilke klusternoder de kjører på, uansett om de er ferdige, oppdaget en feil, osv. Tillater også å spørre jobbhistorikk for å se hvilke oppgaver som ble utført på en gitt dato, av en gitt bruker etc. Selvfølgelig, bare fordi et køesystem er installert, betyr ikke at du trenger å bruke det i det hele tatt. Du kan kjøre oppgavene dine på tvers av klyngen på en måte som du ser hensiktsmessig, og køesystemet bør ikke forstyrre. Men du vil sannsynligvis ende opp med å måtte implementere de ovennevnte funksjonene på noen måte for å optimalisere klyngen. Sende inn en jobb En jobb i SGE representerer en oppgave som skal utføres på en node i klyngen og inneholder kommandolinjen som brukes til å starte oppgaven. En jobb kan ha spesifikke ressursbehov, men generelt bør det være agnostisk som hvilken knutepunkt i klyngen den kjører på så lenge ressursbehovene er oppfylt. Alle jobber krever minst ett ledig spor på en knutepunkt i klyngen som skal kjøre. Innlevering av jobber er gjort ved hjelp av qsub-kommandoen. Let8217s prøver å sende inn en enkel jobb som kjører hostname-kommandoen på en gitt klusterknute: - V-alternativet til qsub sier at jobben skal ha de samme miljøvariablene som skallet utfører qsub (anbefalt). - b-alternativet til qsub sier at Kommandoen blir utført, kan være et enkelt binært kjørbart eller et bash script. I dette tilfellet er kommandoen vertsnavn et enkelt binært. Dette alternativet tar et y - eller n-argument som indikerer enten ja kommandoen er et binært eller nei det er ikke et binært. - cwd-alternativet til qsub forteller Sun Grid Engine at jobben skal utføres i samme katalog som qsub ble kalt. Det siste argumentet til qsub er kommandoen som skal utføres (vertsnavn i dette tilfellet) Legg merke til at qsub-kommandoen, når den lykkes, vil skrive ut jobbnummeret til stdout. Du kan bruke jobbnummeret til å overvåke statusen for job8217 og fremgang i køen som vi8217ll ser i neste avsnitt. Overvåking av jobber i køen Nå som vår jobb er sendt, let8217s ta en titt på job8217s status i køen ved hjelp av kommandoen qstat: Fra denne utgangen kan vi se at jobben er i qw-staten som står for kø og venter . Etter noen sekunder overgår jobben til en r. eller kjører. angi hvilket tidspunkt jobben vil begynne å utføre: Når jobben er ferdig, vil jobben bli fjernet fra køen og vises ikke lenger i utgangen av qstat: Nå når jobben er ferdig, går let8217s videre til neste avsnitt for å se hvordan vi ser en jobb8217s utgang. Vise en Job8217s Output Sun Grid Engine lager stdout - og stderr-filer i job8217s arbeidskatalog for hver jobb som utføres. Hvis det opprettes ytterligere filer under en job8217s utførelse, vil de også bli plassert i arbeidsgruppen for job8217, med mindre det er eksplisitt lagret andre steder. Jobben8217s stdout - og stderr-filer er oppkalt etter jobben med utvidelsen som slutter i job8217s nummer. For den enkle jobben som er oppgitt ovenfor har vi: Legg merke til at Sun Grid Engine automatisk oppkalte jobbvertsnavnet og opprettet to utdatafiler: vertsnavn. e1 og vertsnavn. o1. E står for stderr og o for stdout. Den 1 på slutten av filene8217-utvidelsen er jobbnummeret. Så hvis jobben hadde blitt kalt mynewjob, og jobben 23 ble sendt, ville utdatafilene se ut: Overvåking av klusterbruk Etter en stund kan du være nysgjerrig på å se belastningen på Sun Grid Engine. For å gjøre dette bruker vi qhost-kommandoen: Utgangen viser arkitekturen (ARCH), antall cpus (NCPU), den nåværende belastningen (LOAD), totalt minne (MEMTOT), og for øyeblikket brukt minne (MEMUSE) og bytteplass ( SWAPTO) for hver knute. Du kan også vise gjennomsnittlig belastning (loadavg) per node ved hjelp av alternativet 8216-f8217 til qstat: Opprette et jobbskript I delen 8216Sendende en jobb8217 sendte vi inn et enkelt kommandoen vertsnavn. Dette er nyttig for enkle jobber, men for mer komplekse jobber der vi trenger å inkorporere noen logikk, kan vi bruke et såkalt jobbskript. Et jobbscript er egentlig et bash-skript som inneholder noen logikk og utfører et hvilket som helst antall eksterne programskript: Som du kan se, utfører dette skriptet bare noen få kommandoer (som ekko, dato, katt osv.) Og utganger. Alt som skrives ut på skjermen, blir lagt inn i job8217s stdout-fil av Sun Grid Engine. Siden dette bare er et bash-skript, kan du legge til hvilken som helst form for logikk som er nødvendig i jobbskriptet (det vil si om utsagn, mens sløyfer, for sløyfer osv.), Og du kan ringe til et hvilket som helst antall eksterne programmer som trengs for å fullføre jobben. Let8217 ser hvordan du kjører dette nye jobbskriptet. Lagre skriptet ovenfor til homesgeadminjobscript. sh på StarCluster og utfør følgende som sgeadmin-bruker: Nå som jobben er sendt, må la8217s ringe qstat med jevne mellomrom til jobben er ferdig siden denne jobben bare skal ta et sekund å kjøre når it8217s er utført : Nå som jobben er ferdig, let8217s ta en titt på utdatafilene: Vi ser fra å se på utgangen at stdout-filen inneholder utdataene fra ekko-, dato - og katteuttalelsene i jobbscriptet og at stderr-filen er blank betyr at det ikke var feil under job8217s utførelse. Hadde noe mislyktes, for eksempel en kommando ikke funnet feil for eksempel, ville disse feilene ha dukket opp i stderr filen. Slette en jobb fra køen Hvis en jobb sitter fast i køen, tar det for lang tid å løpe, eller startes bare med feil parametere. Du kan slette en jobb fra køen ved hjelp av kommandoen qdel i Sun Grid Engine. Nedenfor starter vi en enkel 8216sleep8217 jobb som sover i 10 sekunder, slik at vi kan drepe den ved hjelp av qdel: Etter å ha kjørt qdel du8217ll var jobben borte fra køen: OpenMPI og Sun Grid Engine OpenMPI må kompileres med SGE-støtte (8211with-sge ) for å benytte seg av den tette integrasjonen mellom OpenMPI og SGE som dokumentert i denne delen. Dette er tilfelle på alle StarCluster8217s offentlige AMIer. OpenMPI støtter tett integrasjon med Sun Grid Engine. Denne integrasjonen tillater Sun Grid Engine å håndtere å tilordne verter til parallelle jobber og å skikkelig ta hensyn til parallelle jobber. OpenMPI Parallel Environment StarCluster oppretter som standard et parallelt miljø, kalt 8220orte8221, som er konfigurert for OpenMPI-integrasjon innenfor SGE og har et antall spor tilsvarende det totale antallet prosessorer i klyngen. Du kan inspisere SGE-parallellmiljøet ved å kjøre: Dette er standardkonfigurasjonen for en to-node, c1.xlarge klynge (16 virtuelle kjerner). Round Robin vs Fill Up Modes Legg merke til allocationrule-innstillingen i utgangen av qconf-kommandoen i forrige avsnitt. Dette definerer hvordan man tildeler spor til en jobb. Som standard konfigurerer StarCluster roundrobinallokering. Dette betyr at hvis en jobb krever 8 plasser, vil den gå til den første maskinen, ta en enkelt spor hvis tilgjengelig, flytte til neste maskin og ta en enkelt spor hvis tilgjengelig, og så videre, om igjen om nødvendig om klassen å tildele 8 spor til jobben. Du kan også konfigurere det parallelle miljøet for å prøve å lokalisere sporene så mye som mulig ved hjelp av fylleallokeringsregelen. Med denne regelen, hvis en bruker ber om 8 spor og en enkelt maskin har 8 spor tilgjengelig, går den jobben helt ut på en maskin. Hvis 5 spor er tilgjengelig på en vert og 3 på en annen, vil det ta alle 5 på denne verten og alle 3 på den andre verten. Med andre ord, vil denne regelen greedily ta alle spor på en gitt knutepunkt til spaltkravet for jobben er oppfylt. Du kan bytte mellom roundrobin og fillup modus ved hjelp av følgende kommando: Dette åpner vi (eller en redaktør definert i EDITOR env-variabel) og lar deg redigere de parallelle miljøinnstillingene. For å bytte fra roundrobin til fillup i eksempelet ovenfor, endre allokeringslinjelinjen fra: Sende inn OpenMPI-jobber ved hjelp av et parallelt miljø. Den generelle arbeidsflyten for å kjøre MPI-koden er: Kompilere koden ved hjelp av mpicc, mpicxx, mpif77, mpif90 osv. Kopier resulterende kjørbar til samme sti på alle noder eller til en NFS-delt sted på hovedknutepunktet. Det er viktig at stien til kjørbarheten er identisk på alle noder for mpirun for riktig start av parallellkoden. Den enkleste tilnærmingen er å kopiere kjørbarheten et sted under hjemmet på hovedknutepunktet, siden hjemme er NFS-delt på tvers av alle noder i klyngen. Kjør koden på X antall maskiner ved å bruke: Hvor vertsfilen ser ut som noe: Men når du bruker et SGE-parallelt miljø med OpenMPI, trenger du ikke lenger å spesifisere alternativene - np, - hostfile, - host, etc., til mpirun. Dette skyldes at SGE automatisk tilordner verter og prosessorer som skal brukes av OpenMPI for jobben din. Du trenger heller ikke å sende 8211byslot - og 8211bynode-alternativene til mpirun gitt at disse mekanismene nå håndteres av fillup - og roundrobin-modiene som er spesifisert i SGE-parallellmiljøet. I stedet for å bruke formuleringen ovenfor, opprett et enkelt jobbskript som inneholder et veldig forenklet mpirun-anrop: Send deretter jobben ved hjelp av qsub-kommandoen og parallellmiljøet for orte automatisk konfigurert for deg av StarCluster: The - pe-opsjonsarten som parallelt miljø å bruke og hvor mange spor å be om. Ovennevnte eksempel ber om 24 spor (eller prosessorer) ved hjelp av parallellmiljøet. Det parallelle miljøet tar seg automatisk av å distribuere MPI-jobben blant SGE-nodene ved hjelp av tildelingsruten som er definert i miljøet8217s innstillinger. Du kan også gjøre dette uten et jobbscript slik: Sende binærfiler i Grid Engine 6.x Grid Engine 6 støtter direkte innsending av binærfiler via qsub og qrsh via det nye argumentet - b yn. Standard oppførsel antar - b n. bruk - b å direkte påkalle en binær kjørbar. workgroupcluster: www qrsh - b y usrbinuptime 7:49 opp 107 dager, 35 minutter, 0 brukere, last gjennomsnitt: 0,12 0,03 0,01 arbeidsgruppecluster: Kommandoen qsub (1) kan ikke brukes til direkte å sende binære filer som jobber. Selv om man kan skrive et lite wrapper-skript rundt binærfiler for å sende dem, er det to praktiske teknikker for å sende inn binærfiler som jobber ganske enkelt uten å involvere et eget skript. Skriv inn qsub-kommandoen sammen med ønsket flagg og alternativer, og trykk deretter på retur uten å spesifisere et jobbskript. Du vil da se en sekundær shell-prompt. Ved denne spørringen kan du skrive inn navnet på det binære. Du kan deretter trykke på retur og fortsette å skrive inn flere binære eller shell kommandoer. Når du er ferdig med å spesifisere jobben, trykker du på Control-D. qsub - l archsolaris64 sleep 60 ltctrl-Dgt jobben din 47427 (quotSTDINquot) har blitt sendt Skriv inn qsub-kommandoen sammen med ønsket flagg og alternativer, og bruk deretter STDIN-omdirigeringskonstruksjonen ltlt ltMARKERgt. Skriv inn en eller flere linjer som inneholder en hvilken som helst kombinasjon av binær - og shell-kommandoer ved sekundærprompten som ovenfor. Deretter skriver du LTMARKERgt på en linje av seg selv og trykker på retur. qsub - N test ltt EOF sleep 60 EOF jobben din 47428 (quottestquot) er innsendt Begge teknikkene ovenfor utnytter det faktum at qsub bruker STDIN-strømmen som et jobbscript hvis du ikke angir en skriptfil som argument. For å sømløst integrere bestemte applikasjoner i ditt miljø med en Grid Engine-klynger, kan det være nødvendig å skrive et tilpasset wrapper-skript som gjør noe installasjonsarbeid før du kjører en jobb. Den andre teknikken fra oven kan være innebygd i slike wrapper-skript. Eksempel: Lag innpakning for å sende inn en binær batchjobb fra en SunRay til en back-end farm. For å gjøre dette, er det nødvendig å endre LDPRELOAD-variabelen for å fjerne SunRay-spesifikk oppføring. En generisk binær sende wrapper script quotqbsubquot kan bli funnet på denne linken. Den kan brukes som en kvotert versjon av qsub. Innpakningsskriptet gjør det mulig for senderen å bruke standard innsendingflaggene, og det står også for flaggene som er angitt i qtask-filen (som brukes av qtcsh når transparent sender binærfiler til systemet). Et eksempel på bruk av dette skriptet er: Dette kjører netscape-binæret mens eksplisitt vedlikehold av DISPLAY-miljøvariabelen. MERK: Du må selvfølgelig sørge for at binæret samsvarer med arkitekturen som det til slutt vil løpe. Du kan for eksempel spesifisere dette ved å gjøre: For å opprette en jobb, er å sende et eksekverbart skript til en batchserver. Batch-serveren vil være standard server, med mindre - q-alternativet er spesifisert. Kommandoen analyserer et skript før den faktiske skripteksjonen det utfører ikke et skript i seg selv. Alle skriptskrivningsregler forblir i kraft, inkludert i hovedet på filen (se diskusjon av PBSDEFAULT under Miljøvariabler). Typisk er skriptet et skallskript som vil bli utført av et kommandoskall som sh eller csh. Alternativer på qsub-kommandoen tillater spesifikasjon av attributter som påvirker oppførselen til jobben. Qsub-kommandoen vil passere visse miljøvariabler i VariableList-attributtet til jobben. Disse variablene vil være tilgjengelige for jobben. Verdien for de følgende variablene vil bli tatt fra miljøet til qsub-kommandoen: HJEM, LANG, LOGNAME, PATH, MAIL, SHELL og TZ. Disse verdiene vil bli tildelt til et nytt navn som er det nåværende navnet prefixed med strengen PBSO. For eksempel vil jobben ha tilgang til en miljøvariabel kalt PBSOHOME som har verdien av variabelen HOME i qsub-kommandomiljøet. I tillegg til ovenstående vil følgende miljøvariabler være tilgjengelige for batchjobben: Navnet på verten som qsub-kommandoen kjører på. Vertsnavnet til pbsserveren som qsub sender jobben til. Navnet på den originale køen som jobben ble sendt inn. Den absolutte banen til gjeldende arbeidskatalog for qsub-kommandoen. Hvert medlem av en jobbgruppe er tildelt en unik identifikator (se - t-alternativ). Angi til PBSBATCH for å indikere at jobben er en batchjobb, eller til PBSINTERACTIVE for å indikere at jobben er en PBS-interaktiv jobb (se - I alternativ). Navnet på filen som inneholder listen over tildelte GPUer. For mer informasjon om hvordan du konfigurerer TORQUE med GPUS, se dokumentasjonen for Moab Workload Manager accelerator. Jobidentifikatoren tilordnet jobben av batchsystemet. Den kan brukes i stdout og stderr stier. TORQUE erstatter PBSJOBID med jobber jobid (for eksempel PBS - o tmpPBSJOBID. output). Arbeidsnavnet levert av brukeren. Navnet på filen inneholder listen over noder som er tilordnet jobben (for parallelle og klyngesystemer). Erklærer tiden etter som jobben er kvalifisert for utførelse. Datetime argumentet er i skjemaet: hvor CC er de to første sifrene i året (tallet), YY er de to andre sifrene i året, MM er de to sifrene for måneden, DD er dagen i måneden, hh er timen, mm er minuttet, og valgfri SS er sekunder. Hvis måneden (MM) ikke er angitt, vil den bli standard til gjeldende måned hvis den angitte dagen (DD) er i fremtiden. Ellers blir måneden satt til neste måned. På samme måte, hvis dagen (DD) ikke er spesifisert, vil den bli standard til i dag hvis tiden (hhmm) er i fremtiden. Ellers vil dagen bli satt til i morgen. For eksempel, hvis du sender inn en jobb klokka 11:15 med en tid på -1110, vil jobben være kvalifisert til å kjøre klokka 11:10 i morgen. Definerer konto streng som er knyttet til jobben. Kontoen er en ubestemt streng av tegn og tolkes av serveren som utfører jobben. Se avsnitt 2.7.1 i PBS ERS. Definerer maksimalt antall sekunder qsub vil blokkere forsøk på å kontakte pbsserver. Hvis pbsserver er nede, eller for en rekke kommunikasjonsfeil, vil qsub kontinuerlig forsøke å koble til pbsserver for jobbinnlevering. Denne verdien overstyrer CLIENTRETRY-parameteren i torque. cfg. Dette er en ikke-bærbar TORQUE-utvidelse. Portability-minded-brukere kan bruke PBSCLIENTRETRY miljøvariabelen. En negativ verdi tolkes som uendelig. Standard er 0. Definerer alternativene som skal gjelde for jobben. Hvis jobben kjøres på en vert som ikke støtter kontrollpunkt, blir disse alternativene ignorert. Gyldige kontrollpunktsalternativer er: ingen Ingen kontrollpunkt skal utføres. aktivert Angi at kontrollpunktet er tillatt, men må eksplisitt påberopes av enten qhold eller qchkpt-kommandoene. Avslutt Spesifiser at kontrollpunktet skal gjøres på en jobb ved pbsmom-avstengning. periodisk Angi at periodisk kontrollpunkt er aktivert. Standardintervallet er 10 minutter og kan endres ved hjelp av kontrollpunktintervallalternativet i MOM-konfigurasjonsfilen eller ved å spesifisere et intervall når jobben sendes inn intervallminuter. Kontrollpunkt skal utføres med et minuttintervall, som er heltallet antall minutter på veggen Tid brukt av jobben. Denne verdien må være større enn null. deepnumber Angi et antall (dybde) av kontrollpunktbilder som skal lagres i kontrollpostkatalogen. dirpath Angi et kontrollpostkatalog (standard er varspooltorquecheckpoint). Definerer prefikset som erklærer et direktiv til qsub-kommandoen i skriptfilen. (Se avsnittet om skriptdirektiver under Utvidet beskrivelse.) Hvis c-alternativet presenteres med et argumentprefix-argument som er null-strengen, vil qsub ikke skanne skriptfilen for direktiver. Definerer arbeidsboksen banen som skal brukes til jobben. Hvis alternativet - d ikke er angitt, er standard arbeidskatalog hjemmappen. Dette alternativet angir miljøvariabelen PBSOINITDIR. Definerer rotkatalogen som skal brukes til jobben. Dette alternativet setter miljøvariabelen PBSOROOTDIR. Definerer banen som skal brukes til standard feilstrøm av batchjobben. Sti argumentet er av skjemaet: hvor vertsnavnet er navnet på en vert som filen vil bli returnert, og stienavn er stienavnet på den verten i syntaksen gjenkjent av POSIX. Argumentet tolkes som følger: stienavn der stienavn ikke er et absolutt stinavn, vil qsub-kommandoen utvide stinavnet i forhold til gjeldende arbeidskatalog for kommandoen. Kommandoen vil gi navnet til verten der den utføres for vertsnavnskomponenten. vertsnavn: banenavn der stinavn ikke er et absolutt stinavn, da vil qsub-kommandoen ikke utvide stinavnet i forhold til gjeldende arbeidskatalog for kommandoen. Ved levering av standardfeilen vil banenavnet bli utvidet i forhold til brukerens hjemmekatalog på vertsnavnet. stienavn der stienavn spesifiserer et absolutt stinavn, da vil qsub gi navnet på verten der den kjøres for vertsnavnet. vertsnavn: stienavn der stinavn angir et absolutt stinavn, stien vil bli brukt som angitt. Hvis alternativet - e ikke er angitt, vil standardfilnavnet for standardfeilstrømmen bli brukt. Standardnavnet har følgende skjema: jobname. esequencenumber hvor arbeidsnavn er navnet på jobben (se navnet-alternativet) og sekvensnummer er jobbnummeret tildelt når jobben er sendt inn. Jobb er gjort feiltolerant. Jobb som kjører på flere noder blir periodisk pollet av mors overlegen. Hvis en av knutepunktene ikke rapporterer, blir jobben avbrutt av mors overlegen, og en feil er rapportert. Hvis en jobb er feiltolerant, vil den ikke bli kansellert basert på mislykket polling (uansett hvor mange noder ikke rapporterer). Dette kan være ønskelig hvis forbigående nettverksfeil forårsaker store jobber som ikke skal fullføres, hvor ignorering av et mislykket pollingforsøk kan korrigeres ved neste pollingforsøk. Hvis TORQUE er kompilert med PBSNOPOSIXVIOLATION (det er ikke noe config-alternativ for dette), må du bruke - W faulttoleranttrue for å markere jobben som feiltolerant. Angir argumentene som skal sendes til jobbskriptet når skriptet lanseres. Den aksepterte syntaksen er: qsub - F myarg1 myarg2 myarg3myarg3value myscript2.sh Sitatkarakterer kreves. qsub mislykkes med en feilmelding hvis argumentet som følger med - F ikke er en sitert verdi. Pbsmom-serveren sender den angitte verdien som argumenter til jobbscriptet når den starter skriptet. Alternativet - W tillater spesifikasjon av flere jobbattributter. Den generelle syntaksen av - W er i form: Hvis det oppstår hvitt mellomrom hvor som helst innenfor alternativargumentstrengen eller likestegnet,, forekommer i en attributevalue-streng, må strengen være vedlagt enten enkelt - eller dobbelttegn. PBS støtter for tiden følgende attributter innenfor - W-alternativet: dependdependencylist Definerer avhengigheten mellom denne og andre jobber. Dependencylisten er i skjemaet: Argumentet er enten en numerisk telling eller et PBS-jobb-ID etter type. Hvis argumentet er en telling, må det være større enn 0. Hvis det er et jobb-id og ikke fullt spesifisert i skjemaet seqnumber. server. name. Det vil bli utvidet i henhold til standard serverreglene som gjelder for jobb-IDer på de fleste kommandoer. Hvis argumentet er null (det forrige kolon trenger ikke angis), avhenger avhengigheten av den tilsvarende typen (unset). For mer informasjon, se dependdependencylist gyldige avhengigheter. grouplistglist Definerer gruppenavnet som jobben skal kjøre på kjøresystemet. Det glirende argumentet er av skjemaet: Bare ett gruppenavn kan gis per spesifisert vert. Bare en av gruppespesifikasjonene kan leveres uten tilsvarende vertsspesifikasjon. Det gruppenavnet vil bli brukt til utførelse på en vert som ikke er oppført i argumentlisten. Hvis ikke satt, vil grouplisten defaults til den primære gruppen til brukeren der jobben skal kjøres. interaktivetrue Hvis den interaktive attributtet er spesifisert, er jobben en interaktiv jobb. Alternativet - I er en alternativ metode for å angi dette attributtet. jobradix ltintgt Brukes til parallelle jobber. Det leder morens overlegen til jobben for å lage en distribusjonsradix av størrelse mellom søstrene. Se Administrere flere node-jobber. stageinfilelist stageoutfilelist Angir hvilke filer som er lagret (kopiert) før jobbstart eller iscenesatt etter at jobben fullfører kjøringen. Når jobben er ferdig, blir alle iscenesatte og utplasserte filer fjernet fra kjøringssystemet. Fillisten er i form: uavhengig av retningen til kopien. Navnet localfile er navnet på filen på systemet der jobben ble utført. Det kan være en absolutt sti eller i forhold til brukerens hjemmekatalog. Navnet Remotefile er destinasjonsnavnet på verten spesifisert av vertsnavn. Navnet kan være absolutt eller i forhold til brukerens hjemmekatalog på mottakeren. Bruk av jokertegn i filnavnet anbefales ikke. Filnavnet kartet til et eksternt kopiprogram (rcp) ring på kjøringssystemet på følgende måte: For stagein: rcp hostname: remotefile localfile For trinnutløp: rcp localfile vertsnavn: remotefile Datastaseringseksempler: Hvis TORQUE er blitt kompilert med wordexp-støtte , så kan variabler brukes i de angitte banene. Foreløpig bare PBSJOBID. HJEM. og TMPDIR støttes for stagein. umaskXXX Setter umask som brukes til å lage stdout - og stderr-spoolfiler i pbsmom spool directory. Verdier som begynner med 0, blir behandlet som oktalverdier, ellers blir verdien behandlet som en decimaltalverdi. Som standard, hvis du sender inn en interaktiv jobb med et skript, vil skriptet bli analysert for PBS-direktiver, men resten av skriptet vil bli ignorert siden det er en interaktiv jobb. Alternativet - x tillater at skriptet blir utført i den interaktive jobben, og deretter fullføres jobben. For eksempel: script. sh binbash ls --- slutt skript --- qsub - I script. sh qsub: venter på jobb 5.napali for å starte dbeernapali: ltd viser innholdet i katalogen, på grunn av ls kommandoen qsub: jobb 5.napali fullført Aktiverer X11 videresending. DISPLAY-miljøvariabelen må være innstilt. Når denne jobben avsluttes, kan jobber i arrayid begynne. Hvis noen av de tidligere skjemaene brukes, må de jobber som refereres av arrayid, ha blitt sendt med en avhengighetstype på. Hvis noen av de tidligere skjemaene brukes, må jobber referert av arrayid ha samme eier som jobben som blir sendt inn. Ellers ignoreres avhengigheten. Feil behandling av eksistensen, tilstanden eller tilstanden til jobben der den nylig innsendte jobben er en utsatt tjeneste, dvs. sjekken utføres etter at jobben er i kø. Hvis en feil oppdages, slettes den nye jobben av serveren. E-post vil bli sendt til arbeidsgiveren som angir feilen. qsub - W dependafterok: 123.big. iron tmpscript qsub - W dependbefore: 234.hunk1: 235.hunk1 qsub script. sh - W dependafterokarray: 427 (Dette forutsetter at alle jobber i array 427 må fullføre vellykket for at avhengigheten skal tilfredsstilles .) qsub script. sh - W dependafterokarray: 4275 (Dette betyr at 5 av jobbene i array 427 må fullføres for at avhengigheten skal tilfredsstilles.) qsub-kommandoen aksepterer et skriptoperand som er banen til skriptet av jobben. Hvis banen er relativ, vil den bli utvidet i forhold til arbeidsboken til qsub-kommandoen. Hvis man ikke oppgir manuskriptoperandoen, eller operand er enkeltkarakteren, leser qsub-kommandoen skriptet fra standardinngang. Når skriptet leses fra Standard Input, vil qsub kopiere filen til en midlertidig fil. Denne midlertidige filen sendes til bibliotekets grensesnittrutine pbssubmit. Den midlertidige filen blir fjernet av qsub etter at du har mottatt retur eller ved mottak av et signal som vil føre til at qsub avsluttes. Qsub-kommandoen leser skriptet for jobben fra standardinngang hvis script operand mangler eller er enkelt tegn -. Skriptfilen leses av qsub-kommandoen. qsub virker på eventuelle direktiver som finnes i skriptet. Når jobben er opprettet, blir det laget en kopi av skriptfilen, og kopien kan ikke endres. Med mindre alternativet - z er angitt, blir jobbidentifikatoren som er tilordnet jobben, skrevet til standardutgang hvis jobben er opprettet. Qsub-kommandoen vil skrive en diagnostisk melding til standardfeil for hver feilfeil. Verdiene av noen eller alle variablene i qsub-kommandomiljøet eksporteres med jobben (se alternativene - v og - v). Miljøvariabelen PBSDEFAULT definerer navnet på standardserveren. Vanligvis svarer det til systemnavnet til verten der serveren kjører. Hvis PBSDEFAULT ikke er angitt, er standardverdien definert av en administratoropprettet fil. Miljøvariabelen PBSDPREFIX bestemmer prefiksstrengen som identifiserer direktiver i skriptet. Miljøvariabelen PBSCLIENTRETRY definerer maksimalt antall sekunder qsub vil blokkere (se alternativet - b). Til tross for navnet, er qsub den eneste klienten som støtter dette alternativet. Torque. cfg-filen, som ligger i PBSSERVERHOME (varspooltorque som standard) styrer oppførselen til qsub-kommandoen. Denne filen inneholder en liste over parametere og verdier skilt av hvitt plass. QSUBSLEEP tar et heltall operand som spesifiserer tid til å sove når du kjører qsub kommando. Brukes til å forhindre at brukerne overvelder planleggeren. SUBMITFILTER angir banen til innsend filteret som brukes til å forhåndsbehandle jobbinnlevering. Standardbanen er libexecdirqsubfilter, som faller tilbake til usrlocalsbintorquesubmitfilter for bakoverkompatibilitet. Dette momentet torque. cfg overstyrer denne standarden. SERVERHOST QSUBHOST QSUBSENDUID XAUTHPATH CLIENTRETRY VALIDATEGROUP DEFAULTCKPT VALIDATEPATH RERUNNABLEBYDEFAULT Et jobbskript kan bestå av PBS-direktiver, kommentarer og kjørbare setninger. Et PBS-direktiv gir en måte å spesifisere jobbattributter i tillegg til kommandolinjevalgene. For eksempel: PBS - l walltime10: 30, mem320kb step1 arg1 arg2 step2 arg3 arg4 qsub-kommandoen skanner linjene i skriptfilen for direktiver. En startlinje i skriptet som begynner med tegnene eller tegnet. vil bli ignorert og skanning vil starte med neste linje. Skanning vil fortsette til den første kjørbare linjen, det vil si en linje som ikke er tom, ikke en direktivlinje, eller en linje som har det første ikke-hvite romtegnet. Hvis det oppstår direktiver på etterfølgende linjer, blir de ignorert. En linje i skriptfilen blir behandlet som et direktiv til qsub hvis og bare hvis tegnstrengen som begynner med det første ikke-hvite romtegnet på linjen og med samme lengde som direktivets prefikser, samsvarer med direktivets prefiks. Resten av direktivlinjen består av alternativene til qsub i samme syntaks som de vises på kommandolinjen. Alternativet karakteren skal foregå med - tegnet. Hvis et alternativ finnes i både et direktiv og på kommandolinjen, vil dette alternativet og dets argument, hvis noe, bli ignorert i direktivet. Kommandolinjen har forrang. Hvis et alternativ er tilstede i et direktiv og ikke på kommandolinjen, vil dette alternativet og dets argument, om noen, behandles som om det hadde skjedd på kommandolinjen. Direktivets prefiksstreng vil bli bestemt i rekkefølge fra: Verdien av alternativet - c hvis alternativet er angitt på kommandolinjen. Verdien av miljøvariabelen PBSDPREFIX hvis den er definert. Den fire tegnstrengen PBS. Hvis alternativet - c er funnet i et direktiv i skriptfilen, blir det ignorert. Når brukeren sender inn en jobb fra et annet system enn det som PBS-serveren kjører på, blir navnet som jobben skal utføres valgt i henhold til reglene som er oppført under - u-alternativet. Brukeren som sender inn jobben, må ha fullmakt til å kjøre jobben under utførelsesnavnet. Denne autorisasjonen er gitt hvis: Verten som qsub kjøres på, er klarert av utførelsesverten (se etchosts. equiv). Utførelsesbrukeren har en. rhosts-fil som navngir den innleverende brukeren på den innleverende verten. C-Shell. logout-fil: Følgende advarsel gjelder for brukere av c-shell, csh. Hvis jobben utføres under csh og en. logout-fil, finnes i hjemmekatalogen der jobben utføres, er utgangsstatusen for jobben den for utskriftskriptet, ikke jobbscriptet. Dette kan påvirke eventuelle inter-jobber avhengigheter. For å bevare statusen for jobbutgang, fjerner du. logout-filen eller plasserer følgende linje som første linje i. logout-filen: angi EXITVAL-status og følgende linje som den siste kjørbare linjen i. logout: Hvis - I-alternativet er spesifisert på kommandolinjen eller i et skriptdirektiv, eller hvis den interaktive jobbattributtet erklært 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