Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Helper locks for fork-join parallel programming

Helper locks for fork-join parallel programming

Thumbnail Image
Download
Name

Leiserson_Helper locks.pdf

Size

475.07 KB

Format

Adobe PDF

Checksum (MD5)

35ffb3a421ddbf1ae899ff21484bbe15

Author(s)
Agrawal, Kunal
•
Leiserson, Charles E.
•
Sukha, Jim
Date Issued
January 2010
Journal
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. Proceedings
Publisher
Association for Computing Machinery / ACM Special Interest Group on Programming Languages.
Citation
Agrawal, Kunal, Charles E. Leiserson, and Jim Sukha. “Helper Locks for Fork-join Parallel Programming.” Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming - PPoPP ’10. Bangalore, India, 2010. 245. Copyright c2010 ACM
Version
Author's final manuscript
Abstract
Helper locks allow programs with large parallel critical sections, called parallel regions, to execute more efficiently by enlisting processors that might otherwise be waiting on the helper lock to aid in the execution of the parallel region. Suppose that a processor p is executing a parallel region A after having acquired the lock L protecting A. If another processor p′ tries to acquire L, then instead of blocking and waiting for p to complete A, processor p′ joins p to help it complete A. Additional processors not blocked on L may also help to execute A. The HELPER runtime system can execute fork-join computations augmented with helper locks and parallel regions. HELPER supports the unbounded nesting of parallel regions.We provide theoretical completion-time and space-usage bounds for a design of HELPER based on work stealing. Specifically, let V be the number of parallel regions in a computation, let T1 [T subscript 1] be its work, and let eT¥ [~T subscript infinity symbol] be its “aggregate span” — the sum of the spans (critical-path lengths) of all its parallel regions. We prove that HELPER completes the computation in expected time O(T1/P+ eT¥+PV)[O (T subscript 1 / P plus ~T subscript infinity symbol plus PV] on P processors. This bound indicates that programs with a small number of highly parallel critical sections can attain linear speedup. For the space bound, we prove that HELPER completes a program using only O(PeS1)[O (P ~S subscript 1) stack space, where eS1 [~S subscript 1] is the sum, over all regions, of the stack space used by each region in a serial execution. Finally, we describe a prototype of HELPER implemented by modifying the Cilk multithreaded runtime system. We used this prototype to implement a concurrent hash table with a resize operation protected by a helper lock.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike 3.0
http://creativecommons.org/licenses/by-nc-sa/3.0/
Persistent DSpace Link
http://hdl.handle.net/1721.1/62581
DOI of Published Version
https://doi.org/10.1145/1693453.1693487
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.