An object-oriented collection of minimum degree algorithms: Design, implementation, and experiences
Gary Kumfert, Alex Pothen · 1999
. The multiple minimum degree (MMD) algorithm and its variants have enjoyed 20+ years of research and progress in generating fill-reducing orderings for sparse, symmetric positive definite matrices. Although conceptually simple, efficient implementations of these algorithms are deceptively complex and highly specialized. In this case study, we present an object-oriented library that implements several recent minimum degree-like algorithms. We discuss how objectoriented design forces us to decompose these algorithms in a different manner than earlier codes and demonstrate how this impacts the flexibility and efficiency of our C++ implementation. We compare the performance of our code against other implementations in C or Fortran. 1 Introduction We have implemented a family of algorithms in scientific-computing --- traditionally written in Fortran77 or C --- using object-oriented techniques and C++. The particular family of algorithms chosen, the Multiple Minimum Degree (MMD) algorithm ...