Cloud Computing Modulr -1-6th Sem
Cloud Computing Modulr -1-6th Sem
Distributed System Models and Enabling Technologies: Scalable Computing Over the Internet, Technologies for
Network Based Systems, System Models for Distributed and Cloud Computing, Software Environments for Distributed
Systems and Clouds, Performance, Security and Energy Efficiency.
Modern Applications:
Many real-world applications today use parallel and distributed computing to solve problems.
Impact on Society:
These large-scale Internet applications have greatly improved the quality of life and the availability of information services in
society today.
The Internet is used by billions of people: Every day, billions of people use the Internet for various activities.
High-performance computing (HPC) services are needed: To handle so many people using the Internet, powerful
supercomputers and large data centers are needed to provide fast services to all the users at the same time.
Old benchmarks aren't enough: In the past, the Linpack Benchmark was used to measure the performance of
supercomputers. However, it’s no longer the best way to measure performance because of the growing demand.
Rise of cloud computing: Now, the focus has shifted to high-throughput computing (HTC), which involves using
many smaller, connected computers to perform tasks at the same time (parallel and distributed computing).
Improving data centers: To meet the demand, we need to upgrade data centers with faster servers, better storage
systems, and faster networks.
Goal: The main aim is to improve network-based computing and web services by using the latest technologies.
Overview:
P2P Networks & Clusters: Since the mid-1990s, technologies have been developed to build large networks for
computing, like P2P (Peer-to-Peer) networks and clusters (groups of computers working together).
Computational Grids and Data Grids: These networks have evolved into large projects known as computational
grids and data grids, designed to share resources like hardware, software, and data.
Cloud Computing: Recently, there’s been more focus on using cloud resources for data-heavy tasks. Cloud
computing involves using server clusters and large databases stored in data centers, instead of personal desktop computers.
Grid & Cloud Systems: These systems focus on resource sharing across hardware, software, and data. The goal is to
maximize parallelism (doing many things at once) across multiple machines.
Tianhe-1A: In October 2010, a powerful cluster machine was built in China with over 86,000 CPU cores and over 3
million GPU cores.
Computational Grids: Some grids connect hundreds of server clusters and involve thousands of machines.
P2P Networks: Some Peer-to-Peer (P2P) networks have millions of machines working at once.
Cloud Computing:
Experimental Clusters: Large-scale cloud computing clusters have been built with thousands of processing nodes.
Chapters 4-6 focus on cloud computing and how it works in systems like data centers, social networks, and
virtualized platforms.
Multicore Processors: Both HPC (used for science and engineering) and HTC (used for business) systems will need
multicore or many-core processors to handle many computing threads (tasks) at once.
Parallelism: Both systems focus on running tasks in parallel and distributed computing across many machines.
Design Objectives:
To meet future demands, computing systems must focus on the following goals:
Efficiency:
o In HPC: It means using resources effectively by running many tasks at the same time.
o In HTC: It focuses on handling lots of jobs, accessing data quickly, and using energy efficiently.
2. Dependability:
o Systems must be reliable, meaning they can keep running even when parts of the system fail.
o They must provide high-throughput service with guaranteed Quality of Service (QoS), even during failures.
3. Adaptation:
o The programming model must be flexible enough to handle billions of job requests on massive datasets,
especially with cloud resources that can change in workload.
4. Flexibility in Application Deployment:
o Distributed systems need to run efficiently in both HPC applications (like science/engineering) and HTC
applications (like business).
echnologies for Network-Based Systems
In this section, we’ll explore how hardware, software, and network technologies are used in distributed computing systems.
We'll focus on how distributed operating systems handle large-scale computing, especially using parallel processing.
Over the past 30 years, computer technology has rapidly improved. These improvements in processors and networks are key to
building High-Performance Computing (HPC) and High-Throughput Computing (HTC) systems.
Processor speed: How fast processors can perform tasks (measured in millions of instructions per second, MIPS).
Network bandwidth: The amount of data a network can handle (measured in megabits per second, Mbps, or gigabits
per second, Gbps).
Multicore Processors: Modern processors have multiple cores (e.g., dual, quad, or more), allowing them to perform
many tasks simultaneously.
Parallelism: These cores help exploit two kinds of parallelism:
o ILP (Instruction-Level Parallelism): Running multiple instructions in one clock cycle.
o TLP (Thread-Level Parallelism): Running multiple threads of a program at the same time.
Moore’s Law: This law, which says the number of transistors on a chip doubles about every two years, has proven
accurate, leading to better performance.
Clock Rate Growth: Processor speed also improved over time, from 10 MHz in older chips like Intel 286 to 4 GHz in
newer ones like Pentium 4.
Challenges with High Clock Rates:
o Heat Generation: When processors run at very high speeds, they generate a lot of heat, which limits how
fast they can go.
o Power Consumption: High clock speeds also require more power, making it hard to increase speeds much
further.
Current Status: Few processors exceed 5 GHz today, meaning there are limits to how much clock speeds can grow
unless chip technology improves.
The connection can be in a hierarchical manner, meaning they can be organized in a structured way.
These networks can create massive systems with millions of computers, connected through edge networks.
These systems can involve hundreds, thousands, or even millions of computers.The computers in these systems work together in
different ways:
This breakdown highlights the basics of distributed and cloud systems, helping you understand how they function and scale up
in the modern world of computing.
Clusters in Supercomputing:
In 2009, 417 of the world's top 500 supercomputers used cluster architecture (group of connected computers
working together).
Clusters are important for creating large-scale grids and cloud systems.
Cloud computing is becoming popular because it's low-cost and simple for both providers and users.
For larger clusters with more nodes, the network can include:
o Multiple Gigabit Ethernet switches.
o Myrinet or InfiniBand switches.
The network setup can be designed to handle more nodes by organizing the switches in levels.
Scalable Clusters:
Using a SAN, LAN, or WAN, you can scale the cluster to include many nodes, increasing its power and capacity.
Internet Connectivity:
The cluster is connected to the Internet through a VPN (Virtual Private Network) gateway.
The VPN gateway helps locate the cluster by providing an IP address.
System Image:
A system image refers to how the operating system (OS) manages the cluster's resources.
In most clusters, each node has its own OS, so they work independently.
This means that each node has its own system image and runs its own OS, making the cluster have multiple system
images.
These systems are made up of many independent computers (nodes) that are connected together.
These computers can be linked by networks like SANs, LANs, or WANs in a structured way.
A LAN (Local Area Network) connects a smaller group of machines, while a WAN (Wide Area Network) can
connect multiple LANs to create a larger network.
Scaling Up:
Using modern networking technology, it's easy to connect hundreds of machines using a few switches in a local
cluster.
WANs can link many of these local clusters, creating a massive network of machines that can be spread across large
areas.
Massive Systems:
These systems are called highly scalable, meaning they can easily grow in size and handle a large number of
machines.
They can reach web-scale connectivity, which means they can support millions of connected devices, either physically
or logically.
These systems can involve hundreds, thousands, or even millions of computers working together.
The machines in these systems can work together in different ways—either collectively, cooperatively, or
collaboratively—to achieve a goal.
OSI Layers:
All these technologies are built on the OSI model, which is a seven-layer system that helps computers communicate
with each other over a network.
The OSI model gives basic networking rules, like how to send data, how to address computers, and how to handle
errors.
On top of the OSI layers, there is a base software environment that handles tasks like communication and execution
of code:
o For web services, it could be something like .NET or Apache Axis.
o For Java, it is the Java Virtual Machine (JVM).
o For CORBA, it uses a broker network to manage communication between objects.
Higher-Level Features:
Above the base software, there is a higher-level environment that makes it easier to work with distributed systems.
This higher level focuses on how entities communicate with each other and the interfaces through which they
interact. This is like how applications or services talk to each other across networks.
Entity Communication:
This communication system rebuilds the top four layers of the OSI model, but instead of working with bits (the
lowest level of data), it works at the level of entities (services, objects, or distributed objects).
The system helps distributed systems (like web services, Java, and CORBA) organize how entities work together and
communicate, using a layered approach on top of the basic OSI networking model.