Software

 

The TOPS project develops and maintains six software frameworks that can be considered among the crown jewels of publicly available mathematical software from the U.S. DOE. These projects are: hypre (LLNL), PETSc (ANL), SUNDIALS (LLNL), SuperLU (LBNL), TAO (ANL), and Trilinos (SNL). Each of the projects pre-dated TOPS, with origins in the forward-looking investments of the national laboratories indicated in parentheses. Each has important SciDAC customers; however SciDAC is only part of the "business model" of each software package. Each of the projects must be preserved by its host laboratory for many other customers and for many years beyond SciDAC. Therefore, TOPS resisted the temptation and spared the effort to completely integrate these packages and reconcile some by-appearance-only redundant capabilities between them.

In fact, the packages interoperate and leverage each other to gratifying degrees: SuperLU, a family or core direct solvers and preconditioners, is callable as a component of the preconditioner by the other iterative solver packages. Hypre, an iterative solver and precondition library featuring multilevel methods (BoomerAMG), is integrated into PETSc and Trilinos and is also a standalone solver/preconditioner in the SUNDIALS integrator. SUNDIALS, a variable-order, variable-timestep successor to the widely used PVODE package, is data-structure neutral, but includes sophisticated control structures and complements PDE integration with sensitivity analysis features. Trilinos, besides offering a unique multilevel preconditioner (ML) and extensive solver and optimization capabilities of its own, is callable from any user code that already makes use of the PETSc interface, which makes it available to a vast majority of SciDAC and other applications that require scalable solvers, besides it customer base using its own interface. The call-through capability avoids expensive data structure copying. PETSc, probably the world's most popular interface and package of scalable solvers and preconditioners, also offers distributed data structures for those that do not use its solvers. It also allows a single interface to the solvers of the other TOPS packages and many more. The TAO optimization package is built completely on top of PETSc.

Each of the codes has an easy-to-use download page is supported by a developer team partially supported by TOPS, which responds to bug reports and user requests. Each code has a worldwide user community that contributes bug-fixes and new capabilities back to the package - a benefit of the freely available philosophy.