What is Distributed Computing?

June 20, 20244 min read

We live in a world teeming with different websites and applications, that we use on a daily basis however the underlying technology that builds and delivers these technological experiences is a marvel in and of itself. That is until we understand distributed computing. That may sound very abstract but in fact it is very simple. At least in theory!
Distributed computing is reshaping the ways we handle these complex issues. But what exactly is distributed computing? Imagine if you could pool the power of thousands of computers across the globe, working together to solve problems that a single computer would take centuries to process. Think multiple computers acting as a single system - this is the essence of distributed computing.
The evolution of distributed computing commenced in the 1960s with the emergence of initial networks such as ARPANET, which set the foundation for the modern internet (and one of the first computer networks to implement the TCP/IP protocol). A major advancement took place in the late 1990s with the introduction of initiatives like SETI@Home marking a significant breakthrough. Through the use of home computers, such as PCs and laptops, participants in this initiative were able to analyse radio signals from space in order to aid in the hunt for extraterrestrial life.
Distributed computing works by taking a large problem, such as modelling the folding of proteins requiring large computational resources - and instead breaks it up into smaller pieces which can then be run concurrently on multiple computers at once. These computers are often referred to as nodes. The nodes communicate with each other via a network protocol to share data and exchange results. The two main architectural styles are:

  1. Client-Server Architecture: As the name suggests, client-server architecture consists of a client and a server. For serving a website such as the one you may be reading from right now (unless you have the magazine), the client (user) may interact with the browser which will then retrieve information from the server. Think clicking on a YouTube video which then prompts the server to actually stream the video to you. Alternatively the server could distribute or send out tasks to the worker nodes and then aggregate the information as it is sent back, which is the way SETI worked and indeed solutions such as Kubernetes run if that means anything to you.
  2. Peer-to-Peer (P2P) Architecture: Here, each node in the network acts both as a client and a server. This decentralization means that every computer can send and receive data, coordinating directly without a central server. This is the basis of
    blockchain technology powering crypto currencies such as Bitcoin and Ethereum which you may be familiar with – and perhaps invested in. Why It Matters Distributed computing isn't just a technical wonder; it has real-world applications that impact our daily lives. Here’s how: 1. Networks in the 1970s saw the birth of Ethernet and LAN, allowing computers to connect in the same area. Peer-to-peer networks emerged, with e-mail and the internet being prime examples of distributed systems. This all leads to the internet as we know it today. 2. Telecommunication networks like telephone and cellular networks are also forms of peer-to-peer networks. Telephone networks were early examples of distributed communication, while cellular networks represent more complex distributed communication systems with the advent of VoIP. 3. Real-time systems are present in various industries worldwide, from airlines to ecommerce. These systems focus on processing and presenting information to number users, seen in industries such as gaming which is definitely not done during lessons. 4. Parallel processors divide tasks among multiple processors to handle extensive computational tasks. Initially focusing on running software on multiple threads, parallel computing evolved with the rise of operating systems falling into the realm of parallel processing. 5. Distributed database systems are spread across multiple servers or regions, allowing data replication and scalability. Homogeneous systems use the same database management system and data model, while heterogeneous systems can have multiple data models and management systems. Big tech cloud providers such as Google Cloud, Amazon AWS and Microsofts Azure utilise distributed computing at a data centre level (those colossal computing warehouses you may have seen pictures of that provide the infrastructure of many applications you use daily) and also at connecting multiple datacenters together. Distributed systems are an essential component of wireless networks, cloud computing, and the internet. Since they can pool the resources of other devices and processes, distributed systems offer some features that would be hard or even impossible to develop
    on a singular system. As we look to the future, distributed computing is set to become even more integral to our digital world - perhaps distributed machine learning on home computers, overcoming the issues of bandwidth constraints and latency – or even the latest, buzziest cryptocurrency, given ‘investors’ have eagerly been waiting for the latest hype cycle – we will see!