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.
- 1.Mark B. Abbott and Larry L. Peterson. Increasing network throughput by integrating protocol layers. IEEE/ACM Transactions on Networking, 1 (5):600-61 O, October 1993. Google ScholarDigital Library
- 2.E. Anderson, Z. Bai, C. Bischof, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, S. Ostrouchov, and D. Sorensen. LAPACK Users' Guide. SIAM, Philadelphia, second edition, 1995. Google ScholarDigital Library
- 3.G. Baker, J. Gunnels, G. Morrow, B. Riviere, and R. van de Geijn. PLAPACK: high performance through high level abstractions. In Proceedings of the International Conference on Parallel Processing, 1998. Google ScholarDigital Library
- 4.P. Benner and E.S. Quintana-Orti. Parallel distributed solvers for large stable generalized Lyapunov equations. In Parallel Processing Letters, 1998 (to appear).Google Scholar
- 5.A. Berlin. Partial evaluation applied to numerical computation. In Proceedings of the 1990 A CM Conference on Lisp and Functional Programming, Nice, France, 1990. Google ScholarDigital Library
- 6.A. Berlin and D. Weise. Compiling scientific programs using partial evaluation. IEEE Computer, 23( 12):23-37, December 1990. Google ScholarDigital Library
- 7.David R. Chase, Mark Wegman, and F. Kenneth Zadeck. Analysis of pointers and structures. A CM SIGPLAN Notices, 25(6):296-31 O, June 1990. Google ScholarDigital Library
- 8.S. Chiba. A metaobject protocol for C++. In Proceedings of the Conference on Object Oriented Programming Systems, Languages and Applications, pages 285-299, October 1995. Google ScholarDigital Library
- 9.Patrick Cousot and Radhia Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511-547, August 1992.Google ScholarCross Ref
- 10.Crispin Cowan, Tito Autrey, Charles Krasic, Calton Pu, and Jonathan Walpole. Fast concurrent dynamic linking for an adaptive operating system. In Proceedings of the International Conference on Configurable Distributed Systems, May 1996. Google ScholarDigital Library
- 11.J.J. Dongarra, I. Duff, J. DuCroz, and S. Hammarling. A set of level 3 basic linear algebra subprograms. A CM Transactions on Mathematical Software, 16(1):1-28, 1990. Google ScholarDigital Library
- 12.Dawson R. Engler. Incorporating application semantics and control into compilation. In Proceedings of the Conference on Domain-Specific Languages (DSL-97), pages 103-118, Berkeley, Octoberl5-17 1997. USENIX Association. Google ScholarDigital Library
- 13.B. Grant, M. Mock, M. Philipose, C. Chambers, and S.J. Eggers. DyC: An expressive annotationdirected dynamic compiler for c. Theoretical Computer Science, to appear. Google ScholarDigital Library
- 14.B. Grant, M. Philipose, M. Mock, C. Chambers, and S.J. Eggers. An evaluation of staged run-time optimizations in DyC. In SIGPLAN Conference on Programming Language Design and Implementation, pages 223-233, 1999. Google ScholarDigital Library
- 15.William Gropp, Ewing Lusk, Nathan Doss, and Anthony Skjellum. A high perlbrmance, portable implementation of the MPI message passing interface standard. Parallel Computing, 22(6):789-828, 1996. Google ScholarDigital Library
- 16.M. W. Hall, J. M. Anderson, S. P. Amarasinghe, B. R. Murphy, S.-W. Liao, E. Bugnion, and M. S. Lam. Maximizing multiprocessor performance with the SUIF compiler. IEEE Computer, December 1996. Google ScholarDigital Library
- 17.Nell D. Jones and Flemming Nielson. Abstract interpretation' a semantics-based tool for program analysis. In Handbook of Logic in Computer Science. Oxford University Press, 1994. 527-629. Google ScholarDigital Library
- 18.Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, .lean- Marc Loingtier, and lohn Irwin. Aspect-oriented programming. In European Conference on Object- Oriented Programming (ECOOP), June 1999. Finland, Springer-Verlag LNCS 1241.Google Scholar
- 19.John Lamping, Gregor Kiczales, Luis H. Rodriguez Jr., and Erik Ruf. An architecture for an open compiler. In Proceedings of the IMSA'92 Workshop on Reflection and Meta-level Architectures, 1992.Google Scholar
- 20.Steven S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kauffman, San Francico, CA, 1997. Google ScholarDigital Library
- 21.Jackie Neider, Tom Davies, and Mason Woo. Open GL Programming Guide. Addison-Wesley, 1996.Google Scholar
- 22.J. N. Neighbors. Draco: A Method for Engineering Reusable Software Systems. In T. }. Biggerstaff and C. Richter, editors, Software Reusability, volume I---Concepts and Models, chapter 12, pages 295-319. ACM press, 1989. Google Scholar
- 23.Y. Smaragdakis and D. Batory. Application generators. Encyclopedia of Electrical and Electronics Engineering, to appear.Google Scholar
- 24.Yannis Smaragdakis and Don Batory. DiS- TiL: a transtbrmation library for data structures. In USENIX Conference on Domain-Specific Languages (DSL-97), October 1997. Google ScholarDigital Library
- 25.Robert van de Geijn. Using PLAPACK- Parallel Linear Algebra Package. The MIT Press, 1997. Google ScholarDigital Library
- 26.Mark T. Vandevoorde. Exploiting Specifications to Improve Program Performance. PhD thesis, MIT, Department of Electrical Engineering and Computer Science (also MIT/LCS/TR-598), 1994. Google ScholarDigital Library
- 27.Eugen N. Volanschi, Charles Consel, and Crispin Cowan. Declarative specialization of objectoriented programs. SIGPLAN Notices, Proceedings of the A CM SIC, PLAN Conference on Object- Oriented Programming Systems, Languages and Applications (OOPSLA-97), 39( 1):286-300, October 1997. Google ScholarDigital Library
- 28.Robert P. Wilson and Monica S. Lam. Efficient context-sensitive pointer analysis for C programs. In Proceedings of the ACM SIGPLAN'95 Conference on Programming Ixmguage Design and implementation (PLDI), pages 1-12, La Joila, Calilbrnia, 18-21 June t995. Google ScholarDigital Library
Index Terms
- An annotation language for optimizing software libraries
Recommendations
An annotation language for optimizing software libraries
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 ...
An annotation language for optimizing software libraries
DSL'99: Proceedings of the 2nd conference on Conference on Domain-Specific Languages - Volume 2This 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 ...
Languages as libraries
PLDI '11Programming language design benefits from constructs for extending the syntax and semantics of a host language. While C's string-based macros empower programmers to introduce notational shorthands, the parser-level macros of Lisp encourage ...
Comments