Profile-Guided Composition

  • Jesper Andersson
  • Morgan Ericsson
  • Christoph Kessler
  • Welf Löwe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4954)


We present an approach that generates context-aware, optimized libraries of algorithms and data structures. The search space contains all combinations of implementation variants of algorithms and data structures including dynamically switching and converting between them. Based on profiling, the best implementation for a certain context is precomputed at deployment time and selected at runtime. In our experiments, the profile-guided composition outperforms the individual variants in almost all cases.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alexandrescu, A.: Modern C++ design: generic programming and design patterns applied. Addison-Wesley, Reading (2001)Google Scholar
  2. 2.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. MIT Press, Cambridge (2000)Google Scholar
  3. 3.
    Eriksson, M., Kessler, C., Chalabine, M.: Load balancing of irregular parallel divide-and-conquer algorithms in group-spmd programming environments. In: PASA 2006, 8th Workshop on Parallel Systems and Algorithms. Lecture Notes in Informatics (LNI), GI vol. P-81 (2006)Google Scholar
  4. 4.
    Frick, A., Goos, G., Neumann, R., Zimmermann, W.: Construction of robust class hierarchies. Software Practice and Experience 30(5), 481–543 (2000)MATHCrossRefGoogle Scholar
  5. 5.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns – Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  6. 6.
    Kessler, C., Löwe, W.: A framework for performance-aware composition of explicitly parallel components. In: Proc. ParCo 2007, Parallel Computing: Architectures, Algorithms and Applications, Jülich/Aachen, Germany, IOS Press, Amsterdam (2008)Google Scholar
  7. 7.
    Kiczales, G.: Aspect-oriented programming. ACM Comput. Surv. 28(4), 154 (1996)CrossRefGoogle Scholar
  8. 8.
    Li, X., Garzarán, M.J., Padua, D.: A dynamically tuned sorting library. In: CGO 2004: Int. Symp. on Code Generation and Optimization, p. 111 (2004)Google Scholar
  9. 9.
    Löwe, W., Neumann, R., Trapp, M., Zimmermann, W.: Robust dynamic exchange of implementation aspects. In: TOOLS 29—Technology of Object-Oriented Languages and Systems, pp. 351–360. IEEE Computer Society Press, Los Alamitos (1999)Google Scholar
  10. 10.
    Mehlhorn, K., Näher, S.: Leda: a platform for combinatorial and geometric computing. Commun. ACM 38(1), 96–102 (1995)CrossRefGoogle Scholar
  11. 11.
    Millstein, T.: Practical predicate dispatch. SIGPLAN Not. 39(10), 345–364 (2004)CrossRefGoogle Scholar
  12. 12.
    Schultz, U., Lawall, J., Consel, C., Muller, G.: Towards automatic specialization of Java programs. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 367–390. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  13. 13.
    Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 550–570. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  14. 14.
    Strassen, V.: Gaussian elimination is not optimal. Numerische Mathematik 14(3), 354–356 (1969)CrossRefMathSciNetGoogle Scholar
  15. 15.
    Yu, H., Rauchwerger, L.: An adaptive algorithm selection framework for reduction parallelization. IEEE Transactions on Parallel and Distributed Systems PDS-17(10), 1084–1096 (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Jesper Andersson
    • 1
  • Morgan Ericsson
    • 1
  • Christoph Kessler
    • 2
  • Welf Löwe
    • 1
  1. 1.Software Technology GroupMSI, Växjö UniversitySweden
  2. 2.Programming Environments LaboratoryIDA, Linköping UniversitySweden

Personalised recommendations