graphp
play

GraphP phP : Reducing Communication for PIM-based Graph Processing - PowerPoint PPT Presentation

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


  1. 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

  2. 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

  3. Graph Applications • Social network analytics • Recommendation system • Bioinformatics • … ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  4. Challenges • High bandwidth requirement • Small amount of computation per vertex • Data movement overhead ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  5. 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

  6. PIM: Processing-In-Memory ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  7. PIM: Processing-In-Memory • Idea : Computation logic inside memory • Advantage : High memory bandwidth ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  8. 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

  9. 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

  10. HMC: Hybrid Memory Cubes 320 Intra-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  11. HMC: Hybrid Memory Cubes 120 320 Intra-cube Inter-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  12. HMC: Hybrid Memory Cubes 120 320 Intra-cube Inter-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  13. HMC: Hybrid Memory Cubes 120 320 Intra-cube Inter-cube bandwidth (GB/s) ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. Outline • Motivation • GraphP • Evaluation ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. Two-Phase Vertex Program 2 3 4 5 ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

  41. 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

  42. 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

  43. 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

  44. 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

  45. Benefits • Strictly less data communication • Enables architecture optimizations ALCHEM GraphP: A PIM-based Graph Processing Framework alchem.usc.edu

Recommend


More recommend