Abstract

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 lock-based C++ STM research library. DracoSTM uses only native object-oriented language semantics, increasing its intuitiveness for developers while maintaining high programmability via automatic handling of composition, locks and transaction termination. DracoSTM is the STM first solution to (1) implement both direct and deferred updating and (2) enable run-time alternation between these updating policies. DracoSTM requires no language extension, specific development environment or platform, widening its usability and increasing the novelty of its design. This paper describes DracoSTM from an architectural infrastructure viewpoint. TM-specific and library-specific aspects are discussed, as are their cross-cutting design concerns. Finally, performance benchmarks are presented, showing DracoSTM outperform another high performing C++ STM library, by upwards of two orders of magnitude.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call