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.

Gaussian

Gaussian on monipuolinen ohjelmistopaketti, joka tarjoaa erilaisia ominaisuuksia elektronisen rakenteen mallintamiseen.

Saatavuus

  • Puhti: G16RevC.02
  • Mahti: G16RevC.02

Lisenssi

CSC on hankkinut Gaussianiin täyden kaupallisen lisenssin. Se on kaikkien hyväksyttyjen käyttäjätilien haltijoiden saatavilla lisenssirajoitusten mukaisesti. Gaussianin käyttö CSC:llä edellyttää, että käyttäjätunnuksesi lisätään Gaussian-käyttäjäryhmään. Lähetä pyyntö CSC:n asiakastukeen.

Käyttö

Alusta Gaussian-ympäristö:

module load gaussian/G16RevC.02

Tavalliset ajot voidaan sitten lähettää kätevästi subg16-skriptillä:

subg16 hhh:mm:ss jobname <your project id> [NVMe disk]

missä:

  • hhh:mm:ss on pyydetty enimmäisajoaika tunteina, minuutteina ja sekunteina.
  • jobname on syötetiedoston nimi ilman .com-päätettä.
  • [NVMe disk] (valinnainen) on pyyntö nopeasta paikallisesta NVMe-levystä gigatavuina.

Suorita subg16 ilman argumentteja nähdäksesi lisätietoja.

Suorituskykyyn liittyviä huomioita

Gaussian-ajojen optimaalisen suorituskyvyn saavuttamiseksi CSC:n palvelimilla kannattaa huomioida joitakin tehokkuuteen liittyviä seikkoja. Vinkkejä muisti- ja levytilavaatimusten arviointiin löytyy täältä. Aiheesta on myös hyvä yhteenveto, jonka tarjoaa NRIS.

Gaussian tarjoaa suuren määrän laskentamalleja, joilla kaikilla on erilaiset suorituskykyominaisuudet käytettävissä olevista resursseista riippuen.

Rinnakkaislaskenta

Ajolle varattujen ytimien määrä asetetaan syötetiedostossa käyttäen %NProcShared-määritystä.

Yleisesti ottaen optimaalinen ytimien määrä on melko pieni, joten on hyvä aloittaa muutamalla testiajolla edustavalla tehtävällä käyttäen pientä ydinmäärää, kuten %NProcShared=4. Testitulosten perusteella voit määrittää sopivat resurssit varsinaisia tuotantoajoja varten.

Ytimien määrän kasvattaminen ei aina paranna suorituskykyä, vaan voi jopa heikentää sitä.

Muisti

Muistin varaus Gaussianissa hallitaan syötetiedoston %Mem-määrityksellä, jossa määritetään laskennalle varattavan muistin kokonaismäärä.

Rinnakkaisajoissa Gaussian jakaa muistin useiden ytimien kesken. Koska suuri osa datasta voidaan jakaa säikeiden välillä, muistin käytön riippuvuus ytimien määrästä on vähäinen. Tämä tarkoittaa, että ytimien määrän kasvattaminen ei yleensä edellytä suhteellisesti suurempaa muistivarausta.

Kokonaismuistitarve riippuu menetelmästä, kantafunktiojoukosta ja ytimien määrästä. Lisätietoja löytyy Gaussianin virallisesta dokumentaatiosta.

On olemassa myös työkaluja, kuten GaussMem, jotka voivat auttaa muistin tarpeen arvioinnissa.

Huom

Mahdissa jokaiselle varatulle CPU-ytimelle osoitetaan 1,875 GiB muistia. Ainoa tapa pyytää enemmän muistia on varata lisää ytimiä. Tämän seurauksena Gaussianin käyttämä optimaalinen ydinmäärä voi joskus olla pienempi kuin varattujen ytimien määrä muistivaatimuksista riippuen.

Paikallisen levyn käyttö (NVMe)

Levy-I/O-intensiivisissä ajoissa, kuten vahvasti korreloiduissa menetelmissä kuten MP2, CCSD(T) ja ominaisuuslaskennoissa kuten värähtelytaajuuslaskennoissa, nopean paikallisen NVMe-levyn käyttö Puhdissa tai Mahdissa voi parantaa suorituskykyä merkittävästi. Paikallisen levyn käyttö tällaisissa ajoissa vähentää myös Lustre-rinnakkaistiedostojärjestelmän kokonaiskuormaa.

subg16 hhh:mm:ss jobname <your project id> [NVMe disk]

Optimaalisten resurssien arviointi

Ennen laajamittaisten laskentojen suorittamista on tärkeää määrittää laskentaresurssien tehokkain käyttö. Liian suuri ydin- tai muistivaraus voi johtaa resurssien hukkaan ja joissakin tapauksissa jopa hitaampaan suorituskykyyn.

Vaiheittainen lähestymistapa

  1. Aloita pienesti – Aloita testiajolla käyttäen maltillista ydinmäärää (esim. %NProcShared=4).
  2. Seuraa suorituskykyä – Kun ajo on valmis, käytä seff-komentoa CPU-käytön, muistin tehokkuuden ja ajoajan tarkistamiseen.
  3. Kasvata resursseja vähitellen – Kaksinkertaista ydinmäärä vaiheittain (esim. 4 → 8 → 16) ja tarkkaile vaikutusta suorituskykyyn.
  4. Tunnista tehokkuuden tasaantumispiste – Jos ydinmäärän kaksinkertaistamisesta saatava nopeutuminen jää alle 1,5:n, lisäys ei todennäköisesti ole enää tehokas.
  5. Huomioi levy- ja muistitarpeet – Jotkin menetelmät (esim. MP2, CCSD(T), taajuuslaskennat) hyötyvät enemmän riittävästä muistista ja nopeasta paikallisesta levystä (NVMe) kuin lisäytimistä. Riittämätön muisti tai hidas levy-I/O voi aiheuttaa pullonkauloja ja heikkoa skaalautuvuutta.

Tehokas resurssien kohdentaminen varmistaa nopeammat ajot, minimoi jonotusajat ja välttää järjestelmän tarpeetonta kuormitusta.

Suorituskykyesimerkki

Tässä annamme lyhyen esimerkin siitä, miten erilaiset resurssivaraukset vaikuttavat Gaussianin suorituskykyyn ja mitä tekijöitä tulee ottaa huomioon. Käytämme syöterakenteena α-tokoferolia (eräs E-vitamiinin muoto). Syötetiedosto on saatavilla osoitteessa vitamin_e.com.

Testit suoritettiin tuotantoympäristössä, jossa ajojen välinen häiriö voi aiheuttaa suorituskyvyn vaihtelua. Lisäksi vaihtelua syntyy siitä, miten varatut ytimet sijoittuvat mielivaltaisesti solmun sisällä. Tämä sisäinen hierarkia voi vaikuttaa suorituskykyyn.

Ensin vertaamme b3lyp/cc-pVDZ, %mem=10GB, 10GB NVMe -yksittäispistelaskennan ajoaikaa ja skaalautuvuutta. Tämä laskenta vaatii vain kohtuullisesti muistia ja levyresursseja, joten niiden kasvattamisen ei pitäisi vaikuttaa suorituskykyyn.

Gaussian Performance

Tässä nimenomaisessa tapauksessa skaalautuvuus Puhdissa alkaa tasaantua 30 ytimen jälkeen, kun taas Mahdissa skaalautuvuus pysyy kohtuullisella tasolla noin 80 ytimeen asti.

Jos teemme saman laskennan mutta kasvatamme kantafunktiojoukon kokoa muotoon b3lyp/cc-pVTZ, %mem=10GB, 10GB NVMe -varaus on edelleen riittävä kaikkiin tarpeisiin.

Gaussian Performance

Tässä suuremmassa laskennassa skaalautuvuus Puhdissa säilyy hyvänä aina täyteen solmuun asti. Mahdissa skaalautuvuus alkaa kuitenkin tasaantua noin 100 ytimen kohdalla.

Aaltotoimintopohjaisessa menetelmässä kuten MP2/cc-pVDZ, %mem=100GB, 200GB NVMe sekä varatulla muistilla että paikallisen levyn (NVMe) käytöllä on merkittävä vaikutus suorituskykyyn, kuten seuraava kuvaaja osoittaa:

Gaussian Performance

Puhdissa nopeutuminen tasaantuu noin 25 ytimen kohdalla, kun taas Mahdissa suorituskyvyn paraneminen jatkuu noin 35 ytimeen asti.

Puhdissa tehdyt testit korostavat riittävän muistin varaamisen tärkeyttä. Lisäksi huomattava suorituskyvyn parannus paikallista levyä (NVMe) käytettäessä verrattuna tavalliseen scratch-levyyn (noin 30 % nopeampi!) osoittaa, että paikallinen levy tulisi aina valita ensisijaiseksi vaihtoehdoksi tämän tyyppisissä laskennoissa.

Viitteet

Lisätietoja

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta