Impact of the Implementation of MPI Point-to-Point Communications on the Performance of Two General Sparse Solvers
Résumé
We examine the send and receive mechanisms of MPI and show how to implement message passing robustly so that performance is not significantly affected by changes to the MPI system. We discuss this within the context of two different parallel algorithms for sparse Gaussian elimination: a multifrontal solver (MUMPS), and a supernodal one (SuperLU). The performance of our initial strategies based on simple MPI point-to-point communication primitives is very sensitive to the MPI system, particularly the way MPI buffers are used. Using nonblocking communication primitives improves the performance and robustness, but at the cost of increased code complexity.