Safe Concurrent Programming and Execution

dc.contributor.authorPyla, Hari Krishnaen
dc.contributor.committeechairVaradarajan, Srinidhien
dc.contributor.committeechairRibbens, Calvin J.en
dc.contributor.committeememberAdve, Vikramen
dc.contributor.committeememberRamakrishnan, Narenen
dc.contributor.committeememberTilevich, Elien
dc.contributor.committeememberLea, Douglasen
dc.contributor.departmentComputer Scienceen
dc.description.abstractThe increasing prevalence of multi and many core processors has brought the issues of concurrency and parallelism to the forefront of everyday computing. Even for applications amenable to traditional parallelization techniques, the subtleties of concurrent programming are known to introduce concurrency bugs. Due to the potential of concurrency bugs, programmers find it hard to write correct concurrent code. To take full advantage of parallel shared memory platforms, application programmers need safe and efficient mechanisms that can support a wide range of parallel applications. In addition, a large body of applications are inherently hard-to-parallelize; their data and control dependencies impose execution order constraints that preclude the use of traditional parallelization techniques. Sensitive to their input data, a substantial number of applications fail to scale well, leaving cores idle. To improve the performance of such applications, application programmers need effective mechanisms that can fully leverage multi and many core architectures. These challenges stand in the way of realizing the true potential of emerging many core platforms. The techniques described in this dissertation address these challenges. Specifically, this dissertation contributes techniques to transparently detect and eliminate several concurrency bugs, including deadlocks, asymmetric write-write data races, priority inversion, live-locks, order violations, and bugs that stem from the presence of asynchronous signaling and locks. A second major contribution of this dissertation is a programming framework that exploits coarse-grain speculative parallelism to improve the performance of otherwise hard-to-parallelize applications.en
dc.description.degreePh. D.en
dc.publisherVirginia Techen
dc.rightsIn Copyrighten
dc.subjectConcurrent Programmingen
dc.subjectConcurrency Bugsen
dc.subjectProgram Analysisen
dc.subjectRuntime Systemsen
dc.subjectDeadlock Detection and Recoveryen
dc.subjectSpeculative Parallen
dc.titleSafe Concurrent Programming and Executionen
dc.typeDissertationen Science and Applicationsen Polytechnic Institute and State Universityen D.en
Original bundle
Now showing 1 - 1 of 1
Thumbnail Image
1.82 MB
Adobe Portable Document Format