Composable abstractions for synchronization in dynamic threading platforms

Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2011.

Bibliographic Details
Main Author: Sukha, Jim
Other Authors: Charles E. Leiserson.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2012
Subjects:
Online Access:http://hdl.handle.net/1721.1/68495
_version_ 1811086752760201216
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