Graph partitioning algorithms partition a graph into equal sized subgraphs (in terms of nodes) in such a way that the the number of edges cut is minimized. In the more general problem, edges can also have weights. In this project, you will develop a parallel software for spectral graph partitioning.