Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Miten arvioin, kuinka paljon muistia eräajoni tarvitsee?

Työn tarkkoja resurssivaatimuksia on vaikea arvioida etukäteen. Tarkista ensin ohjelmiston dokumentaatiosta, antavatko kehittäjät mitään tietoa tyypillisestä muistinkäytöstä. Voit hyödyntää myös aiempia tietoja samankaltaisista valmiiksi suoritetuista töistä.

seff - Slurm-tehokkuus

seff tulostaa yhteenvedon pyydetyistä ja käytetyistä resursseista sekä käynnissä oleville että päättyneille eräajoille:

seff <slurm jobid>

Voit myös lisätä seff-komennon eräajoskriptisi loppuun, jotta muistinkäyttö tulostuu työn lopussa vakiotulosteeseen.

seff $SLURM_JOBID

Huomaa, että seff ei näytä tietoja käynnissä olevista töistä, jotka on käynnistetty ilman srun-komentoa, mutta tilastot ovat kunnossa työn päätyttyä. seff näyttää myös koottuja tietoja GPU-käytön tehokkuudesta.

[kkayttaj@puhti-login11 logs]$ seff 29221065
Job ID: 29221065
Cluster: puhti
User/Group: kkayttaj/kkayttaj
State: COMPLETED (exit code 0)
Nodes: 2
Cores per node: 40
CPU Utilized: 16:01:21
CPU Efficiency: 97.17% of 16:29:20 core-walltime
Job Wall-clock time: 00:12:22
Memory Utilized: 23.68 GB (estimated maximum)
Memory Efficiency: 6.38% of 371.09 GB (185.55 GB/node)
Job consumed 24.14 CSC billing units based on following used resources
Billed project: project_2001659
CPU usage: 16.49 CPU BU
Mem usage: 7.65 CPU BU

Huomioita yllä olevista tiedoista: CPU-tehokkuus on ollut erittäin hyvä (97 %). Muistitehokkuus on kuitenkin melko heikko (6 %). Tässä tapauksessa se on hyväksyttävää, koska työ pyytää kaksi kokonaista noodia ja pystyy käyttämään kaikkia CPU-resursseja erittäin tehokkaasti. Toisin sanoen kukaan muu käyttäjä ei voisi hyödyntää näiden noodien jäljelle jäänyttä muistia muutenkaan, koska kaikki CPU-resurssit ovat jo käytössä.

Jos työsi ei pysty hyödyntämään kokonaisia noodeja, on tärkeää pyytää muistia huolellisemmin. Kokonaismuistille suositellaan muutaman gigatavun turvamarginaalia, jotta työ ei kaadu muistin loppumiseen. Aloita pienesti lyhyillä testiajoilla ja kasvata muistimäärää tarpeen mukaan, jos työsi kaatuu. Tämä on parempi kuin pyytää valtava määrä muistia "varmuuden vuoksi".

Mukautetut kyselyt Slurmin kirjanpitoon

Voit tarkistaa päättyneen työn ajan- ja muistinkäytön myös sacct-komennolla:

sacct -o jobid,reqmem,maxrss,averss,elapsed -j <slurm jobid>

missä -o-valitsin määrittää tulosteen seuraavasti:

  • jobid = Slurm-työn tunniste sekä työn vaiheiden tunnistelaajennukset.
  • reqmem = Muistin määrä, jonka pyysit Slurmilta.
  • maxrss = Suurin muistimäärä, jota mikä tahansa prosessi käytti milloin tahansa kyseisessä työssä. Tämä pätee suoraan sarjallisiin töihin. Rinnakkaisissa töissä arvo pitää kertoa ytimien määrällä (enintään 40 Puhdissa, koska tämä raportoidaan vain siltä noodilta, joka käytti eniten muistia).
  • averss = Prosessia (tai ydintä) kohden käytetty keskimääräinen muistimäärä. Saadaksesi kokonaismuistinkäytön, kerro tämä ytimien määrällä (enintään 40 Puhdissa eli yksi kokonainen noodi), jos pyydät muistia valitsimella --mem=<value> etkä --mem-per-cpu=<value>.
  • elapsed = Aika, joka työn valmistumiseen kului.

Esimerkiksi sama työ kuin yllä:

[user@puhti-login11 ~]$ sacct -j 22361601 -o jobid,reqmem,maxrss,averss,elapsed
JobID            ReqMem     MaxRSS     AveRSS    Elapsed 
------------ ---------- ---------- ---------- ---------- 
22361601          8000M                         00:06:17 
22361601.ba+                 7286K      7286K   00:06:17 
22361601.ex+                 2349K      2349K   00:06:17 
22361601.0                 145493K  139994035   00:06:17 

Huomaa seuraavat asiat:

  • Rivit, joissa työn vaiheiden tunnisteiden perässä on .ba+ ja .ex+, liittyvät eräajon valmisteluun, eikä niistä tarvitse tässä vaiheessa huolehtia.
  • Olet pyytänyt 200 Mt muistia ydintä kohden eli yhteensä 40 x 200 Mt = 8000 Mt (= 7,81 Gt, kuten seff raportoi).
  • Työsi on käyttänyt enimmillään 145493 Kt eli 142 Mt muistia ydintä kohden. Kun tämä kerrotaan ytimien määrällä (40), kokonaismuistinkäytöksi saadaan 5683 Mt = 5,55 Gt (kuten myös seff raportoi).
  • Kuuden minuutin eräajo on liian lyhyt! Jos sinulla on paljon tällaisia töitä, aja ne peräkkäin samassa työssä erillisinä työn vaiheina. Nyt työn käynnistämisen yleiskustannus on merkittävä verrattuna varsinaiseen laskentaan.

Huomautus muistiyksiköistä

Muistiyksiköissä käytetään binaarisia etuliitteitä. Esimerkiksi 1 Gt = 1024 Mt = 1024² Kt. Siksi yksikkömuunnokset voivat tuntua hämmentäviltä.

Yleisiä ohjeita ja vinkkejä

Muista, että samankaltainen mutta silti uusi työ voi lopulta vaatia eri määrän resursseja. Jos yliarvioit tarvittavan ajoajan, työsi voi joutua jonottamaan pidempään kuin olisi tarpeen. Resursseja ei kuitenkaan mene hukkaan eikä niitä laskuteta. Tässä suuri ero jonotuksen kannalta on siinä, onko työn kesto alle 3 päivää vai enemmän. longrun-partitiossa olevilla töillä on matalampi prioriteetti, ja ne jonottavat pidempään.

Jos kuitenkin yliarvioit muistitarpeen, resursseja menee hukkaan. Ajatellaanpa tätä: jos työsi käyttää vain 4 ydintä mutta noodin kaiken muistin, mikään muu työ ei mahdu kyseiseen noodiin ja jäljelle jäävät N - 4 ydintä jäävät käyttämättömiksi. Lisäksi koko pyydetty muistimäärä – käytettiin sitä tai ei – laskutetaan laskutuskiintiöstäsi.

Huomaa, että jos työsi tarvitsee muistin, on täysin hyväksyttävää varata noodin kaikki muisti, mutta älä varaa sitä "varmuuden vuoksi" tai siksi, ettet tiedä, kuinka paljon muistia työ tarvitsee. Voit saada arvion aiemmista samankaltaisista töistä hakemalla tiedot yllä esitetyillä komennoilla. Tarvitset vain kyseisten töiden Slurm-työtunnisteen.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta