GraphP phP : Reducing Communication for PIM-based Graph Processing with Efficient Data Partition Mingxing Zhang, Youwei Zhuo (equal contribution ), Chao Wang, Mingyu Gao, Yongwei Wu, Kang Chen, Christos Kozyrakis, Xuehai Qian Tsinghua University University of Southern California Stanford University
Outline • Motivation • Graph applications • Processing-In-Memory • The drawbacks of the current solution • GraphP • Evaluation ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Graph Applications • Social network analytics • Recommendation system • Bioinformatics • … ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Challenges • High bandwidth requirement • Small amount of computation per vertex • Data movement overhead ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Challenges • High bandwidth requirement • Small amount of computation per vertex • Data movement overhead comp L1 L2 L3 mem ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
PIM: Processing-In-Memory ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
PIM: Processing-In-Memory • Idea : Computation logic inside memory • Advantage : High memory bandwidth ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
PIM: Processing-In-Memory • Idea : Computation logic inside memory • Advantage : High memory bandwidth • Example : Hybrid Memory Cubes (HMC) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
PIM: Processing-In-Memory • Idea : Computation logic inside memory • Advantage : High memory bandwidth • Example : Hybrid Memory Cubes (HMC) mem … .. mem mem 320GB/s intra-cube mem 4x120GB/s comp inter-cube ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
HMC: Hybrid Memory Cubes 320 Intra-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
HMC: Hybrid Memory Cubes 120 320 Intra-cube Inter-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
HMC: Hybrid Memory Cubes 120 320 Intra-cube Inter-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
HMC: Hybrid Memory Cubes 120 320 Intra-cube Inter-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
HMC: Hybrid Memory Cubes 120 120 320 Intra-cube Inter-cube Inter-group bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
HMC: Hybrid Memory Cubes 120 120 320 Intra-cube Bottleneck: Inter-cube communication Inter-cube Inter-group bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Outline • Motivation • Graph applications • Processing-In-Memory • The drawbacks of the current solution • GraphP • Evaluation ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Current Solution: Tesseract • First PIM-based graph processing architecture Ahn, J., Hong, S., Yoo, S., Mutlu, O., & Choi, K. A scalable processing-in- memory accelerator for parallel graph processing. In 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA) . ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Current Solution: Tesseract • First PIM-based graph processing architecture • Programming model • Vertex program Ahn, J., Hong, S., Yoo, S., Mutlu, O., & Choi, K. A scalable processing-in- memory accelerator for parallel graph processing. In 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA) . ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Current Solution: Tesseract • First PIM-based graph processing architecture • Programming model • Vertex program • Partition • Based on vertex program Ahn, J., Hong, S., Yoo, S., Mutlu, O., & Choi, K. A scalable processing-in- memory accelerator for parallel graph processing. In 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA) . ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
PageRank in Vertex Program for (v: vertices ) { update = 0.85 * v.rank / v.out_degree; } ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
PageRank in Vertex Program for (v: vertices ) { update = 0.85 * v.rank / v.out_degree; for (w: edges.destination ) { put(w.id, function{ w.next_rank += update; }); } } ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
PageRank in Vertex Program for (v: vertices ) { update = 0.85 * v.rank / v.out_degree; for (w: edges.destination ) { put(w.id, function{ w.next_rank += update; }); } } barrier(); ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Graph Partition hmc0 0 1 2 0 1 2 5 3 4 vertex 1 3 4 5 hmc1 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Graph Partition hmc0 0 1 2 0 1 2 5 3 4 intra vertex 1 3 4 5 edge inter hmc1 edge ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Graph Partition hmc0 0 1 2 0 1 2 5 3 4 intra vertex 1 3 4 5 edge inter hmc1 comm edge put(w.id, function{ w.next_rank += update; }); ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Graph Partition hmc0 0 1 2 0 1 2 5 3 4 intra vertex 1 3 4 5 edge inter hmc1 comm edge communication = # of cross-cube edges ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Drawback of Tesseract • Excessive data communication • Why? Data Programming Graph Communication Model Partition Tesseract ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Drawback of Tesseract • Excessive data communication • Why? Data Programming Graph Communication Model Partition Tesseract ? ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Drawback of Tesseract • Excessive data communication • Why? Data Programming Graph Communication Model Partition Tesseract ? ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Drawback of Tesseract • Excessive data communication • Why? Data Programming Graph Communication Model Partition Tesseract ? ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Outline • Motivation • GraphP • Evaluation ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
GraphP • Consider graph partition first. • Graph Partition • Source-Cut • Programming model • Two-phase vertex program • Reduces inter-cube communication ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Source-Cut Partition 0 1 2 0 1 2 hmc0 5 3 4 vertex 1 3 4 5 hmc1 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Source-Cut Partition 0 1 2 0 1 2 hmc0 5 3 4 intra vertex 1 edge inter edge 3 4 5 hmc1 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Source-Cut Partition 0 1 2 0 1 2 hmc0 5 3 4 intra vertex 1 edge 2 inter replica 2 edge 3 4 5 hmc1 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Source-Cut Partition 0 1 2 0 1 2 hmc0 5 3 4 intra vertex 1 edge 2 inter replica 2 edge 3 4 5 hmc1 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Source-Cut Partition 0 1 2 0 1 2 hmc0 5 3 4 intra vertex 1 edge 2 inter replica 2 edge 3 4 5 hmc1 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Two-Phase Vertex Program for (r: replicas) { r.next_rank = 0.85 * r.next_rank / r.out_degree; } //apply updates from previous iterations 2 5 3 4 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Two-Phase Vertex Program for (r: replicas) { r.next_rank = 0.85 * r.next_rank / r.out_degree; } //apply updates from previous iterations 2 5 3 4 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Two-Phase Vertex Program 2 3 4 5 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Two-Phase Vertex Program for (v: vertices ) { for (u: edges.sources ) { } 2 3 4 5 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Two-Phase Vertex Program for (v: vertices ) { for (u: edges.sources ) { update += u.rank; } 2 3 4 5 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Two-Phase Vertex Program for (v: vertices ) { for (u: edges.sources ) { update += u.rank; } 2 3 4 5 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Two-Phase Vertex Program for (r: replicas ) { put(r.id, function { r.next_rank = update}); } 0 2 } barrier(); 5 3 4 3 4 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Benefits • Strictly less data communication • Enables architecture optimizations ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu
Recommend
More recommend