Difference between revisions of "OpenMP in Small Bites/Scoping"

From HPC Wiki
OpenMP in Small Bites/Scoping
Jump to navigation Jump to search
Line 31: Line 31:
 
|type="()"}
 
|type="()"}
 
+ Click and submit to see the answer
 
+ Click and submit to see the answer
|| <code> int a = 0;<br /> int b = 23;<br /> int c = -3;<br /> # pragma omp parallel num_threads(2) private(a) reduction(+:c)<br /> { </code> <div style="margin-left: 1em;"><code>int d = omp_get_thread_num();<br /> a = 42 + d;<br /> # pragma omp critical<br /> b = 1;<br /> c += a + b;</code></div> <code>} <br />c = c / 2;<br /> printf("a=%d, b=%d, c=%d\n", a, b, c) </code><br /> {{Note|'''a: shared, b: private, c: firstprivate (due to the reduction clause), d: private '''<br />'''output: a=0, b=1, c=42'''}} {{Note|'''a: shared, b: private, c: firstprivate (due to the reduction clause), d: private''' <br /> '''output: <code> a </code>'''}}  
+
|| <code>int a = 0;<br /> int b = 23;<br /> int c = -3;<br /> # pragma omp parallel num_threads(2) private(a) reduction(+:c)<br /> { </code> <div style="margin-left: 1em;"><code>int d = omp_get_thread_num();<br /> a = 42 + d;<br /> # pragma omp critical<br /> b = 1;<br /> c += a + b;</code></div> <code>} <br />c = c / 2;<br /> printf("a=%d, b=%d, c=%d\n", a, b, c) </code><br /> {{Note|'''a: shared, b: private, c: firstprivate (due to the reduction clause), d: private '''<br />'''output: a=0, b=1, c=42'''}} {{Note|'''a: shared, b: private, c: firstprivate (due to the reduction clause), d: private''' <br /> '''output: <code> a=0 </code>'''}}  
 
</quiz>
 
</quiz>
 
{{hidden end}}
 
{{hidden end}}

Revision as of 10:29, 2 November 2020



HPC.NRW
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 the default data scoping of variable in a parallel region when this variable is declared before a parallel region?

Click and submit to see the answer

2. What is the data scoping of the variables a, b, c and d in the following code snippet in the parallel region? What is printed when executing the code?

Click and submit to see the answer

3. The following code snippet is wrong due to a missing data sharing attribute. How can you fix it?

Click and submit to see the answer