Reproducible Dependency Management
Overview: SC'22 paper
Important Links: Farid Zakaria’s blog, LLNL’s BUILD project
Outside collaborators: Todd Gamblin (LLNL), Tom Scogland (LLNL)
Software stacks have become complex, with the dependencies of some applications numbering in the hundreds. Packaging, distributing, and administering software stacks of that scale is a complex undertaking anywhere. In increasingly heterogenous architectures today’s systems deal with esoteric compilers, hardware, and a panoply of uncommon combinations. We explore the mechanisms available for packaging software to find its own dependencies in the context of a taxonomy of software distribution, and discuss their benefits and pitfalls. A goal of this project is to make builds reproducible and portable and performance-optimized, removing a key barrier to entry for the next generation of computer experimentalists in class rooms and in research labs.