-
TURBOMOLE
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ö:
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:
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.