PruX:优化图500基准中并行广度优先搜索算法的通信剪枝方法
1. 并行广度优先搜索算法优化概述
在图处理领域,并行广度优先搜索(BFS)算法是一项重要的技术,而图500基准测试为评估BFS算法性能提供了标准。其性能评估标准是每秒遍历的边数(TEPS),计算公式如下:
- 第i次迭代的TEPS:$TEPS_i = \frac{num_{travali}}{bfs_time_i}$
- 最终标准(平均TEPS):$mean\ TEPS = \frac{\sum_{i = 1}^{64} TEPS_i}{64}$
当遍历边数几乎恒定时,提升BFS算法性能的关键在于减少BFS运行时间,它由计算时间和通信时间组成。研究发现,图500原始并行BFS实现中存在大量无效通信,因此可通过修改通信模式来减少无效通信,从而提升性能。
2. 图存储优化
PruX方法基于图500的原始并行BFS实现,采用1D分区方法进行图分区,并将图数据存储为邻接矩阵后转换为压缩稀疏行(CSR)矩阵。转换过程如下:
- 假设邻接矩阵是$n’×n’$的稀疏矩阵,存储边数为m。
- 数组 row_offset 长度为$n’ + 1$, column_indices 长度为m, values 长度为m。
- row_offset 数组的第$i + 1$个元素减去第i个元素,表示邻接矩阵第i行存储的边数。
- column_indices 数组按行连续存储邻接矩阵中边的目标顶点, values
超级会员免费看
订阅专栏 解锁全文
991

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



