The OpenMP API specification for parallel programming
Join us in Denver for SC23!
Supercomputing 2023 will be in Denver, November 12-17. We have a full line-up of activities, 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 SC23!
Look for us on the show floor in Booth #307!
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 5.2 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.
The OpenMP Common Core: A hands-on Introduction
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.
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.
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 implementers 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.
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’23 Exhibit, Monday-Thursday, November 13-16. Enter the drawing in the booth during regular show hours, or online using a form that is linked to 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 LinkedIn and Mastodon, 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:
Programming Your GPU with OpenMP
(2023, by Mattson and Deakin) [info]
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 softcover book of the OpenMP Specification (you choose the API version: from 2.5 to 5.2)
Printed softcover book of the OpenMP Examples 5.2 document
Full details, rules, and eligibility requirements are below.
The book drawing is over. Join us again next year!
Details and rules for the SC23 OpenMP Book Drawing
This drawing is part of the OpenMP ARB (OpenMP) participation in and activities for SC23. The drawing is managed by OpenMP staff.
CONTEST OVERVIEW. The OpenMP Book Drawing will run during the SC23 Exhibits: Monday, November 13 through Thursday, November 16, 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 an OpenMP book as their prize (from among the books listed above), and for their shipping information.
ENTRIES AND DRAWINGS.
Enter in-person at the SC23 OpenMP booth (#307) starting on November 13, 2022; or enter online using a form that will be added to this web page by November 10, 2023 or sooner.
All entries have an equal chance of winning, regardless of entry method.
Non-winning entries remain in the drawing pool throughout SC23 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 16 at 4:00 pm (MST).
DAILY ENTRY DEADLINES (all times in US MST):
Monday, Nov 13: 9:00 pm
Tuesday, Nov 14: 6:00 pm
Wednesday, Nov 15: 6:00 pm
Thursday, Nov 16: 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 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.
Upon receipt of the reply to the above email, announce the win on social media as described above.
Ship the chosen book to the winner as soon as possible after SC23 (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, complete, and legible 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.
If the email sent to the winner does not “bounce” or is otherwise found to be illegitimate, then the winner must reply to our email within thirty (30) days. Otherwise the win will be disqualified and a new entry will NOT be drawn.
We will ship to the winner’s indicated address using reliable shipping or delivery resources. We are not responsible for incomplete or 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, hackers, or delivery issues.