We have a full line-up of activities for you, including a BOF, Tutorials, pre-recorded Booth Talks, and a Book Drawing. We will add content here as the schedule tightens up, so bookmark this page and keep coming back to learn more! Or sign up for our newsletter to be notified as plans firm up. And in the mean time, be sure to register for SC22!
Look for us on the show floor in Booth #2803!
As usual, we will have at least one OpenMP API expert in the booth (either in-person or virtually) to answer your questions. We’ll also have comfy seating, so come and grab an OpenMP lanyard and a free OpenMP 6.0 Reference Guide and hang out with us at the show.
SC tutorials are a great way to get a deep dive on OpenMP. Times and registration links are listed below.
Mastering Tasking with OpenMP
With the increasing prevalence of multi-core processors, shared-memory programming models are essential. OpenMP is a popular, portable, widely supported, and easy-to-use shared-memory model. Since version 3.0 released in 2008, OpenMP offers tasking to support the creation of composable parallel software blocks and the parallelization of irregular algorithms. Developers usually find OpenMP easy to learn. However, mastering the tasking concept of OpenMP requires a change in the way developers reason about the structure of their code and how to expose the parallelism of it. Our tutorial addresses this critical aspect by examining the tasking concept in detail and presenting patterns as solutions to many common problems.
OpenMP is the de facto standard for writing parallel applications for shared memory computers. We created OpenMP to be the “simple API” for application programmers. With a specification running to over 450 pages OpenMP has grown into an intimidating API viewed by many as for “experts only”. Most OpenMP programmers, however, use around 21 items from the specification. We call these 21 items the “OpenMP Common Core”. By focusing on the common core, we make OpenMP what it was always meant to be: a simple API for parallel application programmers.
Students will use their own laptops (with Windows, Linux, or OS/X) to access remote systems that support OpenMP (a remote SMP server). Load an OpenMP compiler onto your laptop before the tutorial. Information about OpenMP compilers is available at openmp.org/tools.
Advanced OpenMP: Host Performance and 5.2 Features
Shared-memory programming models are essential, and OpenMP is a popular, portable, widely supported, and easy-to-use shared-memory model. Developers usually find OpenMP easy to learn. However, they are often disappointed with the performance and scalability of the resulting code. This stems not from shortcomings of OpenMP, but rather from the lack of depth with which it is employed. Our “Advanced OpenMP Programming” tutorial addresses this critical need by exploring the implications of possible OpenMP parallelization strategies, both in terms of correctness and performance.
Programming your GPU with OpenMP: A hands-on Introduction
OpenMP 1.0 was released in 1997 when the primary concern was symmetric multiprocessors. A modern platform is often a heterogeneous system with CPU cores, GPU cores, and other specialized accelerators. OpenMP has responded by adding directives that map code and data onto a device. We refer to this family of directives as the target directives. In this hands-on tutorial, we will explore these directives as they apply to programming GPUs. We assume attendees already know the fundamentals of OpenMP (perhaps by taking the OpenMP Common Core tutorial) so we can focus on deeply understanding the target directives and their use in complex applications. We expect students to use their own laptops (with Windows, Linux, or OS/X) to connect to remote servers with GPUs, but the best option is for students to load an OpenMP compiler onto their laptops before the tutorial. Information about OpenMP compilers is available at openmp.org/tools.
The OpenMP API is among the most widely-used parallel programming models in HPC and is the oldest industry standard for parallel programming with compiler directives. As we have reached the era of exascale using GPU accelerated systems, the BOF will have a special focus on OpenMP accelerator programming for current and upcoming GPU HPC machines. As in previous years, we will discuss trends, implementations, and best practices for the OpenMP API while providing an interactive discussion for beginners and experts alike.
The session is split in three parts:
Part 1: OpenMP implementors will report on the current status of their implementations, including feature support for OpenMP API versions up to 5.2. and timelines through the various toolchains. This will be followed by a Q&A round for the attendees to ask questions and provide feedback.
Part 2: Members of the OpenMP language committee will discuss planned new features for the OpenMP API version 6.0, provide insight into the improvements that version 6.0. This will be followed by a Q&A round for the attendees to ask questions and provide feedback.
Part 3: We will end with an open floor discussion that invites everyone to provide feedback or ask questions about OpenMP, not limited to the topics presented.
Date: Wednesday, 16 November | 5:15 pm (Room C140-142)
Host: Simon McIntosh-Smith
More Information (Link will be added soon!)
OpenMP Booth Talks
OpenMP Booth Talks are short presentations about specific tools, tips, or applications of OpenMP. Even though many of us are traveling again, we are still practicing safe social distancing in the booth this year, so our popular booth talk series will again be pre-recorded.
Below is the list of the booth talks we have lined up so far for this year, but we still expect to add more. When it gets closer to show time, we’ll add links to the videos and slides.
Recent Language Committee activities: Bronis deSupinski
PyOMP … bringing OpenMP to the masses: Tim Mattson
The Lovely Loop construct … declarative semantics in OpenMP: Tim Mattson
OpenMP in numerical linear algebra libraries: Piotr Luszczek
ECP SOLLVE – OpenMP Offloading Validation and Verification: Swaroop Pophale
LLVM (ECP SOLLVE): Johannes Doerfert
What Could Possibly Go Wrong Using OpenMP?Ruud van der Pas
Low-overhead loop scheduling for OpenMP: Vivek Kale
Automated scheduling algorithm selection in OpenMP: Florina Ciorba
Understanding Hybrid OpenMP + MPI Performance: Mark Bull and Holly Judge
Book Drawing: Enter for a chance to win an OpenMP book!
We will give away an OpenMP Book at the end of each day during the SC’22 Exhibit, Monday-Thursday, November 14-17. Enter the drawing in the booth during regular show hours, or online using a form that will be available below, then you will be entered into the drawing each day. Our random drawing each day will include ALL the entries received from the beginning of this promotion through that day’s Entry Period. Full details, rules, and eligibility requirements are below.
Those entering online or in the booth have an equal chance to win.
The winners will be announced on Twitter, and we will send an email to the winner asking for their name, their shipping address, and which one of the following books they would like to receive:
High Performance Parallel Runtimes
(2021, by Klemm and Cownie) [info]
The OpenMP Common Core: Making OpenMP Simple Again
(2019, by Mattson, He, and Koniges) [info]
Using OpenMP―The Next Step
(2017, by van der Pas, Stotzer, and Terboven) [info]
Printed and bound book of the OpenMP Specification (you choose the API version: from 2.5 to 5.2)
Printed and bound book of the OpenMP Examples 5.2 document
Full details, rules, and eligibility requirements are below.
Details and rules for the SC22 OpenMP Book Drawing
This drawing is part of the OpenMP ARB (OpenMP) participation in and activities for SC22. The drawing is managed by OpenMP staff.
CONTEST OVERVIEW. The OpenMP Book Drawing will run during the SC22 Exhibits: Monday, November 14 through Thursday, November 17, 2022. A winner will be chosen at the end of each day. The winner will be notified by email and will be asked to make a selection of one of the four books offered as their prize (from among the four books listed above), and for their shipping information.
ENTRIES AND DRAWINGS.
Enter in-person at the SC22 OpenMP booth (#2803) starting on November 14, 2022; or enter online using a form that will be added to this web page by November 1, 2022.
All entries have an equal chance of winning, regardless of entry method.
Non-winning entries remain in the drawing pool throughout SC22 and will be included in subsequent drawings.
One entry per participant. Duplicate entries are manually expunged prior to each drawing, leaving only a single entry per email address.
Entries made after the entry deadline will not be included in the daily drawing for that day, but will be included in the drawing the following days. The promotion will be closed to entries on Thursday, November 17 at 4:00 pm (CST).
DAILY ENTRY DEADLINES (all times in US CST):
Monday, Nov 14: 9:00 pm
Tuesday, Nov 15: 6:00 pm
Wednesday, Nov 16: 6:00 pm
Thursday, Nov 17: 4:00 pm
DAILY DRAWING TIMES: Random drawings for each daily winner will occur within 24 hours following the Daily Entry Deadlines listed above.
When a winner is drawn from among all eligible entries, we will perform the following actions:
Remove the winner’s entry from the active list of entries so as to not be included in the daily drawings for subsequent days.
Send an email to the winner informing them of the win and asking them for (A) their choice of book to receive from among the four (4) books listed above, and (B) the address and phone number to use for us to ship the book to the recipient. THE WINNER’S ADDRESS AND PHONE NUMBER WILL BE USED ONLY FOR THE PURPOSE OF THIS SINGLE MAILING AND WILL NOT BE RETAINED.
Ship the chosen book to the winner as soon as possible after SC22 (typically within one week).
PERMISSIONS AND OTHER DETAILS
Entering this drawing grants us the permission to (1) notify the winner via email, and (2) communicate with the winner as needed to ship the book.
Those entering the drawing are responsible for providing an accurate email address.
Any entry that excludes an email address or includes an incomplete or ineligible email address will be disqualified and a new entry will be drawn.
If the email sent to the winner “bounces” or is otherwise found to be illegitimate, the entry will be disqualified and a new entry will be drawn.
We will ship to the winner’s indicated address using reliable shipping or delivery resources. We are not responsible for incorrect addresses sent to us by the winner nor for issues that are the responsibility of the shipping or delivery resources.
The email addresses of entrants and winners will not be retained unless we are given explicit permission to retain it.
We are not responsible for errors that may occur due to internet outages, power outages, or hackers.