中文

Meerkat:一种面向 GPU 上动态图算法的框架

分布式、并行与集群计算 2023-06-05 v2

摘要

图算法因其多变的拓扑与不规则访问模式而难以实现。现实世界中的图本质上是动态的,会频繁经历边与顶点的添加及删除。动态图的典型例子包括社交网络、协作网络与道路网络。在动态图上重复应用静态算法效率低下。遗憾的是,对于如何在 GPU 等大规模并行架构上高效处理动态图,我们知之甚少。现有的动态图表示与处理方法要么不够通用,要么效率低下。本文提出一个基于库的动态图算法框架,其提出一种 GPU 定制图表示并利用 warp 协同执行模型。该库名为 Meerkat,构建于近期提出的 GPU 动态图表示之上。该表示利用基于哈希表的机制存储顶点的邻域。Meerkat 还支持对一组顶点(如全部顶点或某顶点的邻居)的快速迭代。基于 Meerkat 中编码的高效迭代模式,我们实现了广度优先搜索、单源最短路径、三角形计数、弱连通分量与 PageRank 等流行图算法的动态版本。相比最先进的动态图分析框架 Hornet,Meerkat 在查询、插入与删除操作上分别快 12.6×12.6\times12.94×12.94\times6.1×6.1\times。使用多种真实世界图,我们观察到 Meerkat 显著提升了底层动态图算法的效率。Meerkat 在 BFS 上平均优于 Hornet 1.17×1.17\times,SSSP 1.32×1.32\times,PageRank 1.74×1.74\times,WCC 6.08×6.08\times

关键词

引用

@article{arxiv.2305.17813,
  title  = {Meerkat: A framework for Dynamic Graph Algorithms on GPUs},
  author = {Kevin Jude Concessao and Unnikrishnan Cheramangalath and MJ Ricky Dev and Rupesh Nasre},
  journal= {arXiv preprint arXiv:2305.17813},
  year   = {2023}
}