xSDK: Extreme-scale Scientific Software Development Kit
Rapid, efficient production of high-quality, sustainable extreme-scale scientific applications is best accomplished using a rich ecosystem of state-of-the art reusable libraries, tools, lightweight frameworks, and defined software methodologies, developed by a community of scientists who are striving to identify, adapt, and adopt best practices in software engineering. The vision of the xSDK is to provide infrastructure for and interoperability of a collection of related and complementary software elements—developed by diverse, independent teams throughout the high-performance computing (HPC) community—that provide the building blocks, tools, models, processes, and related artifacts for rapid and efficient development of high-quality applications.
The goal of the xSDK is to provide the foundation of this extensible scientific software ecosystem. The first xSDK release (in April 2016) demonstrated the impact of defining draft xSDK community policies to simplify the combined use and portability of independently developed software packages.
The current xSDK release includes 26 math libraries:
AMReX, ArborX, ButterFlyPACK, DataTransferKit, deal.ii, ExaGO, Ginkgo, heFFTe, HiOp, hypre, libEnsemble, MAGMA, MFEM, Omega_h, PETSc/TAO, PHIST, PLASMA, preCICE, PUMI, SLATE, SLEPc, STRUMPACK, SUNDIALS, SuperLU, TASMANIAN, and Trilinos. The release also lays the groundwork for addressing broader issues in software interoperability and performance portability. This work is especially important as emerging extreme-scale architectures provide unprecedented resources for more complex computational science and engineering simulations, yet the current era of disruptive architectural changes requires refactoring and enhancing software packages in order to effectively use these machines for scientific discovery.
Our goal is to make the xSDK a turnkey and standard software ecosystem that is easily installed on common computing platforms, and can be assumed as available on any leadership computing system in the same way that BLAS and LAPACK are available today. The capabilities in the xSDK are essential for the next generation of multiscale and multiphysics applications, where the libraries and components in the xSDK must compile, link, and interoperate from within a single executable.
Join the xSDK community
We invite the HPC community to provide feedback on draft xSDK community policies and contribute xSDK-compatible packages, so that over time the community can expand the scope of interoperable xSDK software and pursue deeper layers of interoperability as driven by the needs of extreme-scale scientific applications.
Impact on scientific applications
Initial work in the xSDK was motivated by a diverse set of scientific applications that employ the complementary capabilities of xSDK numerical software packages and benefit from their interoperability. In particular, deeper understanding and answers to important science questions for use-cases in subsurface modeling in the IDEAS scientific software productivity project required improved multiscale and multiphysics computational
simulations. DOE scientists are developing integrated surface-subsurface hydrology models that employ Amanzi/ATS, CrunchFlow, ParFlow, and PFLOTRAN. This work requires the combined use of xSDK numerical libraries (hypre, PETSc, SuperLU, and Trilinos), and features the use of Alquimia, an application-specific xSDK package that provides biogeochemistry functionality.
As shown here, the first xSDK release overcame prior obstacles in library interoperability and enabled next steps in collaborative multiphysics and multiscale modeling. Work to develop a predictive understanding of climate impacts on the Upper Colorado River System involves new complex biogeochemistry models that are informed by, and model, genomic information critical to carbon and nutrient cycling. These genome informed biogeochemistry models are in turn targeted at multiscale reactive transport models that can be coupled to high-resolution integrated hydrology (surface/subsurface flow) models of subcatchments or the entire watershed. A key feature in these systems is stream meanders in the floodplain, where hyporheic exchange may play a disproportionate role in the carbon and nutrient cycle. Similarly, understanding and predicting hydrologic response to changing climate and forest cover requires explicit consideration of groundwater land surface atmosphere feedbacks. New work in this area is exploring the potential of hyperresolution integrated hydrology models at regional and continental scales, including their coupling to both land process models and atmospheric models.
The xSDK is supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of the U.S. Department of Energy Office of Science and the National Nuclear Security Administration.
During 2014-2016, the xSDK was supported as part of the IDEAS project, a partnership between the Offices of Advanced Scientific Computing Research (ASCR) and Biological and Environmental Research (BER) in the DOE’s Office of Science.