-
Suorituskyvyn tarkistuslista
Suorituskyvyn tarkistuslista
Tälle sivulle on koottu tärkeää tietoa, jonka avulla voit saavuttaa mahdollisimman hyvän suorituskyvyn töillesi ja järjestelmälle. Jos tiedät, miten työn suorituskykyä voi parantaa, lisääthän tietosi listaan!
Tarkista CPU-affiniteetti
CPU-affiniteetti kuvaa, miten käynnissä oleva ohjelma sijoitetaan supertietokonesolmun käytettävissä oleville CPU-ytimille. Suurteholaskennassa affiniteetin oikea asettaminen on tärkeää suorituskyvyn kannalta. Se auttaa ohjelmia hyödyntämään paremmin prosessorin nopeita välimuisteja ja muistia, vähentää tarpeetonta siirtymistä ytimien välillä ja johtaa vakaampiin ja ennakoitavampiin ajoaikoihin.
Katso CPU-affiniteetin opas, josta löydät ohjeet ohjelmien CPU-affiniteetin tarkasteluun ja hallintaan.
Tee skaalautuvuustesti
On tärkeää varmistaa, että työsi pystyy käyttämään tehokkaasti kaikkia sille varattuja resursseja (ytimiä). Tämä on varmistettava jokaiselle uudelle koodille ja työtyypille (eri syöte) skaalautuvuustestillä. Täysiä solmuja käyttävät skaalautuvuustestit koskevat vain töitä, jotka varaavat kokonaisia solmuja.
Jos mahdollista, aja lyhyt simulointi kasvavalla määrällä resursseja (ytimiä) ja arvioi, kuinka paljon nopeammin työsi valmistuu. Sen pitäisi nopeutua vähintään 1,5-kertaiseksi, kun kaksinkertaistat resurssit (ytimet). Älä varaa työllesi enempää resursseja kuin se pystyy käyttämään tehokkaasti. Jos skaalautuvuustestit eivät ole käytännöllisiä, aja työsi ensin pienemmillä resursseilla ja kirjaa suorituskyky muistiin. Kokeile lisätä resursseja ja varmista, että työ (tai vastaava työ) valmistuu nopeammin.
Huomaa, että kaikkia koodeja tai työtyyppejä ei voi ajaa rinnakkain. Varmista tämä ensin oman koodisi osalta.
Huomioi I/O – sillä voi olla suuri vaikutus
Jos työkuormasi kirjoittaa tai lukee suuren määrän pieniä tiedostoja, saatat havaita heikon I/O-suorituskyvyn, vaikka kokonaismäärä ei olisi kovin suuri. Ota huomioon seuraavat asiat mahdollisten pullonkaulojen vähentämiseksi:
- Käytä paikallista tallennustilaa erityisesti tekoälytyökuormille scratchin sijaan. Vain joissakin solmuissa on nopea paikallinen levy, mutta olemme nähneet 10-kertaisen suorituskyvyn paranemisen siirtymällä sen käyttöön. Tarkista suorituskykysi: älä käytä resurssia, jos siitä ei ole hyötyä. Esimerkki AI-eräajosta
- Selvitä, voitko valita, miten sovelluksesi tekee I/O:ta (esim. OpenFoam
voi käyttää collated-tiedostomuotoa), äläkä kirjoita levylle tarpeetonta tietoa
tai tee sitä liian usein (esim. GROMACSia ei pidä käyttää CSC:llä
-v-lipun kanssa). - Yksi tapa välttää suuri määrä (pieniä) tiedostoja on asentaa monimutkainen Python- tai R-pohjainen ohjelmistosi singularity-säiliöön. Tämä auttaa myös projapplin tiedostomääräkiintiöiden kanssa. Yksityiskohtaisia esimerkkejä tämän tekemisestä kirjoitetaan parhaillaan.
Sovelluksissa, jotka kirjoittavat ja lukevat suuria tiedostoja, I/O-suorituskykyä voidaan usein parantaa oikeilla Lustre-asetuksilla:
- Jos sovelluksesi tekee rinnakkaista I/O:ta, aseta sopiva stripe count
komennolla
lfs setstripe -c, lisätietoja kohdassa Lustren parhaat käytännöt. - Käytä kollektiivista rinnakkaista I/O:ta, jos mahdollista.
- Katso myös laajemmat I/O-optimointivinkit.