Skip to content
Home

Distributed computing: principles, models, and applications

Overview of distributed computing: definitions, architectures, history, common models (clusters, grids, cloud, peer-to-peer), key challenges (consistency, fault tolerance) and typical uses.

Overview

Distributed computing refers to the practice of coordinating multiple autonomous computers or processors to solve problems that are difficult or inefficient for a single machine. Instead of relying on one very powerful system such as a supercomputer, work can be divided into smaller tasks and executed concurrently by many machines. These machines exchange data and coordinate through a network; the combination of computation and networking enables larger aggregate performance, improved resilience, and cost-effective scaling.

Core characteristics and components

Key elements of a distributed system include independent nodes (servers, desktops, embedded devices), communication links, and middleware that manages task distribution, data transfer, and fault handling. Architectures vary: tightly coupled clusters present shared resources and low-latency interconnects; geographically dispersed systems rely on wide-area networking and tolerate higher latency. Common runtime techniques include message passing, remote procedure calls, distributed shared memory, and data-parallel frameworks.

Common models and examples

  • Cluster computing: collections of similar machines connected by a high-speed local network for parallel jobs.
  • Grid computing: federated resources from multiple administrative domains pooled for large-scale scientific problems.
  • Cloud computing: elastic, service-oriented infrastructure operated by providers and accessed over the Internet.
  • Peer-to-peer and volunteer computing: peers contribute resources; notable projects include large search and analysis efforts such as the Great Internet Mersenne Prime Search.

These models sit on top of underlying communication infrastructure such as computer networks and ensembles of machines often described as many computers working together. The broad term distributed computing is commonly used in research, industry, and hobbyist projects.

Historical context and development

The field grew from early work in the mid-20th century on time-sharing, remote procedure calls, and packet networks, and expanded with the spread of local-area networks and the Internet. Over time it incorporated advances in fault-tolerant algorithms, replication, and scalable storage. Practical frameworks such as MapReduce and message-passing libraries helped make distributed processing accessible to programmers and system architects.

Challenges and notable concepts

Designing distributed systems requires addressing problems that do not appear in single-node programs: partial failures (some nodes may fail while others continue), network partitions, latency variability, and security across administrative boundaries. Developers rely on concepts such as consistency models, consensus algorithms, replication strategies, and load balancing. The trade-offs between consistency, availability, and partition tolerance are central to many database and service designs.

Uses and importance

Distributed computing powers many modern services: web-scale applications, scientific simulations, big data analytics, content delivery, high-availability databases, and decentralized applications. By combining commodity hardware, robust software protocols, and careful system design, distributed systems enable computing tasks that would otherwise be prohibitively expensive or slow on a single machine. Their flexibility makes them suitable for research, industry, and collaborative volunteer projects alike.

Further reading and distinctions

For practical development, one often distinguishes between synchronous and asynchronous systems, shared-nothing and shared-disk architectures, and between control-plane and data-plane responsibilities. Tutorials and formal treatments cover topics such as remote invocation, distributed transactions, consensus (e.g., Paxos and Raft), and scalable storage design. Readers seeking introductions or implementation guides can consult textbooks, online courses, and software project documentation that explain the models and trade-offs in greater detail.

Classifications

Usually a distinction is made between

  • Client-server system: Many clients access one or more servers.
  • Distributed application: Programming the application creates the distributed system.
  • Distributed operating system: The operating system itself is distributed, this is not visible to users and applications.

Reasons for the use of distributed systems

With distributed systems, true concurrency can be realized; that is, multiple processes can be genuinely executed simultaneously. In addition, a distributed system is also usually more scalable than a single computer, since you can easily increase performance by adding more machines.

A frequently encountered scenario is also the provision of remote resources, as is the case with Wikipedia. In addition, distributed systems are used to increase fail-safety by offering certain functionalities from several computers (redundancy), so that if one computer fails, the same functionality is offered by another computer.

In many cases, there are also economic reasons for networking inexpensive computers instead of purchasing an expensive supercomputer. This is exploited, for example, by volunteer computing projects such as SETI@home, which use idle computing power from stand-alone computers to solve complex problems. After one of the first and largest public volunteer distributed system projects SETI@home announced its end on March 31, 2020, and due to increased interest from the COVID-19 pandemic, the distributed system Folding@home will be the first computing system to achieve an exaFLOPS. The system simulated protein folding for research on COVID-19 and reached a speed of about 2.43 x86 exaFLOPS on April 13 - several times faster than the previous record holder, supercomputer Summit.

Other reasons:

  • Remote access to certain resources (printer, ...)
  • Cooperation (Computer Supported Cooperative Work)
  • Load distribution

Related articles

Author

AlegsaOnline.com Distributed computing: principles, models, and applications

URL: https://en.alegsaonline.com/art/27741

Share