Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 3 Nächste Version anzeigen »

Content

Code execution

For examples for code execution, please visit Slurm partition CPU CLX.

Code compilation

Serial gcc
module load gcc
gcc -o hello.bin hello.c
gfortran -o hello.bin hello.f90
g++ -o hello.bin hello.cpp
OpenMP gcc
module load gcc
gcc -fopenmp -o hello.bin hello.c
gfortran -fopenmp -o hello.bin hello.f90
g++ -fopenmp -o hello.bin hello.cpp

Slurm job script

The examples for slurm job scripts, e.g. myjobscipt.slurm, that cover the setup

  • 1 node,
  • 1 OpenMP code running.
Serial
#SBATCH --nodes=1
#SBATCH --partition=cpu-genoa
./hello.bin
OpenMP, full node
#SBATCH --nodes=1
#SBATCH --partition=cpu-genoa
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=96
./hello.bin
OpenMP, half node
#SBATCH --nodes=1
#SBATCH --partition=cpu-genoa
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=48
./hello.bin
OpenMP, hyperthreading
#SBATCH --nodes=1
#SBATCH --partition=cpu-clx:test
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=192
./hello.bin

You can run different OpenMP codes at the same time. The examples cover the setup

  • 2 nodes,
  • 4 OpenMP codes run simultaneously.
  • The code is not MPI parallel. mpirun is used to start the codes only.
OpenMP simultaneously
#SBATCH --nodes=2
#SBATCH --partition=cpu-genoa
module load impi/2019.5
export SLURM_CPU_BIND=none
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=48
mpirun -ppn 2 \
       -np 1 ./code1.bin : -np 1 ./code2.bin : -np 1 ./code3.bin : -np 1 ./code4.bin
OpenMP simultaneously hyperthreading
#SBATCH --nodes=2
#SBATCH --partition=cpu-genoa
module load impi/2019.5
export SLURM_CPU_BIND=none
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=96
mpirun -ppn 2 \
       -np 1 ./code1.bin : -np 1 ./code2.bin : -np 1 ./code3.bin : -np 1 ./code4.bin
  • Keine Stichwörter