Abstract
This paper describes how the use of software libraries, which is prevalent in high performance computing, can benefit from compiler optimizations in much the same way that conventional programming languages do. We explain how the compilation of these informal languages differs from the compilation of more conventional languages. In particular, such compilation requires precise pointer analysis, domain-specific information about the library’s semantics, and a configurable compilation scheme. We describe a solution that combines dataflow analysis and pattern matching to perform configurable optimizations.
This work was supported in part by NSF CAREERS Grant ACI-9984660, DARPA Contract #F30602-97-1-0150 from the US Air Force Research Labs, and an Intel Fellowship.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
P.V. Artigas, M. G upta, S.P. Midkiff, and J.E. Moreira. High performance numerical computing in Java: language and compiler issues. In Workshop on Languages and Compilers for Parallel Computing, 1999.
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.
A. Berlin and D. Weise. Compiling scientific programs using partial evaluation. IEEE Computer, 23(12):23–37, December 1990.
David R. Chase, MarkWegman, and F. Kenneth Zadeck. Analysis of pointers and structures. ACM SIGPLAN Notices, 25(6):296–310, June 1990.
S. C hiba. A metaobject protocol for C++. In Proceedings of the Conference on Object Oriented Programming Systems, Languages and Applications, pages 285–299, October 1995.
Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive inter-procedural computation of pointer-induced aliases and side effects. In ACM Symposium on Principles of Programming Languages, pages 232–245, 1993.
Charles Consel and Olivier Danvy. Tutorial notes on partial evaluation. In ACM Symposium on Principles of Programming Languages, pages 493–501, 1993.
Patrick Cousot and Radhia Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511–547, August 1992.
Maryam Emami, Rakesh Ghiya, and Laurie J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In ACMConference on Programming Language Design and Implementation, pages 242–256, June 20-24, 1994.
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, October15-17 1997. USENIX Association.
Message Passing Interface Forum. MPI: A message passing interface standard. International Journal of Supercomputing Applications, 8(3/4), 1994.
Rakesh Ghiya and Laurie J. Hendren. Connection analysis: A practical interprocedural heap analysis for C. International Journal of Parallel Programming, 24(6):547–578, December 1996.
Samuel Z. Guyer and Calvin Lin. An annotation language for optimizing software libraries. In Second Conference on Domain Specific Languages, pages 39–52, October 1999.
Samuel Z. Guyer and Calvin Lin. Broadway: A software architecture for scientific computing. In IFIPS Working Group 2.5: Software Architectures for Scientific Computing Applications, (to appear) October 2000.
Neil 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.
Florian Martin. PAG-an efficient program analyzer generator. International Journal on Software Tools for Technology Transfer, 2(1):46–67, 1998.
Steven S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kauffman, San Francico, CA, 1997.
M. Shapiro and S. Horwitz. The effects of the precision of pointer analysis. In 4th International Static Analysis Symposium, Lecture Notes in Computer Science, Vol. 1302, 1997.
Robert van de Geijn. Using PLAPACK-Parallel Linear Algebra Package. The MIT Press, 1997.
Daniel Weise and Roger Crew. Programmable syntax macros. In Proceedings of the Conference on Programming Language Design and Implementation, pages 156–165, June 1993.
Deborah Whitfield and Mary Lou Soffa. Automatic generation of global optimizers. ACM SIGPLAN Notices, 26(6):120–129, June 1991.
Robert P. Wilson. Efficient, Context-sensitive Pointer Analysis for C Programs. PhD thesis, Stanford University, Department of Electrical Engineering, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Guyer, S.Z., Lin, C. (2001). Optimizing the Use of High Performance Software Libraries. In: Midkiff, S.P., et al. Languages and Compilers for Parallel Computing. LCPC 2000. Lecture Notes in Computer Science, vol 2017. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45574-4_15
Download citation
DOI: https://doi.org/10.1007/3-540-45574-4_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42862-6
Online ISBN: 978-3-540-45574-5
eBook Packages: Springer Book Archive