Draft document generated by the IDEAS xSDK project.
We are actively soliciting suggestions from the community at https://xsdk.info/policies.
xSDK Community Installation Policies
Version 0.5.0, June 27, 2019
Combinations of multiple software packages developed by different groups have become essential for large-scale computational science, where the capabilities needed for modeling, simulation, and analysis are broader than any single team has resources to address. The often-tedious trial-and-error process of obtaining, configuring, and installing any single tool may arguably be manageable. From the perspective of an end-user application scientist, however, handling each tool’s installation idiosyncrasies can easily become overwhelming when dealing with several packages in combination. Worse, such problems are compounded by the need for consistency among packages to be used within the same application in terms of compiler, compiler version, exotic compiler optimization options, and common third-party packages such as BLAS and HDF5.
A key aspect of work in the IDEAS software productivity project is developing an Extreme-scale Scientific Software Development Kit (xSDK). As an initial step in this work, our goal is to define and implement a standard subset1 of configure and CMake2 options for xSDK and other HPC packages in order to make the configuration and installation process as efficient as possible on standard Linux distributions and Mac OS, as well as on target machines at DOE computing facilities (ALCF, NERSC, OLCF). Note that we are not requiring that all packages use the same installation software, merely that they follow the same standard procedure with the same option names for installation. This approach provides maximum flexibility for each package to select the most suitable toolchain to use for its package.
Development of a standard xSDK package installation interface is a foundational step toward the seamless combined use of multiple xSDK libraries. The impact of this work is that all xSDK packages will have standard configuration and build instructions, as well as a tester to ensure that all functionality works properly. In addition, because new packages in the xSDK will follow the same standard, it is possible to make the installations "scriptable," that is, to write tools to install many packages automatically. This work is part of the xSDK Community Package Policies.
xSDK Standard Configure and CMake Options3
For further discussion and examples of the xSDK standard Configure and CMake options see discussions_and_examples.md.
- Changes in version 0.5.0, June 27, 2019:
- Changed installation policies 13 and 10 and examples in 10
This document was prepared by Roscoe Bartlett, Jason Sarich, and Barry Smith, with key input from Todd Gamblin. We thank xSDK software developers and the IDEAS team for insightful discussion about issues and approaches.
This material is based upon work supported by the U.S. Department of Energy Office of Science, Advanced Scientific Computing Research and Biological and Environmental Research programs.
1 Packages are free to support their own additional options, but using the standard options should be all that is needed to get correct builds.
2 A subset of these standard behaviors is implemented in the XSDKDefaults.cmake module and is demonstrated and tested in the CMake project https://github.com/bartlettroscoe/XSDKCMakeProj.
3 This standard is related only to arguments to CMake and GNU Autoconf; there is no requirement regarding the make
system used (for example, that it be GNU make) nor that the make system accepts any particular arguments, such as