在EREW机器中使用n个处理器的算法C [i] = A [B [i]]

时间:2014-11-05 08:35:16

标签: algorithm parallel-processing

设A是一个大小为n的数组,它只包含正数。

设B是大小为n的数组,它包含[1,n]范围内的数字。

设C是一个大小为n的数组,我们要在EREW机器中使用n个处理器在O(log ^ 2(n))中做C [i] = A [B [i]]。

请注意,由于B可能包含重复项,因此可能会发生读取冲突。

我的策略是通过B的信息扩大A,这样我们就可以做C [i] = A [B [i] + i]来解决阅读冲突问题。然而,经过几个小时的尝试,我发现如果没有阅读冲突就不可能以这种方式扩大A.我在这里要求提供一些提示或建议。因此,不需要详细的解决方案。

1 个答案:

答案 0 :(得分:1)

当B不减少时,你能解决问题吗? Batcher的bitonic mergesort在EREW上及时运行O(log ^ 2 n)。