Scalable Computing Over The Internet
Scalable Computing Over The Internet
2
SCALABLE COMPUTING OVER THE INTERNET
3/112
SCALABLE COMPUTING OVER THE INTERNET
1950 to 1970: Mainframes, including the IBM 360 and CDC 6400, were built to satisfy the demands
of large businesses and government organizations.
1960 to 1980: lower-cost mini computers such as the DEC PDP 11 and VAX Series became popular
among small businesses and on college campuses
1970 to 1990: widespread use of personal computers built with VLSI microprocessors
1980 to 2000: Massive numbers of portable computers and pervasive devices appeared in
both wired and wireless applications
Since1990: The use of both HPC and HTC systems hidden in clusters, grids, or Internet clouds has
proliferated.HTC and HPC are Computational Grids
4/112
On the HPC side
supercomputers (massively parallel processors or MPPs) are gradually replaced by clusters of
cooperative computers to share computing resources.
The cluster is often a collection of homogeneous compute nodes that are physically connected in
close range to one another.
6/112
WHAT ARE COMPUTING PARADIGMS?
Distributed Computing is the opposite of centralized computing.
Parallel computing overlaps with distributed computing to a great extent.
Cloud computing overlaps with distributed, centralized, and parallel computing
Centralized computing
Many data centers and supercomputers are In parallel computing, all processors are either tightly
centralized systems, but they are used in coupled with centralized shared memory or loosely
parallel, distributed, and cloud computing coupled with distributed memory. Inter processor
applications communication is accomplished through shared memory
or via message
7/112
Distributed Computing is the opposite of centralized computing.
Parallel computing overlaps with distributed computing to a great extent.
Cloud computing overlaps with distributed, centralized, and parallel computing
Distributed Computing:
Group of computers working together as to
appear as a single computer to the end users
8/112
1.2 Scalable Computing Trends and New Paradigms
CLOUD COMPUTING:
Cloud Computing o An Internet cloud of resources can be either
a centralized or a distributed computing
The cloud applies parallel or distributed computing, or both.
9/112
Distributed Vs Cluster Computing
10/112
SCALABLE COMPUTING TRENDS AND NEW PARADIGMS
1.2.1.Innovative Applications of HTC and HPC Systems
11/112
1.2.2.TREND TOWARDS UTILITY COMPUTING
13/112
1.3.THE INTERNET OF THINGS AND CYBER-PHYSICAL
SYSTEMS
14/112
2.TECHNOLOGIES FOR NETWORK-BASED SYSTEMS
Technologies for Network-Based Systems
15/112
MULTICORE CPU Vs MULTITHREADING
16/112
2.1 MULTICORE CPUS AND MULTITHREADING TECHNOLOGIES
MULTITHREADING
TECHNOLOGY
17/112
2.2 GPU COMPUTING TO EXASCALE AND BEYOND
For example, the Xeon X5670 CPU has six cores. However, a modern
GPU chip can be built with hundreds of processing cores.
18/112
GPU COMPUTING
19/112
GPU Programming Model
20/112
USE OF GPU WITH CPU
21/112
2.3.MEMORY STORAGE AND WIDE AREA NETWORKS
22/112
2.4 VIRTUAL MACHINES AND VIRTUALIZATION MIDDLEWARE
23/112
2.4 VIRTUAL MACHINES AND VIRTUALIZATION MIDDLEWARE
Virtual machines (VMs) offer novel solutions to underutilized resources, application inflexibility,
software manageability, and security concerns in existing physical machines.
To build large clusters, grids, and clouds, we need to access large amounts of computing,
storage, and networking resources in a virtualized manner
25/112
2.5.DATA CENTER VIRTUALIZATION FOR CLOUD COMPUTING
27/112
Classification of Distributed Computing Systems
• These can be classified into 4 groups: clusters, peer-to-peer networks, grids, and
clouds.
• A computing cluster consists of interconnected stand-alone computers which work
cooperatively as a single integrated computing resource. The network of compute
nodes are connected by LAN/SAN and are typically homogeneous with distributed
control running Unix/Linux. They are suited to HPC.
Peer-to-peer (P2P) Networks
• In a P2P network, every node (peer) acts as both a client and server. Peers act
autonomously to join or leave the network. No central coordination or central database is
needed. No peer machine has a global view of the entire P2P system. The system is self-
organizing with distributed control.
• Unlike the cluster or grid, a P2P network does not use dedicated interconnection network.
Distributed File Sharing: content distribution of MP3 music, video, etc. E.g. Gnutella,
Napster, BitTorrent.
• Like an electric utility power grid, a computing grid offers an infrastructure that
couples computers, software/middleware, people, and sensors together.
• The computers used in a grid include servers, clusters, and supercomputers. PCs,
laptops, and mobile devices can be used to access a grid system.
Clouds
• A Cloud is a pool of virtualized computer resources. A cloud can host a variety of
different workloads, including batch-style backend jobs and interactive and user-
facing applications.
• Workloads can be deployed and scaled out quickly through rapid provisioning of
VMs. Virtualization of server resources has enabled cost effectiveness and allowed
cloud systems to leverage low costs to benefit both users and providers.
• Cloud system should be able to monitor resource usage in real time to enable
rebalancing of allocations when needed.
• Scalability:
• Scalability is the ability of a system to handle growing amount of work in a
capable/efficient manner or its ability to be enlarged to accommodate that growth.
• For example, it can refer to the capability of a system to increase total throughput
under an increased load when resources (typically hardware) are added.
Scalability
Scale Vertically
To scale vertically (or scale up) means to add resources to a single node in a system,
typically involving the addition of CPUs or memory to a single computer.
Tradeoffs
There are tradeoffs between the two models. Larger numbers of computers means
increased management complexity, as well as a more complex programming model
and issues such as throughput and latency between nodes.
Also, some applications do not lend themselves to a distributed computing model.
In the past, the price difference between the two models has favored "scale up"
computing for those applications that fit its paradigm, but recent advances in
virtualization technology have blurred that advantage, since deploying a new virtual
system/server over a hypervisor is almost always less expensive than actually
buying and installing a real one.
Scalability
• One form of scalability for parallel and distributed systems is:
• Size Scalability
This refers to achieving higher performance or more functionality by increasing the
machine size. Size in this case refers to adding processors, cache, memory, storage,
or I/O channels.
• Scale Horizontally and Vertically
Methods of adding more resources for a particular application fall into two broad
categories:
Scale Horizontally
To scale horizontally (or scale out) means to add more nodes to a system, such as
adding a new computer to a distributed software application. An example might be
scaling out from one Web server system to three.
The scale-out model has created an increased demand for shared data storage with
very high I/O performance, especially where processing of large amounts of data is
required.
Amdahl’s Law
It is typically cheaper to add a new node to a system in order to achieve improved
performance than to perform performance tuning to improve the capacity that each
node can handle. But this approach can have diminishing returns as indicated by
Amdahl’s Law.
Assume that a fraction α of the code must be executed sequentially, called the
sequential block. Therefore, (1 - α ) of the code can be compiled for parallel
execution by n processors. The total execution time of program is calculated by:
α T + (1 - α ) T / n
where the first term is the sequential execution time on a single processor and the
second term is the parallel execution time on n processing nodes.
All system or communication overhead is ignored here. The I/O and exception
handling time is also not included in the speedup analysis.
Amdahl’s Law
Amdahl’s Law states that the Speedup Factor of using the n-processor system over the
use of a single processor is expressed by
Speedup = S = T / [α T + (1 - α ) T / n]
= 1 / [α + (1 - α ) / n]
The maximum speedup of n is achievable only when α = 0, i.e. the entire program is
parallelizable.
Example, α = 0.25 and so (1 – 0.25) = 0.75 then the maximum speedup, S = 4 even if one
uses hundreds of processors.
Amdahl’s Law teaches us that we should make the sequential bottleneck as small as
possible. Increasing the cluster size alone may not result in a good speedup in this case.
Amdahl’s Law
• Example: suppose 70% of a program can be sped up if parallelized and run on
multiple CPUs instead of one CPU.
• N = 4 processors
Double the processing power has only improved the speedup by roughly one-fifth.
Therefore, throwing in more hardware is not necessarily the optimal approach.
System Efficiency
• To execute a fixed workload on n processors, parallel processing may lead to a system
efficiency defined as:
System Efficiency, E = S / n = 1 / [α n + (1 - α ) ]
System efficiency can be rather low if the cluster size is very large.
• All hardware, software, and network components may fail. Single points of failure
that bring down the entire system must be avoided when designing distributed
systems.