A comparative analysis of graph partitioning tools