Package Management Practices Essential for Interoperability: Lessons Learned and Strategies Developed for FASTMath
Any type of content formally published in an academic journal, usually following a peer-review process.
While open-source software packages for high-performance computing (HPC) are an essential foundation of many scientific applications, challenges arise in coordinating multiple packages that employ diverse development and release processes. This document identifies a few key issues and essential practices for packages to more easily interoperate within the same application. We discuss approaches under way within the multi-institutional FASTMath project, whose members develop robust, efficient, and scalable numerical research software for functionalities such as mesh management, discretization, and solvers. Our perspective and priorities for overcoming common problems—including inconsistent installation processes, inconsistent or missing configuration information, copying or spoofing dependent sources as a means of simplifying package code, and inconsistent/missing versioning—should be of interest to HPC software developers who aim to make their packages easier to interoperate with others.