我想找到一个多线程算法,将$ nxn $矩阵乘以一个n-vector,实现$ \ Theta(n ^ 2 / lgn)$ parallelism,同时保持$ \ Theta(n ^ 2)$ work。< / p>
我知道一个非法的解决方案,但有关如何使跨度的提示下降到$ \ Theta(lgn)$?
答案 0 :(得分:1)
CLRS 教科书中的程序名为 MAT-VEC ,实现了此问题。但它的跨度是 Theta of N 。要将其降低到对数跨度,您可以使用多线程除法和替换来替换内部for循环中的串行求和。征服战略。为了做到这一点,递归地划分范围并将一侧与另一侧并行生成,然后同步并返回左右对齐的值。