Re: [問題] openmp語法的問題

看板C_and_CPP (C/C++)作者 (渴望平凡的幸福)時間16年前 (2009/03/11 00:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《nicholas1119 (尼可拉斯)》之銘言: : 想問一個很簡單的openmp的語法問題 : 目的:想利用多核心平行處理的優勢 縮短產生亂數矩陣的時間 : 下列是小範例 10*10 二維矩陣 : ---------------------------------------------------------------- : #include <omp.h> : #include <stdio.h> : #include <stdlib.h> : int main(int argc, char* argv[]) : { #pragma omp parallel for for(int i = 0; i <= 10; i++ ) { for(int j = 0; j <= 10; j++) { a[i][j] = RAND(); } } 這樣內圈的 j 應該會自動 private 才對 ... j 宣告在外面這個 for 迴圈 "裡面" 就可以了 : system( "pause" ); : return 0; : } : ------------------------------------------------------------------ : 問題出在這個寫法 會造成 : 假設CPU1 與 CPU2 同時以i=1 與 i=6 進入迴圈 : CPU1 i=1 j=1 那麼CPU2 i=6 j=2 : 所以 我就無法產生a[1][2]的亂數了 : 簡單來說 這個語法會造成無法所有的組合都能產生亂數 : 我想要的是 CPU1 i=1 進入迴圈 能夠單獨跑j迴圈(且依序) : CPU2 i=6 進入迴圈 也能單獨跑j迴圈(且依序) : 不知道有哪些高手有這方面的經驗 可以指導一下 : 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.40.88
文章代碼(AID): #19jfQl4U (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19jfQl4U (C_and_CPP)