Bridging the Gap Between Binary and Source Based Package Management in Spack

📅 2025-09-09
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
In HPC environments, binary package managers suffer from inflexible configuration due to strict ABI constraints, while source-based builds incur inefficiency from redundant compilation (e.g., when switching MPI implementations). Although Spack supports hybrid source/binary deployment, its lack of a formal binary compatibility model prevents safe reuse of binaries built across heterogeneous environments. This work introduces *splicing*, a novel Spack extension that establishes the first fine-grained ABI compatibility model. It integrates metadata annotation, enhanced dependency resolution, and runtime compatibility checking to enable secure cross-environment binary reuse. The approach seamlessly unifies the configurability of source builds with the efficiency of binary installation—reducing redundant compilations significantly, achieving near-binary installation speed, and incurring negligible overhead. As a result, splicing enhances both flexibility and scalability of HPC software distribution.

Technology Category

Application Category

📝 Abstract
Binary package managers install software quickly but they 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 may result in a full rebuild. Spack, a widely deployed, HPC-focused package manager, can use source and pre-compiled binaries, but lacks a binary compatibility model, so it cannot mix binaries not built together. We present 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 but maintains the flexibility of source builds. It incurs minimal installation-time overhead and allows rapid installation from binaries, even for ABI-sensitive dependencies like MPI that would otherwise require many rebuilds.
Problem

Research questions and friction points this paper is trying to address.

Spack lacks binary compatibility model for mixing packages
Binary and source package management have configurability trade-offs
HPC installations require slow rebuilds for ABI-sensitive dependencies
Innovation

Methods, ideas, or system contributions that make the work stand out.

Splicing enables binary compatibility modeling
Seamlessly mixes source and binary distributions
Minimal overhead with flexible dependency resolution
🔎 Similar Papers
No similar papers found.
John Gouwar
John Gouwar
CS PhD. Student, Northeastern University
Programming Languages
G
Gregory Becker
Lawrence Livermore National Laboratory (LLNL)
T
Tamara Dahlgren
Lawrence Livermore National Laboratory (LLNL)
N
Nathan Hanford
Lawrence Livermore National Laboratory (LLNL)
Arjun Guha
Arjun Guha
Northeastern University
Programming Languages
Todd Gamblin
Todd Gamblin
Lawrence Livermore National Laboratory
hpcparallel computingperformancedependency managementdeveloper tools