Sambamba: Runtime Adaptive Parallel Execution
by Kevin Streit, Clemens Hammacher, Andreas Zeller, Sebastian Hack

Proc. 3rd International Workshop on Adaptive Self-Tuning Computing Systems (ADAPT), Chapter 7, January 2013.

Digital Library via DOI: 10.1145/2484904.2484911 - Local copy: Download as PDF file.

See also

More information is available at


How can we exploit a microprocessor as efficiently as possible? The "classic" approach is static optimization at compile-time, conservatively optimizing a program while keeping all possible uses in mind. Further optimization can only be achieved by anticipating the actual usage profile: If we know, for instance, that two computations will be independent, we can run them in parallel. However, brute force parallelization may slow down execution due to its large overhead. But as this depends on runtime features, such as structure and size of input data, parallel execution needs to dynamically adapt to the runtime situation at hand. Our SAMBAMBA framework implements such a dynamic adaptation for regular sequential C programs through adaptive dispatch between sequential and parallel function instances. In an evaluation of 14 programs, we show that automatic parallelization in combination with adaptive dispatch can lead to speed-ups of up to 5.2 fold on a quad-core machine with hyperthreading. At this point, we rely on programmer annotations but will get rid of this requirement as the platform evolves to support efficient speculative optimizations.

BibTeX Entry

    title = "Sambamba: Runtime Adaptive Parallel Execution",
    author = "Kevin Streit and Clemens Hammacher and Andreas Zeller and Sebastian Hack",
    year = "2013",
    month = jan,
    booktitle = "Proc. 3rd International Workshop on Adaptive Self-Tuning Computing Systems (ADAPT)",
    chapter = "7",
    doi = "10.1145/2484904.2484911",

Show all publications of the Software Engineering Chair.