xSDK Foundations: Toward an Extreme-scale Scientific Software Development Kit

Roscoe Bartlett, Irina Demeshko, Todd Gamblin, Glenn Hammond, Michael Allen Heroux, Jeffrey Johnson, Alicia Klinvex, Xiaoye Li, Lois Curfman McInnes, J. David Moulton, Daniel Osei-Kuffuor, Jason Sarich, Barry Smith, James Willenbring, Ulrike Meier Yang


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.

Full Text:



Almgren, A., DeMar, P., Vetter, J., et al.: DOE Exascale Requirements Review for Advanced Scientific Computing Research (2016), u.S. Department of Energy, Office of Science, Advanced Scientific Computing Research, see http://exascaleage.org/ascr/, Sept 27– 29, 2016

Anderson, E., Bai, Z., Bischof, C., Blackford, L.S., Demmel, J., Dongarra, J.J., Du Croz, J., Hammarling, S., Greenbaum, A., McKenney, A., Sorensen, D.: LAPACK Users’ Guide (Third Ed.) (1999), DOI: 10.1137/1.9780898719604

Balay, S., Adams, M.F., Brown, J., Brune, P., Buschelman, K., Eijkhout, V., Gropp, W.D., Kaushik, D., Knepley, M.G., McInnes, L.C., Rupp, K., Smith, B.F., Zhang, H.: PETSc Web page. http://www.mcs.anl.gov/petsc

Bartlett, R., Sarich, J., Smith, B., Gamblin, T., xSDK developers: xSDK community installation policies: GNU Autoconf and CMake options (2016), DOI: 10.6084/m9.figshare.4495133

Diachin (PI), L.: Interoperable Technologies for Advanced Petascale Simulations, SciDAC Institute. http://www.scidac.gov/math/ITAPS.html, accessed: 2017-02-15

Diachin (PI), L.: SciDAC-3 Frameworks, Algorithms, and Scalable Technologies for Mathematics (FASTMath) Institute. http://www.fastmath-scidac.org/, accessed: 2017-02-15

Dongarra, J.J., Bunch, J., Moler, C., Stewart, G.: LINPACK Users’ Guide. SIAM Pub. (1979), DOI: 10.1137/1.9781611971811

Dongarra, J.J., Du Croz, J., Hammarling, S., Duff, I.: A set of level 3 basic linear algebra subprograms. ACM Trans. Math. Software 16(1), 1–17 (March), DOI: 10.1145/77626.79170

Dongarra, J., DuCroz, J., Hammarling, S., Hanson, R.: An extended set of Fortran basic linear algebra subprograms. ACM Trans. Math. Software 14 (1988), DOI: 10.1145/42288.42291

Gamblin, T., LeGendre, M.P., Collette, M.R., Lee, G.L., Moody, A., de Supinski, B.R., Futral, W.S.: The Spack Package Manager: Bringing order to HPC software chaos. In: Supercomputing 2015 (SC’15). Austin, Texas (November 15-20), lLNL-CONF-669890

Garbow, B.S., Boyle, J.M., Dongarra, J.J., Moler, C.B.: Matrix Eigensystem Routines – EISPACK Guide Extension, Lecture Notes in Computer Science, vol. 51. Springer–Verlag, New York (1977), DOI: 10.1007/3-540-08254-9

Heroux, M.A., Allen, G., et al.: Computational Science and Engineering Software Sustainability and Productivity (CSESSP) Challenges Workshop Report (September 2016), https://www.nitrd.gov/PUBS/CSESSPWorkshopReport.pdf

Johansen, H., McInnes, L.C., Bernholdt, D., Carver, J., Heroux, M., Hornung, R., Jones, P., Lucas, B., Siegel, A., Ndousse-Fetter, T.: Software Productivity for Extreme-Scale Science (2014), report on DOE Workshop, January 13-14, 2014, available via http://www.orau.gov/swproductivity2014Software


Keyes (PI), D.: Towards Optimal Petascale Simulations, SciDAC Institute. http://www.scidac.gov/math/TOPS.html, accessed: 2017-02-15

Klinvex, A.M.: xSDKTrilinos user manual. Tech. Rep. SAND2016-3396 O, Sandia (2016)

Lawson, C., Hanson, R., Kincaid, D., Krogh, F.: Algorithm 539: Basic linear algebra subprograms for Fortran usage. ACM Trans. Math. Software 5 (1979), DOI: 10.1145/355841.355848

Lawson, C., Hanson, R., Kincaid, D., Krogh, F.: Basic linear algebra subprograms for Fortran usage. ACM Trans. Math. Software 5 (1979), DOI: 10.1145/355841.355848

McInnes, L.C., Heroux, M., Li, X.S., Smith, B., Yang, with contributions from all xSDK developers, U.: What are Interoperable Software Libraries: Introducing the xSDK, version 0.1, April 25, 2016, available via https://ideas-productivity.org/resources/howtos/

Miller, M.C., Diachin, L., Balay, S., McInnes, L.C., Smith, B.: Package management practices essential for interoperability: Lessons learned and strategies developed for FASTMath (2013), DOI: 10.6084/m9.figshare.789055.v1

Miller, M.C., Reus, J.F., Matzke, R.P., Koziol, Q.A., Cheng, A.P.: Smart libraries: Best SQE practices for libraries with emphasis on scientific computing. In: Proceedings of the Nuclear Explosives Code Developer’s Conference (2004), available via https://wci.llnl. gov/codes/smartlibs/UCRL-JRNL-208636.pdf

R ̈ude, U., Willcox, K., McInnes, L.C., De Sterck, H., Biros, G., Bungartz, H., Corones, J., Cramer, E., Crowley, J., Ghattas, O., Gunzburger, M., Hanke, M., Harrison, R., Heroux, M., Hesthaven, J., Jimack, P., Johnson, C., Jordan, K.E., Keyes, D.E., Krause, R., Kumar, V., Mayer, S., Meza, J., Mørken, K.M., Oden, J.T., Petzold, L., Raghavan, P., Shontz, S.M., Trefethen, A., Turner, P., Voevodin, V., Wohlmuth, B., Woodward, C.S.: Research and education in computational science and engineering (2016), available via https://arxiv.org/abs/1610.02608, submitted to SIAM Review 22. Smith, B., Bartlett, R., xSDK developers: xSDK community package policies (2016), version 0.3, December 2, 2016, DOI: 10.6084/m9.figshare.4495136

Smith, B.T., Boyle, J.M., Dongarra, J.J., Garbow, B.S., Ikebe, Y., Klema, V.C., Moler, C.B.: Matrix Eigensystem Routines – EISPACK Guide, Lecture Notes in Computer Science, vol. 6. Springer–Verlag, New York, second edn. (1976), DOI: 10.1007/3-540-07546-1 2017, Vol. 4, No. 1

Alquimia Web page. https://bitbucket.org/berklab/alquimia, accessed: 2017-02-15

Hypre Web page. http://www.llnl.gov/CASC/hypre, accessed: 2017-02-15

NAG Web page. https://www.nag.com, accessed: 2017-02-15

PFLOTRAN Web page. http://www.pflotran.org, accessed: 2017-02-15

SuperLU Web page. http://crd.lbl.gov/~xiaoye/SuperLU, accessed: 2017-02-15

The Exascale Computing Project. https://exascaleproject.org, accessed: 2017-02-15

The HSL Mathematical Software Library. http://www.hsl.rl.ac.uk, accessed: 2017-02-15

Trilinos Web page. https://trilinos.org, accessed: 2017-02-15

Publishing Center of South Ural State University (454080, Lenin prospekt, 76, Chelyabinsk, Russia)