hi everyone,
i'm working on openmp on C6678. I have a few question about the nested , dynamic features and the untied clause.
1. nested feature
{ #pragma omp parallel for for(i = 0; i > 3;i++) { printf("core%d outer\n",omp_get_thread_num()); #pragma omp parallel for for(j = 0; j < 3;j++) printf("core%d inner\n",omp_get_thread_num()); }
the prints in console:
[C66xx_0]core0 outer
core0 inner
core0 inner
core0 inner
[C66xx_1]core1 outer
[C66xx_2]core2 outer
[C66xx_1]core0 inner
[C66xx_2]core0 inner
[C66xx_1]core0 inner
[C66xx_2]core0 inner
[C66xx_1]core0 inner
[C66xx_2]core0 inner
why the nested iterations on core1 and core2 print "core0"? Dose omp really implement the nested feature that creates new threads when nested?
2.dynamic feature
the dynamic here is the feature that allows the runtime to dynamically change the parallel thread number by invoking omp_set_dynamic(1);.I read the source code and find that the dynamic feature is implemented by gomp_resolve_num_threads() who calls MultiProc_getNumOfProcsInCluster(). I wonder What MultiProc_getNumOfProcsInCluster(). actually returns when there's no explicit configuration on cluster with one 6678 board. and what's the difference with multiproc_getNumOfProcessor().
3. Does omp implement the untied clause? If it's yes, then how? I don't see it clear in the source code.
Thank you !