基于并行稀疏矩阵的高性能图算法
在许多应用领域,如计算生物学、网络搜索和知识发现等,对图和其他离散结构的大规模计算变得越来越重要。然而,高性能组合计算领域仍处于起步阶段,与数值科学计算形成鲜明对比。本文将探讨如何利用高性能数值计算的工具,特别是并行稀疏矩阵算法和数据结构,构建一个强大的图并行计算基础设施。
1. 引言
高性能应用越来越多地结合了数值和组合算法。过去,高性能计算的研究主要集中在数值算法上,我们拥有丰富的高性能数值计算工具。但对于大规模组合计算,可用的工具却很少。
我们的目标是构建一套通用工具,让科学家和工程师能够尽可能轻松地使用现代数值和组合工具开发应用。稀疏矩阵计算可以对并行应用中的不规则数据结构、分解和不规则访问模式进行结构化表示。
稀疏矩阵是表示图的一种便捷方式。由于稀疏矩阵在Matlab及其许多并行方言中是一等公民,因此利用稀疏矩阵和图之间的对偶性来开发丰富的数值和组合计算基础设施是很自然的。
2. 稀疏矩阵与图
每个稀疏矩阵问题都是一个图问题,反之亦然。在设计稀疏矩阵数据结构和算法的综合基础设施时,有一些基本设计原则需要注意:
1. 稀疏矩阵的存储应为θ(max(n, nnz))。
2. 稀疏矩阵操作的时间应大致与访问的数据大小和对其进行的非零算术运算的数量成正比。
图由一组顶点V和连接它们的边E组成。图可以用元组 (u, v, w) 表示,这意味着从顶点u到顶点v存在一条权重为w的有向边,这与稀疏矩阵中位置 (u, v) 处的非零值w相同。根据原则1,所需的存储为θ(|V| + |E|)。无向图由相应的对称稀疏矩阵表示。
稀疏矩阵操
超级会员免费看
订阅专栏 解锁全文
384

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



