Denne siden dokumenterer k?systemet p? Colossus klyngen (HPC for TSD).
I TSD har hvert prosjekt sin egen virtuelle Linux-maskin (VM) for ? sende inn jobber til klyngen.
Submitte jobb
For ? kj?re en jobb p? klyngen, sender du et jobbskript inn i jobbk?en, og jobben startes n?r en eller flere egnede beregningsnoder er tilgjengelige. Jobbk?en administreres av et k?system kalt Slurm (Slurms dokumentasjonsside).
V?r oppmerksom p? at jobscript-navn ikke skal inneholde sensitiv informasjon.
Job scripts are submitted with the sbatch command:
Jobbskript sendes inn til k?systemet med sbatch kommandoen:
sbatch YourJobscript
Kommandoen sbatch returnerer en jobid, et id-nummer som identifiserer den innsendte jobben. Jobben vil vente i jobbk?en til det er ledige dataressurser den kan bruke. En jobb i den tilstanden sies ? v?re pending (PD). N?r den har startet kalles den running (R). Eventuelle utdata (stdout eller stderr) fra jobbskriptet vil bli skrevet til en fil kalt slurm-jobid.out i katalogen der du kj?rte sbatch, med mindre annet er spesifisert.
Alle kommandoer i jobbskriptet utf?res p? beregningsnoden(e) som er tildelt av k?systemet. Skriptet spesifiserer ogs? en rekke krav (minnebruk, antall CPUer, kj?retid osv.), som brukes av k?systemet for ? finne en eller flere egnede maskiner for jobben din.
Du kan avbryte kj?rende eller ventende (pending) jobber med scancel:
scancel jobid # Cancel job with id jobid (as returned from sbatch) scancel --user=MyUsername # Cancel all your jobs scancel --account=MyProject # Cancel all jobs in MyProject
Se man scancel for flere detaljer.
Prosjektkvote
P? Colossus har hver bruker kun tilgang til et enkelt prosjekt, hvis navn (pNN) er prefikset til brukernavnet. Prosjekter kan ha tilgang til opptil 3 allokeringer av beregningsressurser i TSD:
- TSD allokering
- Sigma2 allokering
- Dedicated allokering
TSD allokering
For ? bruke denne ressursen, m? jobber sendes inn med "--account=pNN_tsd"-argumentet. Hvor pNN er ditt prosjektnummer.
Sigma2 allokering
Kun TSD-prosjekter med cpu-timekvote fra Sigma2 kan bruke denne poolen. Vi anbefaler ethvert prosjekt med betydelige beregningsbehov ? be om CPU (og disk) kvote fra Sigma2 som beskrevet her. Sigma2-kvoten er gyldig i 6 m?neders perioder, med start 1. april og 1. oktober.
For ? bruke denne ressursen, m? jobber sendes inn med "--account=pNN"-argumentet. Hvor pNN er ditt prosjektnummer.
Hvis du sender til denne ressursen, men prosjektet ikke har en Sigma2-kvote, vil jobbene forbli pending (PD) med ?rsaksmeldingen "AssocGrpBillingMinutes".
Dedikert allokering
Alle andre databehandlings- og gpu-noder i Colossus ble anskaffet av individuelle prosjekter for privilegert tilgang, men vedlikeholdes av TSD.
For ? bruke denne ressursen, m? jobber sendes inn med argumentet "--account=pNN_reservationname". Hvor pNN er ditt prosjektnummer og reservasjonsnavnet navnet p? den dedikerte ressursen.
Inspisere kvote
Kommandoen cost kan brukes til ? inspisere kvoten og se hvor mye av den som er brukt og hvor mye som gjenst?r. Dette gjelder b?de den ikke-regnskapspliktige UiO-kvoten (oppf?rt som ikke-anvendbar, NA), samt den regnskapspliktige Sigma2-kvoten (men ikke andre private tildelinger). For prosjekter med en fakturerbar Sigma2-kvote, vil det typisk se slik ut:
-bash-4.2$ cost Report for project p1337 on Colossus Allocation period 2023.1 (2023-04-01 -- 2023-10-01) Last updated on Mon Jun 12 14:42:04 2023 ============================================================= Account Description Billing hours % of quota ============================================================= p1337 Used (finished) 109.15 5.5 % p1337 Reserved (running) 0.00 0.0 % p1337 Pending (waiting) 0.00 0.0 % p1337 Available 1890.85 94.5 % p1337 Quota 2000.00 100.0 % ============================================================= ============================================================= Account Description Billing hours % of quota ============================================================= p1337_tsd Used (finished) 9.51 NA p1337_tsd Reserved (running) 0.00 NA p1337_tsd Pending (waiting) 0.00 NA p1337_tsd Available NA NA p1337_tsd Quota NA NA =============================================================
For prosjektene uten en Sigma2 cpu-timekvote, vil det typisk se slik ut:
-bash-4.2$ cost Report for project p77 on Colossus Allocation period 2023.1 (2023-04-01 -- 2023-10-01) Last updated on Mon Jun 12 14:25:44 2023 ============================================================= Account Description Billing hours % of quota ============================================================= p77 Used (finished) 0.00 NA p77 Reserved (running) 0.00 NA p77 Pending (waiting) 0.00 NA p77 Available 0.00 NA p77 Quota 0.00 NA ============================================================= ============================================================= Account Description Billing hours % of quota ============================================================= p77_tsd Used (finished) 0.00 NA p77_tsd Reserved (running) 0.00 NA p77_tsd Pending (waiting) 0.00 NA p77_tsd Available NA NA p77_tsd Quota NA NA ============================================================= The project does not have a Sigma2 quota for the current period. See /english/services/it/research/sensitive-data/use-tsd/hpc/queue-system.html#toc2 for information.
Legg merke til at "Available" viser "Quota" minus "Used", "Reserved" og "Pending". S? "Available" er det som forventes ? v?re tilgjengelig hvis alle kj?rende og ventende jobber bruker timene de spesifiserer. (Vanligvis spesifiserer jobber lengre --time enn de faktisk bruker, s? "Available" vil vanligvis ?ke etter hvert som jobbene avsluttes.)
Man kan ogs? liste opp bruken per bruker i prosjektet ved ? legge til "--details":
cost --details
Dette vil legge til kvotebruken per bruker:
Report for project p1337 on Colossus Allocation period 2023.1 (2023-04-01 -- 2023-10-01) Last updated on Mon Jun 12 14:38:03 2023 ============================================================= Account Description Billing hours % of quota ============================================================= p1337 Used (finished) 109.15 5.5 % p1337 Reserved (running) 0.00 0.0 % p1337 Pending (waiting) 0.00 0.0 % p1337 Available 1890.85 94.5 % p1337 Quota 2000.00 100.0 % ============================================================= Account User Used billing hours % of quota ============================================================= p1337 p1337-bartt 95.36 4.8 % p1337 p1337-bhm 13.79 0.7 % ============================================================= ============================================================= Account Description Billing hours % of quota ============================================================= p1337_tsd Used (finished) 9.51 NA p1337_tsd Reserved (running) 0.00 NA p1337_tsd Pending (waiting) 0.00 NA p1337_tsd Available NA NA p1337_tsd Quota NA NA ============================================================= Account User Used billing hours % of quota ============================================================= p1337_tsd p1337-bartt 8.48 NA p1337_tsd p1337-haatveit 1.03 NA =============================================================
Se man cost for ytterligere detaljer om denne kommandoen.
Regnskap
Regnskap gj?res i form av faktureringsenheter, og kvoten er i faktureringsenhetstimer. Hver jobb er tildelt et antall faktureringsenheter basert p? de forespurte CPUene, minnet og GPUene. Tallet som trekkes fra kvoten er antall faktureringsenheter multiplisert med (faktisk) veggtid (wall time) for jobben.
Antall faktureringsenheter for en jobb beregnes slik:
- Hver forespurt CPU f?r en kostnad p? 1.
- Det forespurte minnet gis en kostnad basert p? en minnekostnadsfaktor (se nedenfor).
- Den forespurte GPUen f?r en kostnad basert p? en GPU-kostnadsfaktor (se nedenfor).
- Antall faktureringsenheter er det maksimale av CPU-kostnaden, minnekostnaden og GPU-kostnaden.
Minnekostnadsfaktoren og GPU-kostnadsfaktoren varierer mellom noder.
- For vanlige beregningsnoder er minnekostnadsfaktoren 0,12749 enheter per GiB. Dermed vil minnekostnaden for en jobb som ber om alt minne p? en node v?re 64, antallet CPUer p? noden.
- For GPU-noder er minnekostnadsfaktoren 0,09775967 enheter per GiB, og GPU-kostnadsfaktoren er 24 per GPU. Det betyr at en jobb som ber om alt minne, eller alle GPUer p? en node, f?r en kostnad p? 96, antall CPUer p? noden.
- For bigmem-noder er minnekostnadsfaktoren 0,0323641 per GiB. Dermed vil minnekostnaden for en jobb som ber om alt minne p? en node v?re 128, antallet CPUer p? noden.
N?r et prosjekt har overskredet kvotegrensen, vil jobbene st? p? vent med ?rsaken "AssocGrpBillingMinutes".
Inspisere Jobber
For ? f? en rask oversikt over statusen til en jobb, kan du bruke squeue:
squeue -j JobId
der JobId er jobb-ID-nummeret som sbatch returnerer. For ? se flere detaljer om en jobb, bruk
scontrol show job JobId
Se man squeue og man scontrol for ytterligere detaljer om disse kommandoene.
Inspisere the Jobb K?
Det er flere tilgjengelige kommandoer for ? inspisere jobbk?en:
- squeue: liste opp jobber i k?en
- pending: liste ventede (pending) jobber i k?en
- qsumm: vis oppsummering av k?bruk
For ? se listen over kj?rende eller ventende jobber i k?en, bruk kommandoen squeue. squeue vil kun vise jobbene i ditt eget prosjekt. Nyttige squeue alternativer:
[-j jobids] show only the specified jobs [-w nodes] show only jobs on the specified nodes [-t states] show only jobs in the specified states (pending, running, suspended, etc.) [-u users] show only jobs belonging to the specified users
All specifications can be comma separated lists. See man squeue for details. Examples:
Alle spesifikasjoner kan v?re kommadelte lister. Se man squeue for detaljer. Eksempler:
squeue -j 14132,14133 # shows jobs 4132 and 4133 squeue -w c1-11 # shows jobs running on c1-11 squeue -u foo -t PD # shows pending jobs belonging to user 'foo'
Status | Text |
---|---|
PD | Pending |
R | Running |
S | Suspended |
CG | Completing |
CD | Completed |
CF | Configuring |
CA | Cancelled |
F | Failed |
TO | Timeout |
PR | Preempted |
NF | Node failed |
Du kan bruke pending kommandoen for ? vise bare de ventende jobbene. Den viser jobbene i synkende prioritetsrekkef?lge, og inkluderer et estimat for n?r jobben starter, n?r et slikt estimat er tilgjengelig. pending er ganske enkelt en innpakning rundt squeue, og godtar alle alternativer som squeue tar. Den vil ogs? bare vise jobbene som tilh?rer ditt eget prosjekt.
For ? se ressurssituasjonen til klyngen, bruk kommandoen qsumm. Den viser hvor mange prosessorer (eller rettere sagt, prosessorekvivalenter) som brukes av kj?rende jobber og ettersp?rres av ventende jobber. Utdataene har to linjer, en for prosjektet ditt, og en som viser total bruk for alle prosjekter (inkludert prosjektet ditt). Et eksempel:
-------------------------------- Account Limit nRun nPend -------------------------------- p11 1536 20 11 Total 1536 1550 200 --------------------------------
Se qsumm --help for forklaringer av hver kolonne. Utdataene oppdateres hvert 5. minutt, s? det kan ta et par minutter etter at jobber er sendt/startet/ferdig f?r det vises i qsumm-utdataene.
Generelle jobbbegrensninger
Standardverdier n?r ingenting er spesifisert
- 1 kjerne (CPU)
Resten (tid, mem per cpu osv.) m? spesifiseres.
Grenser
- Maks "wall time" er 4 uker, men ikke send inn jobber som vil l?pe i mer enn 7 dager med mindre man implementerer checkpointing: Ingen av nodene p? Colossus har redundant str?m, og vi forbeholder oss retten til ? stenge alle noder for vedlikehold n?r som helst med 7 dagers varsel!
- Maks 4500 innsendte jobber (l?pende eller ventende) per prosjekt (
--account
) samtidig. - Maks st?rrelse p? jobbarrayer: 4000. Det betyr ogs? at den st?rste jobbarray indeksen er 4000. Merk at en jobbarray av st?rrelse N vil telle som N jobber mht. totalt antall innsendte jobber per prosjekt.
Planlegging
Jobber startes etter prioritet. Utest?ende jobber prioriteres iht
- Tid i k?en
- Hvor mange jobber hver bruker har ventende i k?en
Colossus starter jobber etter prioritet + tilbakefylling, s? sm?, korte jobber kan starte tidligere enn jobber med h?yere prioritet, s? lenge de ikke forsinker de h?yere prioriterte jobbene. I tillegg har vi lagt inn en begrensning p? hvor mange jobber som tilh?rer en bruker som ?ker i prioritet over tid, for ? unng? at en enkelt bruker hindrer alle andre brukere i ? f? jobber kj?rt ved ? sende inn et stort antall jobber samtidig. P? denne m?ten vil prioriteringen i realiteten ?ke for brukere som kj?rer f? jobber i forhold til brukere som kj?rer mange jobber. Dette er en avveining, og vi vil justere grensen (for tiden 10) hvis vi ser at effekten er for stor/liten.
Ring oss
Vi har ?pent mellom 08:30 og 17:00 p? hverdager,
og mellom 10:00 og 15:00 p? l?rdager.
Telefonnummer: 22 84 00 04
Send inn sak til oss
Du kan sende inn din foresp?rsel via e-post til: it-hjelp@uio.no.
G? til e-postBook et videom?te over Zoom
Er du student eller ansatt kan du avtale veiledningstime hos UiO Helpdesk over Zoom. Tilgjengelige tider er tirsdag til torsdag mellom 11:00 og 13:00.
Book et videom?te