Graph partitioning for high-performance scientific simulations