Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何使OpenMP线程或任务在某个内核上运行_Multithreading_Task_Openmp_Core - Fatal编程技术网

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

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线程或任务在某个内核上运行?

我找到了,跟随链接,但是我找不到测试它的源代码。这也是英特尔的解决方案(我认为)。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启动的所有内容设置它。