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