Concurrent Disjoint Set Union

Concurrent Disjoint Set Union

-
Robert Tarjan, Princeton University
Fine Hall 214

The disjoint set union problem is a classical problem in data structures with a simple and efficient sequential solution that has a notoriously complicated analysis.  One application is to find strongly connected components in huge, implicitly defined graphs arising in model checking.  In this application, the use of multiprocessors has the potential to produce significant speedups.  We explore this possibility.  We devise and analyze concurrent versions of standard sequential algorithms that use single and double compare-and-swap primitives for synchronization, making them wait-free.  We obtain work bounds that grow logarithmically with the number of processors, suggesting the possibility of significant speedup in practice.  This is ongoing joint work with Siddhartha Jayanti, an undergraduate at Princeton.