Close

Presentation

Bridging the Gap Between Binary and Source-Based Package Management in Spack
DescriptionBinary package managers install software quickly but limit configurability due to rigid ABI requirements that ensure compatibility between binaries. Source package managers provide flexibility in building software, but compilation can be slow. For example, installing an HPC code with a new MPI implementation typically results in a full rebuild. Spack, a widely deployed, HPC-focused package manager, can use source and pre-compiled binaries, but without a binary compatibility model, it is unable to install binaries not built together. We present {\it splicing}, an extension to Spack that models binary compatibility between packages and allows seamless mixing of source and binary distributions. Splicing augments Spack's packaging language and dependency resolution engine to reuse compatible binaries while maintaining the flexibility of source builds. This extension incurs minimal installation-time overhead, and it allows rapid installation from binaries, even for ABI-sensitive dependencies like MPI that would otherwise require many rebuilds.