An Efficient Data Structure for Implementing Splitter Hyperobjects in Task-Parallel Systems
Name
Qi-qqi-meng-eecs-2021-thesis.pdf
Description
Thesis PDF
Size
3.06 MB
Format
Adobe PDF
Checksum (MD5)
c2a25958960743175d6ca16ccaeefe79
Author(s)
Qi, Qi
Advisor(s)
Leiserson, Charles E.
Date Issued
June 2021
Publisher
Massachusetts Institute of Technology
Abstract
In this thesis, I present and analyze the novel stack-augmented split-tree data structure to support splitter hyperobjects for task-parallel systems. Splitters can mitigate races on shared, nonlocal state, where parallel nested tasks make independent local modifications without affecting shared history. The data structure is inspired by โpersistentโ trees, but refined to achieve optimal performance in the common case. I prove that in a program with ๐ splitter variables using the mechanism based on the stack-augmented split-tree data structure, read and write accesses to a splitter variable cost ฮ(1) except for the first access after a task migration, which costs ๐(log ๐ + log ๐ท) where ๐ท is the maximum depth of task nesting. This splitter data structure will enable the parallelization of search algorithms for computationally expensive applications, such as SAT solvers, theorem provers, and game-playing programs. This thesis also contains theory and implementation work on other topics related to task-parallel programming and work stealing schedulers. Some parts of this thesis represent joint work with William Kuszmaul.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
In Copyright - Educational Use Permitted
Copyright MIT
Persistent DSpace Link