小猫鼬: 一个用于GPU上的动态图算法框架
摘要:动态图算法在实现上具有挑战性,因为它们的拓扑结构和不规则访问模式各不相同。现实世界中的图具有动态性,经常发生边缘和顶点的添加和删除。动态图的典型例子包括社交网络、协作网络和道路网络。在动态图上反复应用静态算法是低效的。不幸的是,我们对如何在GPU等大规模并行体系结构上高效处理动态图的方法知之甚少。现有的表示和处理动态图的方法要么不通用,要么低效。在这项工作中,我们提出了一个用于动态图算法的基于库的框架,该框架提出了一种适用于GPU的图表示方法,并利用了warp协同执行模型。该库被命名为Meerkat,它建立在最近提出的GPU上的动态图表示的基础上。该表示利用基于哈希表的机制来存储顶点的邻居。Meerkat还能够快速迭代遍历一组顶点,如整个顶点集或顶点的邻居。基于Meerkat中编码的高效迭代模式,我们实现了广度优先搜索、单源最短路径、三角形计数、弱连通分量和PageRank等流行图算法的动态版本。与最先进的动态图分析框架Hornet相比,Meerkat的查询、插入和删除操作速度分别快了12.6倍、12.94倍和6.1倍。使用各种真实世界的图,我们观察到Meerkat显著提高了底层动态图算法的效率。平均而言,Meerkat在BFS方面表现了1.17倍的性能改进,在SSSP方面表现了1.32倍的改进,在PageRank方面表现了1.74倍的改进,在WCC方面表现了6.08倍的改进,优于Hornet。
作者:Kevin Jude Concessao, Unnikrishnan Cheramangalath, MJ Ricky Dev, Rupesh Nasre
论文ID:2305.17813
分类:Distributed, Parallel, and Cluster Computing
分类简称:cs.DC
提交时间:2023-06-05