Multithreading 如何使OpenMP线程或任务在某个内核上运行
有没有办法让OMP线程或任务在某个内核上运行?Multithreading 如何使OpenMP线程或任务在某个内核上运行,multithreading,task,openmp,core,Multithreading,Task,Openmp,Core,有没有办法让OMP线程或任务在某个内核上运行? 我找到了,跟随链接,但是我找不到测试它的源代码。这也是英特尔的解决方案(我认为)。OMP本身支持吗?据我所知,在OPEMP3.0中,它们都是特定于供应商的扩展 例如,GOMP(GCC的实现)使用环境变量GOMP\u CPU\u AFFINITY来设置线程亲缘关系 他们在报告中举例说明: GOMP_CPU_AFFINITY="0 3 1-2 4-15:2" 他们说: 将初始线程绑定到CPU 0,第二个绑定到CPU 3,第三个绑定到CPU 3 到CP
我找到了,跟随链接,但是我找不到测试它的源代码。这也是英特尔的解决方案(我认为)。OMP本身支持吗?据我所知,在OPEMP3.0中,它们都是特定于供应商的扩展 例如,GOMP(GCC的实现)使用环境变量
GOMP\u CPU\u AFFINITY
来设置线程亲缘关系
他们在报告中举例说明:
GOMP_CPU_AFFINITY="0 3 1-2 4-15:2"
他们说:
将初始线程绑定到CPU 0,第二个绑定到CPU 3,第三个绑定到CPU 3
到CPU 1,第四个到CPU 2,第五个到CPU 4,第六个到
分别向CPU 6、8、10、12和14发送第十个数据,然后启动
从列表的开头向后分配。GOMP_CPU_亲和性=0
将所有线程绑定到CPU 0
如果我可以问,我如何设置环境变量?我不知道怎么做。如果您通常使用
/myprog
启动程序,您可以通过使用变量=值。/myprog
启动程序来设置该程序的If。您还可以通过使用导出变量=值
(某些shell可能会使您从设置中拆分导出)为给定shell启动的所有内容设置它。