A Tree Clock Data Structure for Causal Orderings in Concurrent Executions

Umang Mathur, Andreas Pavlogiannis, Hunkar Can Tunc, Mahesh Viswanathan

Research output: Contribution to book/anthology/report/proceedingArticle in proceedingsResearchpeer-review

Abstract

Dynamic techniques are a scalable and effective way to analyze concurrent programs. Instead of analyzing all behaviors of a program, these techniques detect errors by focusing on a single program execution. Often a crucial step in these techniques is to define a causal ordering between events in the execution, which is then computed using vector clocks, a simple data structure that stores logical times of threads. The two basic operations of vector clocks, namely join and copy, require (k) time, where k is the number of threads. Thus they are a computational bottleneck when k is large. In this work, we introduce tree clocks, a new data structure that replaces vector clocks for computing causal orderings in program executions. Joining and copying tree clocks takes time that is roughly proportional to the number of entries being modified, and hence the two operations do not suffer the a-priori (k) cost per application. We show that when used to compute the classic happens-before (HB) partial order, tree clocks are optimal, in the sense that no other data structure can lead to smaller asymptotic running time. Moreover, we demonstrate that tree clocks can be used to compute other partial orders, such as schedulable-happens-before (SHB) and the standard Mazurkiewicz (MAZ) partial order, and thus are a versatile data structure. Our experiments show that just by replacing vector clocks with tree clocks, the computation becomes from 2.02 × faster (MAZ) to 2.66 × (SHB) and 2.97 × (HB) on average per benchmark. These results illustrate that tree clocks have the potential to become a standard data structure with wide applications in concurrent analyses.

Original languageEnglish
Title of host publicationASPLOS 2022 - Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
EditorsBabak Falsafi, Michael Ferdman, Shan Lu, Thomas F. Wenisch
Number of pages16
PublisherAssociation for Computing Machinery
Publication dateFeb 2022
Pages710-725
ISBN (Electronic)9781450392051
DOIs
Publication statusPublished - Feb 2022
Event27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2022 - Virtual, Online, Switzerland
Duration: 28 Feb 20224 Mar 2022

Conference

Conference27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2022
Country/TerritorySwitzerland
CityVirtual, Online
Period28/02/202204/03/2022
SeriesASPLOS: Architectural Support for Programming Languages and Operating Systems, Proceedings

Keywords

  • concurrency
  • dynamic analyses
  • happens-before
  • vector clocks

Fingerprint

Dive into the research topics of 'A Tree Clock Data Structure for Causal Orderings in Concurrent Executions'. Together they form a unique fingerprint.

Cite this