Advanced caching methods for graph mining algorithms 1. Introduction

advertisement

Advanced caching methods for graph mining algorithms

Tao Cui, U Kang, Ligia Nistor tcui@andrew.cmu.edu, ukang@cs.cmu.edu, lnistor@cs.cmu.edu

1. Introduction

Long main memory latency is a major performance bottleneck in current microprocessors. Many efforts have been devoted to reduce and tolerate memory latency. Caching and prefetching are among the most popular methods. There have been works on caching and prefetching stream and LDS(Linked Data

Structure). However, caching methods for graph mining(i.e., finding patterns in graphs) have a lot of rooms to explore.

Graph data is different from one-dimensional flat data in the sense that it represents relations between nodes. Furthermore, there exists locality in graph data(i.e., neighbors of adjacent nodes which we can exploit to make more efficient caching mechanism.

In this work, we study advanced caching methods for graph mining algorithms. We focus on three important algorithms which are: finding 1-step neighbors, finding k-step neighbors, and finding ego-nets.

The application is that we issue the queries repeatedly for random sequence of nodes. Our hope is that an advanced caching mechanism can help reduce the memory access time which leads to faster running time.

For evaluation, we run graph mining algorithms on both synthetic and real-world graphs, and measure the performance gain using cache simulators.

2. Related work

The related works form two groups: caching/prefetching methods and graph mining.

Caching and Prefetching: There have been many works on reducing the memory latency by caching and prefetching. [YL] proposed a coooperative hardware/software mechanism based on Push model for LDS data. [SLT] introduced the idea of user-level memory thread for correlation prefetching by maintaining the correlation table in the main memory. [MKP] suggested a technique called AVD(Address-Value

Delta) prediction which enables the pre-execution of dependent instructions including load instructions.

[EMP] proposed techniques for bandwidth-efficient prefetching LDS in hybrid systems by compilerguided prefetch filtering and coordinated prefetcher throttling. However, none of them address the problem of efficient caching/prefetching for graph algorithms.

Graph Mining: Graph mining is an area of data mining, whose goal is to find patterns in graphs. Typical algorithms include finding PageRank, RWR(Random Walk with Restart), radius, connected component and subgraphs. Many of the graph mining algorithms can be represented by a special form of matrixvector multiplication called GIM-V(Generalized Iterative Matrix-Vector Multiplication) [KTF]. The three graph mining algorithms are similar to [KTF], since they are essentially matrix-vector multiplications, but they are different from our work since their algorithms are for shared-nothing systems on MapReduce cluster. Our focus is designing cache/prefetching methods on a single-machine.

3. Research Proposal

We design efficient caching and prefetching mechanisms for graph mining algorithms. We consider three important graph mining algorithms: finding 1-step neighbors, k-step neighbors, and finding ego-nets. Our problem is different from existing works(e.g. caching array or LDS data) in two aspects:

1 . Graph data is unique, and different from array or LDS data, since it contains complex relations of nodes. Real-world graphs show even more interesting patterns that can be exploited. For example, there are several clusters of nodes which form near-cliques. On the other hand, there are several anomalous nodes(e.g., spammers which have many neighbors not connected to each other). These patterns suggest unique challenges for advanced caching mechanisms.

2 . Graph mining algorithms have not been studied in previous literature for caching. The existing benchmarks don’t contain algorithms related to graph mining.

Given the challenges, we take the following approaches to solve the problem.

1 . We consider an engine located close to memory. The engine prefetches data from memory before it is used by CPU to reduce the stalls. A promising research direction is the push model [YL] which significantly outperforms a conventional pull-based prefetching model if the program does little computation between node accesses. Our graph mining algorithm is exactly the case, since the main computation between node accesses are merging arrays of nodes.

2 . We plan to design a summary information table, similar to the correlation table in [SLT], to guide the prefetching process and better performance.

3 . Studying the memory access patterns can be useful to design better caching methods [MKP].

We investigate the access patterns of our algorithms on real-world graphs and exploit it to better utilize caches.

4. Experimental Plan

We do experiments to evaluate our caching method and see how it improves the running time and cache hit rate. We will use the following graph mining algorithms.

● Finding 1-step neighbors

● Finding k-step neighbors

● Finding ego-nets

We will use both the synthetic and real-world graph data.

● (Synthetic) Kronecker graphs

● (Real) Epinions

● (Real) DBLP

● (Real) AS-Oregon

For the evaluation, we will use cache simulators(e.g. PIN and Flexus) software.

5. Research Plan

Our goal is to design efficient caching and prefetching mechanisms for graph mining algorithms. To achieve our goal, we will take the following steps.

● Milestone 1 (Oct. 13th): Prepare the environment. Write the graph mining algorithm code in C.

● Milestone 2 (Nov. 1st): Find access patterns in the algorithms. Take one approach and develop/ extend/implement method.

References

1 . Chai-Lin Yang and Alvin R. Lebeck, Push vs. Pull: Data Movement for Linked Data Structures,

ICS, 2000

2 .

Yan Solihin, Josep Torrellas, Jaejin Lee,

Using a User-Level Memory Thread for Correlation

3 .

Prefetching, ISCA, 2002

Onur Mutlu, Hyesoon Kim, and Yale N. Patt,

Address-Value Data (AVD) Prediction:

4 .

Increasing the Effectiveness of Runahead Execution by Exploiting Regular Memory Allocation

Patterns, MICRO, 2005

Eiman Ebrahimi, Onur Mutlu, and Yale N. Patt,

Techniques for Bandwidth-Efficient

Prefetching of Linked Data Structures in Hybrid Prefetching Systems, HPCA, 2009

5 . U Kang, Charalampost Tsourakakis, and Christos Faloutsos, PEGASUS: A Peta-Scale Graph

Mining System - Implementation and Observations, ICDM, 2009

Download