An annotation language for optimizing software libraries
- 31 December 1999
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 35 (1) , 39-52
- https://doi.org/10.1145/331960.331970
Abstract
This paper introduces an annotation language and a compiler that together can customize a library implementation for specific application needs. Our approach is distinguished by its ability to exploit high level, domain-specific information in the customization process. In particular, the annotations provide semantic information that enables our compiler to analyze and optimize library operations as if they were primitives of a domain-specific language. Thus, our approach yields many of the performance benefits of domain-specific languages, without the effort of developing a new compiler for each domain. This paper presents the annotation language, describes its role in optimization, and illustrates the benefits of the overall approach. Using a partially implemented compiler, we show how our system can significantly improve the performance of two applications written using the PLAPACK parallel linear algebra library.Keywords
This publication has 14 references indexed in Scilit:
- DyC: an expressive annotation-directed dynamic compiler for CTheoretical Computer Science, 2000
- An evaluation of staged run-time optimizations in DyCPublished by Association for Computing Machinery (ACM) ,1999
- Declarative specialization of object-oriented programsACM SIGPLAN Notices, 1997
- A high-performance, portable implementation of the MPI message passing interface standardParallel Computing, 1996
- A metaobject protocol for C++Published by Association for Computing Machinery (ACM) ,1995
- Increasing network throughput by integrating protocol layersIEEE/ACM Transactions on Networking, 1993
- Abstract Interpretation FrameworksJournal of Logic and Computation, 1992
- Analysis of pointers and structuresACM SIGPLAN Notices, 1990
- Partial evaluation applied to numerical computationPublished by Association for Computing Machinery (ACM) ,1990
- A set of level 3 basic linear algebra subprogramsACM Transactions on Mathematical Software, 1990