Hyppää sisältöön

Suorituskykyanalyysi

Pika-aloitus: tehokkuusraportti seff-komennolla

Slurm-työn tehokkuusraportti (komento: seff) antaa nopean yhteenvedon sekä käynnissä olevien että päättyneiden eräajojen pyydetyistä ja käytetyistä resursseista.

seff <JOBID>

Se on helppo tapa saada yleiskuva siitä, kuinka tehokkaasti suorittimia käytettiin (CPU Efficiency) ja kuinka paljon varatusta muistista todella käytettiin (Memory Efficiency).

Vinkki

Voit lisätä seff-komennon eräajokomentosarjasi loppuun, jotta saat aina tehokkuusraportin töistäsi:

seff $SLURM_JOBID
Esimerkkituloste yhden solmun työstä
[kkayttaj@roihu-cpu-login2 perf]$ seff 307386
Job ID: 307386
Cluster: roihu
Partition: medium
User/Group: kkayttaj/kkayttaj
State: COMPLETED (exit code 0)
Nodes: 1
Cores per node: 384
CPU Utilized: 2-09:05:29
CPU Efficiency: 92.44% of 2-13:45:36 core-walltime
Job Wall-clock time: 00:09:39
Memory Utilized: 76.45 GB (estimated maximum)
Memory Efficiency: 10.27% of 744.72 GB (744.72 GB/node)
Job consumed 46.32 CSC billing units, billed on CPU usage
Billed project: project_2001659
CPU usage: 46.32 CPU BU
Mem usage: 0.00 CPU BU

seff-tulosteen ymmärtäminen

  • Job ID, Cluster, Partition, User/Group ja State ovat yksilöiviä metatietoja. State: COMPLETED (exit code 0) vahvistaa, että työ suoritettiin loppuun ilman virheitä. Nollasta poikkeava poistumiskoodi on ensimmäinen asia, joka kannattaa tarkistaa ennen tehokkuusarvojen tarkastelua.

  • Nodes / Cores per node näyttää, kuinka monta solmua ja ydintä per solmu varattiin. Tässä esimerkissä 1 node x 384 ydintä tarkoittaa, että työ sai kokonaisen Roihun CPU-solmun.

  • CPU Utilized on käytetty kokonais-CPU-aika, laskettuna yhteen kaikilta ytimiltä, muodossa d-hh:mm:ss. Tätä ei pidä sekoittaa seinäkelloaikaan, joka ei ota huomioon yksittäisiä ytimiä.

  • CPU Efficiency on CPU Utilized jaettuna ydin-seinäkelloajalla (core-walltime), jossa ydin-seinäkelloaika on varattujen ytimien määrä kerrottuna seinäkelloajalla. Tämä mittari vastaa kysymykseen: kuinka moni kaikista varatuista CPU-sekunneista teki todellisuudessa työtä?

  • Job Wall-clock time on työn todellinen kulunut ajoaika riippumatta ytimien määrästä. Vertaa tätä --time-pyyntöösi ja esimerkiksi GROMACSin tapauksessa -maxh-arvoon.

  • Memory Utilized / Memory Efficiency näyttää käytetyn huippumuistin suhteessa varattuun muistiin. Korkeat muistitehokkuusarvot ovat erityisen tärkeitä ydinpohjaisissa osioissa kuten small, joissa työt jakavat solmun ja käyttämätöntä varattua muistia ei voida käyttää muiden töiden tarpeisiin, mikä pidentää jonotusaikoja.

  • Billing Units näyttää, miten työ laskutettiin ja mikä resurssi määräsi hinnan. Ajantasaiset tiedot laskutusyksiköistä (BUs) löytyvät laskutussivulta.

Saadaksesi tarkempaa tietoa ohjelmasi suorituskyvystä sinun kannattaa käyttää jotakin saatavilla olevista profilointityökaluista (katso alla).

Profilointityökalut

Hyvät profilointityökalut voivat auttaa muodostamaan kokonaiskuvan ohjelman laskenta- ja viestintämalleista sekä tunnistamaan mahdollisia suorituskyvyn pullonkauloja. CSC:llä on saatavilla useita profilointityökaluja:

  • Scalasca on jälkipohjainen rinnakkaisen suorituskyvyn analysointityökalu MPI-, OpenMP- ja hybridi MPI+OpenMP -ohjelmille
  • cProfile on suositeltu, sisäänrakennettu profilointityökalu Python-ohjelmille
  • nsys on Nsight Systemsin komentorivikäyttöliittymä, koko järjestelmän kattava suorituskyvyn analysointityökalu, joka on suunniteltu sovelluksen algoritmien visualisointiin
  • ncu on Nsight Computen komentorivikäyttöliittymä, työkalu CUDA-ytimien virheenjäljitykseen ja optimointiin

CSC:n optimointipalvelu

CSC:n sovellusasiantuntijat voivat tukea sinua tieteellisten laskentojesi suorituskyvyn parantamisessa pienistä skripteistä suuriin ohjelmistopaketteihin. Pienemmät optimointipyynnöt käsitellään yleensä tavallisen käyttäjätuen kautta, kun taas laajemmat työt voivat edellyttää rahoitetun kehitysprojektin käynnistämistä. Lue lisää palvelusta osoitteessa research.csc.fi

Onko tämä sivu hyödyllinen?
Kiitos palautteestasi!
Kiitos! Arvostamme palautettasi.

Kerro meille miten voisimme parantaa tätä sivua ottamalla meihin yhteyttä .