Introduction to algorithms
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
LEDA: a platform for combinatorial and geometric computing
Communications of the ACM
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Construction of robust class hierarchies
Software—Practice & Experience
Modern C++ design: generic programming and design patterns applied
Modern C++ design: generic programming and design patterns applied
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Robust Dynamic Exchange of Implementation Aspects
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
A Dynamically Tuned Sorting Library
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An Adaptive Algorithm Selection Framework for Reduction Parallelization
IEEE Transactions on Parallel and Distributed Systems
Autonomic Software Product Lines (ASPL)
Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Comparing machine learning approaches for context-aware composition
SC'11 Proceedings of the 10th international conference on Software composition
Language and compiler support for auto-tuning variable-accuracy algorithms
CGO '11 Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
Optimized composition of performance-aware parallel components
Concurrency and Computation: Practice & Experience
Adaptation of legacy codes to context-aware composition using aspect-oriented programming
SC'12 Proceedings of the 11th international conference on Software Composition
Hi-index | 0.00 |
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.