Delaunay Triangulation with Transactions and Barriers

  • Authors:
  • Michael L. Scott;Michael F. Spear;Luke Dalessandro;Virendra J. Marathe

  • Affiliations:
  • Department of Computer Science, University of Rochester, scott@cs.rochester.edu;Department of Computer Science, University of Rochester, spear@cs.rochester.edu;Department of Computer Science, University of Rochester, luked@cs.rochester.edu;Department of Computer Science, University of Rochester, vmarathe@cs.rochester.edu

  • Venue:
  • IISWC '07 Proceedings of the 2007 IEEE 10th International Symposium on Workload Characterization
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Transactional memory has been widely hailed as a simpler alternative to locks in multithreaded programs, but few nontrivial transactional programs are currently available. We describe an open-source implementation of Delaunay triangulation that uses transactions as one component of a larger parallelization strategy. The code is written in C++, for use with the RSTM software transactional memory library (also open source). It employs one of the fastest known sequential algorithms to triangulate geometrically partitioned regions in parallel; it then employs alternating, barrier-separated phases of transactional and partitioned work to stitch those regions together. Experiments on multiprocessor and multicore machines confirm excellent single-thread performance and good speedup with increasing thread count. Since execution time is dominated by geometrically partitioned computation, performance is largely insensitive to the overhead of transactions, but highly sensitive to any costs imposed on sharable data that are currently "privatized".