On the design of interfaces to sparse direct solvers
ACM Transactions on Mathematical Software (TOMS)
AMESOS: a set of general interfaces to sparse direct solver libraries
PARA'06 Proceedings of the 8th international conference on Applied parallel computing: state of the art in scientific computing
PARFES: A method for solving finite element linear equations on multi-core computers
Advances in Engineering Software
Hi-index | 0.01 |
We describe our experience in designing object-oriented software for sparse direct solvers. We discuss Spindle, a library of sparse matrix ordering codes, and OBLIO, a package that implements the factorization and triangular solution steps of a direct solver. We discuss the goals of our design: managing complexity, simplicity of interface, flexibility, extensibility, safety, and efficiency. High performance is obtained by carefully implementing the computationally intensive kernels and by making several tradeoffs to balance the conflicting demands of efficiency and good software design. Some of the missteps that we made in the course of this work are also described.