Hyppää sisältöön

A new version of SD Connect and SD Desktop will be available from Monday, September 28. The major upgrade will introduce significant improvements, but also includes changes that are not compatible with the current version of the service. Click here to review the available support materials.

Warning!

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

ORCA

ORCA on ab initio -kvanttikemian ohjelmistopaketti, joka sisältää nykyaikaisia elektronirakennemenetelmiä, kuten tiheysfunktionaaliteorian, monikappalehäiriöteorian, coupled cluster -menetelmät, moniviitemenetelmät sekä semi-empiiriset kvanttikemian menetelmät. Sen pääasiallinen sovellusalue on suuremmat molekyylit, siirtymämetalli- kompleksit ja niiden spektroskooppiset ominaisuudet. ORCAa kehitetään Frank Neesen tutkimusryhmässä. Ilmaisversio 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). Ilmaisversio 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 — manuaalisia moduulilatauksia ei tarvita.

Työt on lähetettävä CPU-kirjautumissolmulta (roihu-cpu).

Esimerkkiajoskriptit

Note

Aaltotoimintopohjaiset korrelaatiomenetelmät, sekä yhden viitteen että moniviitteen menetelmät, tuottavat usein huomattavan määrän levy-I/O:ta. Jotta työn suorituskyky olisi mahdollisimman hyvä ja Lustre-rinnakkaistiedostojärjestelmän ylimääräiseltä kuormitukselta vältyttäisiin, 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- skriptiä ei tarvita. Aseta ORCADIR ennen moduulin lataamista. Täydellinen lista käytettävissä olevista partitioista löytyy sivulta Roihun eräajopartitiot.

Note

Laskentasolmujen paikallisia NVMe-levyjä voidaan 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 samalla solmulla olevien 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 huippuarvon 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 alkuperäisiin artikkeleihin, joissa raportoidaan tutkimuksissasi käyttämiesi menetelmien kehitys ja 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