  In this paper, we propose Revolver, a parallel graph partitioning algorithm
capable of partitioning large-scale graphs on a single shared-memory machine.
Revolver employs an asynchronous processing framework, which leverages
reinforcement learning and label propagation to adaptively partition a graph.
In addition, it adopts a vertex-centric view of the graph where each vertex is
assigned an autonomous agent responsible for selecting a suitable partition for
it, distributing thereby the computation across all vertices. The intuition
behind using a vertex-centric view is that it naturally fits the graph
partitioning problem, which entails that a graph can be partitioned using local
information provided by each vertex's neighborhood. We fully implemented and
comprehensively tested Revolver using nine real-world graphs. Our results show
that Revolver is scalable and can outperform three popular and state-of-the-art
graph partitioners via producing comparable localized partitions, yet without
sacrificing the load balance across partitions.
