Spack
A flexible package manager that supports multiple versions, configurations, platforms, and compilers
Area: Software ecosystem and delivery
CASS member: PESO
Description
Spack is a multi-platform, language-agnostic package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, Windows, and many supercomputers. Spack is non-destructive: installing a new version of a package does not break existing installations, so many configurations of the same package can coexist.
Spack offers a simple syntax that allows users to specify versions and configuration options. Package files are written in Python, and users can create reproducible “environments” that allow many packages to be integrated and deployed together. Spack can build packages from source, create binary packages, and also has supports reproducible developer workflows and continuous integration.
Spack has a built-in library of over 8,000 package recipes and an active community of over 1,400 contributors.
Target audience
Spack can be used on any machine from a laptop to a high performance cluster. It can be used by individuals who want to install and use software, by developers who maintain many different software packages, and by large teams or facilities who want to deploy software on shared systems for many users. Package authors can add their packages to Spack to make them more easily available to their user base.
Package links
Additional resources
Impact stories
- Whole Device Modeling of Magnetically Confined Fusion Plasma (January 24, 2025)
- WarpX Enables Computational Design of Next-Generation Plasma-Based Accelerators (January 21, 2025)
- The Value of a Scientific Software Ecosystem in Advancing Scientific Discovery (January 14, 2025)
- Advancing High-Performance Computing - DoD HPC Modernization Program Uses Spack and E4S (January 10, 2025)