In computer science, a synchronizer is an algorithm that can be used to run a synchronous algorithm on top of an asynchronous processor network, so enabling the asynchronous system to run as a synchronous network.
The concept was originally proposed in (Awerbuch, 1985) along with three synchronizer algorithms named alpha, beta and gamma which provided different tradeoffs in terms of time and message complexity. Essentially, they are a solution to the problem of asynchronous algorithms (which operate in a network with no global clock) being harder to design and often less efficient than the equivalent synchronous algorithms. By using a synchronizer, algorithm designers can deal with the simplified "ideal network" and then later mechanically produce a version that operates in more realistic asynchronous cases.
The three algorithms that Awerbuch provided in his original paper are as follows:
Since the original paper, other synchronizer algorithms have been proposed in the literature.
Original source: https://en.wikipedia.org/wiki/Synchronizer (algorithm).
Read more |