Computing Paradigms
Computing Paradigms
(From Wikipedia)
Distributed Computing
Distributed Systems: Computer systems whose inter-communicating components are
located on different networked computers.
Distributed Computing:
Properties:
Parallel Computing
It is a type of computation in which many calculations or processes are carried out
simultaneously.
Large problems can often be divided into smaller ones, which can then be solved at the
same time.
There are several different forms of parallel computing: bit-level, instruction-level, data,
and task parallelism.
Parallel and Distributed Computing [(a), (b): Distributed, (c): Parallel]:
Peer-to-peer (P2P) Computing
It is a distributed application architecture that partitions tasks or workloads between
peers.
Peers are equally privileged.
Peers are both suppliers and consumers of resources.
Example: Napster, BitTorrent, Miracast etc.
Client-Server Model
It is a distributed application structure that partitions tasks or workloads between the
providers of a resource or service, called servers, and service requesters, called clients.
Often clients and servers communicate over a computer network on separate hardware,
but both client and server may reside in the same system.
Example: E-mail, World Wide Web etc.
Grid Computing
It is the use of widely distributed computer resources to reach a common goal.
Grid computing is distinguished from conventional high-performance computing
systems such as cluster computing in that grid computers have each node set to perform
a different task/application.
Grid computers also tend to be more heterogeneous and geographically dispersed (thus
not physically coupled) than cluster computers.
Grid computing combines computers from multiple administrative domains.
Computer Cluster
It is a set of computers that work together so that they can be viewed as a single system.
Unlike grid computers, computer clusters have each node set to perform the same task,
controlled and scheduled by software.
The components of a cluster are usually connected to each other through fast local area
networks, with each node (computer used as a server) running its own instance of an
operating system.
In most circumstances, all of the nodes use the same hardware and the same operating
system.
Example: Beowulf cluster, OSCAR etc.
Cloud Computing
It is the on-demand availability of computer system resources, especially data storage
(cloud storage) and computing power, without direct active management by the user.
Large clouds often have functions distributed over multiple locations, each of which is a
data center.
Fog Computing
It is an architecture that uses edge devices to carry out a substantial amount of
computation (edge computing), storage, and communication locally and routed over the
Internet backbone.
Many device (eg. IoT devices) will generate voluminous raw data (e.g. from sensors), and
rather than forward all this data to cloud-based servers to be processed, the idea behind
fog computing is to do as much processing as possible using computing units co-located
with the data-generating devices, so that processed rather than raw data is forwarded, and
bandwidth requirements are reduced.
An additional benefit is that the processed data is most likely to be needed by the same
devices that generated the data, so that by processing locally rather than remotely, the
latency between input and response is minimized.
Fog computing is a medium weight and intermediate level of computing power.
Rather than a substitute, fog computing often serves as a complement to cloud
computing.
Fog computing is more energy-efficient than cloud computing.
Edge Computing
It is a distributed computing model that brings computation and data storage closer to
the sources of data.
More broadly, it refers to any design that pushes computation physically closer to a user,
so as to reduce the latency compared to when an application runs on a centralized data
centre.
Edge computing is often equated with fog computing, particularly in smaller setups.
However, in larger deployments, such as smart cities, fog computing serves as a distinct
layer between edge computing and cloud computing, with each layer having its own
responsibilities.
Example: Content Delivery Networks (CDN).