Difference between revisions of "OpenMP in Small Bites/Overview"
OpenMP in Small Bites/Overview
Jump to navigation
Jump to search
m (Remove unwanted initial line breaks) |
m (Tweak questions.) |
||
Line 16: | Line 16: | ||
{ | { | ||
|type="()"} | |type="()"} | ||
− | + | + | + Compiler directives, runtime routines, environment variables |
− | || compiler | + | || Correct |
+ | - Compiler directives, host language extensions, runtime routines | ||
+ | || While compiler support is needed, OpenMP does comprise host language extensions, yet also uses environment variables. | ||
+ | - Host language extensions, runtime routines, environment variables. | ||
+ | || OpenMP does not comprise host language extensions, but rather uses compiler directives to insert . | ||
</quiz> | </quiz> | ||
{{hidden end}} | {{hidden end}} | ||
Line 27: | Line 31: | ||
{ | { | ||
|type="()"} | |type="()"} | ||
− | + | + | + Fork-Join |
− | || | + | || An OpenMP program starts with just one worker thread (<code>master</code>). The <code>worker</code> threads are spawned in the parallel region and form a <code>team</code> of threads together with the <code>master</code>. They all join at the end of a parallel region. |
+ | - Create-Release | ||
+ | || An OpenMP program starts with just one worker thread (<code>master</code>). The <code>worker</code> threads are spawned in the parallel region and form a <code>team</code> of threads together with the <code>master</code>. They all join at the end of a parallel region. | ||
+ | - Start-Wait | ||
+ | || An OpenMP program starts with just one worker thread (<code>master</code>). The <code>worker</code> threads are spawned in the parallel region and form a <code>team</code> of threads together with the <code>master</code>. They all join at the end of a parallel region. | ||
</quiz> | </quiz> | ||
{{hidden end}} | {{hidden end}} | ||
Line 37: | Line 45: | ||
<quiz display=simple> | <quiz display=simple> | ||
{ | { | ||
− | |type=" | + | |type="[]"} |
− | + | + | + Set environment variable <code>OMP_NUM_THREADS</code>. |
− | + | || True | |
+ | + Use <code>num_threads</code> clause on a parallel construct. | ||
+ | || True | ||
+ | - Number of threads are fixed at compile time | ||
+ | || False | ||
+ | - All of the above | ||
+ | || False | ||
</quiz> | </quiz> | ||
{{hidden end}} | {{hidden end}} |
Revision as of 11:45, 23 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 |
Video
Quiz
1. Out of which three components the OpenMP interface consists?
2. What is one of the key concepts of the OpenMP execution model?
3. How can you control the number of threads?