Abstract

Extreme-scale computational science increasingly demands multiscale and multiphysics formulations. Combining software developed by independent groups is imperative: no single team has resources for all predictive science and decision support capabilities. Scientific libraries provide high-quality, reusable software components for constructing applications with improved robustness and portability. However, without coordination, many libraries cannot be easily composed. Namespace collisions, inconsistent arguments, lack of third-party software versioning, and additional difficulties make composition costly. The Extreme-scale Scientific Software Development Kit xSDK defines community policies to improve code quality and compatibility across independently developed packages hypre, PETSc, SuperLU, Trilinos, and Alquimia and provides a foundation for addressing broader issues in software interoperability, performance portability, and sustainability. The xSDK provides turnkey installation of member software and seamless combination of aggregate capabilities, and it marks first steps toward extreme-scale scientific software ecosystems from which future applications can be composed rapidly with assured quality and scalability.

Highlights

  • Extreme-scale computational science increasingly demands multiscale and multiphysics formulations

  • The xSDK has emerged as a first step toward a new ecosystem, where application codes are composed via interfaces from a common base of reusable components more than they are developed from a clean slate or derived from monolithic code bases

  • Frameworks include documentation, build, and testing environments. These frameworks are lightweight and general purpose. Other frameworks, such as multiphysics, are considered separately, built on top of what we describe here

Read more

Summary

Software Challenges for Extreme-scale Science

Extreme-scale architectures provide unprecedented resources for scientific discovery. The computational science and engineering (CSE) community faces daunting productivity and sustainability challenges for parallel application development [1, 14, 15, 27]. New architectures require fundamental algorithm and software refactoring, while at the same time demand is increasing for greater reproducibility of simulation and analysis results for predictive science. This confluence of challenges brings with it a unique opportunity to fundamentally change how scientific software is designed, developed, and sustained. To the extent that this compositional approach can be reliably used, new CSE applications can be created more rapidly, with greater robustness and scalability, by smaller teams of scientists, enabling them to focus more attention on obtaining science results than on the incendentals of their computing environment

Related work
Elements of an Extreme-scale Scientific Software Ecosystem
A B: A can use B to provide functionality on behalf of A
Next Steps
Further refine and expand community policies
Include more domain components
Process control transfer interfaces
Conclusions
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call