Beyond OpenMP Common Core Training, May 4, 2018
Speakers: Timothy Mattson, Intel; Helen He, NERSC
Location: Berkeley Lab, Room 50B-1237. Berkeley, CA
Time: 9:00am - 5:00pm PDT, May 4, 2018.
Tutorial Description
Most OpenMP programmers use only about 19 items from the language. We call these 19 items “the OpenMP Common Core.” Programmers may spend their entire OpenMP programming careers safely inside the common core. Well-rounded OpenMP programmers, however, should be aware of what lies beyond the common core. These less common features of OpenMP were included in the language for a good reason, and only by understanding them at a high level can you know when you might need them. In this hands-on tutorial, you will gain experience working outside the common core. We won’t cover every single feature beyond the common core, but we will survey them with enough breadth, so following this tutorial, you will be able to pick up and work with what you need.
We assume attendees have already been exposed to the most commonly used elements in OpenMP. We call those the “OpenMP Common Core.” It consists of parallel regions, loop constructs, and a few additional items used by most OpenMP programs. The course is taught in C though it should be possible to accommodate Fortran programmers as well. It is a full-day, hands-on tutorial.
Speakers
Tim Mattson is one of the few people who created OpenMP 20 years ago! He has given engaging OpenMP tutorials at venues such as SC since 1998 and continuing through 2017. He is a parallel programmer (Ph.D. Chemistry, UCSC, 1985) and has worked on a wide range of applications ranging from seismic signal processing to molecular biology. Tim has been with Intel since 1993 where he has worked on: (1) the first TFLOP supercomputer (ASCI Red), (2) the OpenMP API for shared memory programming, (3) the OpenCL programming language for heterogeneous platforms, (4) Intel's first TFLOP chip (the 80 core research chip), and (5) Intel’s 48 core, SCC research processor. Currently, Mattson is the PI for Intel’s Big Data Science and Technology Center, where he works on Polystore Database management systems and the GraphBLAS project. He also leads a small team at Intel developing runtime systems for exascale computers.
Helen He is a high performance computing consultant in the User Engagement Group (UEG) at NERSC. Helen is an OpenMP Standard Language Committee member.
Agenda
NOTE: This schedule is an approximation. Depending on the OpenMP background students bring to the session, we may only cover a subset of this material.
Time (PDT) | Topic |
---|---|
8:30 am - 9:00 am | Coffee and Rolls |
9:00 am - 9:05 am | Introduction |
9:05 am - 9:30 am | The Common Core: a quick review |
9:30 am - 10:20 am | The OpenMP Task |
Working with Tasks: The Divide and conquer pattern | |
10:20 am - 10:50 am | Morning Break |
10:50 am - 11:30 am | Task group, task loops, and the rest of the task family |
11:30 am - 12:00 pm | Threadprivate |
12:00 pm - 1:00 pm | Lunch |
1:00 pm - 1:30 pm | The other workshare constructs |
Doacross loops | |
1:30 pm - 2:00 pm | Flush and the OpenMP memory model |
The many flavors of atomic | |
Point to Point synchronization | |
The joy of locks | |
2:00 pm - 2:30 pm | NUMA systems |
Thread Affinity | |
2:30 pm - 3:00 pm | Afternoon Break |
3:00 pm - 4:20 pm | Hybrid MPI/OpenMP |
More about Process and Thread Affinity | |
4:20 pm - 5:00 pm | A quick survey of the rest of OpenMP (SIMD, Target and more) |