Hyppää sisältöön

A new version of SD Connect and SD Desktop will be available from Monday, September 28. The major upgrade will introduce significant improvements, but also includes changes that are not compatible with the current version of the service. Click here to review the available support materials.

Warning!

Puhti and Mahti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti and Mahti login nodes and storage services are planned to remain available until 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Gaussian

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

Saatavuus

  • Puhti: G16RevC.02
  • Mahti: G16RevC.02
  • Roihu-CPU: G16RevC.02

Lisenssi

CSC on hankkinut Gaussianille täyden kaupallisen lisenssin. Se on kaikkien hyväksyttyjen käyttäjätunnusten haltijoiden saatavilla lisenssirajoitusten mukaisesti. Gaussianin käyttö CSC:llä edellyttää, että käyttäjätunnuksesi on lisättävä gaussian2-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.

Ajaminen Roihussa

Roihussa Gaussian-työt on lähetettävä CPU-kirjautumissolmulta (roihu-cpu). Työvuo on muuten sama kuin Puhdissa ja Mahdissa: lataa moduuli ja käytä subg16-komentoa töiden lähettämiseen:

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

Esimerkkejä:

subg16 05:30:00 h2o <your project id>                  # basic submission
subg16 05:30:00 h2o <your project id> 10               # with 10 GiB local disk (future use, see below)
subg16 05:30:00 h2o <your project id> --no-submit      # generate the job file without submitting

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

Partitiot. Roihun subg16-skripti valitsee eräajo-osion automaattisesti pyydetyn enimmäisajoajan perusteella:

Partition Maximum wall time
small 72 tuntia (3 päivää)
longrun 240 tuntia (10 päivää)

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

Paikallinen NVMe-levy. Vaikka Roihun CPU-solmuissa on 960 Gt paikallista levytilaa, tarpeen mukaan tehtävä paikallisen NVMe-levyn varaus subg16-skriptillä ei ole vielä saatavilla tavallisille M-solmuille. Kun paikallisen levyn kokoa pyydetään, väliaikaistiedostojen I/O ohjautuu tällä hetkellä Lustreen, ja skripti ottaa automaattisesti käyttöön optimoidun stripe-asetuksen. Paikallisen NVMe-levyn tuki otetaan käyttöön tulevassa päivityksessä. Roihun Lustre-scratch on yli kymmenen kertaa nopeampi kuin Puhdin, joten suorituskykyyn ei useimpien töiden kohdalla toistaiseksi kohdistu merkittävää vaikutusta.

Suorituskykyyn liittyviä huomioita

Gaussian-töiden optimaalisen suorituskyvyn saavuttamiseksi CSC:n palvelimilla on hyödyllistä kiinnittää huomiota tehokkuuteen. Vinkkejä muisti- ja levytilatarpeiden 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-merkintää.

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 se voi jopa heikentää sitä.

Muisti

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

Rinnakkaistö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 heikko. Tämä tarkoittaa, että ytimien määrän kasvattaminen ei yleensä edellytä suhteellista kasvua muistivaraukseen.

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

On myös joitakin työkaluja, kuten GaussMem, jotka voivat auttaa muistitarpeen 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 vuoksi Gaussianin käyttämä optimaalinen ytimien määrä voi joskus olla pienempi kuin varattujen ytimien määrä muistivaatimuksista riippuen.

Huom

Roihussa tavallisissa CPU-solmuissa (M-solmut) on 768 GiB muistia jaettuna 384 ytimen kesken, eli noin 2 GiB ydintä kohden. subg16-skripti pakottaa tämän %Mem-arvon ehdottomaksi ylärajaksi. %Mem-arvoosi lisätään automaattisesti 1 500 Mt:n ylitysvara, kun muistia varataan Slurmista, joten aseta %Mem sen mukaisesti pysyäksesi solmun rajoissa.

Paikallisen levyn käyttö (NVMe)

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

Roihussa paikallisen NVMe-levyn varaus subg16-skriptillä ei ole vielä saatavilla tavallisille CPU-solmuille; väliaikaistiedostojen I/O käyttää tällä hetkellä Lustrea optimoidulla stripe-asetuksella. Roihun Lustre-scratch on yli kymmenen kertaa nopeampi kuin Puhdin, joten vaikutus useimpiin töihin on pieni. NVMe-tuki subg16-skriptissä otetaan käyttöön tulevassa päivityksessä.

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

Optimaalisten resurssien arviointi

Ennen laajamittaisten laskentojen ajamista on ratkaisevan tärkeää määrittää laskentaresurssien tehokkain käyttö. Liiallinen ytimien tai muistin varaus voi johtaa resurssien hukkaan ja joissakin tapauksissa jopa hitaampaan suorituskykyyn.

Vaiheittainen lähestymistapa

  1. Aloita pienesti – Aloita testityöllä käyttäen maltillista määrää ytimiä (esim. %NProcShared=4).
  2. Seuraa suorituskykyä – Kun työ on valmistunut, käytä seff-komentoa tarkistaaksesi CPU-käytön, muistin tehokkuuden 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 on todennäköisesti tehoton.
  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 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 ottaa huomioon. 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 tuotantoympäristössä, jossa töiden keskinäinen häiriö voi aiheuttaa suorituskyvyn vaihtelua. 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 levytilaa, 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 koko 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ällaisissa 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