2013-10-16 106 views
0

使用數組A [m X n],[0..255] 中的[i] [j]我打算將數組拆分爲2或4個部分。計算每個部分的頻率。 合併後。 你能告訴我如何使用OpenMP來實現這個!並行計算元素的計數頻率

+2

您嘗試過什麼嗎? – kangshiyin

+0

不要求用戶爲你做工作。而是嘗試學習OpenMP如何工作並編寫一些代碼。如果您遇到問題,請尋找解決方案或提出問題。 –

+0

我分成n部分(n個線程)。我使用n個數組freq [n] [256]。每個線程中的每個數組計數頻率。結合n個數組後。我的筆記本電腦2核/ 4線程,num_threads = 2,比使用1線程更快,但是如果num_theads = 4,比使用2線程更慢。我發佈我的問題,希望有人向我展示其他建議。 – shang12

回答

0

沒有代碼,很難說出你的程序出了什麼問題。你說你在組合n個數組?你是怎樣做的?如果它是Fortran,那麼你可能會使用數組減少。如果它是C/C++,那麼如何組合數組(OpenMP for C/C++不支持數組減少[除OpenMP 4.0中用戶定義的減少])。

乾杯, -michael

+0

不要使用減少。 Ex使用4個線程:4個數組freq [4] [256]。 Combine,frequency [i] = freq [0] [i] + freq [1] [i] + freq [2] [i] + freq [3] [i] – shang12