2012-07-27 27 views
6

默認OpenMP指令:OMP - 比處理器數量更多的線程?

opm_get_num_threads給出了等於處理器/內核的線程數。

我有一個8核心機器,所以它給了我8個線程。這是最大的嗎?如果我故意指定超過8個,我可以獲得比8更多的線程嗎?

感謝

回答

7

,只要你想與您可以設置儘可能多線程:

int threads = 16; 
omp_set_num_threads(threads); 

http://msdn.microsoft.com/en-US/library/e16bady3%28v=vs.80%29

但可以肯定不是有個邏輯核心,你都知道使用多個線程的缺點在系統中。

+2

小心分享實際存在的弊端,而不是僅僅模糊地暗指他們? – 2012-07-27 18:18:40

+4

@LexiR在處理線程時會有開銷:調度,上下文切換,緩存爭用等等......並不是說使用比邏輯內核更多的線程永遠不會更好。但是,如果它被濫用了,會發生什麼事情會很有幫助。 – Mysticial 2012-07-27 18:24:40

+2

爲什麼修復代碼中的線程數?好的舊環境變量「OMP_NUM_THREADS」如何? – 2012-07-27 19:17:57