Composable abstractions for synchronization in dynamic threading platforms
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011.
Main Author: | |
---|---|
Other Authors: | |
Format: | Thesis |
Language: | eng |
Published: |
Massachusetts Institute of Technology
2012
|
Subjects: | |
Online Access: | http://hdl.handle.net/1721.1/68495 |
_version_ | 1826206513813782528 |
---|---|
author | Sukha, Jim |
author2 | Charles E. Leiserson. |
author_facet | Charles E. Leiserson. Sukha, Jim |
author_sort | Sukha, Jim |
collection | MIT |
description | Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011. |
first_indexed | 2024-09-23T13:34:11Z |
format | Thesis |
id | mit-1721.1/68495 |
institution | Massachusetts Institute of Technology |
language | eng |
last_indexed | 2024-09-23T13:34:11Z |
publishDate | 2012 |
publisher | Massachusetts Institute of Technology |
record_format | dspace |
spelling | mit-1721.1/684952019-04-10T13:49:22Z Composable abstractions for synchronization in dynamic threading platforms Sukha, Jim Charles E. Leiserson. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011. Cataloged from PDF version of thesis. Includes bibliographical references (p. 259-269). High-level abstractions for parallel programming simplify the development of efficient parallel applications. In particular, composable abstractions allow programmers to construct a complex parallel application out of multiple components, where each component itself may be designed to exploit parallelism. This dissertation presents the design of three composable abstractions for synchronization in dynamic-threading platforms, based on ideas of task-graph execution, helper locks, and transactional memory. These designs demonstrate provably efficient runtime scheduling for programs with synchronization. For applications that use task-graph synchronization, I demonstrate provably efficient execution of task graphs with arbitrary dependencies as a library in a fork-join platform. Conventional wisdom suggests that a fork-join platform can execute an arbitrary task graph only with special runtime support or by converting the graph into a series-parallel computation which has less parallelism. By implementing Nabbit, a Cilk++ library for arbitrary task-graph execution, I show that one can in fact avoid introducing runtime modifications or additional constraints on parallelism. Nabbit achieves an asymptotically optimal completion-time bound for task graphs with constant degree. For applications that use lock-based synchronization, I introduce helper locks, a new synchronization abstraction that enables programmers to exploit asynchronous task parallelism inside locked critical regions. When a processor fails to acquire a helper lock, it can help complete the parallel critical region protected by the lock instead of simply waiting for the lock to be released. I also present HELPER, a runtime for supporting helper locks, and prove theoretical performance bounds which imply that HELPER achieves linear speedup on programs with a small number of highly parallel critical regions. For applications that use transaction-based synchronization, I present CWSTM, the first design of a transactional memory (TM) system that supports transactions with nested parallelism and nested parallel transactions of unbounded nesting depth. CWSTM demonstrates that one can provide theoretical bounds on the overhead of transaction conflict detection which are independent of nesting depth. I also introduce the concept of ownership-aware TM, the idea of using information about which memory locations a software module owns to provide provable guarantees of safety and correctness for open-nested transactions. by Jim Sukha. Ph.D. 2012-01-12T19:32:14Z 2012-01-12T19:32:14Z 2011 2011 Thesis http://hdl.handle.net/1721.1/68495 770414722 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 269 p. application/pdf Massachusetts Institute of Technology |
spellingShingle | Electrical Engineering and Computer Science. Sukha, Jim Composable abstractions for synchronization in dynamic threading platforms |
title | Composable abstractions for synchronization in dynamic threading platforms |
title_full | Composable abstractions for synchronization in dynamic threading platforms |
title_fullStr | Composable abstractions for synchronization in dynamic threading platforms |
title_full_unstemmed | Composable abstractions for synchronization in dynamic threading platforms |
title_short | Composable abstractions for synchronization in dynamic threading platforms |
title_sort | composable abstractions for synchronization in dynamic threading platforms |
topic | Electrical Engineering and Computer Science. |
url | http://hdl.handle.net/1721.1/68495 |
work_keys_str_mv | AT sukhajim composableabstractionsforsynchronizationindynamicthreadingplatforms |