2012-02-29 18 views
1

您好我在一個系統上運行linux,每個節點有64個核心,每個核心有4個處理器,我試圖在一個特定的處理器上運行一個C++程序(在16個核心上) ,當我將OMP_NUM_THREADS設置爲16並運行我的程序時,在HTOP中查看的結果顯示工作分佈在4個處理器上,我如何設置OpenMP以僅在一個處理器上運行用openMP指定一個特定的處理器

+2

[相關](http://stackoverflow.com/q/8325566/4279) – jfs 2012-02-29 12:51:12

+0

@ J.F.Sebastian謝謝 – pyCthon 2012-03-01 07:08:34

回答

1

我認爲this question的答案涵蓋了它漂亮好。答案是在OpenMP中沒有用於設置處理器的語言級結構;最近只有OpenMP(3.1)具有一種機制,可以確保某個線程一旦啓動就保留在給定的處理器上(稱爲「處理器親和性」)。

但是,大多數OpenMP實現超出了標準,允許您將線程綁定到特定的核心或套接字。另外,您的環境可能有啓動機制(例如,用於linux的numactl),它允許您在啓動時設置綁定。