CREW 和 EREW 婴儿车上的布尔 OR 和 AND 问题
Posted
技术标签:
【中文标题】CREW 和 EREW 婴儿车上的布尔 OR 和 AND 问题【英文标题】:Boolean OR and AND problems on CREW and EREW Prams 【发布时间】:2013-09-21 02:05:47 【问题描述】:我正在学习 PRAM 算法。因为我们可以使用以下方法在 O(1) 时间内为 CRCW PRAM 计算布尔 OR。
令 A[0]= A[1]|A[2]|A[3]...|A[n] 是 n 位 A[1..n] 的布尔或。假设 A[0] 一开始就为零。在第一个时间步,处理器 i (1
类似地,我们可以解决 CRCW 的布尔 AND
我想知道我们如何为 CREW 和 EREW 解决这个问题。算法的时间和处理器界限是多少?
【问题讨论】:
【参考方案1】:我认为独占读取不是问题,因为每个处理器都在读取自己的位。问题出在独占写入部分,因为它们都必须写入 A[0]。我认为最好的方法是制作一种锦标赛树。因此,您可以 OR 对位并将结果提升到一个新的水平,直到您获得冠军。然后可以将最终结果写入A[0]。这将是 O(log n)。
【讨论】:
感谢回复 .. 所以 .. 考虑我们有 5 个元素 A[0]=1,A[1]=0,A[2]=1,A[3]=1,A [4]=1。那么对于 CREW 和 EREW,我们可以做的是在第一步是.. A[0] | A[1] 用于一个处理器,然后 A[1] | A[2] 用于第二个处理器等等,然后在下一步我们可以 OR 他们的答案是对的???那么什么可以被处理器绑定..它也是logn吗???谢谢 没错,你必须匹配 A[1] | A2];一个[3] |一个[4]; ... ; A[n-1] | A[n],然后他们在第二级的结果,依此类推。如果要达到 O(log n) 时间,则第一轮至少需要 n/2 个处理器(这是操作数)。然后,您可以在每一步中将处理器数量减少一半。但由于第一步,这仍然是 O(n) 个处理器。以上是关于CREW 和 EREW 婴儿车上的布尔 OR 和 AND 问题的主要内容,如果未能解决你的问题,请参考以下文章