HVORDAN.

HVORDAN.

Sette opp tastatur og 2-faktor autentisering.

Passord er ikke veldig sikre. Don t tro oss? Les denne skummel artikkelen fra kablet magasin. Vi foretrekker at du bruker nokkelparentralisering for palogginger fra din normale maskin eller 2-faktor-autentisering nar du logger inn fra en hvilken som helst annen maskin. For tiden er disse valgfrie, men de vil snart v re pakrevd, sa vi anbefaler at du setter opp en eller begge disse umiddelbart.

Bruke klyngen.

Klyngen kan nas via maskinen jh pce01.jhsph.edu. For a fa en konto pa denne maskinen, se instruksjonene pa http://jhpce.jhu.edu/knowledge-base/new-user-orientation/

Alt relatert til jobbinnlevering, planlegging og utforelse pa klyngen er under kontroll av Sun Grid Engine (SGE). Grid Engine-prosjektet ble sponset av Sun Microsystems som en apen kildekodeinnsamling for a lette vedtaket av distribuerte databehandlingslosninger.

Som standard bruker en jobb ett spor, men ser Be om flere SGE-spor for en flerkjernejobb. Du kan sende inn jobber som ber om mer enn sporgrensen, og de vil alle v re i ko for a kjore etter hvert som de andre jobbene dine er ferdige. Nar klyngnoder er alle med maksimal kapasitet, vil jobber som venter pa a kjore, bli underlagt en funksjonalitetsprioritetsalgoritme.

Paloggingsmaskinen (jhpce01 / jhpce02) brukes bare til palogging. Kjor IKKE jobber pa jhpce01! Denne maskinen er ikke til a gjore noen form for beregning. Snarere er det bare for tekstredigering og for a sende inn jobber til klyngen. Eventuelle beregningsintensive jobber som kjorer pa enigma2, vil bli domt uten melding. Du vil miste data og / eller beregninger knyttet til lopeprosessen.

(Tilbake til toppen)

Kjorer interaktive jobber pa klusternoder.

Brukere har ikke lov til a ssh eller rsh fra innloggingsverten direkte til en beregningsknute. I stedet ma brukerne bruke kommandoen qrsh eller rlogin for a starte en interaktiv jobb pa en klusterknute. Disse kommandoene starter et eksternt skall pa en klusterknute. Det enkleste a gjore etter at du logger deg pa innloggingsverten, er a skrive.

Du vil bli logget inn i en tilfeldig klusterknute og fa en interaktiv skjermprompt, akkurat som om du logget inn pa jhpce01. Na kan du kjore hvilket program du vil ha. For eksempel kan du kjore R. Men du ma huske a logge ut (& # 8216; avslutte & # 8217; eller & # 8216; CTRL D & # 8217;). Ellers vil du ta opp et spor i koen som ikke vil v re tilgjengelig for andre.

Mens du er logget inn i en klusterknute via qrsh, hvis du kjorer.

du ser noe som folger:

Jobben som er merket QRLOGIN, er den interaktive okten (for mer informasjon, se Kontroll av statusen til jobben din).

Du kan ogsa angi minnekrav eller spesielle koer pa qrsh-kommandoen, akkurat som du gjor pa qsub-kommandoen (se nedenfor). For interaktivt arbeid oppfordrer vi sterkt brukere til a arbeide pa klyngen via qrsh (i stedet for a bruke jhpce01).

MERK: Kjor IKKE bakgrunn eller & # 8216; nohup & # 8217; jobber pa klyngen. Sun Grid Engine (SGE) ma vite om jobben / okten, slik at den kan administrere og regne for klyngressurser. Som standard antar SGE ett spor (tilsvarende en CPU-kjerne) for hver qrsh-sesjon.

Hvis du fortsatt har kjorerprogrammer og ingen okt vises for deg i qstat, har du gjort noe upassende. Hvis det oppdages jobber pa klusternoder uten tilknyttet SGE-oppforing, blir de drept uten varsel.

MERK: Hvis du opplever en feil mens du kjorer et program interaktivt pa en klyngekode og programmet krasjer, kan det fortsatt v re i klyngens prosessko. Hvis du ikke avslutter programmet normalt, ma du kontrollere klyngekoen (via qstat, se nedenfor) og se om din (interaktive) jobb fortsatt er der. Hvis det er, fa jobb-ID og drep jobben ved hjelp av qdel.

Innlevering av batchjobber.

Som vi har oppgitt, bruker klyngen Sun’s Grid Engine (SGE) til a kontrollere planlegging av jobber. SGE leveres med en rekke kommandolinjeverktoy for a hjelpe deg med a administrere jobbene dine pa klyngen. Mesteparten av tiden kan du komme unna med bare a vite noen fa kommandoer. De mest umiddelbart relevante er:

qsub: Send en batchjobb til klyngen qstat: spor statusen til jobbene dine i klyngen (eller se pa alle jobber som kjorer pa klyngen) qdel: Slett en jobb fra klyngen / koen.

VIKTIG: Alle jobber du sender inn i klyngen fra jhpce01 ma pakkes inn i et shell-skript. Det vil si, du kan ikke bare starte et program fra kommandolinjen (for eksempel hyggelig +19 R) som du kunne pa din egen maskin eller en annen server. Ikke bekymre deg, skjont; a pakke inn programmet med et shell-skript er ikke sa vanskelig som det kan hores ut! For eksempel: nedenfor er instruksjoner for hvordan du kjorer en R-batchjobb pa klyngen.

To trinn for a sende inn en R BATCH jobb til klyngen.

A bruke Sun Grid Engine til a sende inn en R BATCH jobb til klyngen er veldig enkel.

Forst (pa jhpce01), forutsatt at du har et R-program i en fil med navnet mycommands.R, ma du opprette en ny fil som vil pakalle og kjore R-programmet nar det sendes til klyngen. La oss ringe denne nye filen batch.sh. Du bor sette denne batch.sh-filen i samme katalog som din mycommands.R-fil. For a kjore en R BATCH-jobb pa klyngen ved hjelp av mycommands.R-filen, trenger batch.sh-filen bare a ha denne ene linjen i den, som dette:

Filen kan ha andre linjer i den for a angi SGE-jobbalternativer eller kommandoer for a kjore for eller etter & # 8220; R CMD BATCH & # 8230; & # 8221; linje. Det tekniske navnet pa denne filen er & # 8220; shell script & # 8221 ;. A vite dette kan hjelpe deg med a kommunisere med systemadministratoren. Nar du har skrevet din korte batch.sh-fil, kan du sende den til klyngen via kommandoen.

Alternativet -cwd forteller SGE a utfore batch.sh-skriptet pa klyngen fra den pagaende w orking d Irectory (ellers vil den lope fra din hjemmekatalog, som sannsynligvis ikke er det du vil).

Det er alt du trenger a gjore! Det er noen ting a merke seg:

Du trenger ikke a sette en & amp; pa slutten av linjen (ikke bekymre deg hvis du ikke vet hva & amp; kan brukes til). qsub sender automatisk jobben din til klyngen og returnerer til kommandolinjeproven din slik at du kan gjore andre ting. Etter at du har sendt inn jobben din med qsub, kan du bruke qstat-kommandoen til a se statusen for jobben din.

Angir jobbens minnebehov.

Nar du sender inn jobben din (e), hvis du ikke angir noen minnekrav, vil SGE angi en standardminneinnstilling pa 2 GB (Se Bruke en standard SGE-spesifikasjonsfil .sge_request) Hvis du trenger mer minne som 2 GB for programmet, vil du ma legge til et minne ressurs krav til qsub (eller qrsh) kommandoen. Bruk en kommando som:

hvor MEM_NEEDED er mengden minne (i megabyte M eller gigabyte G) som jobben din vil kreve, og MEM_MAX er ovre grense for hvor mye minne jobben din skal bruke. Vanligvis er h_vmem satt til a v re det samme som mem_free. For eksempel, hvis jobben din krever 6 GB minne, kan du skrive.

I det ovennevnte tilfellet vil jobben din ga til en node med minst 6 GB minne tilgjengelig nar jobben starter, og jobben stoppes automatisk hvis den overskrider 6 GB minnebruk nar som helst.

Bruke en standard SGE-spesifikasjonsfil .sge_request.

En enkel mate a alltid ha en standardgrense pa jobber og okter er a sette en linje som dette.

i en fil som heter .sge_request i hjemmekatalogen din. Da, hvis du ikke angir disse parameterne pa kommandolinjen, vil standardene fra filen .sge_request bli brukt. Apenbart, hvis du trenger hoyere grenser pa en gitt jobb, ma du overstyre disse standardene med passende kommandolinjevalg. Andre alternativer du kanskje bruker, kan ogsa ga i denne standardfilen.

Alle nye brukere far folgende .sge_request standardfil:

Legg merke til standard filstorrelsesgrense satt til 10G.

Merknader om spesifisering av ressursbehov.

-l for mem_free etc.-spesifikasjonene er en & # 8216; minus & # 8217; follwed av & # 8216; sma bokstav L & # 8217 ;.

Det er ingen mellomrom i kommaseparert liste over ressurser og grenser.

Her er noen notater som forklarer bruken av mem_free og h_vmem, sa vel som h_fsize:

Dette bor settes til a v re det du tror jobben din trenger (eller litt mer). Dette vil reservere minne for jobben din pa noden den kjores pa.

Dette er & # 8220; hoyt vannmerke & # 8221; for minne for jobben din. Dette bor settes til a v re lik, din mem_free foresporsel. Du bor kombinere mem_free og h_vmem som sadan:

& # 8230; eller lignende pa en qrsh-kommando.

Som standard har alle brukere en grense pa 10 GB for filstorrelse for sine jobber. Du kan oke dette ved a angi en & # 8220; h_fsize & # 8221; alternativ for jobben din. Noe som:

Qsub script filnavnet vil alltid v re det siste som er angitt pa qsub kommandolinjen (med mindre det er ogsa alternativer som ma leveres til skriptfilen).

Hvis du vanligvis bruker et program (for eksempel R) nar du skriver inn qrsh-kommandoen, kan det se slik ut:

For a se et sammendrag av tilgjengelige noder og deres minnekapasitet og strombelastning, bruk kommandoen qpic – s.

Etter a ha sendt inn jobben din med qsub, bruk qstat-kommandoen for a se hvilken ko (node) jobben din faktisk gikk til (se Kontrollere statusen til jobben din).

Et spesielt notat om h_vmem og h_stack.

Hvis du bruker h_vmem, som vi ber om (se Angi jobbens minnebehov), for a begrense mengden minne som kan brukes av qrsh eller qsub, vil du kanskje ogsa spesifisere h_stack verdien eksplisitt ogsa eller du kan stote pa et problem nar du bruker interaktive MATLAB eller andre programmer og pakker som bruker Tcl / Tk-biblioteker. Det ser ut til a bare pavirke de programmene og pakkene som bruker Tcl / Tk pa noe niva, men vi har sett problemet i noen andre tilfeller ogsa. Sa, qrsh eller qsub-kommandoen din bor inneholde noe slikt:

Mem_free og h_vmem verdiene kan variere i henhold til dine behov, men h_stack verdien skal alltid v re 256M (sa langt vi vet fra var erfaring hittil).

Be om flere SGE-spor for en flerkjernejobb.

For a kjore en flerkjernejobb pa en enkelt node ma du be om et parallelt miljo med flere spor (hvor ett spor tilsvarer en CPU-kjerne). I tillegg, hvis klyngen er opptatt, er det avgjorende a fortelle SGE a reservere spor for jobben din, ellers kan ikke et tilstrekkelig antall spor bli tilgjengelig for jobben din. Problemet er at multispilljobben din blir stjalet & # 8221; fordi individuelle spor er fylt av single-slot jobber sa fort som de blir frigjort ved a avslutte jobber.

Bruk alternativet -p lokal K for a be om K-spor pa en enkelt klusterknute. bruk -R y alternativet for a sla pa sporet reservasjon. Bruk alternativet mem_free = N G til a angi N Gigabyte minne om jobben din. Viktig: verdien, n, du angir i mem_free, er det totale minnet du trenger dividert med antall spor som er angitt for -pe. Med andre ord n = N / K. Bruk h_vmem = nG til a angi hardminnegrensen for jobben din. Viktig: verdien, n, du angir i h_vmem, er det totale minnet du angir via mem_free dividert med antall spor som er spesifisert for -pe. Med andre ord n = N / K.

Anta for eksempel at jobben din trenger 6 spor, og vi vil bruke slotspostering fordi klyngen er opptatt. Videre anta at vi forventer at var jobb trenger 36G. Vi ville sende jobben med folgende kommando:

Merk: Den & # 8220; lokale & # 8221; Parallelt miljo er et konstruksjonsnavn spesielt for var klynge & # 8230; og inneb rer at foresporselen din er for det mange spor pa en enkelt klusterknute.

Kontrollerer jobbens minnebruk.

Mens qsub-jobben din kjorer, kan du se den s minnebruk ved hjelp av kommandoen.

hvor NNNNN er ditt spesifikke klyngesjobbnummer & # 8230; se pa & # 8220; vmem & # 8221; og & # 8220; maxvmem & # 8221; innganger.

For a gjore det enklere a overvake minnebruk for de kjorende jobbene dine, har vi opprettet kommandoen.

Hvis du ikke har jobber som kjorer pa klyngen, vil qmem ikke skrive ut noe, men hvis du gjor det, ser resultatene ut som:

Hvis du vil se jobbens minnebruk ved jobbgjennomforing, ma du bruke e-postvarsling, som ogsa fungerer for avbrutt jobb. Se jobbstatusen via e-postdiskusjon for instruksjoner om hvordan du bruker e-postvarsling.

Merk: qrsh okter rapporterer ikke minnebruk ved hjelp av fremgangsmaten ovenfor. Du vil ganske enkelt se & # 8220; N / A & # 8221; i oppforingene for vmem og maxvmem som vist i eksemplet ovenfor.

Kontrollerer statusen til jobben din.

Etter at du har sendt inn jobben, kan du bruke qstat til a se pa statusen til jobben din. Som standard, under var versjon av SGE, viser qstat uten argumenter klusterjobber for alle brukere. For a begrense produksjonen for a bare vise jobbene dine, bruk -u USERID-argumentet. For eksempel:

vil bare vise aktive / ventende jobber for brukeren maryj.

Under statuskolonnen kan du se statusen for jobben din. Noen av kodene er.

r: jobben kjorer t: jobben blir overfort til en klyngekode qw: jobben er i ko (og ikke kjorer enna) Eqw: en feil oppstod med jobben.

Du kan se pa den manuelle siden for qstat (skriv mann qstat ved sporringen) for a fa mer informasjon om tilstandskodene.

En annen viktig ting a merke seg er jobb-IDen for jobben din. Du ma vite dette hvis du noen gang vil gjore endringer i jobben din. For eksempel, for a slette jobben fra klyngen, kan du kjore.

hvor 15299 er jobben-IDen jeg fikk fra a kjore qstat.

Jobbstatus via e-post.

Hvis du onsker a bli varslet via e-post nar statusen for jobben din endres, inkluderer du alternativer som folgende nar du sender inn jobber:

som betyr a sende e-post til gitt adresse (e) nar jobben avsluttes.

Hvis du automatisk vil ha slike alternativer (eller andre) alltid lagt til jobben din, ma du bare sette dem i en fil med navnet .sge_request i hjemmekatalogen din. Du kan ogsa ha jobbsokespesifikke .sge_request-filer (se mannssiden for sge_request & # 8211; man sge_request).

Linjer som dette i din .sge_request-fil:

vil fore til at en e-post sendes nar jobben avsluttes, for hver klyngejobb du starter (inkludert for hva den er verdt, en qrsh & # 8216; jobb & # 8217;).

Du kan bruke -m n pa individuelle qsub-jobbkommandolinjer for a undertrykke e-postvarsling for bestemte jobber.

Eller enda bedre, & # 8230; Du kan bare sette -M [email protected] i .sge_request-filen og bare bruk alternativet -m e pa jobber du vil ha e-postvarsling pa.

Merk: Du kan ogsa pakalle alternativene som er vist ovenfor (og andre) ved a inkludere spesielle linjer overst pa jobbskalleskriptene. Linjer som begynner med # $ tolkes som qsub-alternativer for den jobben. Hvis for eksempel de forste linjene i skriptet ditt ser ut som folgende:

Linjene som begynner med # $ vil fore til at SGE sender e-post til & # 8216; [email protected]’ nar jobben avsluttes.

vil fore til at en e-post sendes nar jobben begynner (& # 8216; b & # 8217;) og slutter (& # 8216; e & # 8217;). Se den manuelle siden for qsub (skriv mann qsub pa en shell prompt) for a fa mer informasjon.

Hvor mange jobber kan jeg sende inn?

Vi begrenser ikke antall jobber du sender inn. Men jo flere jobber du sender inn, desto storre innsats bruker SGE a prove a finne ut hvilke arbeidsplasser som skal ga der. Dette kan fore til problemer for andre brukere som prover a sende inn sine jobber. Sa, som en praktisk sak, v r sa snill a ikke holde fra de 10.000 jobbene i innkjopskoen.

Bare et begrenset antall innleverte jobber vil kjore i et spor. Resten vil ha koen ventetilstanden ‘qw’ og vil starte nar de andre jobbene dine er ferdige. I var SGE-konfigurasjon tilsvarer et spor generelt en enkelt cpu-kjerne.

Maksimalt antall spor per bruker kan endres avhengig av tilgjengeligheten av klyngesressurser eller spesielle behov og foresporsler.

For oyeblikket er maksimum antall spor i den delte koen 200.

Det er dedikerte koer for interessenter som kan ha tilpassede konfigurasjoner.

Den delte koen & # 8211; delt .q.

Pa klyngen er den delte koen standardkoen. For tiden har den delte koen ingen tidsbegrensning. Vi begrenser antall jobber pa den delte koen, slik at ingen brukere kan monopolisere hele koen for dager og uker av gangen. Pa den delte koen har vi for oyeblikket satt maksimalt antall spor per bruker til 200. Vi begrenser ogsa den totale mengden minne som en bruker kan bruke for jobber i den delte koen. Den grensen er for tiden 1TB.

Antall jobber / spor som kan kjores av en bruker, kan begrenses av tilgjengeligheten av cpu-spor, samt en automatisk funksjonell deling & # 8221; politikk som tar hensyn til ettersporsel og bruk av alle andre brukere. Hvis du opplever en situasjon der det ikke finnes noen tilgjengelige shared.q-koer i lopet av en rimelig periode, kan du kontakte oss.