What is Distributed Computing?
Distributed computing involves solving a computational problem by dividing it into sub-problems that are solved concurrently on multiple computers, often geographically dispersed. Instead of one powerful machine tackling everything, the workload is distributed.
This contrasts with traditional client-server models where a single server handles requests from many clients. In distributed systems, each node (computer) contributes to the overall solution.
Key Concepts: Clusters and Grids
A *cluster* is a group of computers that work together as a single system. They are typically located in close proximity and connected by a high-speed network, allowing for rapid communication and data sharing – often used for web servers or high-performance computing.
A *grid* represents a larger, geographically distributed collection of computer resources, frequently involving academic institutions or research organizations collaborating on large-scale projects. Grids typically utilize standard protocols for resource sharing.
n * t <= C (where n = number of nodes, t = processing time, C = computational task)
Architectures: Client-Server and Peer-to-Peer
The most common architecture is *client-server*, where clients request services from a central server. This model simplifies management but can create bottlenecks if the server becomes overloaded.
Alternatively, *peer-to-peer (P2P)* networks distribute processing and data storage across all nodes in the network. This offers greater resilience and scalability, though managing security and consistency is more complex.
Benefits of Distributed Computing
Increased Processing Power: Combining resources dramatically increases computational power.
Scalability: Systems can easily scale up or down to meet changing demands, providing flexibility and cost-effectiveness. Fault tolerance is also a key benefit; failure of one node doesn't necessarily bring the whole system down.
P = ∑(i=1 to n) Pi (where P represents total processing power)
Frequently asked questions
What’s the difference between cloud computing and distributed computing?
Cloud computing is a delivery model for distributed computing services. It's the *how* of delivering these resources, while distributed computing is the *what* – the underlying technology.
Why do I hear about ‘grids’? Are they still used today?
High-performance grids were prominent in scientific research. While less common now, the principles are still foundational to modern distributed systems and large-scale data processing (like weather forecasting).
Can a single person set up a distributed computing system?
Yes! Smaller clusters can be built using readily available hardware and software, though managing complexity increases with scale. Services like Kubernetes simplify cluster management.
Try it live
Everything above runs in your browser — open SPH Fluid and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.
▶ Open SPH Fluid simulation