我在Snow Leopard和linux上編譯了這部分代碼,並得到了不同的結果。在Snow leopard中,omp_get_max_threads的第一個調用返回2,這是我的核心數量,而第二個返回1.在Linux上,兩個調用返回4,這是我的核心數。我認爲Linux有正確的行爲,對嗎?都是正確的,我只是誤解了這個函數?並行區域中omp_get_max_threads的行爲
Mac的輸出:
In a serial region; max threads are : 2
In a parallel region; max threads are : 1
Linux的輸出:
In a serial region; max threads are : 4
In a parallel region; max threads are : 4
您使用的是哪個gcc? 4.0或4.2? – bmargulies 2010-01-16 19:40:19
Mac:gcc version 4.2.1(Apple Inc. build 5646)(dot 1) Linux:gcc版本4.4.1 [gcc-4_4-branch revision 150839](SUSE Linux) 實際上,做了一些更多的測試,運行gcc版本4.1.1的RHEL 5 20070105(Red Hat 4.1.1-52)給出了我爲mac描述的行爲 – cowsandmilk 2010-01-16 19:56:13