Difference between revisions of "OpenMP in Small Bites"

From HPC Wiki
Jump to navigation Jump to search
Line 7: Line 7:
 
Welcome to the HPC.NRW OpenMP Online Tutorial!
 
Welcome to the HPC.NRW OpenMP Online Tutorial!
  
This course has been developed within the framework of the {{HPC.NRW}} project. It is targeted for novice HPC users as an initial introduction to shared-memory programming with OpenMP.
+
[[OpenMP|OpenMP]] (Open Multi-Processing) is the de-facto standard for parallel shared memory programming. With a set of compiler directives and API functions it provides a portable and scalable model to express parallelism.
 +
 
 +
This tutorial is targeted for novice HPC users as an initial introduction to shared-memory programming with OpenMP.  
  
 
== How to proceed through this tutorial? ==
 
== How to proceed through this tutorial? ==

Revision as of 19:28, 30 November 2020

Tutorial
Title: OpenMP in Small Bites
Provider: HPC.NRW

Contact: tutorials@hpc.nrw
Type: Multi-part video
Topic Area: Programming Paradigms
License: CC-BY-SA
Syllabus

1. Overview
2. Worksharing
3. Data Scoping
4. False Sharing
5. Tasking
6. Tasking and Data Scoping
7. Tasking and Synchronization
8. Loops and Tasks
9. Tasking Example: Sudoku Solver
10. Task Scheduling
11. Non-Uniform Memory Access

Introduction

Welcome to the HPC.NRW OpenMP Online Tutorial!

OpenMP (Open Multi-Processing) is the de-facto standard for parallel shared memory programming. With a set of compiler directives and API functions it provides a portable and scalable model to express parallelism.

This tutorial is targeted for novice HPC users as an initial introduction to shared-memory programming with OpenMP.

How to proceed through this tutorial?

The tutorial is made up of 8 sections (3 more will follow soon). Each covers a separate stand-alone topic, but they are designed to be worked through in order.

Each tutorial consists of a short video, followed by a couple of quiz questions for a self control. Everything in the tutorial is platform-independent and works with every operating system with an OpenMP-compatible compiler available. Although most examples are written in C/C++, the fundamental concepts also work with Fortran.

If you have any questions or encounter problems, you can contact us via e-mail at helpdesk@hpc.nrw.

Who created this tutorial?

This tutorial has been developed within the framework of the HPC.NRW project. It is part of a series of online tutorials on various HPC-related topics, all of which were created by HPC.NRW members. Other topics are for example Linux and Gprof, and new tutorials continue to be developed.

The speaker is Dr. Christian Terboven from RWTH Aachen University. Christian works at the university's IT center and is an active member of the OpenMP language committee for many years. Video editing was done primarily by himself an Marc-André Hermanns (RWTH Aachen University). The quiz section was primarily developed by Tim Cramer (RWTH Aachen University). Other contributions came from practically all HPC.NRW members.


Topics

Overview

This session provides a brief history of OpenMP and then introduces the parallel region, one of the most fundamental concepts of OpenMP, used to mark code regions that are meant to be processed by multiple threads in parallel.

Worksharing

Date Scoping

False Sharing

Tasking

Tasking and Data Scoping

Tasking and Synchronization

Non-Uniform Memory Access