CSC/ECE 506 Spring 2015/37 mr: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 10: | Line 10: | ||
'''After loop distribution''' | '''After loop distribution''' | ||
<nowiki> for(i=0; i < n; i++) | |||
S1: a[i] = b[i-1] * a[i+1]; | S1: a[i] = b[i-1] * a[i+1]; | ||
for(i=0; i < n; i++) | for(i=0; i < n; i++) | ||
S3: c[i] = .2* c[i-1] * c[i]; | S3: c[i] = .2* c[i-1] * c[i]; | ||
for(i=0; i < n; i++) | for(i=0; i < n; i++) | ||
S2: b[i] = b[i] * 3; | S2: b[i] = b[i] * 3</nowiki>; | ||
'''Now write the parallelized code in openMP using C++''' | '''Now write the parallelized code in openMP using C++''' | ||
<nowiki>#pragma omp parallel shared(a,b,c)private(i) { | |||
#pragma omp parallel shared(a,b,c)private(i) { | |||
#pragma omp sections nowait | #pragma omp sections nowait | ||
{ | { | ||
Line 33: | Line 32: | ||
}//end omp sections | }//end omp sections | ||
} //end omp parallel | } //end omp parallel | ||
</nowiki> |
Revision as of 02:41, 29 January 2015
- Example 1
- Example 2
Parallelize the code below using loop distribution
for (i=0; i<n; i++) { S1: a[i] = b[i-1] * a[i+1]; S2: b[i] = b[i] * 3; S3: c[i] = .2 * (c[i-1] * c[i]); }
After loop distribution for(i=0; i < n; i++) S1: a[i] = b[i-1] * a[i+1]; for(i=0; i < n; i++) S3: c[i] = .2* c[i-1] * c[i]; for(i=0; i < n; i++) S2: b[i] = b[i] * 3;
Now write the parallelized code in openMP using C++ #pragma omp parallel shared(a,b,c)private(i) { #pragma omp sections nowait { #pragma omp section for(i=0; i < n; i++) a[i] = b[i-1] * a[i+1]; #pragma omp section for(i=0; i<n; i++) c[i] = .2* c[i-1]*c[i]; #pragma omp section for(i=0; i < n; i++) b[i] = b[i] * 3; }//end omp sections } //end omp parallel