567
社区成员




List ml; //my_list
Element *e;
#pragma omp parallel
#pragma omp single
{ for(e=ml->first;e;e=e->next)
#pragma omp task
process(e);
}
List ml; //my_list
Element *e;
#pragma omp parallel
#pragma omp single
{ for(e=ml->first;e;e=e->next)
#pragma omp task firstprivate(e)
process(e);
}
List ml; //my_list
Element *e;
#pragma omp parallel
#pragma omp single private(e)
{
for(e=ml->first;e;e=e->next)
#pragma omp task
process(e);
}
List ml; //my_list
#pragma omp parallel
{
Element *e;
for(e=ml->first;e;e=e->next)
#pragma omp task
process(e);
}
int main()
{
int sum = 0;
#pragma omp parallel for
for(int i = 0;i<5;++i)
++sum;
cout<<sum;
}
int fib ( int n )
{
int x ,y;
if ( n < 2 ) return n;
#pragma omp task //shared(x)
{
x = fib(n-1);
}
#pragma omp task// shared(y)
y = fib(n-2);
#pragma omp taskwait
return x+y;
}
int main()
{
cout<<fib(5);
}
int fib ( int n )
{
int x ,y;
if ( n < 2 ) return n;
#pragma omp task //shared(x)
{
x = fib(n-1);
}
#pragma omp task// shared(y)
y = fib(n-2);
#pragma omp taskwait
return x+y;
}
int main()
{
cout<<fib(5);
}
#include <stdio.h>
#include <omp.h>
int fib(int n)
{
int i, j;
if (n<2)
return n;
else
{
#pragma omp task shared(i) firstprivate(n)
i=fib(n-1);
#pragma omp task shared(j) firstprivate(n)
j=fib(n-2);
#pragma omp taskwait
return i+j;
}
}
int main()
{
int n = 10;
omp_set_dynamic(0);
omp_set_num_threads(4);
#pragma omp parallel shared(n)
{
#pragma omp single
printf ("fib(%d) = %d\n", n, fib(n));
}
}
int fib ( int n )
{
int x,y;
if ( n < 2 ) return n;
#pragma omp task shared(x)
x = fib(n-1);
#pragma omp task shared(y)
y = fib(n-2);
#pragma omp taskwait
return x+y;
}