Sambamba is an interesting research project out of academia that's yet another attempt at coming up with a better means of automatically parallelizing code. The Sambamba project describes itself as "A Runtime System for Online Adaptive Parallelization."
Sambamba was another one of the noteworthy presentations (beyond Intel's OpenMP work for LLVM/Clang
, Dagger for code decompilation
, and IBM's LLVM investment
) that occurred last week at the 2013 LLVM European Meeting in Paris, France.
Sambamba comes out of the Saarland University in Germany for an automatically parallelizing compiler and runtimme system. It adaptes automatically during runtime based upon the input and environmental parameters. Sambamba leverages LLVM and does compile-time analysis to compute data dependencies for determining potential code blocks that can be parallelized. Sambamba then injects JIT-compiled code into the software target and decides which code variant it should execute. Profiles then are generated to determine the fastest code paths and further parallelization efforts can automatically take place for ensuring the fastest-possible generated binary.
For those wishing to find out more about Sambamba, there is their LLVM poster
(PDF), PDF slides
, and MOV video
. There's also a lot of information available at Sambamba.org