Safe Concurrent Programming and Execution
Pyla, Hari Krishna
MetadataShow full item record
The increasing prevalence of multi and many core processors has brought the<br />issues of concurrency and parallelism to the forefront of everyday<br />computing. Even for applications amenable to traditional parallelization techniques,<br />the subtleties of concurrent programming are known to introduce concurrency<br />bugs. Due to the potential of concurrency bugs, programmers find it hard to write<br />correct concurrent code. To take full advantage of parallel shared memory<br />platforms, application programmers need safe and efficient mechanisms that<br />can support a wide range of parallel applications.<br /><br />In addition, a large body of applications are inherently<br />hard-to-parallelize; their data and control dependencies impose execution<br />order constraints that preclude the use of traditional parallelization<br />techniques. Sensitive to their input data, a substantial number of<br />applications fail to scale well, leaving cores idle. To improve the<br />performance of such applications, application programmers need effective<br />mechanisms that can fully leverage multi and many core architectures.<br /><br />These challenges stand in the way of realizing the true potential of<br />emerging many core platforms. The techniques described in this dissertation<br />address these challenges. Specifically, this dissertation contributes<br />techniques to transparently detect and eliminate several concurrency bugs,<br />including deadlocks, asymmetric write-write data races, priority inversion,<br />live-locks, order violations, and bugs that stem from the presence of<br />asynchronous signaling and locks. A second major contribution of this dissertation<br />is a programming framework that exploits coarse-grain speculative<br />parallelism to improve the performance of otherwise hard-to-parallelize<br />applications.
- Doctoral Dissertations