The Concurrency Hierarchy and Algorithms for Unbounded Concurrency
The Concurrency Hierarchy and Algorithms for Unbounded Concurrency Eli Gafni Michael Merritt Taubenfeld Gadi
Motivation & Overview Ø Exploring the consequences of the a priori bound assumption on processes and concurrency Ø Extends “Computing with infinitely many processes” [MT 2000] Ø Wait-free algorithms using atomic registers Ø Part 1: Computability: the Concurrency Hierarchy Ø Part 2: Algorithms: Ø Understanding one-shot/long-lived relationships Ø Infinity+Symmetry a Adaptivity
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
Part 1: The Concurrency Hierarchy 1 -concurrency 2 -concurrency … bounded concurrency unbounded concurrency
Reminder: Snapshot algorithms s returns {a, d, e, p, r, s, t, v, x, y} e returns {a, e, p, r, v, x} x returns {x} Every process sees itself The snapshots are nested p r e y d a x v t s
Lemma--Any snapshot algorithm has an allinclusive run (n is known). Suppose not. . . j t w p e a x u q z Adaptively rename to 2 k-1 names Adaptively rename to 2 k’-1 names 2 k-1 1 2 3… 2 k’-1 k+k’=n 2 n-2 …then there is a 2 n-2 renaming algorithm, contradicting [HS 99]
Corollary--Any snapshot algorithm for unbounded concurrency has the following run: 2 1 3 7 5 4 6 8 . . . 9 10 . . . i new processes in the i’th set
For bounded concurrency, the concurrency bound c limits the maximum difference between successive snapshots: 2 1 3 7 5 4 6 8 . . . 9 10 . . . because at most c new processes in each s
The Bounded Snapshot Problem: in complete runs, there is an upper bound on the difference between successive snapshots. 1 3 2 5 6 4 7 8 9 10 . . . Impossible in unbounded concurrency. Solvable for bounded concurrency?
The Concurrency Hierarchy … k-concurrency k-snapshot (k+1)-concurrency … bounded concurrency unbounded concurrency bounded snapshot
Part 2: Algorithms for Unbounded Concurrency unbounded concurrency one-shot snapshot long-lived snapshot adaptive one-shot renaming adaptive long-lived renaming adaptive one-shot snapshot adaptive long-lived collect [AF 99, AF 2000] [AST 99] adaptive one-shot 2 k-1 renaming adaptive long-lived snapshot [AST 99]
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 ho
Adaptive One-shot Renaming [MA 95, AF 98] 0 2 5 1 4 8 3 7 9 . . . 6 Infinite array of splitters: May not terminate
Adaptive One-shot Renaming for Unbounded Concurrency via “Interleaving” p 7 1 5 11 3 9 17 7 15 14 19 . . . 13 Infinite array of odd-numbered splitters: As soon as pi fails to acquire any name j > 2 i pi takes name
Adaptive One-shot Snapshot for Unbounded Concurrency. . 1 5 11 19 3 9 17 7 15 13 . . . Adaptive renaming One-shot snapshot
Adaptive, Optimal One-shot Renaming for Unbounded Concurrency One-shot snapshot 1 5 11 3 9 17 7 15 13 . . 19 collect. . . 2 k-1 one-shot renaming [BD 89]
Summary 1 -concurrency 1 -snapshot 2 -concurrency … … bounded concurrency bounded snapshot unbounded concurrency a. collect a. snapshot a. renaming a. 1 -shot 2 k-1 renaming
Conclusions and Open Problems Ø Concurrency hierarchy Ø Algorithms for unbounded concurrency (work for unknown number/concurrency) Ø General techniques Ø one-shot + infinite-arrival a 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 “blackbox” Transformation 1 A 1 k processes g(k) names 0 A 2 1 A 3 g(k) names … 1 Ap g(k) names … At most k algorithms entered Eran Yahav
- Slides: 19