Matrix ordering strategies for process engineering: graph partitioning algorithms for parallel computation - Camarda, Kyle V.; Stadtherr, Mark A. (Computers & chemical engineering, 1999)
The solution of large-scale chemical process simulation and optimization problems using parallel computation requires algorithms that can take advantage of multiprocessing when solving the large, sparse matrices that arise. Parallel algorithms require that the matrices be partitioned in order to distribute computational work across processors. One way to accomplish this is to reorder the matrix into a bordered block-diagonal form. Since this structure is not always obtained from the equation generation routine, an algorithm to reorder the rows and columns of the coefficient matrix is needed. We describe here a simple graph partitioning algorithm that creates a bordered block-diagonal form that is suitable for use with parallel algorithms for the solution of the highly asymmetric sparse matrices arising in process engineering applications. The method aims to create a number of similarly sized diagonal blocks while keeping the size of the interface matrix, which may represent a bottleneck in the parallel computation, reasonably small. Results on a wide range of test problems indicate that the reordering algorithm is able to find such a structure in most cases, and requires much less reordering time than previously used graph partitioning methods.