Difference between revisions of "OpenMP in Small Bites/Worksharing"
OpenMP in Small Bites/Worksharing
Jump to navigation
Jump to search
| Line 15: | Line 15: | ||
{{hidden begin | {{hidden begin | ||
| − | |title = What is most commenly used worksharing construct in OpenMP to distribute work among loop interations? | + | |title = 1. What is most commenly used worksharing construct in OpenMP to distribute work among loop interations? |
}} | }} | ||
<quiz display=simple> | <quiz display=simple> | ||
| Line 26: | Line 26: | ||
{{hidden begin | {{hidden begin | ||
| − | |title = Give an example for a parallel vector addition using OpenMP worksharing! | + | |title = 2. Give an example for a parallel vector addition using OpenMP worksharing! |
}} | }} | ||
<quiz display=simple> | <quiz display=simple> | ||
| Line 32: | Line 32: | ||
|type="()"} | |type="()"} | ||
+ Click and submit to see the answer | + Click and submit to see the answer | ||
| − | || | + | || C/C++:<br /> <code>int i; <br /> #pragma omp parallel <br /> #pragma omp for <br /> for (i = 0; i < 100; i++){ <br /> a[i] = b[i] + c[i]; <br /> } </code> <br /> Fortran: <br /> <code> INTEGER :: i <br />!$omp parallel <br />!$omp do <br /> DO i = 0, 99<br /> a[i] = b[i] + c[i] <br /> END DO </code> |
</quiz> | </quiz> | ||
{{hidden end}} | {{hidden end}} | ||
| − | + | {{hidden begin | |
| − | + | |title = 3. Can the following code snipped be parallelized with the OpenMP for-construct with out breaking the semantic? Justify your answer. | |
| + | }} | ||
| + | <quiz display=simple> | ||
| + | { | ||
| + | |type="()"} | ||
| + | + Click and submit to see the answer | ||
| + | || <code> int i, int s = 0; <br /> for (i = 1; i < 100; i++){ <br /> s = a[i-1] + a[i]; <br /> } </code> <br /> No. Due to the depency between the loop iterations this would cause a data race | ||
| + | </quiz> | ||
| + | {{hidden end}} | ||
| + | |||
| + | |||
| + | |||
| + | |||
Revision as of 17:34, 30 October 2020
| HPC.NRW | |
|---|---|
| Other HPC Courses | |
| 1. | Gprof Tutorial |
| 2. | Introduction to Linux in HPC |
| OpenMP in Small Bites | |
| 1. | Overview |
| 2. | Worksharing |
| 3. | Data Scoping |
| 4. | Non-Uniform Memory Access
|
Video
Quiz
1. What is most commenly 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.
How can you control the number of threads?
