使用OpenMP合并两个阵列,但不加速

时间:2019-05-09 22:03:59

标签: c openmp

我必须将两个数组与OpenMP合并。想法是通过联合排序将数组划分为p个段(其中p是处理器数量),然后让这些段中的每个处理器合并。

问题是,与两个数组的非并行合并相比,根本没有提速。

我检查了ab数组的分割范围是否正确,并且据我所知。 coRank函数在ac的{​​{1}}中将b的值排名,据我所知这似乎是正确的,不应引起问题。如果我们查看Windows Task Manager的CPU使用情况,则在程序启动时所有CPU内核的峰值都相同,因此我假设所有CPU实际上都可以执行某项操作。合并后的数组是正确的,但是它需要一个顺序的合并。

a

merge函数的输出是正确的,但是它应该比顺序合并要快,而事实并非如此。

0 个答案:

没有答案