Classification and Utilization of Abstractions for Optimization

  • Dan Quinlan
  • Markus Schordan
  • Qing Yi
  • Andreas Saebjornsen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4313)


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.


Loop Optimization Transformation Operator Compiler Optimization Absolute Location Abstract Syntax Tree 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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)Google Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    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)CrossRefGoogle Scholar
  4. 4.
    Edison Design Group,
  5. 5.
    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)Google Scholar
  6. 6.
    Moessenboeck, H.: Coco/R - A generator for production quality compilers. In: Hammer, D. (ed.) CC 1990. LNCS, vol. 477. Springer, Heidelberg (1991)Google Scholar
  7. 7.
    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)CrossRefGoogle Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)zbMATHCrossRefGoogle Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    Chiba, S.: Macro processing in object-oriented languages. In: TOOLS Pacific 1998, Technology of Object-Oriented Languages and Systems (1998)Google Scholar
  12. 12.
    Guyer, S.Z., Lin, C.: An annotation language for optimizing software libraries. ACM SIGPLAN Notices 35(1), 39–52 (2000)CrossRefGoogle Scholar
  13. 13.
    Veldhuizen, T.: Expression templates. In: Lippmann, S.B. (ed.) C++ Gems. Prentice-Hall, Englewood Cliffs (1996)Google Scholar
  14. 14.
    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)CrossRefGoogle Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Dan Quinlan
    • 1
  • Markus Schordan
    • 2
  • Qing Yi
    • 1
  • Andreas Saebjornsen
    • 3
  1. 1.Lawrence Livermore National LaboratoryUSA
  2. 2.Vienna University of Technology 
  3. 3.University of OsloNorway

Personalised recommendations