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 18: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?