Helper locks for fork-join parallel programming
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
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1145/1693453.1693487