NERSCPowering Scientific Discovery Since 1974

Advanced OpenMP Training, February 4, 2016

Speakers: Dr. Michael Klemm, Intel; Dr. Bronis R. de Supinski, LLNL.  
Location: NERSC/LBNL, CRT Building, Room 59-3101. Berkeley, CA
Time: 8:30am - 5:00pm PDT,  February 4, 2016.  
Hosts: Helen He and Alice Koniges 

Tutorial Description 

Michael Klemm (an Intel representative in the OpenMP Language Committee) and Bronis R. de Supinski (Chair of the OpenMP Language Committee) will present a one-day tutorial with lectures and hands-on exercises on Advanced OpenMP topics to NERSC users.

The OpenMP 4.5 specification was released in November 2015. This tutorial will quickly review the basics of OpenMP programming, with the assumption that attendees understand basic parallelization concepts. Next, the tutorial will detail performance tuning aspects, such as memory placement and affinity considerations, and exploitation of vector units. The presenters will then discuss advanced OpenMP language features in-depth, with an emphasis on tasking, cancellation and new additions in OpenMP 4.5. Using OpenMP from an MPI application and potential pitfalls will also be discussed.

Levels of the tutorial materials are: beginner 10%, intermediate 45%, and advanced 45%. Afternoon hands-on sessions on Using SIMD will use the NERSC Cori (Cray XC40 with Intel Haswell processors) and Babbage (Intel Xeon Phi Knights Corner testbed) systems.


Dr. Michael Klemm is part of Intel's Software and Services Group, Developer Relations Division. Michael is an Intel representative in the OpenMP Language Committee and leads the efforts to develop error handling features for OpenMP. His focus is on High Performance and Throughput Computing. His doctoral research was on compilers and runtime optimizations for distributed systems. Michael's current areas of interest include compiler construction, design of programming languages, parallel programming, and performance analysis and tuning. Michael is the project lead and the maintainer of the pyMIC offload module for Python.

Dr. Bronis R. de Supinski is the Chief Technology Officer (CTO) for Livermore Computing (LC) at Lawrence Livermore National Laboratory (LLNL), responsible for formulating LLNL's large-scale computing strategy and overseeing its implementation. Bronis serves as the Chair of the OpenMP Language Committee. He has led several research projects in LLNL's Center for Applied Scientific Computing, including the Exascale Computing Technologies (ExaCT) project and the Advanced Scientific Computing (ASC) program's Application Development Environment and Performance Team (ADEPT). Bronis’ areas of interest include programming models, compilers, algorithms, performance, tools, code correctness and resilience for future large scale systems. 


Time (PDT)Topic
 8:30 am - 9:00 am  Refreshments
 9:00 am - 9:10 am  Introduction (Helen He)
 9:10 am - 9:40 am  Quick Overview of OpenMP
 9:40 am - 10:25 am  Performance Tuning
        -- Memory placement
        -- Affinity
        -- OpenMP analysis in VTune
10:25 am - 10:40 am  Break
10:40 am - 11:10 am  Using SIMD
11:10 am - 12:10 pm  Advanced OpenMP
        -- Task loops
        -- Final tasks
12:10 pm - 1:30 pm  Lunch (provided) and Machine Room tour (closed toes shoes required)
 1:30 pm - 2:00 pm  Advanced OpenMP (continued)
        -- Task dependencies 
        -- Misc OpenMP features (Locks hints, user-defined reductions, atomics)
2:00 pm - 2:15 pm  Future OpenMP Directions
2:15 pm - 2:30 pm  Break
2:30 pm - 3:30 pm  Using OpenMP from an MPI application and potential pitfalls
3:30 pm - 5:00 pm  Hands-on: Using SIMD (NERSC users only)


Please fill out the short Registration Form to help us with logistics.  Registration for In person attendance is now closed after January 28.

In person and Remote Connection Information

This event will be presented both online using Zoom technology and in person at NERSC/LBNL (visitor info) in Berkeley, CA.  The training will be held at Building 59, Room 3101 (CRT Building, aka Wang Hall).

To attend remotely (you can join a few minutes early):
Or iPhone one-tap: 14086380968,355460322# or 16465588656,355460322#
Or Telephone: Dial: +1 408 638 0968 (US Toll) or +1 646 558 8656 (US Toll)
Webinar ID: 355 460 322
International numbers available:

Presentation Materials

Slides and audio/video recordings for the training are available here