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 computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti login nodes and storage services are planned to remain available until 15 October 2026.

ORCA

ORCA on ab initio -kvanttikemian ohjelmistopaketti, joka sisältää moderneja elektronirakennemenetelmiä, kuten tiheysfunktionaaliteorian, monikappalehäiriöteorian, coupled cluster -menetelmät, moniviitemenetelmät sekä semi-empiiriset kvanttikemian menetelmät. Sen tärkein sovellusalue on suuremmat molekyylit, siirtymämetallikompleksit ja niiden spektroskooppiset ominaisuudet. ORCAa kehitetään Frank Neesen tutkimusryhmässä. Ilmainen versio on saatavilla vain akateemiseen käyttöön akateemisissa instituutioissa.

Saatavuus

  • Puhti: 6.0.0
  • Mahti: 6.0.0
  • Roihu-CPU: 6.1.1

Huomaa, että lisenssisyistä jokaisen käyttäjän on asennettava oma kopionsa ohjelmasta.

Lisenssi

ORCAn käyttäjien tulee rekisteröityä, hyväksyä EULA, ladata ja asentaa ohjelmasta oma yksityinen kopio (ORCA-foorumin verkkosivuston kautta). Ilmainen versio on saatavilla vain akateemiseen käyttöön akateemisissa instituutioissa.

Käyttö

  • Lataa ORCA 6.0.0, Linux, x86-64, shared-version, orca_6_0_0_linux_x86-64_avx2_shared_openmpi416.tar.xz
  • Siirrä ladattu tiedosto laskentaprojektisi sovellusalueelle (/projappl/<proj>) Puhdissa tai Mahdissa
  • Pura paketti: tar xf orca_6_0_0_linux_x86-64_avx2_shared_openmpi416.tar.xz
  • Lataa ORCA 6.1.1, Linux, x86-64, shared-version, orca_6_1_1_linux_x86-64_shared_openmpi418_avx2.tar.xz
  • Siirrä ladattu tiedosto laskentaprojektisi sovellusalueelle (/projappl/<proj>/<user>/orca/)
  • Pura paketti:
mkdir -p /projappl/<project>/<user>/orca
cd /projappl/<project>/<user>/orca
tar xf orca_6_1_1_linux_x86-64_shared_openmpi418_avx2.tar.xz

Roihussa aseta ORCADIR ennen moduulin lataamista. Moduuli lataa sitten tarvittavat MPI-kirjastot (gcc/15.2.0, openmpi/5.0.10) automaattisesti — moduuleja ei tarvitse ladata käsin.

Työt on jätettävä CPU-kirjautumissolmulta (roihu-cpu).

Esimerkkieräajokomennostot

Note

Aaltotoimintopohjaiset korrelaatiomenetelmät, sekä yhden viitteen että moniviitteen menetelmät, tuottavat usein huomattavan määrän levy-I/O:ta. Työn maksimaalisen suorituskyvyn saavuttamiseksi ja Lustre-rinnakkaistiedostojärjestelmän ylimääräisen kuormituksen välttämiseksi on suositeltavaa käyttää paikallista levyä silloin, kun se on saatavilla.

#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40      # MPI tasks per node
#SBATCH --account=yourproject     # insert here the project to be billed
#SBATCH --time=00:15:00           # time as hh:mm:ss
module purge
module load gcc/11.3.0 openmpi/4.1.4 intel-oneapi-mkl/2022.1.0
export ORCADIR=<path to your ORCA directory>/orca_6_0_0_shared_openmpi416_avx2/
export LD_LIBRARY_PATH=${ORCADIR}:${LD_LIBRARY_PATH}

# Set $ORCA_TMPDIR to point to the submission directory
export ORCA_TMPDIR=$SLURM_SUBMIT_DIR
# create an mpirun script that executes srun
echo exec 'srun $(echo "${@}" | sed 's/^-np/-n/')' >./mpirun
chmod +x ./mpirun
export PATH=${SLURM_SUBMIT_DIR}:${PATH}
touch Jobid_is_$SLURM_JOB_ID

${ORCADIR}/orca orca6.inp > orca6.out
rm -f  ${SLURM_SUBMIT_DIR}/mpirun
#!/bin/bash
#SBATCH --partition=large
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40
#SBATCH --account=yourproject     # insert here the project to be billed
#SBATCH --time=00:15:00           # time as hh:mm:ss
#SBATCH --gres=nvme:100           # requested local disk space in GB
module purge
module load gcc/11.3.0 openmpi/4.1.4 intel-oneapi-mkl/2022.1.0
export ORCADIR=<path to your ORCA directory>/orca_6_0_0_shared_openmpi416_avx2/
export LD_LIBRARY_PATH=${ORCADIR}:${LD_LIBRARY_PATH}

# create a mpirun script that executes srun
echo exec 'srun $(echo "${@}" | sed 's/^-np/-n/')' >./mpirun
chmod +x ./mpirun
export PATH=${SLURM_SUBMIT_DIR}:${PATH}
touch Jobid_is_$SLURM_JOB_ID

#Set $ORCA_TMPDIR to point to the local disk
export ORCA_TMPDIR=$LOCAL_SCRATCH
# Copy only necessary files to $ORCA_TMPDIR
cp $SLURM_SUBMIT_DIR/*.inp $ORCA_TMPDIR/
# Move to $ORCA_TMPDIR
cd $ORCA_TMPDIR

$ORCADIR/orca orca6.inp > ${SLURM_SUBMIT_DIR}/orca6.out
rm -f  ${SLURM_SUBMIT_DIR}/mpirun
# Copy all output to submit directory
cp -r $ORCA_TMPDIR $SLURM_SUBMIT_DIR
#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=128
#SBATCH --account=yourproject     # insert here the project to be billed
#SBATCH --time=0:10:00            # time as hh:mm:ss
module purge
module load gcc/11.2.0 openmpi/4.1.2 openblas/0.3.18-omp
export ORCADIR=<path to your ORCA directory>/orca_6_0_0_shared_openmpi416_avx2/
export LD_LIBRARY_PATH=${ORCADIR}:${LD_LIBRARY_PATH}

# create a mpirun script that executes srun
echo exec 'srun $(echo "${@}" | sed 's/^-np/-n/')' >./mpirun
chmod +x ./mpirun
export PATH=${SLURM_SUBMIT_DIR}:${PATH}
touch Jobid_is_$SLURM_JOB_ID

${ORCADIR}/orca orca6.inp > orca6.out
rm -f  ${SLURM_SUBMIT_DIR}/mpirun

Roihussa moduuli lataa MPI:n automaattisesti. mpirun-wrapper-komentosarjaa ei tarvita. Aseta ORCADIR ennen moduulin lataamista. Täydellinen lista käytettävissä olevista partitioista löytyy sivulta Roihun eräajopartiot.

Note

Laskentasolmujen paikallisia NVMe-levyjä voi käyttää muuttujan $TMPDIR kautta. "small"-partitiossa käytettävissä on 20 GiB:n kiintiö, kun taas "medium"- solmuissa käytettävissä on 600 GiB. $TMPDIR-tallennustilaa ei tarvitse varata erikseen Slurmissa, jotta se olisi käytettävissä.

#!/bin/bash
#SBATCH --partition=small         # see batch-job-partitions for all options
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=12
#SBATCH --mem-per-cpu=2667        # MB; total memory = nprocs * maxcore
#SBATCH --account=yourproject
#SBATCH --time=01:00:00

export ORCADIR=/projappl/<project>/<user>/orca/orca_6_1_1_linux_x86-64_shared_openmpi418_avx2
module purge
module load orca/6.1.1

${ORCADIR}/orca orca6.inp > orca6.out

Muisti — ORCAn %maxcore-direktiivi asettaa muistin MPI-prosessia kohti megatavuina. Vastaavan --mem-per-cpu-arvon tulee olla sama:

--mem-per-cpu (MB) = %maxcore

Esimerkiksi 12 MPI-prosessilla ja 32 GB:n kokonaismuistilla: %maxcore 2667 ja --mem-per-cpu=2667.

Työn valmistuttua tarkista todellinen muistinkäyttö komennolla:

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

Note

Muista säätää syötetiedostosi %pal nprocs pyydettyjen MPI-tehtävien kokonaismäärän mukaan (--nodes × --ntasks-per-node).

Esimerkki skaalautuvuudesta

Seuraavat tulokset saatiin Roihussa naftaleenin DLPNO-CCSD(T)/aug-cc-pVTZ-yksittäispistelaskennalle käyttäen %maxcore 5000 (6 tehtävää: %maxcore 8000) M-solmulla Lustre scratchilla. Työt ajettiin peräkkäin. Jaetuilla solmuilla seinäajat voivat vaihdella samalle solmulle sijoitettujen töiden I/O- ja muistiväyläkiistan vuoksi.

MPI tasks Wall time Peak scratch MaxRSS total %maxcore
6 56 min ~32 GB 47 GiB 8000 MB
12 48 min ~34 GB 59 GiB 5000 MB
24 38 min ~34 GB 117 GiB 5000 MB
48 31 min ~34 GB 231 GiB 5000 MB

Syötetiedosto on saatavilla osoitteessa naphthalene_dlpno.inp.

DLPNO-CCSD(T) skaalautuu hyvin rinnakkaisesti tässä järjestelmässä. Scratch-levyn huippukäyttö (~34 GB) on käytännössä riippumaton ytimien määrästä — integraalityön kokonaismäärä määräytyy järjestelmän koon, ei prosessien lukumäärän mukaan. Muisti tehtävää kohti pienenee prosessien määrän kasvaessa, mikä heijastaa DLPNO:n aluejakoa.

Muistivaatimusten arviointi

ORCAn %maxcore asettaa muistin MPI-prosessia kohti megatavuina. Aseta --mem-per-cpu vastaamaan sitä:

--mem-per-cpu (MB) = %maxcore

Valmiin ajon jälkeen tarkista todellinen muistinkäyttö komennolla:

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

Jaa MaxRSS MPI-tehtävien määrällä saadaksesi todellisen huippumuistin prosessia kohti ja säädä %maxcore ja --mem-per-cpu sen mukaisesti. Huomaa, että ORCA voi vaatia enemmän muistia prosessia kohti pienemmällä tehtävämäärällä — jos pienennät %pal nprocs-arvoa, kasvata %maxcore-arvoa suhteessa.

Viitteet

ORCAn yleiset viitteet ovat:

Älä viittaa ainoastaan yllä oleviin yleisiin viitteisiin, vaan viittaa lisäksi myös alkuperäisiin artikkeleihin, joissa raportoidaan tutkimuksissasi käyttämiesi menetelmien kehitys ja niiden ORCA-toteutus!

Lisätietoja

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta