
- 184 pages
- English
- PDF
- Available on iOS & Android
About this book
Atomic blocks are a programming language construct that marks sections of code that multiple threads may not execute concurrently. The implementation of the mutual exclusion is left to the compiler or the runtime system. To avoid race conditions however, developers are still responsible to detect all places in the code where atomic blocks are needed. It is of course also important that mutual exclusion is implemented efficiently.This thesis therefore pursues two goals. First, we develop a data dependence analysis that identifies potential critical sections in a parallel program, presents them to the programmer, and then adds atomic blocks to the code. Second, we enhance existing techniques - software transactional memory (STM) and lock inference - to implement atomic blocks. Our approach combines the advantages of STM and lock inference, which allows atomic blocks to be implemented more efficiently.The evaluation shows that our approach identifies atomic blocks that closely match those atomic blocks that an expert would add to the code. Compared to a pure STM or lock inference implementation, our combined approach to implement atomic blocks speeds up execution times by a factor between 1.1 and 6.3.
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
Table of contents
- Abstract
- Kurzfassung
- List of Publications
- Contents
- List of Figures
- List of Tables
- Chapter 1 Introduction
- Chapter 2 S tate of the Art and Related Work
- Chapter 3 Identification of Atomic Blocks in Parallel Code
- Chapter 4 Foundations of Transactional Memory and Lock Inference
- Chapter 5 Combining Lock Inference with Lock-Based Software Transactional Memory
- Chapter 6 Tuning of Software Transactional Memory Locking Granularity at Runtime
- Chapter 7 Evaluation
- Chapter 8 Conclusions and Future Work
- Bibliography