OpenMP中的巢状pragma omp parallel理解有关问题

OpenMP中的巢状pragma omp parallel理解问题
在http://msdn.microsoft.com/zh-cn/magazine/cc163717(en-us).aspx

有这么个2例子,假设运行环境是2core:

C/C++ code
omp_set_dynamic(1);
#include <stdio.h>
#include <omp.h>

int main() 
   omp_set_dynamic(1);
   omp_set_num_threads(10);
   #pragma omp parallel        // parallel region 3
   {
      #pragma omp parallel 
      {
         #pragma omp single
         printf("Num threads in nesting disabled region is = %d\n", 
          omp_get_num_threads());
      }
   }
   printf("\n");
   omp_set_nested(1);
   #pragma omp parallel        // parallel region 4
   {
      #pragma omp parallel 
      {
         #pragma omp single
         printf("Num threads in nested region is = %d\n", 
          omp_get_num_threads());
      }
   }
}



Running on a typical dual-processor computer, a program compiled using Visual Studio 2005 prints the following from this code: 
//parallel region 3

Num threads in nesting disabled region is = 1
Num threads in nesting disabled region is = 1

//parallel region 4
Num threads in nested region is = 2
Num threads in nested region is = 2

这是说明:
In the third and fourth parallel regions, you see the effect of having nesting enabled or disabled. In parallel region three, we disabled nesting, and in this case no new threads were allocated for the nested parallel regions. Thus there was a total of two threads for both the outer and nested parallel regions. In parallel region four, where we enabled nesting, the nested parallel region created a thread team with two threads (a total of four threads in the nested parallel region). 

我没有理解,parallel region 3在未设置nested时,为何产输出2次?
Num threads in nesting disabled region is = 1
Num threads in nesting disabled region is = 1






------解决方案--------------------
http://blog.csdn.net/fengbingchun/article/details/6575445