...
Code compilation
Intel compiler
Codeblock |
---|
title | Serial icc |
---|
collapse | true |
---|
|
module load intel
icc -o hello.bin hello.c
ifort -o hello.bin hello.f90
icpc -o hello.bin hello.cpp |
...
Codeblock |
---|
title | OpenMP icc |
---|
collapse | true |
---|
|
module load intel
icc -qopenmp -o hello.bin hello.c
ifort -qopenmp -o hello.bin hello.f90
icpc -qopenmp -o hello.bin hello.cpp |
Gnu compiler
Codeblock |
---|
title | Serial gcc |
---|
collapse | true |
---|
|
module load gcc
gcc -o hello.bin hello.c
gfortran -o hello.bin hello.f90
g++ -o hello.bin hello.cpp |
Codeblock |
---|
title | OpenMP gcc |
---|
collapse | true |
---|
|
module load gcc
gcc -fopenmp -o hello.bin hello.c
gfortran -fopenmp -o hello.bin hello.f90
g++ -fopenmp -o hello.bin hello.cpp |
Code execution
You can run a single OpenMP code. The examples cover the setup
...
Codeblock |
---|
|
#SBATCH --nodes=1
./hello.bin |
Codeblock |
---|
title | OpenMP, full node |
---|
collapse | true |
---|
|
#SBATCH --nodes=1
#SBATCH --partition=standard96:test
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=96
./hello.bin |
Codeblock |
---|
title | OpenMP, half node |
---|
collapse | true |
---|
|
#SBATCH --nodes=1
#SBATCH --partition=standard96:test
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=48
./hello.bin |
Codeblock |
---|
title | OpenMP, hyperthreading |
---|
collapse | true |
---|
|
#SBATCH --nodes=1
#SBATCH --partition=standard96:test
export OMP_PROC_BIND=spread
export OMP_NUM_THREADS=192
./hello.bin |
...
Codeblock |
---|
title | OpenMP simultaneously hyperthreading |
---|
collapse | true |
---|
|
#SBATCH --nodes=2
#SBATCH --partition=standard96:test
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 |
...
Intel compiler flags
To make full use of the vectorizing capabilities of the CPUs, AVX512 instructions and the 512bit ZMM registers can be used with the following compile flags with the Intel compilers:
...