DocumentCode
1371511
Title
Clock trees: logical clocks for programs with nested parallelism
Author
Audenaert, Koenraad
Author_Institution
Univ. of Gent-ELIS, Belgium
Volume
23
Issue
10
fYear
1997
fDate
10/1/1997 12:00:00 AM
Firstpage
646
Lastpage
658
Abstract
A vector clock is a valuable tool for maintaining run time concurrency information in parallel programs. A novel method is presented for modifying vector clocks to make them suitable for programs with nested fork join parallelism (having a variable number of tasks). The resulting kind of clock is called a clock tree, due to its tree structure. The clock tree method compares favorably with other timestamping methods for variable parallelism: task identifier reuse and task recycling. The worst case space requirements of clock trees equals the best case for the latter two methods, and the average size of a clock tree is much smaller than the size of a vector with task recycling. Furthermore, the algorithm for maintaining clock trees does not require a shared data structure and thus avoids the serialization bottleneck that task recycling suffers from
Keywords
clocks; computational complexity; parallel programming; tree data structures; trees (mathematics); clock tree method; logical clocks; nested fork join parallelism; nested parallelism; parallel programs; run time concurrency information; serialization bottleneck; task identifier reuse; task recycling; timestamping methods; tree structure; variable parallelism; vector clock; worst case space requirements; Clocks; Concurrent computing; Fault detection; Labeling; Parallel processing; Parallel programming; Recycling; Runtime; Timing; Tree data structures;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/32.637147
Filename
637147
Link To Document