[問題] 初次使用OpenMP (DEV C++上)的問題

看板C_and_CPP (C/C++)作者 (Doraemon)時間14年前 (2012/03/03 02:53), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 問題(Question): 小弟是初次使用OpenMP這個東西,聽說可以讓多核心電腦平行執行單一程式 (在下也只是好幾年前學過一個學期的程式設計而已,算是個新手吧) 而小弟原本用Dev C++ 4.9.9.2,好像GCC版本太舊,認不得 omp.h 因此就去下載其他人更新後的Dev C++ 5.1.1 GCC版本好像是4.6.2 在編譯時就沒有出問題了 想用網路上的簡單範例測試一下 可是好像都沒辦法跑出預期的結果 不知道是不是還要在選項那邊設定什麼? 不然小弟都沒辦法跑出預期的結果 (也就是雙核心電腦有平行處理) 還是DEV C++上不能使用OpenMP呢 先謝謝大家了 預期的正確結果(Expected Output): 0 , 5 , 1 , 6 , 2 , 7 , 3 , 8 , 4 , 9 錯誤結果(Wrong Output): 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 程式碼(Code):(請善用置底文網頁, 記得排版) #include <omp.h> #include <stdio.h> #include <stdlib.h> void Test( int n ) { for( int i = 0; i < 10000; ++ i ) { //do nothing, just waste time } printf( "%d, ", n ); } int main(int argc, char* argv[]) { #pragma omp parallel for num_threads(2) for( int i = 0; i < 10; ++ i ) Test( i ); system( "pause" ); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.6.52

03/03 04:41, , 1F
gcc要加-fopenmp這個參數
03/03 04:41, 1F

03/03 13:26, , 2F
總算可以用了 感謝樓上的幫忙
03/03 13:26, 2F

03/03 13:27, , 3F
不過好像還要把resource中的libgomp-1.dll 和
03/03 13:27, 3F

03/03 13:28, , 4F
pthreadGC2.dll 放到system32的資料夾下才可使用
03/03 13:28, 4F
※ 編輯: leoboy119 來自: 140.112.24.222 (03/03 13:29)

03/03 14:37, , 5F
-static 能嗎?
03/03 14:37, 5F

03/03 21:57, , 6F
不是把libgomo-1和pthreadGC2放到system32底下
03/03 21:57, 6F

03/03 21:57, , 7F
是你要在編譯時期加參數進去才對
03/03 21:57, 7F
文章代碼(AID): #1FKHT558 (C_and_CPP)
文章代碼(AID): #1FKHT558 (C_and_CPP)