如何使OpenMP线程或任务在某个核心上运行

时间:2011-10-09 11:04:45

标签: multithreading task openmp core

有没有办法让OMP线程或任务在某个核心上运行? 我找到this,跟着链接,但我找不到测试它的源代码。这也是英特尔的解决方案(我认为)。 OMP是否支持这个?

1 个答案:

答案 0 :(得分:4)

据我所知,在OpemMP 3.0中,它们都是特定于供应商的扩展。

例如,GOMP(GCC的实现)遵循环境变量GOMP_CPU_AFFINITY来设置线程关联。

在他们的documentation中,他们举了例子:

GOMP_CPU_AFFINITY="0 3 1-2 4-15:2"

他们说:

  

将初始线程绑定到CPU 0,第二个绑定到CPU 3,第三个   到CPU 1,第四到CPU 2,第五到CPU 4,第六到   分别为CPU,6,10,10和12,然后启动   从列表的开头返回。 GOMP_CPU_AFFINITY = 0   将所有线程绑定到CPU 0