DAY 1:

    09:00Welcome
    09:10Introduction to modern hardwareIntro:   slides 1-18
    10:10An overview of OpenMPDay 1: slides 1-12
    10:35Coffee
    10:50OpenMP programming and execution modelDay 1: slides 13-24Exercise 1: slides 25-29
    12:30Lunch
    13:30OpenMP worksharing directivesDay 1: slides 30-49Exercise 2: slides 50-51
    15:00Coffee
    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:30Coffee
    10:45How to write efficient OpenMP programsDay 2: slides 16-18
    11:00Heat equationDay 2: slides 19-28Exercise 4: slides 19-28
    12:30Lunch
    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:00Coffee
    15:15The taskloop directiveDay 2: slides 48-51Exercise 5: slides 52
    16:30End of second day (course)

     

    COURSE MATERIAL:

    Slides:

    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)

    Exercises:

    Opens external link in new windowfs.hlrs.de/projects/par/par_prog_ws/practical/OpenMPsingle.tar.gz

     

    STANDARD DOCUMENTS:

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

     

    HANDS-ON LABS:

    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

     

    Editors:

    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:

    sbatch job.sh

    sq        # alias for: squeue -u $USER

    scancel <job_ID>

     

    Solutions:

    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 job-inspxe-cl.sh        --> my_prog_1 (name must be different to existing files)

    sbatch job-inspxe-cl.sh

     

    VSC training events:     Opens external link in new windowtypo3.vsc.ac.at/training

     

    HLRS training events:   Opens external link in new windowwww.hlrs.de/training

    HLRS practicals:            Opens external link in new windowfs.hlrs.de/projects/par/par_prog_ws/practical/README.html

    HLRS online courses:   Opens external link in new windowwww.hlrs.de/training/par-prog-ws

    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.