Suorituskykyanalyysi
Pika-aloitus: tehokkuusraportti seff-komennolla
Slurm-työn tehokkuusraportti (komento: seff) antaa nopean yhteenvedon
pyydetyistä ja käytetyistä resursseista sekä käynnissä oleville että päättyneille eräajoille.
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:
[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 olisi ensimmäinen tarkistettava asia ennen tehokkuusarvojen tarkastelua. -
Nodes / Cores per node näyttää, kuinka monta solmua ja ydintä per solmu varattiin. Tässä esimerkissä
1 node x 384ydintä 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 Utilizedjaettuna ydin-seinäkelloajalla, 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 siihen, mitä varattiin. Korkeat muistitehokkuusarvot ovat erityisen tärkeitä ydinpohjaisissa osioissa kuten
small, joissa työt jakavat solmun ja käyttämätöntä varattua muistia eivät muut työt voi käyttää, 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:
- Intel VTune Profiler on tehokas profilointityökalu, jota voidaan käyttää sovelluksesi suorituskykytiedon keräämiseen ja joka soveltuu sekä sarjallisiin että monisäikeisiin koodeihin
- Scalasca on jälkipohjainen rinnakkaisen suorituskyvyn analysointityökalu MPI-, OpenMP- ja hybridi-MPI+OpenMP-ohjelmille
- Intel Trace Analyzer and Collector on MPI-profilointi- ja jäljitystyökalu rinnakkaisohjelmille
- cProfile on suositeltu, sisäänrakennettu profilointityökalu Python-ohjelmille
- nvprof on komentorivikäyttöliittymä CUDA-profilointi- ja jäljitystyökalu CUDA-ohjelmille
- nsys on Nsight Systemsin komentorivikäyttöliittymä, koko järjestelmän kattava suorituskyvyn analysointityökalu, joka on suunniteltu visualisoimaan sovelluksen algoritmeja
- ncu on Nsight Computen komentorivikäyttöliittymä, työkalu CUDA-ytimien virheenkorjaukseen 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 perustamista. Lue lisää palvelusta osoitteessa research.csc.fi