How to Use these ResourcesThe resources below offer tutorials and reference information on OpenMP, its different uses and applications, and shared-memory parallelism, from beginner to advanced levels. Some resources also discuss applications of OpenMP to GPU programming. Almost all the resources presume some reasonable familiarity with a compiled language like C, C++, or Fortran. VideosThe OpenMP Common Core: A hands-on exploration (2019) -- the evolving lecture series on OpenMP by Tim Mattson from Intel is arguably the gold standard exposition on OpenMP. This ~4hr video are from a version of Mattson's presentation delivered at Argonne National Lab (ANL) during the Argonne Training Program on Extreme-Scale Computing (ATPESC) 2019. It includes exercises and discussion. A slightly older version of this material, packaged as a self-paced video course with numerous shorter videos, is linked below under Self-Paced Online Courses.Shared-memory Programming with OpenMP -- a video playlist of four recorded sessions (~1.5 - 2 hrs each) from a 2019 online OpenMP course from ARCHER (the UK National Supercomputing Service)OpenMP on GPUs -- video (~1 hr) on using OpenMP to program GPUs. Part of the Virtual Tutorial series from ARCHER.Collection of OpenMP Hands-on Tutorials -- the Parallel Programming in Computational Engineering and Science workshop (PPCES), held in 2014 at RWTH Aachen in Germany, published a progression of hands-on OpenMP lectures, with accompanying slides and exercises:Instructions for exercises -- first set to be completed after "Intro to OpenMP", second set after "Advanced OpenMP" and slidesMaterials for exercises -- gzipped tarballs with C version and Fortran version of materials for the exercisesIntro to OpenMP -- video and slidesGetting OpenMP Up to Speed -- video (no slides available)Advanced OpenMP -- video and slidesOpenMP for GPUs -- video and slidesVectorization with OpenMP -- video and slidesTools for OpenMP Programming -- video and slides Self-paced online coursesA Hands-on Introduction to OpenMP -- the more discrete course-like version of the Intel course on OpenMP, taught by Tim Mattson. The link includes the YouTube video playlist, the slides, and all exercises. Suitable to use as a self-paced course.OpenMP Workshop -- video playlist with recordings of a one-day 2018 XSEDE OpenMP workshop co-sponsored by the Pittsburgh Supercomputing Center (joint partnership between Carnegie Mellon University and the University of Pittsburgh). Slides and exercises are included, along with a review of the exercises in the video. Includes some coverage of parallel debugging and profiling tools and best practices.Introduction to OpenMP -- a self-paced online course from Cyberinfrastructure Tutor at the National Center for Supercomputing Applications (NCSA)OpenMP Course -- self-paced online course from the Cornell University Center for Advanced Computing (CAC) thoroughly covering different aspects of OpenMPHybrid Programming with OpenMP and MPI -- another self-paced CAC online course on programming models that combine OpenMP and MPI Web pages / written online tutorialsThe OpenMP Examples Guide -- a very long PDF (~200 pages) from openmp.org with C and Fortran examples of OpenMP construct for a bevy of use-cases. For version 4.5 of OpenMP. Sample source code in both C and Fortran 90 available at this github repo (under the "sources" folder).OpenMP Tutorials -- a compact set of four tutorials, ranging from basics to using OpenMP for parallel "for" loops. From supercomputingblog.com .OpenMP Tutorial -- materials from hands-on tutorial session taught at Argonne National Laboratory (ANL) as part of the 2020 Exascale Computing Project (ECP) Annual Meeting. Link includes slides for the presentation and exercises, tips and hints, and solutions.Learning OpenMP -- example-driven tutorial covering major use-cases for OpenMP. Also available as a PDF ebook.Using OpenMP with C -- introductory level tutorial with examples (in C) on different aspects of OpenMP. From University of Colorado Boulder Research Computing (CURC).Using OpenMP with Fortran -- same as above, but with examples in Fortran BooksBooks on OpenMP -- a curated listing favorite published OpenMP references, courtesy of openmp.orgParallel Programming in MPI and Open MP -- book by Victor Eijkhout from the Texas Advanced Computing Center (TACC). Available in print version.Parallel Programming in Fortran 95 Using OpenMP (2002) -- online book (in PDF form) from Universidad Politécnica de Madrid