Lecture 1 Distributed Notes
Lecture 1 Distributed Notes
Computing
CS-401
• Distributed computing refers to a system where processing and data storage is distributed across multiple devices or
systems, rather than being handled by a single central device.
distributed system have their own processing capabilities distributed across multiple devices or systems.
and may also store and manage their own data. • Peer-to-Peer Architecture: Devices or systems in a
• Network: The network connects the devices or systems distributed system can act as both clients and servers, as they
in the distributed system, allowing them to communicate can both request and provide services to other devices or
• Resource Management: Distributed systems often have • Shared Resources: Resources such as computing power,
some type of resource management system in place to storage, and networking are shared among the devices or
allocate and manage shared resources such as computing systems in the network.
power, storage, and networking. • Horizontal Scaling: Scaling a distributed computing system
typically involves adding more devices or systems to the
network to increase processing and storage capacity. This can be
done through hardware upgrades or by adding additional devices
or systems to the network..
Applications Area of Distributed System
Ever sent an email with an attachment to yourself from your home computer, and then signed in to your email at work
to access the attachment?
One of the earliest forms of cloud computing was the ability to save attachments in your email inbox and access
them on another computer. That's basic cloud storage for you!
Cloud Service Models
Cloud solutions come in three primary service models: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and
Software as a Service (SaaS).
Real World
Example
PaaS
This service layer is primarily
IaaS geared towards developers and
IaaS gives users access to storage, networking, operations professionals. Service
servers, and other computing resources via the providers rent out cloud-based
cloud. platforms for users to develop and
For example, many businesses use IaaS to deliver applications.
support workload spikes during busy seasons
(like holidays). Saas
Popular IaaS providers include: Cloud application services are the most
Amazon Web Services (AWS), Microsoft Azure,
well-known of the cloud service
Google Compute Engine (GCE), the IaaS models. The software is hosted,
component of Google Cloud Platform (GCP)
packaged, and delivered by a third
party through the Internet (typically on
a browser-based interface).
Benefits of Cloud Computing
Fewer Expenses
Moving to the Cloud will reduce the cost of IT systems management and maintenance. Instead of purchasing new systems
and equipment for your business, you can take advantage of the resources from your service provider and reduce the cost
of system upgrades, energy consumption, and labor.
Security
Most providers follow policies to ensure the security and protection of your data and infrastructure against threats. Also, it
enables data backup and recovery which can be reflected throughout multiple services and can be accessed at any time.
Flexibility
We all know how important it is for businesses to be flexible especially in these trying times. Cloud computing will allow
your employees to work anywhere since they will get access to data, provided they have an internet connection.
Collaboration
When your team needs to work on a certain project, and each are in different locations, they can utilize cloud computing to
work and share files at the same time. It is secure and will allow your business to connect and communicate easily.
Automatic Updates
Cloud-based applications automatically update so you don’t need to call for support to manually install updates on your
device every time. Updates could include the latest versions in addition to server upgrades and more, which allows your
business to save time and money.
Parallel Computing
Parallel computing refers to the process of executing several processors an application or computation simultaneously.
There are two types of computations: parallel computing and distributed computing. Parallel computing allows several
processors to accomplish their tasks at the same time. In contrast, distributed computing splits a single task among numerous
systems to achieve a common goal.
Types of Parallelism
Ø Bit-level parallelism –
It is the form of parallel computing which is based on the increasing processor’s size. It reduces the number of instructions
that the system must execute in order to perform a task on large-sized data.
Example: Consider a scenario where an 8-bit processor must compute the sum of two 16-bit integers. It must first sum up the
8 lower-order bits, then add the 8 higher-order bits, thus requiring two instructions to perform the operation. A 16-bit
processor can perform the operation with just one instruction.
Ø Instruction-level parallelism –
A processor can only address less than one instruction for each clock cycle phase. These instructions can be re-ordered and
grouped which are later on executed concurrently without affecting the result of the program. This is called instruction-level
parallelism.
Ø Task Parallelism –
Task parallelism employs the decomposition of a task into subtasks and then allocating each of the subtasks for execution.
The processors perform the execution of sub-tasks concurrently.