Hyppää sisältöön

Gaussian

Page undergoing cleanup after Puhti and Mahti retirement

This page contains outdated references to Puhti and/or Mahti, which have now been decommissioned. The page is undergoing changes to reflect CSC's new supercomputer Roihu.

Learn more about Roihu.

Gaussian on monipuolinen ohjelmistopaketti, joka tarjoaa erilaisia ominaisuuksia elektronirakenteen mallintamiseen.

Saatavuus

  • Roihu-CPU: G16RevC.02

Lisenssi

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

Käyttö

Gaussian-työt on lähetettävä CPU-kirjautumissolmulta (roihu-cpu.csc.fi). Alusta Gaussian-ympäristö ja lähetä tavalliset työt subg16-skriptillä:

module load gaussian/G16RevC.02
subg16 hhh:mm:ss jobname <your project id> [local disk GB] [--no-submit]

missä:

  • hhh:mm:ss on pyydetty enimmäisajoaika tunteina, minuutteina ja sekunteina.
  • jobname on syötetiedoston nimi ilman .com-päätettä.
  • [local disk GB] (valinnainen) on pyydetty nopean paikallislevyn koko gigatavuina (katso alla).
  • [--no-submit] (valinnainen) luo työtiedoston lähettämättä sitä.

Esimerkkejä:

subg16 05:30:00 h2o <your project id>                  # basic submission
subg16 05:30:00 h2o <your project id> 10               # with 10 GB fast disk (SBF)
subg16 05:30:00 h2o <your project id> --no-submit      # generate the job file without submitting

Ytimien määrä (%NProcShared) ja muistin määrä (%Mem) luetaan suoraan syötteen .com-tiedostosta. Suorita subg16 ilman argumentteja nähdäksesi täydellisen käyttöyhteenvedon.

Partitiot. subg16-skripti valitsee eräajo-osion automaattisesti pyydetyn ajoajan perusteella:

Partition Maximum wall time
small 72 hours (3 days)
longrun 240 hours (10 days)

Muisti. Skripti lisää %Mem-arvosi päälle 1 500 Mt:n ylivaran, kun muistia varataan Slurmista. Tuettu enimmäisarvo %Mem-asetukselle on rajattu M-solmun 768 GiB:n ylärajaan. Aseta %Mem hieman solmun kokonaismuistia pienemmäksi, jotta käyttöjärjestelmälle jää tilaa.

Nopea paikallislevy. Jos levykoko annetaan, subg16 pyytää nopeaa levyä eriytetystä NVMe-tallennuksesta (SBF), joka liitetään polkuun /sbf/data, ja Gaussianin väliaikaistiedostot (GAUSS_SCRDIR) kirjoitetaan sinne. Levy on olemassa vain työn ajan ja poistetaan työn päättyessä. Ilman levykokoa väliaikaistiedostot kirjoitetaan työn hakemistossa olevaan Lustreen, ja skripti asettaa sille optimoidun stripe-jaon. Pyydä riittävästi levytilaa: väliaikaistiedostojen on mahduttava pyydettyyn kokoon. %Chk-määrityksessä nimetty checkpoint-tiedosto kirjoitetaan työn hakemistoon, ellei syötetiedostossa anneta täydellistä polkua.

Suorituskykyyn liittyviä huomioita

Gaussian-töiden optimaalisen suorituskyvyn saavuttamiseksi CSC:n palvelimilla on hyödyllistä huomioida muutamia tehokkuuteen liittyviä seikkoja. Vinkkejä muisti- ja levyvaatimusten arviointiin löytyy täältä. Aiheesta on myös hyvä yhteenveto NRISin dokumentaatiossa.

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

Rinnakkaislaskenta

Työlle varattujen ytimien määrä asetetaan syötetiedostossa käyttäen %NProcShared-valitsinta.

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

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

Muisti

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

Rinnakkaisissa töissä 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 vain heikko. Tämä tarkoittaa, että ytimien määrän kasvattaminen ei yleensä edellytä suhteellista muistin lisäystä.

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

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

Huom.

Roihussa tavallisissa CPU-solmuissa (M-solmut) on 768 GiB muistia, joka on jaettu 384 ytimen kesken, eli noin 2 GiB ydintä kohden. subg16-skripti asettaa tämän kovaksi ylärajaksi %Mem-asetukselle. %Mem-arvosi päälle lisätään automaattisesti 1 500 Mt:n ylivara, kun muistia varataan Slurmista, joten aseta %Mem sen mukaisesti pysyäksesi solmun rajoissa.

Paikallislevyn käyttö (NVMe)

Levy-I/O-intensiivisissä töissä, kuten vahvasti korreloiduissa menetelmissä MP2, CCSD(T) ja ominaisuuslaskennoissa, kuten värähtelytaajuuslaskuissa, nopea NVMe-paikallislevy voi parantaa suorituskykyä merkittävästi. Paikallislevyn käyttö tällaisissa töissä vähentää myös Lustre-rinnakkaistiedostojärjestelmän kokonaiskuormaa.

Roihussa nopeaa levyä pyydetään subg16-komennon [local disk GB]-argumentilla, esimerkiksi subg16 05:30:00 jobname <your project id> 200, kun halutaan 200 Gt. Käytä kokoa, joka on suurempi kuin odotettu RWF-tiedoston koko, joka tulostetaan testiajon lopussa ("File lengths").

Optimaalisten resurssien arviointi

Ennen laajamittaisten laskentojen suorittamista on ratkaisevan 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 testityöllä, jossa käytetään maltillista määrää ytimiä (esim. %NProcShared=4).
  2. Seuraa suorituskykyä – Kun työ on valmistunut, käytä seff-komentoa tarkistaaksesi CPU-käytön, muistitehokkuuden ja työn ajoajan.
  3. Kasvata resursseja vähitellen – Kaksinkertaista ytimien määrä vaiheittain (esim. 4 → 8 → 16) ja tarkkaile vaikutusta suorituskykyyn.
  4. Tunnista tehokkuuden tasaantumispiste – Jos ytimien 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 paikallislevystä (NVMe) kuin lisäytimistä. Riittämätön muisti tai hidas levy-I/O voi aiheuttaa pullonkauloja ja huonoa skaalautuvuutta.

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

Suorituskykyesimerkki

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

Alla olevat testit tehtiin Puhdissa ja Mahdissa (nyt käytöstä poistettuina) tuotantoympäristössä, jossa töiden keskinäinen häiriö voi aiheuttaa vaihtelua suorituskykyyn. Lisäksi vaihtelua syntyy siitä, miten varatut ytimet sijoittuvat mielivaltaisesti solmun sisällä. Roihun suorituskykyvertailut lisätään, kun ne ovat saatavilla.

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 yli 30 ytimen jälkeen, kun taas Mahdissa skaalautuvuus pysyy kohtuullisena noin 80 ytimeen asti.

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

Gaussian Performance

Tässä suuremmassa laskennassa skaalautuvuus Puhdissa pysyy 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ä varatun muistin määrä että paikallislevyn (NVMe) käyttö vaikuttavat merkittävästi suorituskykyyn, kuten seuraava kuvaaja osoittaa:

Gaussian Performance

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

Testit korostavat riittävän muistin varaamisen tärkeyttä. Lisäksi huomattava suorituskyvyn parannus paikallislevyä (NVMe) käytettäessä verrattuna tavanomaiseen scratch-levyyn (noin 30 % nopeampi Puhdissa) osoittaa, että paikallislevy on ensisijainen vaihtoehto tämäntyyppisissä laskennoissa silloin, kun se on saatavilla.

Viitteet

Lisätietoja

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

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