Font Size: a A A

Efficient Runtime Support for Reliable and Scalable Parallelism

Posted on:2017-02-02Degree:Ph.DType:Dissertation
University:The Ohio State UniversityCandidate:Zhang, MinjiaFull Text:PDF
GTID:1458390008995362Subject:Computer Engineering
Abstract/Summary:
Commodity hardware is becoming more parallel. To benefit from parallel hardware, software needs to become more parallel as well. Parallel execution of a concurrent program can increase program throughput and reduce program execution time. However, writing concurrent programs that are both correct and scalable is known as notoriously more difficult than writing sequential programs because of the interaction of multi-threaded execution model, synchronization, and the memory hierarchy. Concurrent programming therefore has been traditionally the exclusive domain of a small portion of expert programmers.;To make concurrent programming more accessible, researchers and practitioners have built various runtime support to facilitate the programmability, debuggability, performance, and scalability of concurrent programs on multiprocessor machines. This dissertation makes several contributions by introducing novel approaches that provide efficient runtime support on modern commodity multiprocessor hardware to support reliable and scalable concurrent programming with available parallelism.;To address a common challenge in building many types of efficient runtime support---how to efficiently track memory access dependences, the dissertation introduces a novel design that tracks memory dependences in a relaxed way which overlaps coordination with program execution to hide coordination latency. The dissertation introduces client analyses to demonstrate the practicality and caveats of the relaxed tracking approach.;Transactional memory is a promising high-level abstraction for shared-memory concurrency. However, it faces challenges in both performance and semantics. The dissertation introduces LarkTM, a low-overhead, scalable software transactional memory (STM) system with strong semantics and strong progress guarantees. The dissertation also introduces LarkTM-S, which extends LarkTM by hybridizing optimistic and pessimistic concurrency control, and a variant of LarkTM which is based on relaxed dependence tracking.;Finally, the memory model is at the heart of concurrency semantics. To increase the practicality of strong memory consistency models, the dissertation is the first that identifies the availability issue in strong memory models with fail-stop semantics. It introduces a new memory model based on snapshot isolation which has strong, well-defined semantics and devises a memory model enforcement approach that enforces the new memory model while at the same time does best-effort tolerance of consistency exceptions.
Keywords/Search Tags:Parallel, Memory, Runtime support, Efficient runtime, Scalable
Related items