English version of this page

K?system

 

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:

  1. Hver forespurt CPU f?r en kostnad p? 1.
  2. Det forespurte minnet gis en kostnad basert p? en minnekostnadsfaktor (se nedenfor).
  3. Den forespurte GPUen f?r en kostnad basert p? en GPU-kostnadsfaktor (se nedenfor).
  4. 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'
Squeue status (ST)
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.

 

S?k i veiledningene
Kontakt brukerst?tte:

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-post

Book 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

Chat med oss

V?r chat er bemannet mellom 09:00 og 16:00 p? hverdager.

?pne chat
Publisert 23. feb. 2022 09:31 - Sist endret 10. okt. 2023 15:47