Question: The IDEAS extreme-scale scientific software development kit (xSDK) involves a lot of existing scientific libraries (hypre, PETSc, SUNDIALS, SuperLU, Trilinos). How will the xSDK provide value over just using these libraries independently? Will these libraries eventually be merged into one library?
Response: First, the xSDK will not replace the ongoing efforts in existing library projects. All of the libraries that are part of the IDEAS project have important customers outside the scope of IDEAS and must continue efforts on behalf of those customers. Also, xSDK efforts will not focus on providing a unified interface to library functionality. For example, there will not be a single interface for accessing all linear solvers.
Instead, the xSDK will utilize existing extensibility mechanism in the IDEAS libraries to provide peer-to-peer interoperability. The IDEAS libraries provide interfaces for control inversion and composition. These features allow library users to provide custom functionality that can be registered with the library. For example, if the user has their own sparse matrix multiplication kernel and want the PETSc iterative solver to use that kernel, there is a way to register that kernel so that PETSc will call the user function instead of the PETSc kernel.
IDEAS xSDK efforts will leverage these extensibility mechanisms to permit PETSc users to use Trilinos capabilities, Trilinos to use PETSc, and so on. Our goal is: If it makes mathematical sense for one IDEAS library to use a capability of another IDEAS library, we will make that possible as part of the IDEAS xSDK.