DAY 1:

    09:10Introduction to modern hardwareIntro:   slides 1-18
    10:10An overview of OpenMPDay 1: slides 1-12
    10:50OpenMP programming and execution modelDay 1: slides 13-24Exercise 1: slides 25-29
    13:30OpenMP worksharing directivesDay 1: slides 30-49Exercise 2: slides 50-51
    15:15More OpenMPDay 1: slides 52-55Exercise 3: slides 56
    16:00Summary + Q & A
    16:30End of first day


    DAY 2:

    09:00How to write correct OpenMP programsDay 2: slides 1-15
    09:30Intel Inspector XE (demo - screenshots)Demo: inspxeExercise: inspxe (below)
    10:45How to write efficient OpenMP programsDay 2: slides 16-18
    11:00Heat equationDay 2: slides 19-28Exercise 4: slides 19-28
    13:30Heat equation (cont.)Exercise 4 (cont.)
    14:00Vectorization with OpenMPDay 2: slides 29-37
    14:25Thread affinity in OpenMPDay 2: slides 38-47
    15:15The taskloop directiveDay 2: slides 48-51Exercise 5: slides 52
    16:30End of second day (course)




    Opens external link in new windowDay 1: Crash course in modern hardware

    Opens external link in new windowDay 1: Introduction to OpenMP

    Opens external link in new windowDay 2: Pitfalls and advanced OpenMP

    Opens external link in new windowDay 2: Intel Inspector XE (demo - screenshots)


    Opens external link in new



     OpenMP 5.0 Specifications (PDF) and Reference Guides (PDF)



    Please open a terminal and connect to vsc3.

    If your terminal becomes unresponsive, please open a new terminal and connect again!

    cd ~/OpenMP/exercises/pi



    vi, vim, nano, emacs [ nedit – only at login nodes ] – editors cheat sheets: Nano, Vi(m)


    Complilation on login node:

    C:             icc   -qopenmp         pi.c

    Fortran:    ifort -qopenmp         pi.f90    [ !$ ]

    Fortran:    ifort -qopenmp -fpp pi.f90    [ #ifdef _OPENMP ]


    Execution via SLURM:


    sq        # alias for: squeue -u $USER

    scancel <job_ID>



    Make sure you have fully completed the exercises before checking the solution,
    otherwise you will loose out on 90% of the learning benefits!

    Solutions: ~/OpenMP/solution/pi


    Intel Inspector XE:

    cd ~/OpenMP/exercises/pitfalls

    Test with my_prog = conflict, race1, and race2 (and as additional exercises: demo_with_bugs.c)

                   use Intel Inspector XE to find the errors in all three examples
                   correct the source (without modifying the numerical semantics)
                   verify again with Inter Inspector XE  -->  until zero errors reported

    Compile the application without any optimization:

           C:             icc   -qopenmp -O0 -g my_prog.c

           Fortran:    ifort -qopenmp -O0 -g my_prog.f90

    Execution via SLURM:

    vi        --> my_prog_1 (name must be different to existing files)



    VSC training events:     Opens external link in new


    HLRS training events:   Opens external link in new

    HLRS practicals:            Opens external link in new

    HLRS online courses:   Opens external link in new

    Free access to the HLRS online courses (recordings and PDF files) is restricted to the members of the HLRS course mailing list. You may sign in for the HLRS course mailing list at the course to get access to it.