Graph partitioning strategies: one size does not fit all