Lighthouse is a framework for creating, maintaining, and using a taxonomy of available software that can be used to build highly-optimized matrix algebra computations. The taxonomy provides an organized anthology of software components and programming tools needed for that task. The taxonomy serves as a guide to practitioners seeking to learn what is available for their programming tasks, how to use it, and how the various parts fit together. It builds upon and improves existing collections of numerical software, adding tools for the tuning of matrix algebra computations.
We are developing an initial set of tools that operate in conjunction with this taxonomy. In particular, we provide an interface that takes a high-level description of a matrix algebra computation and produces a customizable code template using the software in the taxonomy. The template will aid the developer at all steps of the process--from the initial construction of Basic Linear Algebra Subprogram (BLAS)-based codes through the full optimization of that code. Finally, we advance the state-of-the-art in tuning tools by improving some of the tools included in the taxonomy, broadening their ranges of functionality in terms of problem domains and languages.
Acknowledgment: This material is based upon work supported by the National Science Foundation under Grants No. 0916474 and 1219089.