̽»¨¾«Ñ¡

English version of this page

°­Ã¸²õ²â²õ³Ù±ð³¾

 

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 ().

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 køen

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.

³§Ã¸°ì 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 21. mars 2025 08:52