Writing-All Deterministically and Optimally Using a Nontrivial Number of Asynchronous Processors
The problem of performing n tasks on p asynchronous or undependable processors is a basic problem in distributed computing. This article considers an abstraction of this problem called Write-All: using p processors write 1's into all locations of an array of size n. In this problem writing 1 abstracts the notion of performing a simple task. Despite substantial research, there is a dearth of efficient deterministic asynchronous algorithms for Write-All. Efficiency of algorithms is measured in terms of work that accounts for all local steps performed by the processors in solving the problem. Thus, an optimal algorithm would have work Theta(n), however it is known that optimality cannot be achieved when p = Omega(n). The quest then is to obtain work-optimal solutions for this problem using a nontrivial, compared to n, number of processors p. The algorithm presented in this article has work complexity of O(n + p(2 vertical bar epsilon)), and it achieves work optimality for p = O(n(1/(2 vertical bar epsilon))) for any epsilon > 0, while the previous best result achieved optimality for p <= (4)root n/log n. Additionally, the new result uses only the atomic read/write memory, without resorting to using the test-and-set primitive that was necessary in the previous solution.
work asynchrony distributed algorithms shared memory write-all