Jump to content

Synchronizer (algorithm)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by DragonflySixtyseven (talk | contribs) at 01:52, 23 January 2006 (wkf). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer science, a synchronizer is an algorithm that can be applied to a synchronous algorithm to convert it into an asynchronous algorithm suitable for use on unsynchronized processor networks.

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:

  • Alpha synchronizer: This has low time complexity but high message complexity.
  • Beta synchronizer: This has high time complexity but low message complexity.
  • Gamma synchronizer: This provides a reasonable tradeoff between alpha and beta by providing fairly low time and message complexity.

Since the original paper, other synchronizer algorithms have been proposed in the literature.

References

  • http://www.cs.uiowa.edu/~ghosh/synchronizer.pdf. {{cite journal}}: Cite journal requires |journal= (help); Missing or empty |title= (help); Unknown parameter |Author= ignored (|author= suggested) (help); Unknown parameter |PublishYear= ignored (help); Unknown parameter |Title= ignored (|title= suggested) (help)