The Galois system is a programming model and run-time system for parallelizing data-parallel irregular applications. Worklist algorithms can be easily expressed using sequential semantics, and parallelized by the run-time system. Sequential semantics are preserved in the parallel execution by monitoring the state of shared objects and ensuring that no concurrent accesses to the shared objects violate sequential semantics. For full details of the Galois system, see here. The current Galois system is implemented in Java and can parallelize Java applications. We would like a C++ implementation, with the same level of stability as the Java implementation.
Intel's Threaded Building Blocks (TBB) is an open-source collection of data structures and parallelization tools for C++. It abstracts away much of the low-level threading code needed to write parallel applications. It also provides several easy-to-use parallelization idioms, including parallel loop constructs. It also contains several highly concurrent container implementations to simplify writing correct thread-safe data structures.
A C++ implementation of the Galois runtime using TBB. Two parallelized C++ applications, using your runtime. A paper describing your implementation and results of your parallelization