[問題] openMP與MPI的問題

看板C_and_CPP (C/C++)作者 (翎)時間16年前 (2010/03/08 17:35), 編輯推噓1(108)
留言9則, 2人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 我主要程式是R(統計軟體)與C組成的 想把c檔改成可平行的方式運作,使用兩種平行方式openMP與mpi 以下是執行過程: .c檔=>.o檔=>.so檔=>給R使用 希望得到的正確結果: 在沒有使用openMP與MPI下,可以執行完畢 但加入openMP或mpi的指令後會有錯誤 程式跑出來的錯誤結果: 加入openMP指令後 會產生KMEANS_RLCA.so: undefined symbol: GOMP_parallel_end 加入mpi指令後 會產生KMEANS_RLCA.so: undefined symbol: MPI_Finalize 都是在R在load .so檔時發生的錯誤 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) linux gcc4.3.2 有問題的code: (請善用置底文標色功能) 補充說明: openMP方面在想是不是沒有抓到libgomp資料庫 但是不知道怎樣可以順利抓到 mpi方面 MPI_Init(),MPI_Finalize(),MPI_Comm_size(),MPI_Comm_rank() 一定要放在main程式裡面嗎? 因為我的c檔沒有主程式,都是副函數給R call使用的 拜託版上高手解救了!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.114.213

03/08 23:34, , 1F
把omp以及mpi該有的so給他們link
03/08 23:34, 1F

03/08 23:34, , 2F
mpi應該要mpirun吧?
03/08 23:34, 2F

03/09 12:56, , 3F
mpi有用mpicc編譯過在用R呼叫執行
03/09 12:56, 3F

03/09 12:58, , 4F
omp以及mpi該有的so不會自行link嗎?
03/09 12:58, 4F

03/09 12:59, , 5F
編譯成執行檔才會
03/09 12:59, 5F

03/09 13:00, , 6F
omp如果使用非gcc的,如omni,他還會把main改為ompc_main
03/09 13:00, 6F

03/09 13:00, , 7F
而啟動的是static lib的omp_main.o的main
03/09 13:00, 7F

03/09 13:09, , 8F
omp是用gcc編譯過後給R呼叫,而mpi是用mpicc編譯過後給R
03/09 13:09, 8F

03/09 13:10, , 9F
這樣情況下他們的SO會link到嗎?
03/09 13:10, 9F
文章代碼(AID): #1BbCJyMt (C_and_CPP)
文章代碼(AID): #1BbCJyMt (C_and_CPP)