2016-01-28 26 views
0
核心的集數

我上英特爾®至強®處理器上運行我的程序E5-1650 V3 http://ark.intel.com/products/82765/Intel-Xeon-Processor-E5-1650-v3-15M-Cache-3_50-GHzOpenMP中

處理器有6個CPU(6芯),我想設置的數我的prorgram正在使用的CPU。我的應用程序正在使用openmp。 我不是要設置線程的數量,而是設置CPU的數量。我怎樣才能做到這一點?

+1

OMP_NUM_THREADS env var或omp_set_num_threads(int)運行時調用。 – Jeff

回答

0

您是否嘗試過使用環境變量來控制線程關聯?

如果您使用gcc編譯代碼,您可能需要使用GOMP_CPU_AFFINITYOMP_PLACES

對於英特爾編譯器,有KMP_AFFINITYKMP_PLACE_THREADS,請參閱Intel documentation

+0

這不是問題的答案,但它是另一個問題的好答案。 – Jeff

+0

問題是關於設置內核數量,而不是線程數量。有些情況下已經設置了OMP_NUM_THREADS,但所有線程都在一個內核上執行,而其他線程則處於空閒狀態。在這種情況下,設置線程關聯可能會有幫助。 – Figaro

+0

是的,但親和力不控制任何計數 - 線程,核心或其他。 – Jeff