Meerkat: A Framework for Dynamic Graph Algorithms on GPUs

IF 0.9 4区 计算机科学 Q3 COMPUTER SCIENCE, THEORY & METHODS
Kevin Jude Concessao, Unnikrishnan Cheramangalath, Ricky Dev, Rupesh Nasre
{"title":"Meerkat: A Framework for Dynamic Graph Algorithms on GPUs","authors":"Kevin Jude Concessao, Unnikrishnan Cheramangalath, Ricky Dev, Rupesh Nasre","doi":"10.1007/s10766-024-00774-z","DOIUrl":null,"url":null,"abstract":"<p>Graph algorithms are challenging to implement due to their varying topology and irregular access patterns. Real-world graphs are dynamic in nature and routinely undergo edge and vertex additions, as well as, deletions. Typical examples of dynamic graphs are social networks, collaboration networks, and road networks. Applying static algorithms repeatedly on dynamic graphs is inefficient. Further, due to the rapid growth of unstructured and semi-structured data, graph algorithms demand efficient parallel processing. Unfortunately, we know only a little about how to efficiently process dynamic graphs on massively parallel architectures such as GPUs. Existing approaches to represent and process dynamic graphs are either not general or are inefficient. In this work, we propose a graph library for dynamic graph algorithms over a GPU-tailored graph representation and exploits the <i>warp-cooperative work-sharing execution model</i>. The library, named <span>Meerkat</span>, builds upon a recently proposed dynamic graph representation on GPUs. This representation exploits a hashtable-based mechanism to store a vertex’s neighborhood. <span>Meerkat</span> also enables fast iteration through a group of vertices, a pattern common and crucial for achieving performance in graph applications. Our framework supports dynamic edge additions and edge deletions, along with their batched versions. Based on the efficient iterative patterns encoded in <span>Meerkat</span>, we implement dynamic versions of popular graph algorithms such as breadth-first search, single-source shortest paths, triangle counting, PageRank, and weakly connected components. We evaluated our implementations over the ones in other publicly available dynamic graph data structures and frameworks: <i>GPMA</i>, <i>Hornet</i>, and <i>faimGraph</i>. Using a variety of real-world graphs, we observe that <span>Meerkat</span> significantly improves the efficiency of the underlying dynamic graph algorithm, outperforming these frameworks.</p>","PeriodicalId":14313,"journal":{"name":"International Journal of Parallel Programming","volume":null,"pages":null},"PeriodicalIF":0.9000,"publicationDate":"2024-09-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Journal of Parallel Programming","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1007/s10766-024-00774-z","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
引用次数: 0

Abstract

Graph algorithms are challenging to implement due to their varying topology and irregular access patterns. Real-world graphs are dynamic in nature and routinely undergo edge and vertex additions, as well as, deletions. Typical examples of dynamic graphs are social networks, collaboration networks, and road networks. Applying static algorithms repeatedly on dynamic graphs is inefficient. Further, due to the rapid growth of unstructured and semi-structured data, graph algorithms demand efficient parallel processing. Unfortunately, we know only a little about how to efficiently process dynamic graphs on massively parallel architectures such as GPUs. Existing approaches to represent and process dynamic graphs are either not general or are inefficient. In this work, we propose a graph library for dynamic graph algorithms over a GPU-tailored graph representation and exploits the warp-cooperative work-sharing execution model. The library, named Meerkat, builds upon a recently proposed dynamic graph representation on GPUs. This representation exploits a hashtable-based mechanism to store a vertex’s neighborhood. Meerkat also enables fast iteration through a group of vertices, a pattern common and crucial for achieving performance in graph applications. Our framework supports dynamic edge additions and edge deletions, along with their batched versions. Based on the efficient iterative patterns encoded in Meerkat, we implement dynamic versions of popular graph algorithms such as breadth-first search, single-source shortest paths, triangle counting, PageRank, and weakly connected components. We evaluated our implementations over the ones in other publicly available dynamic graph data structures and frameworks: GPMA, Hornet, and faimGraph. Using a variety of real-world graphs, we observe that Meerkat significantly improves the efficiency of the underlying dynamic graph algorithm, outperforming these frameworks.

Abstract Image

猫鼬GPU 动态图形算法框架
由于图形的拓扑结构各不相同,访问模式也不规则,因此实现图形算法极具挑战性。现实世界中的图形是动态的,经常会出现边和顶点的添加和删除。动态图的典型例子包括社交网络、协作网络和道路网络。在动态图上重复应用静态算法效率很低。此外,由于非结构化和半结构化数据的快速增长,图算法需要高效的并行处理。遗憾的是,我们对如何在 GPU 等大规模并行架构上高效处理动态图知之甚少。现有的表示和处理动态图的方法要么不通用,要么效率低下。在这项工作中,我们提出了一个通过 GPU 定制图表示动态图算法的图库,并利用了 warp-cooperative 工作共享执行模型。该库名为 Meerkat,建立在最近提出的 GPU 动态图表示法基础之上。这种表示法利用基于哈希表的机制来存储顶点的邻域。Meerkat 还能快速迭代一组顶点,这是一种常见模式,也是实现图形应用性能的关键。我们的框架支持动态边添加和边删除,以及它们的批处理版本。基于 Meerkat 中编码的高效迭代模式,我们实现了广度优先搜索、单源最短路径、三角形计数、PageRank 和弱连接组件等流行图算法的动态版本。我们对其他公开的动态图数据结构和框架的实现进行了评估:GPMA、Hornet 和 faimGraph。通过使用各种真实图,我们发现 Meerkat 显著提高了底层动态图算法的效率,表现优于这些框架。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
International Journal of Parallel Programming
International Journal of Parallel Programming 工程技术-计算机:理论方法
CiteScore
4.40
自引率
0.00%
发文量
15
审稿时长
>12 weeks
期刊介绍: International Journal of Parallel Programming is a forum for the publication of peer-reviewed, high-quality original papers in the computer and information sciences, focusing specifically on programming aspects of parallel computing systems. Such systems are characterized by the coexistence over time of multiple coordinated activities. The journal publishes both original research and survey papers. Fields of interest include: linguistic foundations, conceptual frameworks, high-level languages, evaluation methods, implementation techniques, programming support systems, pragmatic considerations, architectural characteristics, software engineering aspects, advances in parallel algorithms, performance studies, and application studies.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信