Abstract
HPC support teams are often tasked with installing scientific software for their user community and the complexity of managing a large software stack gets very challenging. Software installation brings forth many challenges that requires a team of domain expertise and countless hours troubleshooting to build an optimal software state that is tuned to the architecture. In the past decade, two software build tools (Easybuild, Spack) have emerged that are widely accepted in HPC community to accelerate building a complete software stack for HPC systems. The support team are constantly involved in fulfilling software request for end-users which leads to an ever-growing software ecosystem. Once a software is installed, the support team hands it off to the user without any testing because scientific software requires domain expertise in order to test software. Some software packages are shipped with a test suite that can be run at post build while many software have no mechanism for testing. This poses a knowledge gap between HPC support team and end-users on the type of testing to do. Some HPC centers may have developed in-house test scripts that are suitable for testing their software, but these tests are not portable due to hardcoded paths and are often site dependent. In addition, there is no collaboration between HPC sites in building a test repository that will benefit the community. This paper presents buildtest, a framework to automate software testing for a software stack along with several module operations that would be of interest to the HPC support team.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Furlani, J.L.: Modules: providing a flexible user environment. In: Proceedings of the Fifth Large Installation Systems Administration Conference (LISA V), pp. 141–152 (1991)
Furlani, J.L., Osel, P.W.: Abstract yourself with modules. In: Proceeding of the Tenth Large Installation System Administration (LISA 1996), pp. 193–204 (1996)
Geimer, M., Hoste, K., McLay, R.: Modern scientific software management using EasyBuild and Lmod. In: 2014 First International Workshop on HPC User Support Tools (2014). https://doi.org/10.1109/hust.2014.8
Hoste, K., Timmerman, J., Georges, A., Weirdt, S.D.: EasyBuild: building software with ease. In: 2012 SC Companion: High Performance Computing, Networking Storage and Analysis (2012). https://doi.org/10.1109/sc.companion.2012.81
Gamblin, T., et al.: The Spack package manager. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis - SC 2015 (2015). https://doi.org/10.1145/2807591.2807623
List of build automation software. https://en.wikipedia.org/wiki/List_of_build_automation_software
GNU make. https://www.gnu.org/software/make/manual/make.html
CMake Documentation. https://cmake.org/documentation/
Autoconf. https://www.gnu.org/software/autoconf/
Buildtest. https://github.com/HPC-buildtest/buildtest-framework
Buildtest Documentation. https://buildtest.readthedocs.io/en/latest/
The spider tool. https://lmod.readthedocs.io/en/latest/136_spider.html
Configuring buildtest. https://buildtest.readthedocs.io/en/latest/configuring_buildtest.html
Show Keys. https://buildtest.readthedocs.io/en/latest/introspection.html#show-keys
User Collections. https://lmod.readthedocs.io/en/latest/010_user.html#user-collections
MPI and UPC User Guide. https://slurm.schedmd.com/mpi_guide.html#intel_mpi
Best Practices Using MPI under IBM Platform LSF. https://www.ibm.com/developerworks/community/wikis/form/anonymous/api/wiki/99245193-fced-40e5-90df-a0e9f50a0fb0/page/359ab0d9-7849-4c6a-8cb8-7a62050b5222/attachment/5c2eb892-b60e-4601-8548-2e836818c0a5/media/Platform_BPG_LSF_MPI_v2.pdf
Buildtest, Managing a Test Repository. https://github.com/HPC-buildtest/buildtest-framework/wiki/Managing-a-Test-Repository
Besseron, X.: Automatic Testing of Installed Software. FOSDEM 2014. https://archive.fosdem.org/2014/schedule/event/hpc_devroom_automatic_testing/
Idaho National Laboratory: hpcswtest. https://github.com/idaholab/hpcswtest
Swiss National Supercomputing Center (CSCS): ReFrame. https://github.com/eth-cscs/reframe
ReFrame Documentation. https://reframe-hpc.readthedocs.io/en/stable/
Build Examples. https://buildtest.readthedocs.io/en/devel/build_subcommand/build_examples.html
OSU Microbenchmark. https://buildtest.readthedocs.io/en/devel/benchmark_subcommand/osu.html
YAML. https://yaml.org/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Siddiqui, S. (2020). Buildtest: A Software Testing Framework with Module Operations for HPC Systems. In: Juckeland, G., Chandrasekaran, S. (eds) Tools and Techniques for High Performance Computing. HUST SE-HER WIHPC 2019 2019 2019. Communications in Computer and Information Science, vol 1190. Springer, Cham. https://doi.org/10.1007/978-3-030-44728-1_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-44728-1_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-44727-4
Online ISBN: 978-3-030-44728-1
eBook Packages: Computer ScienceComputer Science (R0)