-
Gaussian
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ätty gaussian2-käyttäjäryhmään. Lähetä pyyntö
CSC:n asiakastukeen.
Käyttö
Alusta Gaussian-ympäristö:
Tavalliset ajot voi tämän jälkeen 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.
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 lähetä työt subg16:lla:
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 muistin määrä (%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 hours (3 days) |
longrun |
240 hours (10 days) |
Muisti. Skripti lisää 1 500 MB:n ylivaran %Mem-arvosi päälle, kun muistia
varataan Slurmista. Tuettu enimmäisarvo %Mem:lle 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 GB paikallista
levytilaa, paikallisen NVMe-levyn varaaminen tarpeen mukaan subg16:lla ei ole
vielä saatavilla tavallisille M-solmuille. Kun paikallisen levyn kokoa
pyydetään, scratch-I/O ohjataan tällä hetkellä Lustreen, jossa 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 vaikutus useimpien töiden
suorituskykyyn ei sillä välin ole merkittävä.
Suorituskykyyn liittyviä huomioita
Gaussian-töiden optimaalisen suorituskyvyn saavuttamiseksi CSC:n palvelimilla on hyödyllistä huomioida joitakin tehokkuuteen liittyviä seikkoja. 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 %NProcShared-lipulla.
Yleisesti ottaen optimaalinen ydinmää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.
Ydinmäärän kasvattaminen ei aina paranna suorituskykyä, ja se voi jopa heikentää sitä.
Muisti
Muistin varaus Gaussianissa hallitaan syötetiedoston %Mem-lipulla, 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 ydinmäärästä on heikko. Tämä tarkoittaa, että ydinmää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 myös joitakin työkaluja, kuten GaussMem, jotka voivat auttaa muistitarpeen arvioinnissa.
Huom.
Mahdissa jokaiselle varatulle CPU-ytimelle allokoidaan 1.875 GiB muistia. Ainoa tapa pyytää enemmän muistia on varata lisää ytimiä. Tämän vuoksi Gaussianin käyttämä optimaalinen ydinmää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 per ydin. subg16-skripti valvoo
tätä %Mem:n ehdottomana ylärajana. %Mem-arvosi päälle lisätään
automaattisesti 1 500 MB:n ylivara, 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ö Puhdissa tai Mahdissa 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 varaaminen subg16:lla ei ole vielä
saatavilla tavallisille CPU-solmuille; scratch-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
melko pieni. NVMe-tuki subg16:n kautta otetaan käyttöön tulevassa
päivityksessä.
Optimaalisten resurssien arviointi
Ennen laajamittaisten laskentojen ajamista 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
- Aloita pienesti – Aloita testityöllä käyttäen maltillista ydinmäärää
(esim.
%NProcShared=4). - Seuraa suorituskykyä – Kun työ on valmis, käytä
seff-komentoa tarkistaaksesi CPU-käyttöasteen, muistitehokkuuden ja työn ajoajan. - 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 on todennäköisesti tehoton.
- 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 allokointi 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 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 myöhemmin, kun ne ovat saatavilla.
Ensin vertaamme b3lyp/cc-pVDZ, %mem=10GB, 10GB NVMe -single-point-laskennan
ajoaikaa ja skaalautuvuutta. Tämä laskenta vaatii vain kohtuullisesti muistia
ja levytilaa, joten niiden kasvattamisen ei pitäisi vaikuttaa suorituskykyyn.

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 kokoa arvoon
b3lyp/cc-pVTZ, %mem=10GB, 10GB NVMe -varaus on edelleen riittävä kaikkiin
tarpeisiin.

Tässä suuremmassa laskennassa skaalautuvuus Puhdissa pysyy hyvänä aina koko solmuun asti. Mahdissa sen sijaan skaalautuvuus alkaa 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 paikallisen levyn (NVMe) käytöstä saatava huomattava suorituskykyetu verrattuna tavalliseen scratch-levyyn (noin 30 % nopeampi!) osoittaa, että paikallinen levy tulisi aina valita ensisijaiseksi vaihtoehdoksi tällaisissa laskennoissa.
Viitteet
- How to cite Gaussian julkaisuissasi.