Re: C++ OpenMP 多CPU同時處理可能的問題
: int array[3G];
: int counters[64M];
: for( int i = 0; i < 3G; i++) {
: counter[array[i] % 64M] ++;
: }
開始擔心會不會是我問題沒看清楚
我這樣解讀你看是不是合乎你運算式的意思
counter[array[i] % 64M] ++;
所以counter中的i可以表示成 x + n*64M, 0 <= x < 64M x,n 為正整數(包括零)
然後會被 mod 掉只剩下 x
因為每個 x 都不相同
不同n但同個x時,有同時計算的可能性
所以
for( int i=0; i < (3G/64M); i++){
OpenMP for (int j = 0; j< 64M; j++){
counter[ array[j+i*64M] % 64M] ++;
}
}
這樣不知道是不是合乎你的需求?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.96.207
→
05/20 05:50, , 1F
05/20 05:50, 1F
→
05/20 07:32, , 2F
05/20 07:32, 2F
→
05/20 07:32, , 3F
05/20 07:32, 3F
推
05/20 08:23, , 4F
05/20 08:23, 4F
→
05/20 08:24, , 5F
05/20 08:24, 5F
→
05/20 10:07, , 6F
05/20 10:07, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 7 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章