-
Gaussian
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ö:
Tavalliset ajot voidaan sitten lähettää kätevästi subg16-skriptillä:
missä:
hhh:mm:sson pyydetty enimmäisajoaika tunteina, minuutteina ja sekunteina.jobnameon 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.
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
- Aloita pienesti – Aloita testiajolla käyttäen maltillista ydinmäärää
(esim.
%NProcShared=4). - Seuraa suorituskykyä – Kun ajo on valmis, käytä
seff-komentoa CPU-käytön, muistin tehokkuuden ja ajoajan tarkistamiseen. - Kasvata resursseja vähitellen – Kaksinkertaista ydinmäärä vaiheittain (esim. 4 → 8 → 16) ja tarkkaile vaikutusta suorituskykyyn.
- Tunnista tehokkuuden tasaantumispiste – Jos ydinmäärän kaksinkertaistamisesta saatava nopeutuminen jää alle 1,5:n, lisäys ei todennäköisesti ole enää tehokas.
- 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.

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.

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:

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
- How to cite Gaussian julkaisuissasi.