Cloud Computing Material Unit - 1
Cloud Computing Material Unit - 1
UNIT–1
Cloud computing applies a virtualized platform with elastic resources on demand by provisioning
hardware, software, and data sets dynamically.
Instead of buying, owning, and maintaining physical data centers and servers, one can access technology
services, such as computing power, storage, and databases, on an as-needed basis from a cloud server.
1. Cost: It reduces the huge capital costs of buying hardware and software.
3. Scalability: We can increase or decrease the requirement of resources according to the business
requirements.
4. Productivity: While using cloud computing, we put less operational effort. We do not need to apply
patching, as well as no need to maintain hardware and software. So, in this way, the IT team can be more
productive and focus on achieving business goals.
5. Reliability: Backup and recovery of data are less expensive and extremely fast forbusiness continuity.
6. Security: Many cloud vendors offer a broad set of policies, technologies, and controls. That
strengthens our data security.
• Internet Connectivity: Cloud Server can be accessed only through internet. So if there is no good
internet connectivity or no internet connection, than the data cannot be accessed properly.
• Vendor lock-in: Vendor lock-in is the biggest disadvantage of cloud computing. Organizations may
face problems when transferring their services from one vendor to another. As different vendors provide
different platforms, that creates a problem to move data from one cloud to another.
• Limited Control: As we know, cloud infrastructure is completely owned, managed, and monitored by
the service provider, so the cloud users have less control on the cloud servers.
• Security: Although cloud service providers implement the best security standards, but before adopting
cloud technology, the organization must be aware that they are handing over all the organization's
sensitive information to a third party, which is a cloud computing service provider. While sending the
data on the cloud, there may be a chance that your organization's information is hacked by Hackers.
2
On-Demand Self-Services
On-demand self-service means that you can start using your chosen cloud service whenever you need it.
You don’t have to wait for someone else to make it available or set up the right equipment for you—you
just log in and get started right away.
Rapid Elasticity
Rapid elasticity refers to the ability of a cloud service provider (CSP) like Amazon Web Services (AWS)
or Microsoft Azure to add more capacity. The ability to quickly scale up and down capacity is perhaps the
most important characteristic of cloud computing
Resource Pooling
The IT resource (e.g., networks, servers, storage, applications, and services) present are shared across
multiple applications and occupant in an uncommitted manner. Multiple clients are provided service
from a same physical resource.
Measured Service
This is a characteristic of cloud computing that refers to the ability to pay for only what you use. For
example, you can use a measured service for storage, processing, bandwidth, and users. Payment is based
on actual consumption by the customer via a pay-for-what-you-use model.
Multi-Tenancy
Cloud computing providers can support multiple tenants (users or organizations) on a single set of
shared resources.
3
Virtualization
Cloud computing providers use virtualization technology to abstract underlying hardware resources and
present them as logical resources to users.
Security
Data security is one of the best characteristics of Cloud Computing. Cloud computing features provide
security by using multiple layers of protection, including firewalls, encryption, and identity management
systems.
Data security is a major concern when working with Cloud environments. Lack of visibility and
control tools, no identity access management, data misuse, and Cloud misconfiguration are the
common causes behind Cloud privacy leaks. Using firewalls, antivirus, and increasing bandwidth for
Cloud data availability are some ways to prevent data security risks.
2. Multi-Cloud Environments
Common cloud computing issues and challenges with multi-cloud environments are - configuration
errors, lack of security patches, data governance, and no granularity. It is difficult to track the security
requirements of multi-clouds and apply data management policies across various boards.
4
3. Performance Challenges
The performance of Cloud computing solutions depends on the vendors who offer these services to
clients, and if a Cloud vendor goes down, the business gets affected too.
Organizations are finding it tough to find and hire the right Cloud talent, which is another common
challenge in cloud computing.
If a Cloud vendor gets hacked or affected, the data of organizations using their services gets
compromised. It is another one of the many cloud security risks and challenges faced by the industry.
8. Cost Management
Even though Cloud Service Providers (CSPs) offer a pay-as-you-go subscription for services, the costs
can add up. Hidden costs appear in the form of underutilized
9. Compliance
Cloud Service Providers (CSP) are not up-to-date when it comes to having the best data compliance
policies. Whenever a user transfers data from internal servers to the Cloud, they run into compliance
issues with state laws and regulations.
Billions of people use the Internet every day. As a result, super computers and large data
centers must provide high-performance computing services to huge numbers of Internet users
concurrently. Because of this high demand, the Linpack Benchmark for high- performance
computing (HPC) applications is no longer optimal for measuring system performance.
The emergence of computing clouds instead demands high-throughput computing (HTC)
systems built with parallel and distributed computing technologies. We have to upgrade data
centers using fast servers, storage systems, and high- bandwidth networks. The purpose is to
advance network-based computing and web services with the emerging new technologies.
Platform Evolution:
Computer technology has gone through five generations of development, each spanning at 10 to 20
years. Successive generations are overlapped in about 10 years.
From 1950 to 1970, a handful of mainframes, including the IBM 360 and CDC 6400, were built to
satisfy the demands of large businesses and government organizations.
From 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.
From 1970 to 1990, we saw widespread use of personal computers built with VLSI micro
processors.
From 1980 to 2000, massive numbers of portable computers and pervasive devices appeared in
both wired and wireless applications.
By the start of 1990s, the use of HPC and HTC systems has sky-rocketed. These use clusters, grids,
Internet and clouds. The general trend is to control shared web resources and massive data over the
Internet.
In the following figure 1.1, we can observe the evolution of HPC and HTC systems.
Figure 1.1: Evolutionary Trend towards parallel distributed and cloud computing
6
High Performance Computing (HPC): HPC contains super computers which are gradually
replaced by clusters of inter cooperating systems that share the data among them. A cluster is a
collection of homogeneous computers, which are physically connected.
HPC stressed upon the speed performance. The speed of HPC systems has increased from Gflops to
Pflops (FLOP=>Floating Point Operations Per Second) these days, driven by the requirements from
different fields like science, engineering, medicine and others. The systems that generally have high
speed are super computers, main frames and other servers.
It should be noted here that the number of users (in HPC) is limited – less than 10% of all the users.
The majority of the market now uses servers, PCs or mobile devices that conduct Internet searches
and other assigned tasks.
High Throughput Computing (HTC): The market-oriented computing is now going through a
strategic change from HPC to HTC paradigm. HTC concentrates more on high-flux computing (ex:
Internet searches, web apps used by many users simultaneously). The performance goal has shifted
from speed of the device to the number of tasks completed per unit of time (throughput).
HTC shows the formation of peer-to-peer (P2P) networks for distributed file sharing and apps. A
P2P system is built over many client machines and is globally distributed. This leads to formation of
computational grids or data grids.
HTC needs not only to improve the speed but also to solve other problems like time availability,
cost, security and reliability.
Note: In the future, both HPC and HTC will demand multicore processors that can handle large
number of computing threads per core. Both concentrate upon parallel and distributed computing.
The main work lies in the fields of throughput, efficiency, scalability and reliability.
New Computing Concepts: It can be seen from Figure 1.1that SOA (Software Oriented
Architecture) has made the web services available for all tasks. The Internet Clouds have become a
major factor to consider for all types of tasks. Three new paradigms have come into existence:
(a) Radio-Frequency Identification (RFID): This uses electro-magnetic fields to
automatically identify and track tags attached to objects. These tags contain
electronically stored information.
(b) Global Positioning System (GPS): It is a global navigation satellite system that
provides the geographical location and time information to a GPS receiver.
(c) Internet of Things (IoT): It is the internetworking of different physical devices
(vehicles, buildings etc.) embedded with electronic devices (sensors), software, and
network connectivity. Data can be collected and exchanged through this network
(IoT).
7
Degrees of Parallelism
a) Bit-level parallelism(BLP): It converts bit-serial processing to word-level processing
(8-bit microprocessors, 16-, 32- ,and 64-bit CPU).
b)Instruction-level parallelism (ILP): The processor executes multiple instructions
simultaneously. Ex: Pipelining, supercomputing, VLIW (very long instruction word), and
multithreading.
Pipelining: Data processing elements are connected in series where output of one element is input
to the next.
Multithreading: Multithreading is the ability of a CPU or a single core in a multi-core processor to
execute multiple processes or threads concurrently, supported by the OS.
c) Data-level Parallelism (DLP): Here, instructions are given like arrays (single instruction,
multiple data SIMD). More hardware support is needed.
d) Task-level Parallelism (TLP): It is a process of execution where different threads (functions)
are distributed across multiple processors in parallel computing environments.
e)Job-level Parallelism(JLP):Job level parallelism is the highest level of parallelism where we
concentrate on a lab or computer center to execute as many jobs as possible in any given time
period. To achieve this, we purchase more systems so that more jobs are running at any one time,
even though any one user's job will not run faster.
Reliability and Scalability are the two major design objects in these computing models. These
models are aimed at autonomous operations. These paradigms are composable with QoS and SLAs
(Service level Agreements).
Utility computing focuses on a business model in which customers receive computing resources
from a paid service provider.
8
Over the last 30 years the speed of the chips and their capacity to handle variety of jobs has increased at
an exceptional rate. This is crucial to both HPC and HTC system development.
Advances in CPU Processors: The advanced microprocessor chips (by Intel, NVIDIA, AMD,
Qualcomm etc.) assume a multi-core architecture with dual core, quad core or more processing cores.
They exploit parallelism at different levels.
Multi-core CPU: A multi-core processor is a single computing component with two or more independent
actual processing units (called "cores"), which are units that read and execute program instructions. (Ex:
add, move data, and branch). The multiple cores can run multiple instructions at the same time, increasing
overall speed for programs open to parallel computing.
Figure 1.5 shows the architecture of a typical multi core processor. Each core is essentially a processor
with its own private cache (L1 cache). Multiple cores are housed in the same chip with an L2 cache that is
shared by all cores. In the future, multiple CMPs could be built on the same CPU chip with even the L3
cache on the chip. Multicore and multi-threaded CPUs are equipped with many high-end processors. Each
core could be also multithreaded.
Many-core GPU: (Graphics Processing Unit) Many-core processors are specialist multi-core processors
designed for a high degree of parallel processing, containing a large number of simpler, independent
processor cores. Many-core processors are used extensively in embedded computers and high-
performance computing. (Main frames, super computers).
9
Both multi-core CPU and many-core GPU processors can handle multiple instruction threads at different
magnitudes today.
Multithreading Technology: Consider in Figure 1.6 the dispatch of five independent threads of
instructions to four pipelined data paths (functional units) in each of the following five processor
categories, from left to right: A four-issue superscalar processor, a fine-grain multithreaded processor, a
coarse-grain multi-threaded processor, a two-core CMP, and a simultaneous multithreaded (SMT)
processor.
Instructions from different threads are distinguished by specific shading patterns for
instructions from five independent threads.
The superscalar processor is single-threaded with four functional units. Each of the three
multithreaded processors is four-way multithreaded over four functional data paths. Only
instructions from the same thread are executed in a superscalar processor.
In the dual-core processor, assume two processing cores, each a single-threaded two-way
superscalar processor.
Fine- grain multithreading switches the execution of instructions from different threads per
cycle.
Course-grain multi-threading executes many instructions from the same thread for quite a few
cycles before switching to another thread.
The multicore CMP executes instructions from different threads completely.
The SMT simultaneous multithreaded processor allows simultaneous scheduling of instructions
from different threads in the same cycle.
10
GPU Computing
The GPUs these days possess 128 cores on a single chip (NVIDIA). Hence they have
1024 threads (128*8) executing tasks concurrently, on a single GPU. This can be termed as
massive parallelism at multicore and multi-threading levels. GPUs are not restricted to videos only
– they can be used in HPC systems to super computers for handling high level calculations in
parallel.
GPU Programming Model: Figure 1.7 and 1.8 shows the interaction between a CPU and GPU in
performing parallel execution of floating-point operations concurrently. The CPU is the
conventional multicore processor with limited parallelism to exploit. The GPU has a many-core
architecture that has hundreds of simple processing cores organized as multiprocessors. Each core
can have one or more threads. Essentially, the CPU’s floating-point kernel computation role is
largely offloaded to the many-core GPU. The CPU instructs the GPU to perform massive data
processing. The bandwidth must be matched between the on-board main memory and the on-chip
GPU memory. This process is carried out in NVIDIA’s CUDA programming.
Example : The NVIDIA Fermi GPU Chip with 512 CUDA Cores
Figure 1.8 shows the architecture of the Fermi GPU, a next-generation GPU from NVIDIA. This
is a streaming multiprocessor (SM) module. Multiple SMs can be built on a single GPU chip. The Fermi
chip has 16 SMs implemented with 3 billion transistors. Each SM comprises up to 512 streaming
processors (SPs), known as CUDA cores. There are 32 CUDA cores per SM. Only one SM is shown in
Figure 1.8. Each CUDA core has a simple pipelined integer ALU and an FPU that can be used in parallel.
Each SM has 16 load/store units allowing source and destination addresses to be calculated for 16 threads
per clock. There are four special function units (SFUs) for executing transcendental instructions. All
functional units and CUDA cores are interconnected by an NoC (network on chip). The 512 CUDA cores
in an SM can work in parallel to deliver up to 515 Gflops of double-precision results, if fully utilized.
11
Disks and Storage Technology: The rapid growth of flash memory and solid-state drives (SSD) also has
an impact on the future of HPC and HTC systems. An SSD can handle 300,000 to 1 million write cycles
per block, increasing the speed and performance..
System-Area Interconnects: The nodes in small clusters are interconnected by an Ethernet switch or a
LAN. A LAN is used to connect clients to servers. A Storage Area Network (SAN) connects servers to
network storage like disk arrays. Network Attached Storage(NAS) connects clients directly to disk arrays.
All these types of network appear in a large cluster built with commercial network components.
WAN: We can also notice the rapid growth of Ethernet bandwidth from 10 Mbps to 1 Gbps and
still increasing. Different bandwidths are needed for local, national, and international levels of
networks. It is also estimated that computers will be used concurrently in the coming future and
higher bandwidth will certainly add more speed and capacity to aid the cloud/distributed
computing. Note that most data centers use gigabit Ethernet as interconnect in their server clusters.
A typical computer has a single OS image at a time. This leads to a rigid architecture that
tightly couples apps to a specific hardware platform i.e., an app working on a system might not
work on another system with another OS (non-portable).
Virtual Machines
Today, to build large clusters, grids, and clouds, we need to access large amounts of
computing, storage, and networking resources in a virtualized manner. The host machine is
equipped with a physical hardware. The VM is built with virtual resources managed by a guest OS
to run a specific application. Between the VMs and the host platform we need a middleware called
virtual machine monitor (VMM).
Native VM: Figure 1.12(b) shows a native VM installed with the use of a VMM called a
hypervisor in privileged mode.A hypervisor (VMM) is a program that allows different operating
systems to share a single hardware host. This approach is called bare-metal VM because a
hypervisor handles CPU,memory and I/O directly.
Hosted VM: Another architecture is the host VM shown in Figure 1.12(c). Here the VMM runs in
nonprivileged mode. The host OS need not be modified.
Dual Mode VM: VM can also be implemented with a dual mode as shown in Figure 1.12 (d).
Here, part of VMM runs under user level and another part runs under supervisor level.
13
VM Primitive operations
The VMM provides the VM abstraction to the guest OS. With full virtualization, the VMM exports
a VM abstraction identical to the physical machine so that a standard OS such as Windows 2000 or Linux
can run just as it would on the physical hardware.
• First, the VMs can be multiplexed between hardware machines, as shown in Figure 1.13(a).
• Second, a VM can be suspended and stored in stable storage, as shown in Figure 1.13(b).
• Third, a suspended VM can be resumed or provisioned to a new hardware platform, as shown in
Figure 1.13(c).
• Finally, a VM can be migrated from one hardware platform to another, as shown in Figure
1.13(d).
These VM operations enable a VM to be provisioned to any available hardware platform. They also
enable flexibility in porting distributed application executions.
Virtual Infrastructures: Virtual Infrastructure connects resources to distributed applications in such a
way that a resource needed by an app is exactly mapped to it. This decreases the costs and increases
efficiency and server response.
a) Data Center Growth and Cost Breakdown: Large data centers are built with thousands of servers
and smaller ones have hundreds of the same. The cost of maintaining a data center has increased and
much of this money is spent on management and maintenance which did not increase with time.
Electricity and cooling also consume much of the allocated finance.
b) Low Cost Design Philosophy: High-end switches or routers that provide high bandwidth networks
cost more and do not match the financial design of cloud computing. For a fixed budget, typical switches
and networks are more desirable. Similarly, usage of x86 servers is more preferred over expensive
mainframes.
c) Convergence of Technologies: CC is enabled by the convergence of technologies in four areas:
Hardware virtualization and multi-core chips
Utility and grid computing
SOA, Web 2.0 and Web Service integration
Autonomic Computing and Data Center Automation
Hardware virtualization and multicore chips enable the existence of dynamic configurations in the
cloud. Utility and grid computing technologies lay the necessary foundation for computing clouds. Recent
advances in SOA, Web 2.0, and mashups of platforms are pushing the cloud another step forward.
Finally, achievements in autonomic computing and automated data center operations contribute to the rise
of cloud computing.
Single-System Image (SSI): It was indicated that multiple system images should be integrated into a
single-system image for a cluster. An SSI is an illusion that shows the integrated resources as a single and
powerful resource. SSI can be created by software or hardware. SSI makes the cluster appear like a single
machine to the user. A cluster with multiple system images is nothing but a collection of independent
computers.
Hardware, Software, and Middleware Support: It should be noted that MPPs (Massively Parallel
Processing) are clusters exploring high-level parallel processing. The building blocks here are the
computer nodes (PCs, Symmetric Multi-Processors (SMPs), work stations or servers), communication
software like Parallel Virtual Machine (PVM), Message Passing Interface(MPI), and a network interface
card in each node. All the nodes are interconnected by high bandwidth network. To create SSIs, we need
special cluster middleware support.
Major Cluster Design Issues:
A cluster-wide OSs or a single OS controlling the cluster virtually is not yet available. This makes the
designing and achievement of SSI difficult and expensive. All the apps should rely upon the middleware
to bring out the coupling between the machines in cluster or between the clusters.
The major advantages of clustering are scalable performance, efficient message passing, high
system availability, good fault tolerance and a cluster-wide job management which react positively to the
user demands.
16
Grid Families: Grid technology demands new distributed computing models, software/middleware
support, network protocols, and hardware infrastructures. Grid systems are classified in two categories:
computational or data grids and P2P
grids.
P2P Systems: Here, every node acts as both a client and a server. Peer machines are those connected to
the Internet; all client machines act autonomously to join or leave the P2P system at their choice. No
central coordination DB is needed. The system is self-organising with distributed control.
Basically, the peers are unrelated. Each peer machine joins or leaves the P2P network at any time.
The participating peers form the physical network at any time. This physical network is not a dedicated
interconnection but a simple ad-hoc network at various Internet domains formed randomly.
Overlay Networks: An overlay network is a virtual network formed by mapping each physical machine
with its ID, through a virtual mapping. If a new peer joins the system, its peer ID is added as a node in the
overlay network. The P2P overlay network distinguishes the logical connectivity among the peers.
There are two types of overlay networks: unstructured and structured.
An unstructured overlay network is characterized by a random graph. There is no fixed route to
send messages or files among the nodes. Often, flooding is applied to send a query to all nodes in an
unstructured overlay, thus resulting in heavy network traffic and nondeterministic search results.
18
Structured overlay networks follow certain connectivity topology and rules for inserting and
removing nodes (peer IDs) from the overlay graph. Routing mechanisms are developed to take advantage
of the structured overlays.
P2P Application Families: There exist 4 types of P2P networks: distributed file sharing, collaborative
platform, distributed P2P computing and others. Ex: BitTorrent, Napster, Skype, Geonome, JXTA, .NET
etc.
P2P Computing Challenges: The main problems in P2P computing are those in hardware, software and
network. Many hardware models exist to select from; incompatibility exists between the software and the
operating systems; different network connections and protocols make it too complex to apply in real-time
applications. Further, data location, scalability, performance, bandwidth etc. are the other challenges. P2P
performance is further affected by routing efficiency and self-organization among the peers. Fault
tolerance, failure management, load balancing, lack of trust among the peers (for security, privacy and
copyright violations), storage space availability are the other issues.
Disadvantages here are that since the total system is not centralized, management of the total network is
difficult– anyone can logon and put in any type of data. Security is less.
Internet Clouds: Cloud computing applies a virtualized platform with elastic resources on demand by
provisioning hardware, software, and data sets dynamically. The idea in CC is to move desktop
computing to a service-oriented platform using server clusters and huge databases at data centers. CC
benefits both users and providers by using its low cost and simple resources through machine
virtualization. CC is viewed in two ways: a centralized resource pool or a server cluster practicing
distributed computing.
The Cloud Landscape: CC offers different types of computing as services:
Infrastructure as a Service (IaaS): This model provides different infrastructures like
servers, storage, networks and the data center fabric (here, databases) to the user on
demand. A typical user can deploy and run multiple VMs where guest operating systems
can be used for specific applications. Note that that the user cannot manage or control the
cloud infrastructure but can specify when to request and release the concerned resources.
Ex: AWS, MS Azure, Cisco Metapod, Google Compute Engine etc.
Platform as a Service (PaaS): This model enables the user to deploy user-built
applications onto a virtualized cloud platform. PaaS includes middleware, databases,
development tools, and some runtime support such as Web 2.0 and Java. The platform
includes both hardware and software integrated with specific programming interfaces. The
provider supplies the API and software tools (e.g., Java, Python, Web 2.0, .NET). The user
is freed from managing the cloud infrastructure.
Software as a Service (SaaS): This refers to browser-initiated application software over
thousands of paid cloud customers. The SaaS model applies to business processes, industry
applications, consumer relationship management (CRM), enterprise resources planning
(ERP), human resources (HR), and collaborative applications. On the customer side, there
is no upfront investment in servers or software licensing.
Inter clouds offer four deployment models: private, public, managed and hybrid.
Private Cloud: Private cloud is a type ofcloud computing that delivers similar advantages
to public cloud, including scalability and self-service, but through a proprietary
architecture.
Public Cloud: Apublic cloud is one based on the standard cloudcomputing model, in
which a service provider makes resources, such as applications and storage, available to
the general public over the Internet.
Managed Cloud: Managed cloud hosting is a process in which organizations share and
access resources, including databases, hardware and software tools, across a remote
network via multiple servers in another location.
Hybrid Cloud: Ahybrid cloud is an integrated cloud service utilising both private and
public clouds to perform distinct functions within the same organisation.
20
Performance Metrics: In a distributed system, system throughput is measured in MIPS, Tflops (Tera
Floating point Operations per Second) or Transactions per Second (TPS). Other measures also exist: job
response and network latency. An interconnection network with low latency and high bandwidth is
preferred. The key factors to be considered for performance are OS boot time, compile time, I/O data
rate, and the runtime support system used.
Dimensions of Scalability: System scaling can increase or decrease resources depending on different
practical factors.
Size Scalability: This targets higher performance or more functionality by increasing the machine size
(cache, processors, memory etc.). We can determine the size scalability by counting the number of
processors installed. That is more processors => more ‘size’.
Software Scalability: Upgrades in OS/compilers, adding mathematical libraries, installing new apps,
and using more user friendly environments are the factors considered in determining software
scalability.
Application Scalability: This refers to matching problem size scalability (increasing data) with machine
size scalability (effectively use the resources to obtain the best result possible).
Technology Scalability: Here, systems that can adapt to changes in different aspects of technology like
component or network are considered. Three aspects play an important role here: time, space and
heterogeneity. Time is concerned with processors, motherboard, power supply packaging and cooling.
All these have to be upgraded between 3 to 5 years. Space is related to packaging and energy concerns.
Heterogeneity refers to the use of hardware components or software packages from different vendors;
this affects scalability the most.
Scalability versus OS Image Count: In Figure 1.23 [2], scalable performance is estimated against the
multiplicity of OS images in distributed systems. Note that scalable performance means we can ever
increase the speed of the system by adding more servers of processors, or by enlarging memory size and
so on. The OS image is counted by the no. of independent OS images observed in a cluster, grid, P2P
network or the cloud.
An SMP (Symmetric multiprocessor) server has a single system image or a single node in a large
cluster. NUMA (non-uniform memory access) machines are SMP machines with distributed and shared
memory. NUMA machine can run with multiple OS and can scale a hundreds of processors. Note that
clusters can be SMP servers or high-end machines with loose coupling. Obviously, clusters have more
scalability than NUMA machines.
21
Amdahl’s Law: Consider the execution of a given program on a uniprocessor workstation with a total
execution time of T minutes. Say the program is running in parallel with other servers on a cluster of
many processing nodes. Assume that a fraction α of the code must be executed sequentially (sequential
bottleneck). Hence, (1-α) of the code can be compiled for parallel execution by n processors. The total
execution time of the program is calculated by
αT + (1-α) T/n
where the first term is for sequential execution time on a single processor and the second term is for
parallel execution time on n parallel nodes.
Amdahl’s Law states that the speedup factor of using n-processor system over the use of a single
processor is given by:
The maximum speedup of n can be obtained only if α is reduced to zero or the code can be parallelized
with α = 0.
As the cluster becomes large(that is n ∞),S approaches 1/α, which is the threshold on the speedup of S.
Note that the threshold is independent of n. The sequential bottleneck is the portion of the code that
cannot be parallelized. Ex: The maximum speed achieved is 4, if α=0.25 or 1-α=0.75, even if a user uses
hundreds of processors. This law deduces that we should make the sequential bottleneck as small as
possible.
Problem with fixed workload: In Amdahl’s law, same amount of workload was assumed for both
sequential and parallel execution of the program with a fixed problem size or dataset. This was called
fixed-workload speedup by other scientists. To execute this fixed-workload on n processors, parallel
processing leads to a system efficiency E which is given by:
Generally, the system efficiency is low, especially when the cluster size is large.
Gustafson’s Law: To obtain higher efficiency when using a large cluster, scaling the problem size to
match the cluster’s capability should be considered. The speedup law proposed by Gustafson is also
referred to as scaled-workload speedup.
Let W be the workload in a given program. When using an n-processor system, the user scales the
workload to W’= αW + (1-α)nW. This scaled workload W’is the sequential execution time on a single
processor.
The parallel execution time W’ on n processors is defined by a scaled-workload speedup as:
System Availability: High availability (HA) is needed in all clusters, grids, P2P networks and cloud
systems. A system is highly available if it has a long mean time to failure (MTTF) and a short mean time
to repair (MTTR).
System availability depends on many factors like hardware, software and network components. Any
failure that will lead to the failure of the total system is known as a single point of failure. It is the general
goal of any manufacturer or user to bring out a system with no single point of failure.
22
For achieving this goal, the factors that need to be considered are: adding hardware redundancy,
increasing component reliability and designing testability. In the Figure 1.24 [2] below, the effects of
system availability are estimated by scaling the system size in terms of no. of process cores in the system.
As a distributed system increases in size, availability decreases due to a higher chance of failure
and difficulty in isolating the features. Both SMP and MPP are likely to fail under centralized
resources with one OS. NUMA machines are a bit better here since they use multiple OS.
3.Network Threats and Data Integrity
The Figure 1.25 presents a summary of various attack types and the damaged caused by them to the
users. Information leaks lead to a loss of confidentiality. Loss of data integrity can be caused by user
alteration, Trojan horses, service spoofing attacks, and Denial of Service (DoS) – this leads of loss of
Internet connections and system operations. Users need to protect clusters, grids, clouds and P2P systems
from malicious intrusions that may destroy hosts, network and storage resources.
23
Security Responsibilities: The main responsibilities include confidentiality, integrity and availability for
most Internet service providers and cloud users. In the order of SaaS, PaaS and IaaS, the providers
increase/transfer security control to the users.
Copyright Protection: Collusive (secret agreement) piracy is the main source of copyright violation
within the boundary of a P2P network. Clients may illegally share their software, allotted only to them,
with others thus triggering piracy. One can develop a proactive (control the situation before damage
happens) content poisoning scheme to stop colluders (conspirers) and pirates, detect them and stop them
to proceed in their illegal work.
System Defense Technologies: There exist three generations of network defense. In the first generation,
tools were designed to prevent intrusions. These tools established themselves as access control policies,
cryptographic systems etc. but an intruder can always slip into the system since there existed a weak link
every time. The second generation detected intrusions in a timely manner to enforce remedies. Ex:
Firewalls, intrusion detection systems (IDS), public key infrastructure (PKI) services (banking, e-
commerce), reputation systems etc. The third generation provides more intelligent responses to
intrusions.
Data Protection Infrastructure: Security infrastructure is required to protect web and cloud services. At
the user level, one needs to perform trust negotiation and reputation aggregation over all users.
Primary performance goals in conventional parallel and distributed computing systems are high
performance and high throughput.
Energy consumption in parallel and distributed computing raises different issues like monetary
(financial), environmental and system performance issues. The megawatts of power needed for PFlops
has to be within the budget control and the distributed usage of resources has to be planned accordingly.
The rising of temperature due to more usage of the resources (cooling) is also to be addressed.
Energy Consumption of Unused Servers: To run a data center, a company has to spend huge amount of
money for hardware, software, operational support and energy every year. Hence, the firm should plan
accordingly to make maximum utilization of the available resources and yet the financial and cooling
issues should not cross their limits.
Idle servers can save a lot of money and energy; so the first step in IT departments is to identify the
unused or underused servers and plan to utilize their resources in a suitable manner.
Reducing Energy in Active Servers: In addition to identifying the unused/underused servers for energy
savings, we should also apply necessary techniques to decrease energy consumption in active distributed
systems. Power management issues in distributed computing can be classified into four layers, as seen in
Figure 1.26 [2].
24
Application Layer: Most apps in different areas like science, engineering, business, financial etc. try to
increase the system’s speed or quality. By introducing energy- conscious applications, one should try to
design the usage and consumption in a planned manner such that the apps manage to use the new multi-
level and multi-domain energy management methodologies without reducing the performance.
Middleware layer: The middleware layer is a connection between application layer and resource layer.
This layer provides resource broker, communication service, task analyzer & scheduler, security access,
reliability control, and information service capabilities. It is also responsible for energy-efficient
techniques in task scheduling. In distributed computing system, a balance has to be brought out between
efficient resource usage and the available energy.
Resource Layer: This layer consists of different resources including the computing nodes and storage
units. Since this layer interacts with hardware devices and the operating systems, it is responsible for
controlling all distributed resources. Several methods exist for efficient power management of hardware
and OS and majority of them are concerned with the processors.
Dynamic power management (DPM) and dynamic voltage frequency scaling (DVFS) are the two
popular methods being used recently.
Network Layer: The main responsibilities of the network layer in distributed computing are routing and
transferring packets, and enabling network services to the resource layer. Energy consumption and
performance are to measured, predicted and balanced in a systematic manner so as to bring out energy-
efficient networks.