Abstract
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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alexandrescu, A.: Modern C++ design: generic programming and design patterns applied. Addison-Wesley, Reading (2001)
Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. MIT Press, Cambridge (2000)
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)
Frick, A., Goos, G., Neumann, R., Zimmermann, W.: Construction of robust class hierarchies. Software Practice and Experience 30(5), 481–543 (2000)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns – Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
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)
Kiczales, G.: Aspect-oriented programming. ACM Comput. Surv. 28(4), 154 (1996)
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)
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)
Mehlhorn, K., Näher, S.: Leda: a platform for combinatorial and geometric computing. Commun. ACM 38(1), 96–102 (1995)
Millstein, T.: Practical predicate dispatch. SIGPLAN Not. 39(10), 345–364 (2004)
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)
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)
Strassen, V.: Gaussian elimination is not optimal. Numerische Mathematik 14(3), 354–356 (1969)
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)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Andersson, J., Ericsson, M., Kessler, C., Löwe, W. (2008). Profile-Guided Composition. In: Pautasso, C., Tanter, É. (eds) Software Composition. SC 2008. Lecture Notes in Computer Science, vol 4954. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78789-1_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-78789-1_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-78788-4
Online ISBN: 978-3-540-78789-1
eBook Packages: Computer ScienceComputer Science (R0)