Using DOE Math Libraries: Introducing the xSDK

<p><i>Tutorial presented at the 2018 ECP Annual Meeting</i></p><p><i>February 5, 2018</i></p><p><br></p><p><b>Abstract:</b></p><p>Extreme-scale computational science increasingly demands multiscale and multiphysics formulations, which in turn require many high-quality, robust, portable high-performance math libraries. However, without coordination, independent packages often cannot be easily composed. The Extreme-scale Scientific Software Development Kit (xSDK) provides infrastructure for a collection of related and complementary software elements—developed by diverse, independent teams throughout the HPC community—that provide the building blocks, tools, models, processes, and related artifacts for rapid and efficient development of high-quality applications.</p><p> This tutorial describes the development of the xSDK, while at the same time explain the collaboration among math library teams toward two strategic objectives: building community and building sustainability—useful to consider for efforts toward Software Development Kits generally, in other areas of reusable software technologies. Requirements and design focus on 6 key themes: xSDK growth, xSDK distribution, integration and usage of xSDK packages, high-quality products, user support, and regular upgrades. We will discuss xSDK community policies that help to improve code quality and compatibility across independently developed packages, while also determining criteria for member packages’ inclusion in the xSDK. We will describe the release process and demonstrate the use of the xSDK in application codes. Finally, we will provide the opportunity for breakout discussions and hands-on sessions with developers of the individual member packages (hypre, MAGMA, MFEM, PETSc, SUNDIALS, SuperLU, Trilinos), focusing on capabilities and usage of these libraries as needed by ECP applications. </p>