DracoSTM: A Practical C++ Approach to Software Transactional Memory

Justin Gottschlich , Daniel A. Connors.
Proceedings of the 2007 The ACM SIGPLAN Symposium on Library-Centric Software Design (LCSD) October, 2007.
Transactional memory (TM) is a recent parallel programming concept which reduces challenges found in parallel programming. TM offers numerous advantages over other synchronization mechanisms, yet many current TM systems require complex hardware, programming language extensions, specific compiler support or enforce impractical software design, making these models unrealistic as an immediate TM solution for early adopters. Our new software transactional memory (STM) system, DracoSTM, is a high performance C++ STM research library that is intuitive and extensible. As such, DracoSTM does not require any language extensions nor is it bound to a specific development platform. DracoSTM also enables run-time configuration of several TM-specific and library-specific features, making it a truly novel implementation. By construction, DracoSTM is highly optimized and outperforms other STM systems by using lock-based and internal design optimizations. This paper describes the above features from an architectural infrastructure viewpoint. In addition, TM-specific and library-specific aspects are discussed, as are their cross-cutting design concerns. Lastly, we show performance benchmarks of DracoSTM compared to RSTM, another high performing C++ STM system.

[ PDF ]