Graph Processing System and Architecture

Graphs capture relationships between data items, such as interactions or dependencies. Graph analytics has emerged as an important way to understand the relationships between the heterogeneous types of data, allowing data analysts to draw valuable insights from the patterns in the data for a wide range of applications. Due to the importance of the application, different types of frameworks (distributed, out-of-core and in-memory) are proposed with different programming models (vertex program, gather-apply-scatter, amorphous data-parallel, etc.).

Graph processing applications are related to multiple system stacks from application/algorithm, programming model, to runtime and architecture. We believe that efficient system design requires a co-designed approach and innovations in all system layers. Driven by this principle, our research group made several important research contributions. CUBE [OSDI'16] is a distributed graph processing system that can adopt 3D graph partitioning in programming model and runtime to reduce communication. CLIP [ATC'17] is a new out-of-core system with more expressive programming model that allows better algorithm implementations. GraphP [HPCA'18] is a new HMC-based PIM architecture that incorporates graph partition into programming model to reduce inter-cube communication. GraphR [HPCA'18] is a new ReRAM-based architecture that enables in-situ graph computations in memory with reduced data movement. Wonderland [ASPLOS'18] is our latest out-of-core system based on graph abstraction that improves the performance of the state-of-the-art systems drastically.