Abstract
The art event-based analysis framework is used by multiple Intensity Frontier and other experiments and projects in High Energy Physics (HEP). A system of tools and scripts based around a Fermilab-originated package management system called UNIX Product Support (UPS) has evolved to provide development, packaging, release management, and distribution of the art suite, related experimental software and external dependencies in relocatable binary form. The existing system has limitations in environments such as macOS with System Integrity Protection (SIP) enabled and the various High Performance Computing (HPC) systems that the field of HEP is increasingly looking to leverage. This has led to a search for other ways of providing experiments with a packaging and build system that meets their needs. We describe our efforts to develop a packaging and release management system based on the Spack HPC package management tool to replace the existing UPS-based system. We additionally describe a companion system: SpackDev and cetmodules, allowing simultaneous development of multiple HEP software packages in a consistent environment. A successful implementation of the intended system would have applicability across HEP rather than merely to the users of the art framework.
Highlights
The art[1, 2] event-based analysis framework is a multi-package suite with ∼15 external dependencies in addition to libraries from the operating system. It is used by multiple High Energy Physics (HEP) experiments and projects1[3] and supported with an effort equivalent to less than 3 fulltime people including development, build, test, release, distribution and support activities
UNIX Product Support (UPS)[6, 7] was developed at Fermilab and released in 1990 as a package management application allowing the activation of consistent sets of built software of specified versions and variants in a UNIX shell environment
The high level macros provide high level directives for common operations like comparing test output against a reference, or generating and building auxiliary data for the ROOT application[10, 11]. They handle coordination across multiple aspects of CMake functionality for common operations such as ensuring that built libraries and executables are available for use in dependent packages, or encoding the setup of the required dependencies into a generated table file
Summary
The art[1, 2] event-based analysis framework is a multi-package suite with ∼15 external dependencies in addition to libraries from the operating system It is used by multiple HEP experiments and projects1[3] and supported with an effort equivalent to less than 3 fulltime people including development, build, test, release, distribution and support activities. The same team produces release distributions for the software produced by these entities and the more than 120 external products upon which they rely This is sustainable in part due to a development, packaging, build, release and distribution system that allows the creation of a binary distribution for a release consisting of packages of specified versions built with a particular compiler and language standard and with specified options for each package where appropriate. We describe our efforts to implement a replacement system based around the Spack[4, 5] packaging system, and our plans for completion and deployment
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have