Abstract
We define a novel approach for optimizing the use of libraries within applications. We propose that library-defined abstractions be annotated with additional semantics to support their automated optimization. By leveraging these additional semantics we enable specialized optimizations of application codes which use library abstractions. We believe that such an approach entails the use of formal methods.
It is a common perception that performance is inversely proportional to the level of abstraction. Our work shows that this is not the case if the additional semantics of library-defined abstractions can be leveraged. We describe ROSE, a framework for building source-to-source translators that perform high-level optimizations on scientific applications. ROSE allows the recognition of library abstractions and the optimization of their use in applications. We show how ROSE can utilize the semantics of userdefined abstractions in libraries within the compile-time optimization of applications.
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
Parsons, R., Quinlan, D.: A++/P++ array classes for architecture independent finite difference computations. In: Proceedings of the Second Annual Object-Oriented Numerics Conference (April 1994)
Quinlan, D., Schordan, M., Miller, B., Kowarschik, M.: Parallel object-oriented framework optimization. Concurrency and Computation: Practice and Experience 16(2-3), 293–302 (2004)
Schordan, M., Quinlan, D.: A Source-To-Source Architecture for User-Defined Optimizations. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 214–223. Springer, Heidelberg (2003)
Edison Design Group, http://www.edg.com
Bodin, F., Beckman, P., Gannon, D., Gotwals, J., Narayana, S., Srinivas, S., Winnicka, B.: Sage++: An object-oriented toolkit and class library for building fortran and C++ restructuring tools. In: Proceedings. OONSKI 1994, Oregon (1994)
Moessenboeck, H.: Coco/R - A generator for production quality compilers. In: Hammer, D. (ed.) CC 1990. LNCS, vol. 477. Springer, Heidelberg (1991)
Fraser, C.W., Henry, R.R., Proebsting, T.A.: BURG: fast optimal instruction selection and tree parsing. ACM SIGPLAN Notices 27(4), 68–76 (1992)
Yi, Q., Quinlan, D.: Applying loop optimizations to object-oriented abstractions through general classification of array semantics. In: The 17th International Workshop on Languages and Compilers for Parallel Computing, West Lafayette, Indiana, USA (September 2004)
Kennedy, K., Broom, B., Cooper, K., Dongarra, J., Fowler, R., Gannon, D., Johnsson, L., Mellor-Crummey, J., Torczon, L.: Telescoping languages: A strategy for automatic generation of scientific problem-solving systems from annotated libraries. Journal of Parallel and Distributed Computing 61(12), 1803–1826 (2001)
Lam, M.S., Amarasinghe, S.P., Anderson, J.M., Tseng, C.W.: The suif compiler for scalable parallel machines. In: Proceedings of the Seventh SIAM Conference on Parallel Processing for Scientific Computing (Feburary 1995)
Chiba, S.: Macro processing in object-oriented languages. In: TOOLS Pacific 1998, Technology of Object-Oriented Languages and Systems (1998)
Guyer, S.Z., Lin, C.: An annotation language for optimizing software libraries. ACM SIGPLAN Notices 35(1), 39–52 (2000)
Veldhuizen, T.: Expression templates. In: Lippmann, S.B. (ed.) C++ Gems. Prentice-Hall, Englewood Cliffs (1996)
Bassetti, F., Davis, K., Quinlan, D.: A comparison of performance-enhancing strategies for parallel numerical object-oriented frameworks. In: Ishikawa, Y., Reynders, J.V.W., Tholburn, M. (eds.) ISCOPE 1997. LNCS, vol. 1343. Springer, Heidelberg (1997)
Wu, P., Midkiff, S.P., Moreira, J.E., Gupta, M.: Improving Java performance through semantic inlining. In: Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing (March 1999)
Artigas, P.V., Gupta, M., Midkiff, S., Moreira, J.: Automatic loop transformations and parallelization for Java. In: Proceedings of the 2000 International Conference on Supercomputing (May 2000)
Wu, P., Padua, D.: Containers on the parallelization of general-purpose Java programs. In: Proceedings of International Conference on Parallel Architectures and Compilation Techniques (October 1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Quinlan, D., Schordan, M., Yi, Q., Saebjornsen, A. (2006). Classification and Utilization of Abstractions for Optimization. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods. ISoLA 2004. Lecture Notes in Computer Science, vol 4313. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11925040_5
Download citation
DOI: https://doi.org/10.1007/11925040_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48928-3
Online ISBN: 978-3-540-48929-0
eBook Packages: Computer ScienceComputer Science (R0)