Content deleted Content added
m I think should be "Algorithms for solving the atomic commit problem" and not "Algorithms for solving the atomic commit protocol" |
RandFreeman (talk | contribs) Adding local short description: "Algorithm run on hardware built from interconnected processors", overriding Wikidata description "algorithm designed to run on computer hardware constructed from interconnected processors" |
||
(One intermediate revision by one other user not shown) | |||
Line 1:
{{Short description|Algorithm run on hardware built from interconnected processors}}
A '''distributed algorithm''' is an [[algorithm]] designed to run on [[computer hardware]] constructed from interconnected [[Central processing unit|processors]]. Distributed algorithms are used in different application areas of [[distributed computing]], such as [[telecommunications]], [[scientific computing]], distributed [[Data processing|information processing]], and real-time [[process control]]. Standard problems solved by distributed algorithms include [[leader election]], [[Consensus (computer science)|consensus]], distributed [[Search algorithm|search]], [[Spanning tree (mathematics)|spanning tree]] generation, [[mutual exclusion]], and [[resource allocation]].<ref name="lynch1997">{{cite book|last=Lynch|first=Nancy|title=Distributed Algorithms|url=https://archive.org/details/distributedalgor0000lync|url-access=registration|publisher=[[Morgan Kaufmann Publishers]]|___location=San Francisco, CA|year=1996|isbn=978-1-55860-348-6}}</ref>
Distributed algorithms are a sub-type of [[parallel algorithm]], typically executed [[concurrency (computer science)|concurrently]], with separate parts of the algorithm being run simultaneously on independent processors, and having limited information about what the other parts of the algorithm are doing. One of the major challenges in developing and implementing distributed algorithms is successfully coordinating the behavior of the independent parts of the algorithm in the face of processor failures and unreliable communications links. The choice of an appropriate distributed algorithm to solve a given problem depends on both the characteristics of the problem, and characteristics of the system the algorithm will run on such as the type and probability of processor or link failures, the kind of [[inter-process communication]] that can be performed, and the level of timing synchronization between separate processes.<ref name="lynch1997"/>
|