Using Answer Set Programming for HPC Dependency Solving
Todd Gamblin, Massimiliano Culpo, Gregory Becker, Sergei, Shudler

TL;DR
This paper presents a novel approach using Answer Set Programming to efficiently solve complex dependency problems in high-performance computing software stacks, improving compatibility and configuration quality.
Contribution
It introduces ASP as a declarative method to model and solve HPC dependency issues, handling complex compatibility rules and large configuration spaces.
Findings
ASP can express HPC dependency rules concisely
ASP provides strong solution quality guarantees
Solver performs well with tens of thousands of packages
Abstract
Modern scientific software stacks have become extremely complex, using many programming models and libraries to exploit a growing variety of GPUs and accelerators. Package managers can mitigate this complexity using dependency solvers, but they are reaching their limits. Finding compatible dependency versions is NP-complete, and modeling the semantics of package compatibility modulo build-time options, GPU runtimes, flags, and other parameters is extremely difficult. Within this enormous configuration space, defining a "good" configuration is daunting. We tackle this problem using Answer Set Programming (ASP), a declarative model for combinatorial search problems. We show, using the Spack package manager, that ASP programs can concisely express the compatibility rules of HPC software stacks and provide strong quality-of-solution guarantees. Using ASP, we can mix new builds with…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, Reasoning, and Knowledge · Logic, programming, and type systems · Multi-Agent Systems and Negotiation
