Hyppää sisältöön

Significant changes to Puhti & Mahti authentication coming in April! Read about the SSH key and multi-factor authentication requirements.


tags: - Academic


TURBOMOLE

TURBOMOLE on nopea ja luotettava kvanttikemian ohjelmistopaketti, jossa on erittäin tehokkaat erilaisten laskentamenetelmien (HF/DFT/MP2/CC) toteutukset. Ominaisuuksia voi laskea sekä perus- että viritetyille tiloille. TURBOMOLE on suunniteltu suurien järjestelmien tehokkaaseen tutkimiseen.

Saatavilla

  • Puhti: 7.5.1, 7.6, 7.7, 7.8
  • Mahti: 7.5.1, 7.6, 7.7, 7.8

Lisenssi

  • Ohjelmistoa saa käyttää vain voittoa tavoittelemattomaan tutkimukseen.
  • Ohjelmistoa saavat käyttää vain akateemisten (esim. tutkinto-oikeuksia myöntävien) laitosten käyttäjät.

Käyttö

Alusta TURBOMOLE-ympäristö:

module load turbomole/7.8

Eräajojen esimerkkiskripti Puhtille käyttäen MPI-parallelisointia

#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40 # MPI-tehtäviä per solmu
#SBATCH --account=<project>  # lisää tähän laskutettava projekti
#SBATCH --time=00:10:00      # aika muodossa `hh:mm:ss`
export PARA_ARCH=MPI         # käytä MPI:tä
module load turbomole/7.8
export SLURM_CPU_BIND=none
# Tämä TURBOTMPDIR-asetuksen oletus on, että työ
# on lähetetty /scratch/<project>-alla olevasta hakemistosta
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS  # MPI:lle
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out

Eräajojen esimerkkiskripti Puhtille käyttäen SMP-parallelisointia

#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=1            # SMP:lle vain 1 on mahdollinen
#SBATCH --cpus-per-task=40   # SMP-säikeitä
#SBATCH --account=<project>  # lisää tähän laskutettava projekti
#SBATCH --time=00:10:00      # aika muodossa `hh:mm:ss`
export PARA_ARCH=SMP         # käytä SMP-säikeitä   
module load turbomole/7.8
# Tämä TURBOTMPDIR-asetuksen oletus on, että työ
# on lähetetty /scratch/<project>-alla olevasta hakemistosta
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_CPUS_PER_TASK  # SMP:lle
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out

Huomio

Joskus mpshift-laskelmat keskeytyvät, kun paikallinen /tmp täyttyy. Ongelman voi kiertää määrittelemällä $TMPDIR:n uudelleen:

export TMPDIR=$TURBOTMPDIR

Huomio

Erityisesti jotkin aaltofunktioon perustuvat elektronikorrelaatiomenetelmät voivat olla erittäin levy-I/O-intensiivisiä. Tällaisista töistä on hyötyä Puhtin nopeasta paikallisesta tallennustilasta. Paikallisen levyn käyttäminen tällaisissa töissä vähentää myös kuormitusta Lustren rinnakkaisessa tiedostojärjestelmässä.

Eräajojen esimerkkiskripti Puhti käyttäen MPI-parallelisointia ja paikallista levyä

#!/bin/bash
#SBATCH --partition=small
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=40 # MPI-tehtäviä per solmu
#SBATCH --account=<project>  # lisää tähän laskutettava projekti
#SBATCH --time=00:10:00      # aika muodossa `hh:mm:ss`
#SBATCH --gres=nvme:100      # pyydetty paikallisen levyn koko GB
export PARA_ARCH=MPI         # käytä MPI:tä
module load turbomole/7.8
export SLURM_CPU_BIND=none
# määritä paikallinen levy tilapäisvälimuistiksi
export TURBOTMPDIR=$LOCAL_SCRATCH/$SLURM_JOBID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS  # MPI:lle
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
dscf > dscf.out
ccsdf12 > ccsdt.out

Eräajojen esimerkkiskripti Mahti käyttäen MPI-parallelisointia

#!/bin/bash
#SBATCH --partition=medium
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=128 # MPI-tehtäviä per solmu
#SBATCH --account=<project>   # lisää tähän laskutettava projekti
#SBATCH --time=00:60:00       # aika muodossa `hh:mm:ss`
export PARA_ARCH=MPI          # käytä MPI:tä
module load turbomole/7.8
export SLURM_CPU_BIND=none
# Tämä TURBOTMPDIR-asetuksen oletus on, että työ
# on lähetetty /scratch/<project>-alla olevasta hakemistosta
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS  # MPI:lle
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out

NumForce-laskelmat

NumForce on työkalu, jota voidaan käyttää toisen kertaluvun derivaattojen (molekyylin Hessian) laskemiseen kaikilla menetelmillä, joille analyyttisiä gradientteja on saatavilla TURBOMOLE:ssa. NumForce-työ synnyttää 3*N*2 (N = atomien lukumäärä) itsenäistä gradientin laskentaa. Yleensä on tehokkainta, että yksittäiset gradientin laskennat suoritetaan sarjana (unset PARA_ARCH). Jokaisen sarjallisen laskennan odotetaan kestävän yhtä kauan, joten optimaalisesti gradienttien laskentojen määrä pitäisi olla jaollinen varattujen ytimien määrällä.

NumForce-vaihe työskentelytiedostossa:

unset PARA_ARCH
export HOSTS_FILE=$PWD/turbomole.machines
rm -f $HOSTS_FILE
srun hostname > $HOSTS_FILE
ulimit -s unlimited
kdg tmpdir
NumForce -ri -central -mfile $HOSTS_FILE > NumForce.out

Viitteet

Ole hyvä ja siteeraa ohjelmistopaketin käyttöä huomioiden versiokoodi:

  • TURBOMOLE V7.8, kehittänyt Karlsruhen yliopisto ja Forschungszentrum Karlsruhe GmbH, 1989-2007, TURBOMOLE GmbH, vuodesta 2007 lähtien; saatavilla osoitteesta https://www.turbomole.org
  • Myös katsausartikkeli tulisi mainita: https://doi.org/10.1063/5.0004635
  • Tieteelliset julkaisut vaativat menetelmien ja käytettyjen menettelyjen oikean siteraamisen. TURBOMOLE-moduulien tulostuspääte sisältää asiaankuuluvat julkaisut.

Lisätietoja