FPGA-based Acceleration Architecture for Apache Spark Operators

Yuanwei Sun,Haikun Liu,Xiaofei Liao,Hai Jin,Yu Zhang
DOI: https://doi.org/10.1007/s42514-023-00158-8
2024-01-01
CCF Transactions on High Performance Computing
Abstract:Apache Spark has been the most popular in-memory processing framework for big data applications deployed in data centers. As a CPU-only parallel programming framework, Spark can satisfy the requirement of computing resource by scaling up the nodes of clusters. However, it lacks the ability of utilizing powerful GPU/FPGA/xPU-based accelerators that have been increasingly popular in data centers. In this paper, we present a CPU+FPGA heterogeneous computing architecture to accelerate typical Spark operators, such as K-means, PageRank, and sorting. We explore the classic divide-and-conquer paradigm to accelerate these Spark operators with multiple FPGA processing units, and directly shuffle intermediate results to destination servers for aggregation based on FPGA’s RDMA networks. Thus, our architecture can shorten the critical path of data transmission by offloading the Spark shuffling operation on FPGAs. Moreover, we exploit pipelining, loop unrolling, FPGA BRAM partitioning, and a dataflow execution model to maximize task/data parallelism of Spark operators on each FPGA. Experimental results show that our FPGA-accelerated Spark architecture can significantly improve the performance of Spark operators by 3.5-112× compared with the native Spark.
What problem does this paper attempt to address?