2013-10-16 66 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