All Topics  
Distributed algorithms

 

   Email Print
   Bookmark   Link






 

Distributed algorithms



 
 
A distributed algorithm is an algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 designed to run on computer hardware
Computer hardware

A personal computer is made up of computer hardware, multiple physical components onto which can be loaded into a multitude of software that perform the functions of the computer....
 constructed from interconnected processors. Distributed algorithms are used in various application areas of distributed computing
Distributed computing

Distributed computing deals with hardware and software systems containing more than one processing element or Computer data storage element, Concurrent computing processes, or multiple programs, running under a loosely or tightly controlled regime....
, such as telecommunications, scientific computing, distributed information processing
Information processing

Information processing is the change of information in any manner detectable by an observation. As such, it is a Process which describes everything which happens in the universe, from the falling of a rock to the printing of a text file from a digital computer system....
, and real-time process control
Process control

Process control is a statistics and engineering discipline that deals with architectures, Mechanism s, and algorithms for controlling the output of a specific process....
. Standard problems solved by distributed algorithms include leader election
Leader election

In distributed computing, leader election is the process of designating a single Process as the organizer of some task distributed among several computers ....
, consensus
Consensus (computer science)

Consensus is a problem in distributed computing that encapsulates the task of group agreement in the presence of faults.In particular, any Process in the group may crash at any time....
, distributed search, spanning tree
Spanning tree

Spanning tree can refer to:* Spanning tree , a tree which contains every vertex of a more general graph* Spanning tree protocol, a protocol for finding spanning trees in bridged networks...
 generation, mutual exclusion
Mutual exclusion

Mutual exclusion algorithms are used in concurrent programming to avoid the simultaneous use of a common resource, such as a global variable, by pieces of computer code called critical sections....
, and resource allocation
Resource allocation

Resource allocation is used to assign the available resources in an economic way. It is part of resource management....
.

Distributed algorithms are typically executed concurrently
Concurrency (computer science)

In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other....
, 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.






Discussion
Ask a question about 'Distributed algorithms'
Start a new discussion about 'Distributed algorithms'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A distributed algorithm is an algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 designed to run on computer hardware
Computer hardware

A personal computer is made up of computer hardware, multiple physical components onto which can be loaded into a multitude of software that perform the functions of the computer....
 constructed from interconnected processors. Distributed algorithms are used in various application areas of distributed computing
Distributed computing

Distributed computing deals with hardware and software systems containing more than one processing element or Computer data storage element, Concurrent computing processes, or multiple programs, running under a loosely or tightly controlled regime....
, such as telecommunications, scientific computing, distributed information processing
Information processing

Information processing is the change of information in any manner detectable by an observation. As such, it is a Process which describes everything which happens in the universe, from the falling of a rock to the printing of a text file from a digital computer system....
, and real-time process control
Process control

Process control is a statistics and engineering discipline that deals with architectures, Mechanism s, and algorithms for controlling the output of a specific process....
. Standard problems solved by distributed algorithms include leader election
Leader election

In distributed computing, leader election is the process of designating a single Process as the organizer of some task distributed among several computers ....
, consensus
Consensus (computer science)

Consensus is a problem in distributed computing that encapsulates the task of group agreement in the presence of faults.In particular, any Process in the group may crash at any time....
, distributed search, spanning tree
Spanning tree

Spanning tree can refer to:* Spanning tree , a tree which contains every vertex of a more general graph* Spanning tree protocol, a protocol for finding spanning trees in bridged networks...
 generation, mutual exclusion
Mutual exclusion

Mutual exclusion algorithms are used in concurrent programming to avoid the simultaneous use of a common resource, such as a global variable, by pieces of computer code called critical sections....
, and resource allocation
Resource allocation

Resource allocation is used to assign the available resources in an economic way. It is part of resource management....
.

Distributed algorithms are typically executed concurrently
Concurrency (computer science)

In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other....
, 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.

Standard problems

Atomic commit
Atomic commit

An atomic commit is an operation in which a set of distinct changes is applied as a single operation. If all the changes are applied, the atomic commit is said to have succeeded....
An atomic commit is an operation where a set of distinct changes is applied as a single operation. If the atomic commit succeeds, it means that all the changes have been applied. If there is a failure before the atomic commit can be completed, the "commit" is aborted and no changes will be applied.
Algorithms for solving the atomic commit protocol include the two-phase commit protocol
Two-phase commit protocol

In computer networking and databases, the two-phase commit protocol is a distributed algorithm that lets all nodes in a distributed system agree to commit a database transaction....
 and the three-phase commit protocol
Three-phase commit protocol

In computer networking and databases, the three-phase commit protocol is a distributed algorithm which lets all nodes in a distributed system agree to commit a database transaction....
.


Consensus
Consensus (computer science)

Consensus is a problem in distributed computing that encapsulates the task of group agreement in the presence of faults.In particular, any Process in the group may crash at any time....
Consensus algorithms try to solve the problem of a number of processes agreeing on a common decision.
More precisely, a Consensus protocol must satisfy the four formal properties below.


  • Termination: every correct process decides some value.
  • Validity: if all processes propose the same value , then every correct process decides .
  • Integrity: every correct process decides at most one value, and if it decides some value , then must have been proposed by some process.
  • Agreement: if a correct process decides , then every correct process decides .


A typical algorithm for solving consensus is the paxos algorithm
Paxos algorithm

Paxos is a family of protocols for solving Consensus in a network of unreliable processors.Consensus is the process of agreeing on one result among a group of participants....
.


Distributed search

Leader election
Leader election

In distributed computing, leader election is the process of designating a single Process as the organizer of some task distributed among several computers ....


Mutual exclusion

Reliable Broadcast

Reliable broadcast is a communication primitive in distributed systems. A reliable broadcast is defined by the following properties:


  • Validity - if a correct process sends a message, then some correct process will eventually deliver that message
  • Agreement - if a correct process delivers a message, then all correct processes eventually deliver that message
  • Integrity - every correct process delivers the same message at most once and only if that message has been sent by a process


A reliable broadcast can have sequential, causal or total ordering.


Replication Resource allocation Spanning tree generation

External links