Difference between revisions of "OpenMP in Small Bites/Worksharing"
OpenMP in Small Bites/Worksharing
Jump to navigation
Jump to search
m (Add DISPLAYTITLE) |
|||
Line 1: | Line 1: | ||
[[Category:Tutorials]]<nowiki /> | [[Category:Tutorials]]<nowiki /> | ||
+ | {{DISPLAYTITLE:Worksharing}}<nowiki /> | ||
{{Syllabus OpenMP in Small Bites}}<nowiki /> | {{Syllabus OpenMP in Small Bites}}<nowiki /> | ||
__TOC__ | __TOC__ |
Revision as of 15:49, 4 December 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 |
This video shows the concept of OpenMP worksharing, loop scheduling and synchronization mechanisms. After this tutorial session the programmer already has knowledge about the most common used OpenMP constructs and API functions. How the scoping of data is controlled is introduced in the part on Data Scoping.
Video
Quiz
1. What is most commonly used worksharing construct in OpenMP to distribute work among loop interations?
2. Give an example for a parallel vector addition using OpenMP worksharing!
3. Can the following code snipped be parallelized with the OpenMP for-construct with out breaking the semantic? Justify your answer.
int i, int s = 0;
for (i = 1; i < 100; i++){
s = a[i-1] + a[i];
}