{"id":157,"date":"2022-09-30T16:58:17","date_gmt":"2022-09-30T14:58:17","guid":{"rendered":"https:\/\/terboven.com\/?p=157"},"modified":"2022-09-30T16:58:17","modified_gmt":"2022-09-30T14:58:17","slug":"openmp-tutorials-at-sc22","status":"publish","type":"post","link":"https:\/\/terboven.com\/?p=157","title":{"rendered":"OpenMP Tutorials at SC22"},"content":{"rendered":"\n<p>As in previous years, several OpenMP tutorial proposals have been accepted for SC22. I am really looking forward to being in the USA again, and &#8211; among other things &#8211; to teach OpenMP to real people, instead of black tiles. In this summary, I would like to highlight the two tutorials in which I am involved.<\/p>\n\n\n\n<p>And by the way: in addition to the content itself, I believe these tutorials provide the extra value of direct access to members of the OpenMP Language Committee. That means we are approachable beyond the tutorial outline to discuss any topics, or any issues, you have with OpenMP.<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/sc22.supercomputing.org\/presentation\/?id=tut114&amp;sess=sess204\" target=\"_blank\" rel=\"noreferrer noopener\">Mastering Tasking with OpenMP<\/a><\/strong><\/p>\n\n\n\n<p>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. 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.<\/p>\n\n\n\n<p>Presenters: Christian Terboven, Michael Klemm, Xavier Teruel and Bronis R. de Supinski<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Content summary:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>OpenMP Overview (high-level summary, synchronization, memory model)<\/li><li>OpenMP Tasking Model (overview, data sharing, taskloop)<\/li><li>Improving Tasking Performance (if + final + mergeable clauses, cut-off strategies, task dependencies, task affinity)<\/li><li>Cancellation Construct<\/li><li>Future OpenMP directions<\/li><\/ul>\n\n\n\n<p><strong><a href=\"https:\/\/sc22.supercomputing.org\/presentation\/?id=tut113&amp;sess=sess203\" target=\"_blank\" rel=\"noreferrer noopener\">Advanced OpenMP: Host Performance and 5.2 Features<\/a><\/strong><\/p>\n\n\n\n<p>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 \u201cAdvanced OpenMP Programming\u201d tutorial addresses this critical need by exploring the implications of possible OpenMP parallelization strategies, both in terms of correctness and performance.<\/p>\n\n\n\n<p>Presenters: Christian Terboven, Michael Klemm, Ruud van der Pas, and Bronis R. de Supinski<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Content summary:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>OpenMP Overview (high-level summary, synchronization, memory model)<\/li><li>Techniques to obtain High Performance with OpenMP: memory access (memory placement, binding, NUMA) and vectorization (understanding SIMD, vectorization in OpenMP)<\/li><li>Advanced Language Features (doacross loops, user-defined reductions, atomics)<\/li><li>Future OpenMP directions<\/li><\/ul>\n\n\n\n<p>For a complete list of SC22 activities around OpenMP and associated with the OpenMP organization, please see this <a rel=\"noreferrer noopener\" href=\"https:\/\/www.openmp.org\/events\/sc22\/\" target=\"_blank\">page listing tutorials, the Bof, and booth talks<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As in previous years, several OpenMP tutorial proposals have been accepted for SC22. I am really looking forward to being in the USA again, and &#8211; among other things &#8211; to teach OpenMP to real people, instead of black tiles. In this summary, I would like to highlight the two tutorials in which I am &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/terboven.com\/?p=157\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;OpenMP Tutorials at SC22&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[17,3,18],"tags":[5,33,25],"class_list":["post-157","post","type-post","status-publish","format-standard","hentry","category-hpc","category-openmp","category-teaching","tag-openmp","tag-sc","tag-tutorial"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/terboven.com\/index.php?rest_route=\/wp\/v2\/posts\/157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/terboven.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/terboven.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/terboven.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/terboven.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=157"}],"version-history":[{"count":2,"href":"https:\/\/terboven.com\/index.php?rest_route=\/wp\/v2\/posts\/157\/revisions"}],"predecessor-version":[{"id":160,"href":"https:\/\/terboven.com\/index.php?rest_route=\/wp\/v2\/posts\/157\/revisions\/160"}],"wp:attachment":[{"href":"https:\/\/terboven.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/terboven.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/terboven.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}