网页排名并行计算与矩阵乘法的优化策略
在当今的大数据和网络环境下,网页排名(PageRank)计算以及矩阵乘法(如DGEMM)这类计算密集型任务的高效执行至关重要。本文将介绍网页排名并行算法的优化方法,以及缓存无关和缓存感知的DGEMM实现方式,并对比它们的性能。
并行PageRank算法
并行PageRank算法旨在提高网页排名计算的效率。以下是其粗粒度并行算法的伪代码:
Parallel-PageRank(Ak, vk)
1. pk ← vk
2. tk ← 0
3. repeat
4.
(a) p ← Expand(pk)
(b) qk ← αAkp
5.
(a) γk ← ∥pk∥1 − ∥qk∥1
(b) δk ← ∥pk − tk∥1
(c) ⟨γ, δ⟩ ← AllReduceSum(⟨γk, δk⟩)
6. tk ← pk
7. pk ← qk + γvk
8. until δ < ε
9. return pk
在网页数据中,很多页面可能没有入链。利用这一特性可以提高并行PageRank算法的效率。由于没有入链的页面对应矩阵A的零行,在上述算法的步骤4中进行矩阵 - 向量乘法时,对应的q向量元素将为零。因此,对于每个没有入链的页面i,pi迭代可以简单地更新为γvi,而不是步骤7中的DAXPY操作。为避免可能的扩展通信,在算法开始时,将vi复制到矩阵A的第i列至少有一个非零元素的处理器中,然后让这些处理器在每次迭代时冗余计算pi = γvi。
行划分策略
为了在稀疏矩阵
超级会员免费看
订阅专栏 解锁全文
23

被折叠的 条评论
为什么被折叠?



