Extreme-scale Scientific Software Development Kit

Software communities

Self-organizing software communities, including developers and users of related technologies, who deeply understand their own requirements and priorities, are well positioned to determine effective strategies for collaboration and coordination. The IDEAS approach centers on (1) establishing community software policies to advance the quality, usability, and interoperability of related software technologies, while supporting autonomy of diverse teams that naturally have different drivers and constraints, and (2) creating Software Development Kits (SDKs) to facilitate the combined use of independent software packages by application teams.

Software Development Kits (SDKs)

A Software Development Kit is a collection of related software products (packages), where coordination across package teams improves usability and practices, while fostering community growth among teams that develop similar and complementary capabilities.

The SDK approach—a key delivery vehicle for software technologies in the DOE Exascale Computing Project (ECP)—builds on experiences with the Extreme-scale Scientific Software Development Kit (xSDK), which started as part of the IDEAS-Classic project and later transitioned to the Software Technologies element of ECP. The xSDK has successfully resolved a variety of difficulties in package compatibility and combined a number of popular math libraries into a single release using Spack (https://spack.io)—a flexible package manager that supports multiple versions, configurations, platforms, and compilers.

xSDK community policies

To help address challenges in interoperability and sustainability of software written by diverse groups at different institutions, the developers of xSDK packages have adopted a set of community policies that address topics such as testing, documentation, licensing, building, and more.