Title :
Clock trees: logical clocks for programs with nested parallelism
Author :
Audenaert, Koenraad
Author_Institution :
Univ. of Gent-ELIS, Belgium
fDate :
10/1/1997 12:00:00 AM
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;
Journal_Title :
Software Engineering, IEEE Transactions on