Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Basic Code Compilation

Serial Code

Codeblock
languagebash
title Intel compiler
collapsetrue
module load intel
icc -o hello.bin hello.c
ifort -o hello.bin hello.f90
icpc -o hello.bin hello.cpp

...

Codeblock
languagebash
titleGNU Compiler
collapsetrue
module load gcc
gcc -o hello.bin hello.c
gfortran -o hello.bin hello.f90
g++ -o hello.bin hello.cpp

Parallel Code with MPI

Examples are for Intel MPI with Intel and GNU compilers, respectively. We recommend using the specific compiler wrappers as follows.

...

Codeblock
languagebash
titleGNU Compiler
collapsetrue
module load gcc
module load impi
mpigcc -o hello.bin hello.c 
mpif90 -o hello.bin hello.f90  
mpigxx -o hello.bin hello.cpp

Parallel Code with OpenMP

The syntax of Intel and GNU options differs slightly.

...

Codeblock
languagebash
titleGNU Compiler
collapsetrue
module load gcc
gcc -fopenmp -o hello.bin hello.c 
gfortran -fopenmp -o hello.bin hello.f90  
g++ -fopenmp -o hello.bin hello.cpp

Hybrid Code with MPI and OpenMP

Codeblock
languagebash
titleIntel Compiler
collapsetrue
module load intel
module load impi
mpiicc -qopenmp  -Wl,-rpath,$LD_RUN_PATH -o hello.bin hello.c 
mpiifort -qopenmp -Wl,-rpath,$LD_RUN_PATH -o hello.bin hello.f90  
mpiicpc -qopenmp -Wl,-rpath,$LD_RUN_PATH -o hello.bin hello.cpp

...

Codeblock
languagebash
titleGNU Compiler
collapsetrue
module load gcc
module load impi
mpigcc -fopenmp -Wl,-rpath,$LD_RUN_PATH -o hello.bin hello.c 
mpif90 -fopenmp -Wl,-rpath,$LD_RUN_PATH -o hello.bin hello.f90  
mpigxx -fopenmp -Wl,-rpath,$LD_RUN_PATH -o hello.bin hello.cpp

MPI, communication libraries, OpenMP

We provide several communication libraries:

...

OpenMP support ist built in with the compilers from Intel and GNU.

Important 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:

...

Kein Format
-march=skylake-avx512

Using the Intel MKL

The Intel® Math Kernel Library (Intel® MKL) is designed to run on multiple processors and operating systems. It is also compatible with several compilers and third party libraries, and provides different interfaces to the functionality. To support these different environments, tools, and interfaces Intel MKL provides multiple libraries from which to choose.

...