Accelerator Design for Big Data Processing Frameworks Hiroki Matsutani Dept. of ICS, Keio University http://www.arc.ics.keio.ac.jp/~matutani July 5th, 2017 International Forum on MPSoC for Software-Defined Hardware (MPSoC'17) 1
2 processing Input stream data Big data (Surveillance, Network service, SNS, UAV, IoT) Message queuing Data exchange (serialization) Learning Database layer (Polyglot persistence) DB queries Customer analysis Topic prediction chain records Geolocation query processing requires time and thus recent data cannot be reflected to the analysis result Combine batch and stream processing to make up the realtime capability
+ Stream processing Input stream data Message queuing Stream Inference Database layer (Polyglot persistence) Realtime DB queries Big data (Surveillance, Network service, SNS, UAV, IoT) Data exchange (serialization) Learning Customer analysis Topic prediction chain records Geolocation query Nathan Marz, et.al., "Big Data: Principles and best practices of scalable realtime data systems", Manning Publications (2015). 3
+ Stream processing Input stream data Message queuing Stream Inference Database layer (Polyglot persistence) Realtime DB queries Big data (Surveillance, Network service, SNS, UAV, IoT) I/O intensive Data exchange (serialization) Learning Customer analysis Topic prediction chain records Geolocation query Compute intensive Message queuing middleware (Apache Kafka) Serialization (Apache Thrift) Stream processing (Apache Spark Streaming) KVS / Column DB (Redis, HBase) Online machine learning (Classification, Outlier detection, Change point detection, Abnormal behavior detection) Document DB (MongoDB) Graph DB (Neo4j), graph processing processing (Apache Spark) Machine learning (Apache Spark MLlib) Tight integration of I/O and compute FPGA Four 10GbE FPGA Massive parallelism Networked GPU cluster GPUs Switch Host 4
Acceleration for data store Input stream data Message queuing Stream Inference Database layer (Polyglot persistence) Realtime DB queries Big data (Surveillance, Network service, SNS, UAV, IoT) I/O intensive Data exchange (serialization) Learning Customer analysis Topic prediction chain records Geolocation query Compute intensive Message queuing middleware (Apache Kafka) Serialization (Apache Thrift) Stream processing (Apache Spark Streaming) KVS / Column DB (Redis, HBase) Online machine learning (Classification, Outlier detection, Change point detection, Abnormal behavior detection) Document DB (MongoDB) Graph DB (Neo4j), graph processing processing (Apache Spark) Machine learning (Apache Spark MLlib) Tight integration of I/O and compute FPGA Four 10GbE FPGA Massive parallelism Networked GPU cluster GPUs Switch Host 5
Multilevel NOSQL cache: FPGA NIC [IEEE HoTI 16] Normal DB Access Result User Space In-Kernel KVS Cache (L2$) Hit Request NIC Cache (L1$) Hit Reply Add NetFPGA-10G Device Driver In-Kernel KVS (Key-Value Store) Cache 512GB NetFPGA-10G NIC HW Cache Machine Learning DRAM 288MB 10GbE x4 6
Multilevel NOSQL cache: FPGA NIC Multilevel NOSQL cache: User Space L1 NOSQL cache FPGA-based hardware cache L2 NOSQL cache In-kernel software cache Normal DB Access Result Tradeoffs between capacity and speed: L1 In-Kernel NOSQL cache KVS Very fast/efficient but small L2 Cache NOSQL (L2$) cache Hit Fast and large Design space exploration [IEEE HoTI 16] Request NIC Cache (L1$) Hit Reply Add NetFPGA-10G Device Driver In-Kernel KVS (Key-Value Store) Cache 512GB NetFPGA-10G NIC HW Cache Machine Learning DRAM 288MB 10GbE x4 7
FPGA NIC Cache for chain chain A chain of blocks each contains transactions verified and shared by all the parties 1. Bob wants to send money to Alice Bob 2. TX(Bob Alice) is represented as a block 3. The block is broadcasted to all the nodes 4. After verified, the block is added to the blockchain 8
FPGA NIC Cache for chain IoT devices (SPV nodes) Cannot maintain whole the blockchain data (>100GB) due to resource limitation Simple payment verification Ask full node to check whether a transaction of interest has been completed or not 1. Alice wants to verify TX(Bob Alice) Full node Alice 2. Alice contacts a full node to verify it 9
FPGA NIC Cache for chain IoT devices (SPV nodes) The Cannot number maintain of IoT devices whole that the blockchain join blockchain data will (>100GB) increase due to resource limitation To reduce full node accesses from SPV nodes, FPGA Ask NIC full KVS node is to used check as cache whether of a blockchain transaction [HEART 17] of interest has been completed or not Simple payment verification 1. Alice wants to verify TX(Bob Alice) Full node Alice 2. Alice contacts a full node to verify it FPGA NIC Cache 10
Acceleration for data processing Input stream data Message queuing Stream Inference Database layer (Polyglot persistence) Realtime DB queries Big data (Surveillance, Network service, SNS, UAV, IoT) I/O intensive Data exchange (serialization) Learning Customer analysis Topic prediction chain records Geolocation query Compute intensive Message queuing middleware (Apache Kafka) Serialization (Apache Thrift) Stream processing (Apache Spark Streaming) KVS / Column DB (Redis, HBase) Online machine learning (Classification, Outlier detection, Change point detection, Abnormal behavior detection) Document DB (MongoDB) Graph DB (Neo4j), graph processing processing (Apache Spark) Machine learning (Apache Spark MLlib) Tight integration of I/O and compute FPGA Four 10GbE FPGA Massive parallelism Networked GPU cluster GPUs Switch Host 11
Data processing w/ Spark+GPU User Space Array Cache (RDDs) Reduction & transformation of RDDs offloaded to GPU [HEART 16] RDD 1 Array Cache (Converted from Spark RDDs) RDD reduction (count, max, reduce, ) Value RDD 1 RDD 2 RDD 3 RDD 2 RDD-to-RDD transformation (sort, filter, map, ) RDD 3 Data are stored in RDDs (i.e., distributed shared memory) RDDs are converted to array structure & transferred to GPU 12
10G+10G Data processing w/ Spark+GPUs Many GPUs are directly connected to Apache Spark server via NEC ExpEther (20Gbps) GPUs 0G+10G 10/40GbE Switch PCIe card inserted in the server
Data processing w/ Spark+GPUs User Space Array Cache (RDDs) Reduction & transformation of RDDs offloaded to GPUs RDD 4 RDD 1 RDD 2 RDD 3 Array Cache (Converted from Spark RDDs) RDD 1 10GbE Switch RDD 3 RDD 6 RDD 2 RDD 5 [ICPADS 16] 14
Acceleration for data processing Input stream data Message queuing Stream Inference Database layer (Polyglot persistence) Realtime DB queries Big data (Surveillance, Network service, SNS, UAV, IoT) I/O intensive Data exchange (serialization) Learning Customer analysis Topic prediction chain records Geolocation query Compute intensive Message queuing middleware (Apache Kafka) Serialization (Apache Thrift) Stream processing (Apache Spark Streaming) KVS / Column DB (Redis, HBase) Online machine learning (Classification, Outlier detection, Change point detection, Abnormal behavior detection) Document DB (MongoDB) Graph DB (Neo4j), graph processing processing (Apache Spark) Machine learning (Apache Spark MLlib) Tight integration of I/O and compute FPGA Four 10GbE FPGA Massive parallelism Networked GPU cluster GPUs Switch Host 15
10Gbps outlier filtering: FPGA NIC Sensor Data Explosion User Space Outlier NetFPGA-10G Device Driver Only anomalyvalued packets are received Huge Size Small Size Machine learning algorithms Mahalanobis Distance Local Outlier Factor(LOF) K-Nearest Neighbor(KNN) NetFPGA-10G Data Mining 10GbE x4 16
10Gbps outlier filtering: FPGA NIC Density-based Sensor Data Explosion approach to User find Space outliers (e.g., higher LOF value when k neighbors are distant) All reference data needed for density computation Frequently-accessed reference data clusters are cached in FPGA NIC [PDP 17] Outlier NetFPGA-10G Device Driver Only anomalyvalued packets are received Huge Size Small Size Machine learning algorithms Mahalanobis Distance Local Outlier Factor(LOF) K-Nearest Neighbor(KNN) NetFPGA-10G Data Mining 10GbE x4 17
Spark Streaming: FPGA NIC Stream processing One-at-a-time style User Space Micro-batch Micro-batch style batch batch Spark Streaming Micro-batch style for compatibility w/ Spark Large latency (e.g, 1sec) NetFPGA-10G Device Driver Results of one-at-atime processing (e.g., filter) received NetFPGA-10G One-at-a-time Stream processing components which can be executed as one-at-a-time style are offloaded to FPGA NIC [IEEE BigData WS 16] 10GbE x4 18
Summary Input stream data Message queuing Stream Inference Database layer (Polyglot persistence) Realtime DB queries Big data (Surveillance, Network service, SNS, UAV, IoT) I/O intensive Data exchange (serialization) Learning Customer analysis Topic prediction chain records Geolocation query Compute intensive Message queuing middleware (Apache Kafka) Serialization (Apache Thrift) Stream processing (Apache Spark Streaming) KVS / Column DB (Redis, HBase) Online machine learning (Classification, Outlier detection, Change point detection, Abnormal behavior detection) Document DB (MongoDB) Graph DB (Neo4j), graph processing processing (Apache Spark) Machine learning (Apache Spark MLlib) Tight integration of I/O and compute FPGA Four 10GbE FPGA Massive parallelism Networked GPU cluster GPUs Switch Host 19
References (1/2) FPGA-based KVS accelerator Yuta Tokusashi, et.al., "A Multilevel NOSQL Cache Design Combining In-NIC and In- Kernel Caches", IEEE Hot Interconnects 2016. FPGA-based chain cache Yuma Sakakibara, et.al., "An FPGA NIC Based Hardware Caching for chain", HEART 2017. FPGA-based Spark Streaming accelerator Kohei Nakamura, et.al., "An FPGA-Based Low-Latency Network Processing for Spark Streaming", IEEE BigData Workshops 2016. 20
21 References (2/2) FPGA-based machine learning accelerator Ami Hayashi, et.al., "An FPGA-Based In-NIC Cache Approach for Lazy Learning Outlier Filtering", PDP 2017. Ami Hayashi, et.al., "A Line Rate Outlier Filtering FPGA NIC using 10GbE Interface", ACM SIGARCH CAN (2015). GPU-based acceleration of Apache Spark Yasuhiro Ohno, et.al., "Accelerating Spark RDD Operations with Local and Remote GPU Devices", ICPADS 2016.
Thank you! hank you for listening Acknowledgement: This work was supported by MIC SCOPE, NEDO IoT, JSPS Kaken B, and SECOM 22