36b372b067aafd79.tex
1: \begin{abstract}
2:     Iterative graph algorithms often compute intermediate
3:     values and update them as computation progresses.
4:     Updated output values are used as inputs for computations in current or subsequent iterations;
5:     hence the number of iterations required for values to converge can potentially reduce
6:     if the newest values are asynchronously made 
7:     available to other updates computed in the same iteration.
8:     In a multi-threaded shared memory system, the immediate propagation of updated values can cause
9:     memory contention that may offset the benefit of propagating updates sooner.
10:     In some cases, the benefit of a smaller number of iterations may be 
11:     diminished by each iteration taking longer.
12:     Our key idea is to combine the low memory contention that synchronous approaches have
13:     with the faster information sharing of asynchronous approaches.
14:     Our hybrid approach buffers updates from threads locally before committing 
15:     them to the global store to control how often threads may cause conflicts for others
16:     while still sharing data within one iteration and hence speeding convergence. 
17:     On a 112-thread CPU system, our hybrid approach attains up to 
18:     4.5\% - 19.4\% speedup over an asynchronous approach for Pagerank
19:     and up to 1.9\% - 17\% speedup over asynchronous Bellman Ford SSSP.
20:     Further, our hybrid approach attains 2.56x better performance than the synchronous approach.
21:     Finally, we provide insights as to why delaying updates is not helpful on certain graphs
22:     where connectivity is clustered on the main diagonal of the adjacency matrix.
23: \end{abstract}
24: