Publication | Closed Access
Design and implementation of transactional constructs for C/C++
127
Citations
50
References
2008
Year
Unknown Venue
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringTransactional SystemTransaction ProcessingTransactional ConstructsSoftware AnalysisFormal VerificationHardware SecurityC++ LanguageParallel ComputingCompilersParallelizing CompilerCompiler SupportConcurrent ProgrammingComputer EngineeringComputer ScienceC++ CompilerProgram AnalysisTransactional ApplicationFormal MethodsParallel ProgrammingPessimistic Concurrency ControlSystem SoftwareTransactional Memory
This paper presents a software transactional memory system that introduces first-class C++ language constructs for transactional programming. We describe new C++ language extensions, a production-quality optimizing C++ compiler that translates and optimizes these extensions, and a high-performance STM runtime library. The transactional language constructs support C++ language features including classes, inheritance, virtual functions, exception handling, and templates. The compiler automatically instruments the program for transactional execution and optimizes TM overheads. The runtime library implements multiple execution modes and implements a novel STM algorithm that supports both optimistic and pessimistic concurrency control. The runtime switches a transaction's execution mode dynamically to improve performance and to handle calls to precompiled functions and I/O libraries. We present experimental results on 8 cores (two quad-core CPUs) running a set of 20 non-trivial parallel programs. Our measurements show that our system scales well as the numbers of cores increases and that our compiler and runtime optimizations improve scalability.
| Year | Citations | |
|---|---|---|
Page 1
Page 1