Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

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

Lisenssi

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

Käyttö

Alusta TURBOMOLE-ympäristö:

module load turbomole/7.8

Esimerkki eräajokomentosarjasta Puhdissa MPI-rinnakkaistusta käyttäen

#!/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         # use MPI 
module load turbomole/7.8
export SLURM_CPU_BIND=none
# This setting of TURBOTMPDIR assumes that the job is 
# submitted from a directory below /scratch/<project>
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS  # for MPI
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out

Esimerkki eräajokomentosarjasta Puhdissa SMP-rinnakkaistusta käyttäen

#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=1            # for SMP only 1 is possible
#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         # use SMP threads   
module load turbomole/7.8
# This setting of TURBOTMPDIR assumes that the job is 
# submitted from a directory below /scratch/<project>
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_CPUS_PER_TASK  # for SMP
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out

Huomautus

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

export TMPDIR=$TURBOTMPDIR

Huomautus

Erityisesti jotkin aaltofunktioon perustuvat elektronikorrelaatiomenetelmät voivat olla hyvin levy-I/O-intensiivisiä. Tällaiset ajot hyötyvät Puhdin nopean paikallisen tallennustilan käytöstä. Paikallisen levyn käyttö tällaisissa ajoissa vähentää myös Lustre-rinnakkaistiedostojärjestelmän kuormitusta.

Esimerkki eräajokomentosarjasta Puhdissa MPI-rinnakkaistusta ja paikallista levyä käyttäen

#!/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         # use MPI
module load turbomole/7.8
export SLURM_CPU_BIND=none
# define local disk as scratch
export TURBOTMPDIR=$LOCAL_SCRATCH/$SLURM_JOBID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS  # for MPI
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
dscf > dscf.out
ccsdf12 > ccsdt.out

Esimerkki eräajokomentosarjasta Mahdissa MPI-rinnakkaistusta käyttäen

#!/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          # use MPI
module load turbomole/7.8
export SLURM_CPU_BIND=none
# This setting of TURBOTMPDIR assumes that the job is 
# submitted from a directory below /scratch/<project>
export TURBOTMPDIR=`echo $PWD |cut -d'/' -f1-3`"/TM_TMPDIR/"$SLURM_JOB_ID
mkdir -p $TURBOTMPDIR
export PARNODES=$SLURM_NTASKS  # for MPI
export PATH=$TURBODIR/bin/`$TURBODIR/scripts/sysname`:$PATH
jobex -ri -c 300 > jobex.out

NumForce-laskennat

NumForce on työkalu, jota voidaan käyttää toisten derivaattojen (molekyyli-Hessen matriisin) laskemiseen kaikille menetelmille, joille analyyttiset gradientit ovat saatavilla TURBOMOLEssa. NumForce-ajo käynnistää 3*N*2 (N = atomien lukumäärä) toisistaan riippumatonta gradienttilaskentaa. Yleensä on tehokkainta, että yksittäiset gradienttilaskennat ajetaan sarjallisina (unset PARA_ARCH). Kunkin sarjallisen laskennan odotetaan kestävän suunnilleen saman ajan, joten optimaalisesti gradienttilaskentojen kokonaismäärän tulisi olla varattujen ytimien kokonaislukukerrannainen.

NumForce-vaihe ajotiedostossa:

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ö versionumero huomioiden:

  • TURBOMOLE V7.8, 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
  • Tieteelliset julkaisut edellyttävät käytettyjen menetelmien ja prosessien asianmukaista viittaamista. 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