Runtime Tuning of STM Validation Techniques
نویسندگان
چکیده
Since the end of the megahertz race in the processor industry and the switch to multicore processors, Software Transactional Memory (STM) has sparked ample interest as a programming model for the now mainstream parallel processing systems. Unfortunately, STM systems still exhibit significant performance overhead over the more traditional, lock-based programming models. A large part of this overhead is due to the STM systems spending significant amount of time validating the state of the shared memory that is visible to a transactions. Significant improvements to the validation systems for STM have been published recently. Transactional Locking II and Lazy Snapshot validation are two time-based validation techniques that have so far shown the most promising performance for a wide variety of applications. Unfortunately, the performance of these techniques depends heavily on the application: number of concurrent jobs, length of the transaction and the read/write ratio of the shared objects can significantly favor one technique over the other. Moreover, for long-running applications that change their behavior over time, neither of these two techniques is optimal. In this paper, we present a runtime tuning strategy that uses profiling to determine the most profitable validation technique. Our runtime tuning strategy can behave as an arbitrary mix of Transactional Locking II and Lazy Snapshot techniques depending on the state of the STM system. We evaluate our technique on a set of STM benchmarks and show that our strategy performs within a couple of percent of the best validation strategy for a given static workload scenario, and that it outperforms both of the above techniques by up to 18% in long-running, dynamically-changing scenarios.
منابع مشابه
Compiler and runtime techniques for software transactional memory optimization
Software transactional memory (STM) systems are an attractive environment to evaluate optimistic concurrency. We describe our experience of supporting and optimizing an STM system at both the managed runtime and compiler levels. We describe the design policies of our STM system, and the statistics collected by the runtime to identify performance bottlenecks and guide tuning decisions. We presen...
متن کاملFASTLANE: Streamlining Transactions for Low Thread Counts
Software transactional memory (STM) can lead to scalable implementations of concurrent programs, as the relative performance of an application increases with the number of threads that support it. However, the absolute performance is typically impaired by the overheads of transaction management and instrumented accesses to shared memory. This often leads STM-based programs with low thread count...
متن کاملInside Time-based Software Transactional Memory
We present a comprehensive analysis and experimental evaluation of time-based validation techniques for Software Transactional Memory (STM). Time-based validation techniques emerge recently as an effective way to reduce the validation overhead for STM systems. In a time-based strategy, information based on global time enables the system to avoid a full validation pass in many cases where it can...
متن کاملOn the Expressiveness of some Runtime Validation Techniques
Runtime validation techniques have been proposed as artifacts to detect and/or correct unforeseen behaviours of computer systems. Their common features is to give only partial validation results, based on a restricted set of system executions produced in the real execution environment. A key issue is thus to better understand which kind of properties can (or cannot) be validated using such tech...
متن کاملSoftware Transactional Memory Validation - Time and Space Considerations
With single thread performance hitting the power wall, hardware architects have turned to chip-level multiprocessing to increase processor performance. As a result, issues related to the construction of scalable and reliable multi-threaded applications have become increasingly important. One of the most pressing problems in concurrent programming has been synchronizing accesses to shared data a...
متن کامل