Parallel and distributed
computing
COMP3139
Agenda
• Technologies for Distributed Computing
• Containerization
• Edge computing
• Distributed Database
• Blockchain
• Serverless Computing
• Process Management
Technologies for distributed
computing
Technologies for Distributed Computing
Containerization
• Containerization is operating system level
virtualization or application-level virtualization
over multiple network resources
• In recent times, containerization technology
has been widely adopted by cloud computing
platforms like Amazon web services, Microsoft
Azure, Google Cloud Platform,
Technologies for Distributed Computing
Containerization
• Containerization technologies like Docker and Kubernetes have
transformed the way applications are developed, deployed, and
managed in distributed environments.
• Containers package an application and its dependencies into a
single, portable unit.
• Ensuring consistency across different computing environments.
Technologies for Distributed Computing
Containerization
• Kubernetes has emerged as the de facto orchestration platform for
managing containerized applications.
• Enabling automatic scaling, load balancing, and fault tolerance.
• Containerization allows developers to create and deploy
applications faster and more securely.
Edge Computing
• Edge computing is the processing
and computing of client data closer to
the data source rather than a
centralized server or a cloud-based
location .
• Edge computing brings
• computing resources,
• data storage, and
• enterprise applications closer to
where the people consume the
information.
Edge Computing
• Edge computing offers a better alternative to move
away from managing complex data to proximity of
the original data source.
• Reducing latency and enabling real-time decision-
making.
• Edge computing is becoming essential for
applications that require rapid data analysis and
response.
• Edge servers and edge gateways extend the
capabilities of distributed systems
Edge Computing
How it works?
• Edge computing provides a high-speed experience
by processing data as close to your enterprise
applications as possible.
• Data coming out of the originating source is
basically processed there.
• Data does not need to travel through a network to
reach a data center or cloud.
• Computing power of your business
becomes decentralized.
• Remote devices can self-sufficiently process data,
despite being miles away from the main data Centre
Edge Computing
• Facilitating efficient data processing and storage.
• By processing incoming data at the edge, less
information needs to be sent to the cloud and back.
o Examples:
• Autonomous Vehicles
• Security
• Traffic management System
Distributed Databases
• A distributed database is a database that runs and stores data across
multiple computers, as opposed to doing everything on a single machine.
• Distributed database systems operate on two or more interconnected
servers on a computer network.
• Each location where a version of the database is running is often called
an instance or a node.
Distributed Databases
• Distributing the database increases resilience and reduces risk.
• Distributed databases, in contrast, are typically configured with replicas
of the same data across multiple instances.
• one instance goes offline, allowing the application to continue
operating.
Distributed Databases
• Distributed databases are generally easier to scale.
• Distributed databases like Apache Cassandra, MongoDB, and Amazon
DynamoDB are designed to handle vast amounts of data across multiple nodes
or clusters.
• They provide scalability and
• fault tolerance,
• ensuring data availability even in the face of hardware failures
Distributed Databases
• Databases are crucial for applications requiring
high availability and resilience
• such as e-commerce platforms and social media
networks.
• Examples: Distributed database are Apache
Cassandra, HBase, Ignite, etc.
Blockchain
• Blockchain is a method of recording information that makes it impossible or
difficult for the system to be changed, hacked, or manipulated.
• A blockchain is a distributed ledger that duplicates and distributes
transactions across the network.
• It is a structure that stores transactional records, also known as the block, of
the public in several databases, known as the “chain,” in a network
connected through peer-to-peer nodes.
• Storage is referred to as a ‘digital ledger
Blockchain
• Every transaction in this ledger is authorized by
the digital signature of the owner.
• Authenticates the transaction and safeguards it
from tampering.
• The digital ledger is like a Google spreadsheet
shared among numerous computers in a network
• The transactional records are stored based on
actual purchases.
Blockchain
• Blockchain technology has gained prominence
beyond cryptocurrencies.
• Offering a distributed ledger that ensures
transparency, security, and trust in various applications.
• Enables decentralized consensus
• Making it suitable for scenarios where multiple parties
need to collaborate without relying on a central
authority.
• finance, Insurance Settlements are exploring
blockchain for improved data integrity and traceability.
Serverless Computing
• Serverless computing is a cloud computing execution
model that allocates machine resources on an as-used
basis.
• Developers can build and run applications without having
to manage any servers.
• Cloud service provider is responsible for provisioning,
managing, and scaling the cloud infrastructure that runs
the application code.
Serverless Computing
• It does not mean “no servers.” Instead, serverless apps abstract away the
routine infrastructure work associated with application development.
• No visibility into the machines that run your applications,
• can’t configure them, and
• don’t have to manage or scale them
• You pay for the service of a server, not the server itself.
Serverless Computing
• How it works?
• Serverless computing attempts to provide an invisible “serverless”
experience for developers.
• Eliminating the need to think about servers or anything an application
might need to run.
• Instead, the service provider does all the work behind the scenes to
ensure you have the resources to execute your code
• To meet requirements without being charged for idle capacity.
Serverless Computing
• It allows developers to focus solely on writing code, with the cloud
provider handling infrastructure provisioning and scaling.
• This technology is well-suited for event-driven, distributed
applications and microservices architectures.
• Examples include Running scheduled tasks (for example, daily
reports, backups, or business logic,
• Dynamic and responsive chatbots
Processes
• A series of activities or steps carried out to reach a specific outcome
or objective is known as a process.
• The concept of a process originates from the field of operating
systems where it is generally defined as a program in execution.
• The management and scheduling of processes are perhaps the most
important issues to deal with
• when it comes to distributed systems, other issues tum out to be
equally or more important.
Process management in Distributed System
• Process management has different ways to share the process among all the
processors, and other nodes that are a part of a distributed system.
• Following are 3 policies & mechanisms
1. Process Allocation
2. Process Migration
o Non-Pre-emptive Migration
o Pre-emptive Migration
3. Threads
Process management in Distributed System
1. Process Allocation
• Process Allocation deals with allocating processor, or node, or some fixed
size of memory to the process.
• Size may vary as the requirements of the process increase.
• This is initial procedure when the process is born and is about to perform
the assigned tasks.
Process management in Distributed System
2. Process Migration
• Process migration as its name indicates, is the shifting (or migrating) the
process to the desired node or processor.
• Migration can be done for many reasons like load balancing if the current
node on which it was executing has exhausted its limit of handling a certain
number of processes at a time.
• Load balancing is the process of distributing traffic among multiple servers
to improve a service or application's performance and reliability.
Process management in Distributed System
I. Non-Pre-emptive Migration:
• The process is migrated before starting its execution on the source node.
• The node on which the process was born, before starting its execution it will
migrate to its target node.
II. Pre-emptive Migration:
• The process has already started its execution but due to some unexpected factors
or demands it needs to be migrated to other nodes.
• all the related information like process id, files it has opened, program counter,
state, priority etc. to be save in the Process Control Block (PCB)
Process management in Distributed System
3. Threads
• Threads in distributed system play a major role, dividing the process in
multiple parts each having their own control flow of execution
• Achieving parallel computing. This parallel computing helps in improvising
the overall efficiency of the distributed system.
THANK YOU