Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 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.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

TURBOMOLE

TURBOMOLE on nopea ja vakaa kvanttikemian ohjelmistopaketti, jossa on erittäin tehokkaat toteutukset useille laskennallisille menetelmille (HF/DFT/MP2/CC). Ominaisuuksia voidaan laskea sekä perustiloille että viritystiloille. TURBOMOLE on suunniteltu suurten järjestelmien tehokkaaseen tutkimukseen.

Saatavuus

  • Puhti: 7.5.1, 7.6, 7.7, 7.8
  • Mahti: 7.5.1, 7.6, 7.7, 7.8
  • Roihu-CPU: 8.0

Lisenssi

  • Voit käyttää ohjelmistoa ainoastaan voittoa tavoittelemattomaan tutkimukseen.
  • Vain akateemisten (eli tutkintoja myöntävien) instituutioiden käyttäjät saavat käyttää ohjelmistoa.

Käyttö

Alusta TURBOMOLE-ympäristö:

module load turbomole/7.8
module load turbomole/8.0

Roihussa työt on lähetettävä CPU-kirjautumissolmulta (roihu-cpu). Moduuli asettaa muuttujat I_MPI_FABRICS=shm:ofi ja MPI_USESRUN=1 automaattisesti. PATH- tai MPI-asetuksia ei tarvitse tehdä käsin enempää kuin alla olevissa eräajoesimerkeissä on näytetty. Täydellinen lista käytettävissä olevista partitioista löytyy sivulta Roihun eräajopartiot.

Eräajoesimerkit

#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40      # MPI tasks per node
#SBATCH --account=<project>       # insert here the project to be billed
#SBATCH --time=00:10:00           # time as hh:mm:ss
export PARA_ARCH=MPI
module load turbomole/7.8
export SLURM_CPU_BIND=none
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out
#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=1
#SBATCH --cpus-per-task=40        # SMP threads
#SBATCH --account=<project>       # insert here the project to be billed
#SBATCH --time=00:10:00           # time as hh:mm:ss
export PARA_ARCH=SMP
module load turbomole/7.8
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_CPUS_PER_TASK
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out
#!/bin/bash
#SBATCH --partition=small
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=40      # MPI tasks per node
#SBATCH --account=<project>       # insert here the project to be billed
#SBATCH --time=00:10:00           # time as hh:mm:ss
#SBATCH --gres=nvme:100           # requested local disk in GB
export PARA_ARCH=MPI
module load turbomole/7.8
export SLURM_CPU_BIND=none
export TURBOTMPDIR=$LOCAL_SCRATCH/$SLURM_JOBID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
dscf > dscf.out
ccsdf12 > ccsdt.out
#!/bin/bash
#SBATCH --partition=medium
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=128     # MPI tasks per node
#SBATCH --account=<project>       # insert here the project to be billed
#SBATCH --time=00:60:00           # time as hh:mm:ss
export PARA_ARCH=MPI
module load turbomole/7.8
export SLURM_CPU_BIND=none
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out

Roihussa moduuli asettaa MPI_USESRUN=1, joten TURBOMOLE käynnistää tehtävät automaattisesti srun-komennolla. Erillistä wrapper-skriptiä ei tarvita.

Note

Paikallinen NVMe-levy ei ole vielä käytettävissä Roihun tavallisissa M-solmutöissä. Scratch-I/O ohjautuu Lustreen. NVMe-tuki otetaan käyttöön tulevassa päivityksessä.

#!/bin/bash
#SBATCH --partition=small         # see batch-job-partitions for all options
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=12      # MPI tasks per node
#SBATCH --mem-per-cpu=2000        # MB per CPU core
#SBATCH --account=<project>       # insert here the project to be billed
#SBATCH --time=01:00:00           # time as hh:mm:ss
export PARA_ARCH=MPI
module load turbomole/8.0
export SLURM_CPU_BIND=none
export PATH=$TURBODIR/bin/$(sysname):$PATH
export TURBOTMPDIR=/scratch/<project>/<user>/TM_TMPDIR/$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS
jobex -ri -c 300 > jobex.out
#!/bin/bash
#SBATCH --partition=small         # see batch-job-partitions for all options
#SBATCH --nodes=1
#SBATCH --cpus-per-task=12        # SMP threads
#SBATCH --mem-per-cpu=2000        # MB per CPU core
#SBATCH --account=<project>       # insert here the project to be billed
#SBATCH --time=01:00:00           # time as hh:mm:ss
export PARA_ARCH=SMP
module load turbomole/8.0
export PATH=$TURBODIR/bin/$(sysname):$PATH
export TURBOTMPDIR=/scratch/<project>/<user>/TM_TMPDIR/$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_CPUS_PER_TASK
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
jobex -ri -c 300 > jobex.out

Note

Toisinaan mpshift-laskennat keskeytyvät, koska paikallinen /tmp täyttyy. Ongelma voidaan kiertää määrittelemällä $TMPDIR uudelleen:

export TMPDIR=$TURBOTMPDIR

Note

Erityisesti jotkin aaltofunktiopohjaiset elektronikorrelaatiomenetelmät voivat olla hyvin levy-I/O-intensiivisiä. Tällaiset työt hyötyvät Puhdin nopean paikallisen tallennustilan käytöstä. Paikallisen levyn käyttö tällaisissa töissä vähentää myös Lustre-rinnakkaistiedostojärjestelmän kuormitusta. Roihussa paikallinen NVMe ei ole vielä käytettävissä tavallisissa M-solmutöissä.

Suorituskykyesimerkki

Tässä annetaan lyhyt esimerkki siitä, miten erilaiset resurssivaraukset vaikuttavat TURBOMOLEn suorituskykyyn. Käytämme syöterakenteena α-tokoferolia (E-vitamiini, C29H50O2, 81 atomia). Geometria on saatavilla tiedostossa vite_wb97x_d4_roihu.sh.

Testit tehtiin tuotantoympäristössä, jossa muiden töiden vaikutus voi aiheuttaa suorituskyvyn vaihtelua.

Seuraava kuva näyttää ωB97X-D4/def2-TZVP-yksittäispistelaskennan seinäkelloajan Roihussa ytimien/säikeiden määrän funktiona käyttäen sekä SMP- (OpenMP) että MPI-rinnakkaisuutta.

TURBOMOLE Performance

SMP (PARA_ARCH=SMP) skaalautuu hyvin noin 48 säikeeseen asti tässä 81-atomisessa järjestelmässä, minkä jälkeen suorituskyky tasaantuu. MPI:n (PARA_ARCH=MPI) tulokset näyttävät samanlaisia seinäkelloaikoja kuin SMP, mutta vaativat huomattavasti enemmän muistia — noin 15 kertaa enemmän 96 prosessilla tässä järjestelmässä.

Yhden solmun ridft-DFT-laskennoissa SMP on siksi yleensä MPI:tä parempi vaihtoehto. Skaalautuvuuden raja liittyy atomien määrään — suuremmat molekyylit hyötyvät useammista säikeistä ennen kyllästymispisteen saavuttamista.

Työn valmistuttua tarkista todellinen muistin käyttö ja seinäkelloaika komennolla:

sacct -j <jobid> --format=JobID,MaxRSS,Elapsed,State

NumForce-laskennat

NumForce on työkalu, jolla voidaan laskea toisia derivaattoja (molekyyli-Hessen matriisi) kaikille menetelmille, joille TURBOMOLEssa on saatavilla analyyttiset gradientit. NumForce-työ käynnistää 3*N*2 (N = atomien määrä) toisistaan riippumatonta gradienttilaskentaa. Yleensä on tehokkainta ajaa yksittäiset gradienttilaskennat sarjallisina (unset PARA_ARCH). Kunkin sarjallisen laskennan odotetaan kestävän suunnilleen saman ajan, joten optimaalisessa tapauksessa gradienttilaskentojen kokonaismäärän tulisi olla varattujen ytimien kokonaislukukerrannainen.

NumForce-vaihe työskriptissä:

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

Mainitse ohjelmistopaketin käyttö viitatessasi versionumero huomioiden:

  • TURBOMOLE V8.0, a development of University of Karlsruhe and Forschungszentrum Karlsruhe GmbH, 1989-2007, TURBOMOLE GmbH, since 2007; available from https://www.turbomole.org
  • Myös katsausartikkeli tulisi mainita: https://doi.org/10.1063/5.0004635
  • Tieteellisissä julkaisuissa käytetyt menetelmät ja menettelytavat on viitattava asianmukaisesti. TURBOMOLE-moduulien tulosteiden otsakkeet sisältävät asiaankuuluvat artikkelit.

Lisätietoja

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta