static
means
that it is decided at the beginning which thread will do which values, where as dynamic
means
that each thread will work on a chunk of values and then take the next chunk which hasn‘t been worked on by any thread. The latter allows better balancing (in case the work varies between different values for the loop variable), but requires some communication
overhead. – Walter Jun
1 ‘12 at 12:54P.S. If local variables are automatically private, what is the point of using private clause?
The point is presumably that in earlier versions of C you needed to declare all variables at the beginning of the function, and this is still the prevailing style.
That is, code such as this:
#pragma omp parallel
{
int x;
}
is the preferred way in C++. But in some versions of C you cannot use this code, you need to use the private
clause.
原文地址:http://blog.csdn.net/mathgeophysics/article/details/27955621