1
是否有方法使某个内核上运行OMP线程或任务?
我发现this,跟着链接,但我找不到源代码来测试它。这也是英特尔的解决方案(我认为)。 OMP本身是否支持它?如何使OpenMP线程或任务在特定内核上运行
是否有方法使某个内核上运行OMP线程或任务?
我发现this,跟着链接,但我找不到源代码来测试它。这也是英特尔的解决方案(我认为)。 OMP本身是否支持它?如何使OpenMP线程或任务在特定内核上运行
就我所知的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 ,第四个分配给CPU2,第五个分配给CPU4,第六个分配到第二个分配给 ,分别分配给CPU6,8,10,12和14,然后从列表开始处开始分配 。 GOMP_CPU_AFFINITY = 0 绑定所有线程到CPU 0
如果我可能会问,我该如何设置环境变量?我不知道该怎么做。 – atoMerz
如果您通常使用'。/ myprog'启动程序,则可以通过以'VARIABLE = value。/ myprog'启动该程序来设置该程序。您还可以通过使用'export VARIABLE = value'(某些shell可能会使您从设置中分离导出)来为给定shell启动的所有内容进行设置。 – Flexo