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.

ORCA

ORCA on ab initio -kvanttikemian ohjelmistopaketti, joka sisältää nykyaikaisia elektronirakennemenetelmiä, kuten tiheysfunktionaaliteorian, monikappalehäiriöteorian, kytketyn klusterin menetelmät, moniviitemenetelmät sekä semi-empiiriset kvanttikemian menetelmät. Sen tärkeimmät sovellusalueet ovat 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 lähetettävä CPU-kirjautumissolmulta (roihu-cpu).

Esimerkkieräajokomennostot

Note

Aaltotoimintoon perustuvat korrelaatiomenetelmät, sekä yhden viitteen että moniviitteen menetelmät, tuottavat usein huomattavan määrän levy-I/O:ta. Työn suorituskyvyn maksimoimiseksi 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-kääreskriptiä ei tarvita. Aseta ORCADIR ennen moduulin lataamista. Täydellinen luettelo käytettävissä olevista partitioista on sivulla Roihun eräajopartitiot.

Note

Paikallinen NVMe-levy ei ole vielä saatavilla Roihun tavallisille M-solmutöille. 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
#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 määrittää muistin MPI-prosessia kohti megatavuina. Vastaavan --mem-per-cpu-arvon tulee olla sama:

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

Esimerkiksi 12 MPI-prosessilla ja 32 Gt: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äispiste-energialaskennassa käyttäen %maxcore 5000 (6 tehtävää: %maxcore 8000) M-solmulla, jossa scratch on Lustressa. Työt ajettiin peräkkäin. Jaetuilla solmuilla seinäajat voivat vaihdella samalle solmulle sijoitettujen töiden I/O- ja muistikaistakilpailun 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ä — integraalien kokonaistyö määräytyy järjestelmän koon, ei prosessien määrän, perusteella. Muisti tehtävää kohti pienenee prosessien määrän kasvaessa, mikä heijastaa DLPNO:n aluejakoa.

Muistivaatimusten arviointi

ORCAn %maxcore määrittää 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-arvoja sen mukaan. 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 vastaavasti.

Viitteet

ORCAn yleiset viitteet ovat:

Älä viittaa ainoastaan yllä oleviin yleisiin viitteisiin, vaan viittaa lisäksi myös alkuperäisiin artikkeleihin, joissa kuvataan 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