arrow
返回

Distributed large-scale graph processing on FPGAs

delete2023-06-04
delete2
delete
OA
AI
A
Amin Sahebi
M
Marco Barbone *
M
Marco Procaccini
W
Wayne Luk
G
Georgi Gaydadjiev
R
Roberto Giorgi *
DOI:10.1186/s40537-023-00756-xdelete
delete原文链接
delete分享
delete收藏
查看原文
摘要

摘要

En 中文
Processing large-scale graphs is challenging due to the nature of the computation that causes irregular memory access patterns. Managing such irregular accesses may cause significant performance degradation on both CPUs and GPUs. Thus, recent research trends propose graph processing acceleration with Field-Programmable Gate Arrays (FPGA). FPGAs are programmable hardware devices that can be fully customised to perform specific tasks in a highly parallel and efficient manner. However, FPGAs have a limited amount of on-chip memory that cannot fit the entire graph. Due to the limited device memory size, data needs to be repeatedly transferred to and from the FPGA on-chip memory, which makes data transfer time dominate over the computation time. A possible way to overcome the FPGA accelerators' resource limitation is to engage a multi-FPGA distributed architecture and use an efficient partitioning scheme. Such a scheme aims to increase data locality and minimise communication between different partitions. This work proposes an FPGA processing engine that overlaps, hides and customises all data transfers so that the FPGA accelerator is fully utilised. This engine is integrated into a framework for using FPGA clusters and is able to use an offline partitioning method to facilitate the distribution of large-scale graphs. The proposed framework uses Hadoop at a higher level to map a graph to the underlying hardware platform. The higher layer of computation is responsible for gathering the blocks of data that have been pre-processed and stored on the host's file system and distribute to a lower layer of computation made of FPGAs. We show how graph partitioning combined with an FPGA architecture will lead to high performance, even when the graph has Millions of vertices and Billions of edges. In the case of the PageRank algorithm, widely used for ranking the importance of nodes in a graph, compared to state-of-the-art CPU and GPU solutions, our implementation is the fastest, achieving a speedup of 13 compared to 8 and 3 respectively. Moreover, in the case of the large-scale graphs, the GPU solution fails due to memory limitations while the CPU solution achieves a speedup of 12 compared to the 26x achieved by our FPGA solution. Other state-of-the-art FPGA solutions are 28 times slower than our proposed solution. When the size of a graph limits the performance of a single FPGA device, our performance model shows that using multi-FPGAs in a distributed system can further improve the performance by about 12x. This highlights our implementation efficiency for large datasets not fitting in the on-chip memory of a hardware device.
Keyword:
Graph processing
Distributed computing
Grid partitioning
FPGA
Accelerators
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

Journal of Big Data 封面图
Journal of Big Data
IF:
6.4
论文数:
1.5K
被引数:
1.1W

机构

U
University of Siena
学者数:
1.3W
论文数: 1.0W
被引数: 1.0W
I
Imperial College London
学者数:
8.3W
论文数: 7.3W
被引数: 11.1W
引用论文

引用论文

err分享
err收藏
Maximizing PageRank via outlinks
err2008-09-01
err0
errOAAI
errCristobald de Kerchove; Laure Ninove; Paul van Dooren
err分享
err收藏
Scalable Graph Processing Frameworks: A Taxonomy and Open Challenges可扩展的图处理框架: 分类学和开放挑战
err2018-06-12
err55
PREAI
errHeidari, Safiollah; Simmhan, Yogesh; Calheiros, Rodrigo N.; Buyya, Rajkumar
err分享
err收藏
学者 查看更多内容