2018 · 10 citations · 9 references
ComputingComputer EngineeringComputer ScienceCluster ComputingDistributed SystemsHeterogeneous ComputingAccelerator ArchitectureAccelerator IntegrationCluster ArchitectureHardware AccelerationReconfigurable AcceleratorsStream ProcessingAcceleratorsIn-memory Distributed ComputationLarge-scale Data ProcessingMany-core ArchitectureParallel Data ProcessingReal-time ProcessingReal-time Stream ProcessingResilient Distributed Systems
Apache Spark is an efficient distributed computing framework for big data processing. It supports in-memory computation of RDDs (Resilient Distributed Dataset) and provides a provision of reusability, fault tolerance, and real-time stream processing. However, the tasks in Spark framework are only performed on CPU. The low degree of parallelism and power inefficiency of CPU may restrict the performance and scalability of the cluster. In order to improve the performance and power dissipation of the data center, heterogeneous accelerators such as FPGA, GPU, MIC (Many Integrated Core) exhibit more efficient performance than the general-purpose processor in big data processing. In this work, we propose a framework to integrate FPGA accelerator into a Spark cluster. We use FPGA to accelerate the Spark tasks developed with Python, and in this way, the main computing load is performed on FPGA instead of CPU. We illustrate the performance of the FPGA based Spark framework with a case study of 2D-FFT algorithm acceleration. The results showed that FPGA based Spark implementation acquires 1.79x speedup than CPU implementation.
9
Sanjay Ghemawat · Communications of the ACM · 2008 · 18.5K citations · Full text
Spark: cluster computing with working sets
Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin et al. · 2010 · 4.2K citations
Matei Zaharia, Reynold Xin, Patrick Wendell et al. · Communications of the ACM · 2016 · 2.3K citations
Large Scale Distributed Data Science using Apache Spark
James G. Shanahan, Laing Dai · 2015 · 167 citations