ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction to algorithms
The power of processor consistency
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
25 years of the international symposia on Computer architecture (selected papers)
Data speculation support for a chip multiprocessor
Proceedings of the eighth international conference on Architectural support for programming languages and operating systems
A scalable approach to thread-level speculation
Proceedings of the 27th annual international symposium on Computer architecture
Proceedings of the 33rd annual ACM/IEEE international symposium on Microarchitecture
Automatic parallelization of recursive procedures
International Journal of Parallel Programming - Special issue on parallel architectures and compilation techniques
Speculative lock elision: enabling highly concurrent multithreaded execution
Proceedings of the 34th annual ACM/IEEE international symposium on Microarchitecture
Speculative synchronization: applying thread-level speculation to explicitly parallel applications
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Proceedings of the 2001 International Conference on Parallel Architectures and Compilation Techniques
Hardware for Speculative Parallelization of Partially-Parallel Loops in DSM Multiprocessors
HPCA '99 Proceedings of the 5th International Symposium on High Performance Computer Architecture
Speculative Lock Reordering: Optimistic Out-of-Order Execution of Critical Sections
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
Transactional Memory Coherence and Consistency
Proceedings of the 31st annual international symposium on Computer architecture
Hi-index | 0.00 |
Thread-Level Speculation TLS) can be used to exploit parallelism in programs where static analysis fails. When a dependence violation is dynamically detected, the violating thread is rolled-back and restarted. However, we believe that for many applications, the restrictions imposed by referencing the sequential execution model to interpret dependence ordering will unnecessarily throttle parallelism. In this paper, we consider the possibility that the application requires that threads merely be partially ordered. We analyze the sufficient conditions for TLS to produce semantically correct results with this relaxed constraint. We apply our methodology, which we call Partially-Ordered Thread-level Speculation POTS), to priority-based scheduling and graph search algorithms and demonstrate that such a methodology still yields semantically correct execution while yielding substantially more parallelism than TLS