“…Several general-purpose graph processing frameworks have been introduced and evaluated in recent years to improve the programmability of graph applications, mainly focusing on performance and/or scalability. These frameworks include, but not limited to, vertex-centric [10,21,26,27], edge-centric [42,56,57], data-centric [36], matrix based [7,50], task based [23] and declarative programming based [45]. Among all these models, the idea of "think like a vertex" or vertex-centric programming model has seen significant interest and widespread deployment in recent works [15,24,26], and is our model of choice as well.…”