This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: "Synchronizer" algorithm – news · newspapers · books · scholar · JSTOR (November 2020) This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help to improve this article by introducing more precise citations. (November 2020) (Learn how and when to remove this template message) (Learn how and when to remove this template message)

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.

Available synchronizer algorithms

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.

References