A natural way to measure the power of a distributed-computing model is to characterize the set of tasks that can be solved in it. the model. In general, however, the question of whether a given task can be solved in a given model is undecidable, even if we only consider the wait-free shared-memory model. In this paper, we address this question for restricted classes of models and tasks. We show that the question of whether a collection @math of objects, for various @math (the number of processes that can invoke the object) and @math (the number of distinct outputs the object returns), can be used by @math processes to solve wait-free @math -set consensus is decidable. Moreover, we provide a simple @math decision algorithm, based on a dynamic programming solution to the Knapsack optimization problem. We then present an wait-free set-consensus algorithm that, for each set of participating processes, achieves the best level of agreement that is possible to achieve using @math . Overall, this gives us a complete characterization of a read-write model defined by a collection of set-consensus objects through its .
A wait-free hierarchy ACM Transactions on Programming Languages and Systems, 11 (1991), pp. 124--149; Proceedings of the 12th ACM Symposium on Principles of Distributed Computing, 1993, pp. 145--158] classifies object types on the basis of their strength in supporting wait-free implementations of other types. Such a hierarchy is robust if it is impossible to implement objects of types that it classifies as "strong" by combining objects of types that it classifies as "weak." We prove that if nondeterministic types are allowed, the only wait-free hierarchy that is robust is the trivial one, which lumps all types into a single level. In particular, the consensus hierarchy (the most closely studied wait-free hierarchy) is not robust. Our result implies that, in general, it is not possible to determine the power of a concurrent system that supports a given set of primitive object types by reasoning about the power of each primitive type in isolation. For all integers m ≥ 2, we construct an infinite sequence of deterministic objects of consensus number m with strictly increasing computational power. In particular, this refutes the Common2 Conjecture, which claimed that every deterministic object of consensus number 2 has a deterministic, wait-free implementation from 2-consensus objects and registers in a system with any finite number of processes. 