我有以下代码:
float arr[1000];
for(int j=0; j<1000; ++j)
{
#pragma omp parallel num_threads(t1)
{
#pragma omp for
for(int i=0; i<1000; ++i) arr[i] = std::pow(i,2);
}
#pragma omp parallel num_threads(t2)
{
#pragma omp for
for(int i=0; i<1000; ++i) arr[i] = std::pow(i,2);
}
}
Intel(R)Xeon(R)CPU E5-2699 v3 @ 2.30GHz,每个插槽的核心数:18,虚拟化:VT-x,插槽:2,L1d缓存:32K,L1i缓存:32K,L2缓存:256K ,L3缓存:46080K,CentOS 7,gcc 4.8.3
使用rdtsc或omp_get_wtime函数测量的main for()之前和之后的时间,趋势非常相似。
OpenMP中各个部门(团队)之间的线程池是否有任何问题? 提前谢谢。