Hyppää sisältöön

Significant changes to Puhti & Mahti authentication coming in April! Read about the SSH key and multi-factor authentication requirements.

Esimerkkejä eräkäsittelyskripteistä Mahti-järjestelmälle

Esimerkkejä eräajoista eri ohjelmatyypeille:

Huom

Jos käytät skriptejä (suositellaan!), älä unohda muuttaa resursseja (aika, tehtävät jne.) tarpeidesi mukaan ja korvata myprog <options> ajettavan ohjelman suoritettavalla tiedostolla (ja valinnoilla) sekä <project> projektisi nimellä.

MPI

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=medium
#SBATCH --time=02:00:00
#SBATCH --nodes=10
#SBATCH --ntasks-per-node=128

srun myprog <options>

Suuri MPI

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=large
#SBATCH --time=02:00:00
#SBATCH --nodes=100
#SBATCH --ntasks-per-node=128

srun myprog <options>

MPI + OpenMP

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=large
#SBATCH --time=02:00:00
#SBATCH --nodes=100
#SBATCH --ntasks-per-node=16
#SBATCH --cpus-per-task=8

# Aseta ketjujen määrä perustuen --cpus-per-task
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

srun myprog <options>

MPI + OpenMP langan sidonnalla

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=large
#SBATCH --time=02:00:00
#SBATCH --nodes=100
#SBATCH --ntasks-per-node=16
#SBATCH --cpus-per-task=8

# Aseta ketjujen määrä perustuen --cpus-per-task
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
export OMP_PLACES=cores

srun myprog <options>

MPI + OpenMP samanaikaisella monisäikeistyksellä

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=large
#SBATCH --time=02:00:00
#SBATCH --nodes=100
#SBATCH --hint=multithread
#SBATCH --ntasks-per-node=16
#SBATCH --cpus-per-task=16

# Huomaa että ntasks-per-node * cpus-per-task = 256

# Aseta ketjujen määrä perustuen --cpus-per-task
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

srun myprog <options>

MPI yhdellä tehtävällä per NUMA-alue

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=medium
#SBATCH --time=02:00:00
#SBATCH --nodes=10
#SBATCH --ntasks-per-node=8
#SBATCH --cpus-per-task=16

# Laskentasolmuilla on 8 NUMA-aluetta, joissa jokaisessa on 16 ydintä
# Slurm sijoittaa MPI-tehtävät --cpus-per-task etäisyydelle toisistaan

srun myprog <options>

OpenMP

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=medium
#SBATCH --time=02:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=128

# aseta ketjujen määrä perustuen --cpus-per-task
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

srun myprog <options>

Paikallinen levy ja small osio

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=small
#SBATCH --time=02:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --gres=nvme:100

# Small osio:
# - Jokainen työ saa automaattisesti 1,875 GB muistia per varattu ydin.
#   Jos tehtävä tarvitsee lisää muistia, käytä `--cpus-per-task` asetusta.
# - Muistivaraukset slurm-asetukset ohitetaan
# - Paikallinen NVMe-levy jopa 3500 GiB on saatavilla, varaa asetuksella
#   `--gres=nvme:<koko GiB>` ja käytä $LOCAL_SCRATCH ympäristömuuttujan kautta

export MY_JOB_TMPDIR=$LOCAL_SCRATCH
srun myprog <options>

1-2 GPU-tehtävä eli gpusmall osio

#!/bin/bash
#SBATCH --job-name=example
#SBATCH --account=<project>
#SBATCH --partition=gpusmall
#SBATCH --time=02:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=32
#SBATCH --gres=gpu:a100:1
## jos tarvitset myös paikallisen nopean levyn solmussa, korvaa edellinen rivi:
#SBATCH --gres=gpu:a100:1,nvme:900
#
## Muista ladata ympäristö, jota sovelluksesi saattaa tarvita.
## Ja käytä muuttujaa $LOCAL_SCRATCH eräkäsittelyskriptissäsi 
## paikallisen nopean tallennustilan käyttämiseen jokaisessa solmussa.

srun myprog <options>

4 GPU:ta per solmu ja monisoluinen GPU-tehtävä eli gpumedium osio

```bash

SBATCH --job-name=example

SBATCH --account=

SBATCH --partition=gpumedium

SBATCH --time=02:00:00

SBATCH --nodes=2

SBATCH --ntasks=8

SBATCH --cpus-per-task=32

SBATCH --gres=gpu:a100:4

jos tarvitset myös paikallisen nopean levyn solmuissa, korvaa edellinen rivi:

SBATCH --gres=gpu:a100:4,nvme:3600

Muista ladata ympäristö, jota sovelluksesi saattaa tarvita.

Ja käytä muuttujaa $LOCAL_SCRATCH eräkäsittelyskriptissäsi

paikallisen nopean tallennustilan käyttämiseen jokaisessa solmussa.

srun myprog