The Concurrency Hierarchy and Algorithms for Unbounded Concurrency Eli Gafni Michael Merritt Gadi Taubenfeld
Motivation & Overview Exploring the consequences of the a priori bound assumption on processes and concurrency Extends “Computing with infinitely many processes” [MT2000] Wait-free algorithms using atomic registers Part 1: Computability: the Concurrency Hierarchy Part 2: Algorithms: Understanding one-shot/long-lived relationships Infinity+Symmetry Adaptivity General algorithmic techniques for unbounded concurrency
Concurrency: Simultaneously Active Processes k -bounded – single bound k over all runs bounded – in each run an upper bound exists unbounded – finite at any point, no upper bound infinite – within a single state (not considered)
2 -concurrency bounded concurrency unbounded concurrency 1 -concurrency Part 1: The Concurrency Hierarchy …
Reminder: Snapshot algorithms e r p v a yd t s e returns {a,e,p,r,v,x} s returns {a,d,e,p,r,s,t,v,x,y} x returns {x} Every process sees itself The snapshots are nested x
Lemma--Any snapshot algorithm has an all-inclusive run ( n is known). p w u q t x z e j a Adaptively rename to 2k-1 names 2k-1 2n … …then there is a 2n-2 renaming algorithm, contradicting [HS99] Suppose not... 2k’-1 Adaptively rename to 2k’-1 names k+k’=n
Corollary--Any snapshot algorithm for unbounded concurrency has the following run: i new processes in the i’ th set
For bounded concurrency, the concurrency bound c limits the maximum difference between successive snapshots: because at most c new processes in each set
The Bounded Snapshot Problem: in complete runs, there is an upper bound on the difference between successive snapshots Impossible in unbounded concurrencySolvable for bounded concurrency?
The Concurrency Hierarchy k -concurrency ( k+1 )-concurrency bounded concurrency unbounded concurrency … bounded snapshot … k-snapshot
Part 2: Algorithms for Unbounded Concurrency unbounded concurrency adaptive one-shot 2k-1 renaming adaptive one-shot snapshot adaptive one-shot renaming long-lived snapshot one-shot snapshot adaptive long-lived renaming adaptive long-lived collect adaptive long-lived snapshot [AST99] [AF99, AF2000] [AST99]
One-shot Snapshot for Unbounded Concurrency... Use diagonalization to make long-lived.... Take a second snapshot (which must include me):...if the road goes on forever, someone paved it after driving past my house....
Adaptive One-shot Renaming [MA95, AF98] Infinite array of splitters: May not terminate...
Adaptive One-shot Renaming for Unbounded Concurrency via “Interleaving” Infinite array of odd-numbered splitters: As soon as p i fails to acquire any name j > 2i p i takes name 2i p7p7 14
Adaptive One-shot Snapshot for Unbounded Concurrency Adaptive renaming One-shot snapshot
Adaptive, Optimal One-shot Renaming 2k-1 one-shot renaming [BD89] collect for Unbounded Concurrency One-shot snapshot
Summary 1-concurrency 2-concurrency bounded concurrency unbounded concurrency … … 2-snapshot bounded snapshot 1-snapshot a. collect a. snapshot a. 1-shot 2k-1 renaming a. renaming
Conclusions and Open Problems Concurrency hierarchy Algorithms for unbounded concurrency (work for unknown number/concurrency) General techniques one-shot + infinite-arrival long-lived (diagonalization) interleaving, help first, doorways Are there natural problems outside unbounded concurrency? Efficiency (space and time) Separating problems that are “tasks”
One-shot Renaming “black-box” Transformation A1A1 A2A2 A3A3 ApAp … … k processes g(k) names At most k algorithms entered Eran Yahav