Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
hpc:tutorials:scheduling:sbatch_examples [2024/04/23 13:17] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1hpc:tutorials:scheduling:sbatch_examples [2024/04/23 13:17] (aktuell) – ↷ Seitename wurde von hpc:tutorials:scheduling:beispiele auf hpc:tutorials:scheduling:sbatch_examples geändert jan.e
Zeile 1: Zeile 1:
 +==== Example sbatch Scripts ====
  
 +Copy and paste a script when you are using Windows will cause problems with line endings.
 +You can found more info [[https://support.nesi.org.nz/hc/en-gb/articles/218032857-Converting-from-Windows-style-to-UNIX-style-line-endings|here]].
 +
 +==== MPI-Job ====
 +<code>
 +#!/bin/bash
 +
 +#SBATCH -o /../../../myjob.%j.%N.out   # Output-File
 +#SBATCH -D /../../../                  # Working Directory
 +#SBATCH -J Hello-World_MPI # Job Name
 +#SBATCH --nodes=2 # Anzahl Knoten N
 +#SBATCH --ntasks-per-node=20 # Prozesse n pro Knoten
 +#SBATCH --ntasks-per-core=1 # Prozesse n pro CPU-Core
 +#SBATCH --mem=500M              # 500MiB resident memory pro node
 +
 +##Max Walltime vorgeben:
 +#SBATCH --time=72:00:00 # Erwartete Laufzeit
 +
 +#Auf Standard-Knoten rechnen:
 +#SBATCH --partition=standard
 +
 +#Job-Status per Mail:
 +#SBATCH --mail-type=ALL
 +#SBATCH --mail-user=vorname.nachname@tu-berlin.de
 +
 +module load $MODULES
 +
 +mpirun $myApplication
 +</code> \\
 +
 +==== Single-Node-Job ====
 +<code>
 +#!/bin/bash
 +
 +#SBATCH -o /../../../myjob.%j.%N.out   # Output-File
 +#SBATCH -D /../../../                  # Working Directory
 +#SBATCH -J Hello-World # Job Name
 +#SBATCH --ntasks=1 # Anzahl Prozesse (CPU-Cores)
 +#SBATCH --mem=500M              # 500MiB resident memory pro node
 +
 +##Max Walltime vorgeben:
 +#SBATCH --time=72:00:00 # Erwartete Laufzeit
 +
 +#Auf Standard-Knoten rechnen:
 +#SBATCH --partition=standard
 +
 +#Job-Status per Mail:
 +#SBATCH --mail-type=ALL
 +#SBATCH --mail-user=vorname.nachname@tu-berlin.de
 +
 +# benötigte SW / Bibliotheken laden
 +module load $MODULES
 +
 +echo "Running $myApplication on a single CPU core"
 +$myApplication
 +</code> \\
 +
 +==== GPU-Job ====
 +<code>
 +#!/bin/bash
 +
 +#SBATCH -o /../../../myjob.%j.%N.out   # Output-File
 +#SBATCH -D /../../../                  # Working Directory
 +#SBATCH -J Hello-World_GPU # Job Name
 +#SBATCH --ntasks=2 # Anzahl Prozesse P (CPU-Cores) 
 +#SBATCH --cpus-per-task=1 # Anzahl CPU-Cores pro Prozess P
 +#SBATCH --gres=gpu:tesla:2 # 2 GPUs anfordern
 +#SBATCH --mem=500G              # 5GiB resident memory pro node
 +
 +##Max Walltime vorgeben:
 +#SBATCH --time=72:00:00 # Erwartete Laufzeit
 +
 +#Auf GPU-Knoten rechnen:
 +#SBATCH --partition=gpu
 +
 +#Job-Status per Mail:
 +#SBATCH --mail-type=ALL
 +#SBATCH --mail-user=vorname.nachname@tu-berlin.de
 +
 +# benötigte SW / Bibliotheken laden (CUDA, etc.)
 +module load $MODULES
 +
 +$myCUDA_Application
 +</code> \\
 +
 +==== openMP-Job ====
 +<code>
 +#!/bin/bash
 +
 +#SBATCH -o /../../../myjob.%j.%N.out   # Output-File
 +#SBATCH -D /../../../                  # Working Directory
 +#SBATCH -J Hello-World_OpenMP # Job Name
 +#SBATCH --nodes=1 # Anzahl Knoten N
 +#SBATCH --ntasks=1 # Anzahl Prozesse P
 +#SBATCH --cpus-per-task=4 # Anzahl CPU-Cores pro Prozess P
 +#SBATCH --mem=500M              # 500MiB resident memory pro node
 +
 +##Max Walltime vorgeben:
 +#SBATCH --time=72:00:00 # Erwartete Laufzeit
 +
 +#Auf Standard-Knoten rechnen:
 +#SBATCH --partition=standard
 +
 +#Job-Status per Mail:
 +#SBATCH --mail-type=ALL
 +#SBATCH --mail-user=vorname.nachname@tu-berlin.de
 +
 +module load $MODULES
 +
 +# z. B. 1 Prozess mit 4 OpenMP-Threads
 +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
 +
 +$myApplication
 +
 +</code> \\