• 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