Active Libraries: Rethinking the roles of compilers and libraries
Todd L. Veldhuizen, Dennis Gannon

TL;DR
Active Libraries are innovative components in software development that actively participate in compilation, optimization, and self-description, enhancing performance and tool integration beyond traditional passive libraries.
Contribution
This paper introduces the concept of Active Libraries, which actively generate, optimize, and self-describe, representing a significant shift from traditional passive library design.
Findings
Active Libraries can generate components and specialize algorithms.
They optimize code and tune themselves for specific hardware.
They improve tool integration through self-description.
Abstract
We describe Active Libraries, which take an active role in compilation. Unlike traditional libraries which are passive collections of functions and objects, Active Libraries may generate components, specialize algorithms, optimize code, configure and tune themselves for a target machine, and describe themselves to tools (such as profilers and debuggers) in an intelligible way. Several such libraries are described, as are implementation technologies.
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
TopicsParallel Computing and Optimization Techniques · Advanced Data Storage Technologies · Distributed and Parallel Computing Systems
