【问题标题】:Algorithm using n processors in EREW machine for C[i]=A[B[i]]C[i]=A[B[i]] 在 EREW 机器中使用 n 个处理器的算法
【发布时间】:2014-11-05 08:35:16
【问题描述】:

设 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 是不可能的,而不会出现阅读冲突。我在这里寻求一些提示或建议。因此,不需要详细的解决方案。

【问题讨论】:

    标签: algorithm parallel-processing


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 2020-09-05
      相关资源
      最近更新 更多