skip to main content
10.1145/331960.331970acmconferencesArticle/Chapter ViewAbstractPublication PagesdslConference Proceedingsconference-collections
Article
Free Access

An annotation language for optimizing software libraries

Published:31 December 1999Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.A. Berlin and D. Weise. Compiling scientific programs using partial evaluation. IEEE Computer, 23( 12):23-37, December 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Patrick Cousot and Radhia Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511-547, August 1992.Google ScholarGoogle ScholarCross RefCross Ref
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle Scholar
  20. 20.Steven S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kauffman, San Francico, CA, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.Jackie Neider, Tom Davies, and Mason Woo. Open GL Programming Guide. Addison-Wesley, 1996.Google ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 23.Y. Smaragdakis and D. Batory. Application generators. Encyclopedia of Electrical and Electronics Engineering, to appear.Google ScholarGoogle Scholar
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.Robert van de Geijn. Using PLAPACK- Parallel Linear Algebra Package. The MIT Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An annotation language for optimizing software libraries

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                DSL '99: Proceedings of the 2nd conference on Domain-specific languages
                December 1999
                176 pages
                ISBN:1581132557
                DOI:10.1145/331960

                Copyright © 1999 Authors

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 31 December 1999

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader