默认情况下,OpenMP并行线程数等于系统中CPU核数(超线程开启下X2),即 $cat /proc/cpuinfo 看到的core的个数 。如果你需要修改,一个方法是设置环境变量:
$set OMP_NUM_THREADS=N
并发线程的数量由icc自动处理。如果需要批量做不同线程数的测试,推荐编写自动测试脚本,写上:
env OMP_NUM_THREADS=N ./YOUR_EXE
要么修改源代码,用下面另一种方法。
另一个方法是使用运行时函数:int omp_set_num_threads(int NumThreads)
可以覆盖上面的环境变量定义