Seminar Report On Cluster Computing
Seminar Report On Cluster Computing
Seminar Report On Cluster Computing
A Seminar Report
Submitted by
19BCON015
of
BACHELOR OF TECHNOLOGY
IN
At
April 2021
Candidate’s Declaration
I, Mr. Kartikey Dubey, bearing roll number 19BCON015 hereby declare that the work which is being
presented in the Seminar, entitled “CLUSTER COMPUTING” in partial fulfilment for award of Degree of
“Bachelor of Technology” in Deptt. of Computer Science Engineering is submitted to the Department
Computer Science & Engineering, JECRC University is a record of Seminar work carried under the Guidance of
Guide name, Department Computer Science & Engineering.
Kartikey Dubey
Computer Science
A computer cluster is a group of linked computers, working together closely so that in many respects
they form a single computer. The components of a cluster are commonly, but not always, connected to each
other through fast local area networks. Clusters are usually deployed to improve performance and/or
availability over that provided by a single computer, while typically being much more cost-effective than
single computers of comparable speed or availability.
The major objective in the cluster is utilizing a group of processing nodes so as to complete the
assigned job in a minimum amount of time by working cooperatively. The main and important strategy to
achieve such objective is by transferring the extra loads from busy nodes to idle nodes.
The seminar will contain the concepts of cluster computing and the principles involved in it.
TABLE OF CONTENTS
Many people have supported me, in different ways, during the work with the thesis. I’d like to thank my
HOD Mr. Naveen Hemrajani for their kind and active support and valuable guidance during the work
process. My family has as always offered me their unconditional support, thank you! I have taken efforts in
the Seminar presentation. However, it would not have been possible without the kind support and many
individuals and organizations. I would like to extend my sincere thanks to each and every members
related to JECRC University.
Kartikey Dubey
19BCON015
1. INTRODUCTION
Parallel computing has seen many changes since the days of the highly expensive and proprietary
super computers. Changes and improvements in performance have also been seen in the area of mainframe
computing for many environments. But these compute environments may not be the most cost effective and
flexible solution for a problem. Over the past decade, cluster technologies have been developed that allow
multiple low cost computers to work in a coordinated fashion to process applications. The economics,
performance and flexibility of compute clusters makes cluster computing an attractive alternative to
centralized computing models and the attendant to cost, inflexibility, and scalability issues inherent to these
models.
Many enterprises are now looking at clusters of high-performance, low cost computers to provide
increased application performance, high availability, and ease of scaling within the data center. Interest in
and deployment of computer clusters has largely been driven by the increase in the performance of off-the-
shelf commodity computers, high-speed, low-latency network switches and the maturity of the software
components. Application performance continues to be of significant concern for various entities including
governments, military, education, scientific and now enterprise organizations. This document provides a
review of cluster computing, the various types of clusters and their associated applications. This document is
a high-level informational document; it does not provide details about various cluster implementations and
applications.
A growing range of possibilities exists for a cluster interconnection technology. Different variables
will determine the network hardware for the cluster. Price-per-port, bandwidth, latency, and throughput are
key variables. The choice of network technology depends on a number of factors, including price,
performance, and compatibility with other cluster hardware and system software as well as communication
characteristics of the applications that will use the cluster. Clusters are not commodities in themselves,
although they may be based on commodity hardware. A number of decisions need to be made (for example,
what type of hardware the nodes run on, which interconnect to use, and which type of switching architecture
to build on) before assembling a cluster range. Each decision will affect the others, and some will probably
be dictated by the intended use of the cluster. Selecting the right cluster elements involves an understanding
of the application and the necessary resources that include, but are not limited to, storage, throughput,
latency, and number of nodes.
When considering a cluster implementation, there are some basic questions that can help determine
the cluster attributes such that technology options can be evaluated:
The answers to these questions will influence the type of CPU, memory architecture, storage, cluster
interconnect, and cluster network design. Cluster applications are often CPU-bound so that interconnect and
storage bandwidth are not limiting factors, although this is not always the case.
1.1.2 Cluster Benefits
The main benefits of clusters are scalability, availability, and performance. For scalability, a cluster
uses the combined processing power of compute nodes to run cluster-enabled applications such as a parallel
database server at a higher performance than a single machine can provide. Scaling the cluster's processing
power is achieved by simply adding additional nodes to the cluster. Availability within the cluster is assured
as nodes within the cluster provide backup to each other in the event of a failure. In high-availability
clusters, if a node is taken out of service or fails, the load is transferred to another node (or nodes) within the
cluster. To the user, this operation is transparent as the applications and data running are also available on
the failover nodes. An additional benefit comes with the existence of a single system image and the ease of
manageability of the cluster. From the users perspective the users sees an application resource as the
provider of services and applications. The user does not know or care if this resource is a single server, a
cluster, or even which node within the cluster is providing services. These benefits map to needs of today's
enterprise business, education, military and scientific community infrastructures. In summary, clusters
provide:
Scalable capacity for compute, data, and transaction intensive applications, including support of mixed
workloads
There are several types of clusters, each with specific design goals and functionality. These clusters
range from distributed or parallel clusters for computation intensive or data intensive applications that are
used for protein, seismic, or nuclear modeling to simple load-balanced clusters.
These clusters are designed to provide uninterrupted availability of data or services (typically web
services) to the end-user community. The purpose of these clusters is to ensure that a single instance of an
application is only ever running on one cluster member at a time but if and when that cluster member is no
longer available, the application will failover to another cluster member. With a high-availability cluster,
nodes can be taken out-of-service for maintenance or repairs. Additionally, if a node fails, the service can be
restored without affecting the availability of the services provided by the cluster . While the application will
still be available, there will be a performance drop due to the missing node.
(Failover Clusters)
Unlike distributed or parallel processing clusters, high-availability clusters seamlessly and
transparently integrate existing standalone, non-cluster aware applications together into a single virtual
machine necessary to allow the network to effortlessly grow to meet increased business demands.
Cluster-Aware and Cluster-Unaware Applications
Cluster-aware applications are designed specifically for use in clustered environment. They know
about the existence of other nodes and are able to communicate with them. Clustered database is one
example of such application. Instances of clustered database run in different nodes and have to notify other
instances if they need to lock or modify some data. Cluster-unaware applications do not know if they are
running in a cluster or on a single node. The existence of a cluster is completely transparent forsuch
applications, and some additional software is usually needed to set up a cluster. A web server is a typical
cluster-unaware application. All servers in the cluster have the same content, and the client does not care
from which server the server provides the requested content.
This type of cluster distributes incoming requests for resources or content among multiple nodes
running the same programs or having the same content . Every node in the cluster is able to handle requests
for the same content or application. If a node fails, requests are redistributed between the remaining
available nodes. This type of distribution is typically seen in a web-hosting environment.
Both the high availability and load-balancing cluster technologies can be combined to increase the
reliability, availability, and scalability of application and data resources that are widely deployed for web,
mail, news, or FTP services.
2.3 Parallel/Distributed Processing Clusters
The basic building blocks of clusters are broken down into multiple categories: the cluster nodes,
cluster operating system, network switching hardware and the node/switch interconnect. Significant
advances have been accomplished over the past five years to improve the performance of both the compute
nodes as well as the underlying switching infrastructure.
(Cluster Components)
Application: It includes all the various applications that are going on for a particular group. These
applications run in parallel. This includes various queries running on different nodes of the cluster. This can
be said as the input part of the cluster component.
Middleware: These are software packages which interacts the user with the operating system for the cluster
computing. In other words we can say that these are the layers of software between applications and
operating system. Middleware provides various services required by an application to function correctly.
The software that are used as middleware are:
OSCAR
Features:
SCYLD
Features:
• Commercial distribution.
• Single system image design.
• Processors: x86 and Opteron.
• Interconnects: Ethernet and Infiniband.
• MPI and PVM.
• Diskful and diskless support.
Rocks
Features:
Operating System: Clusters can be supported by various operating systems which includes Windows,
Linux.etc.
Interconnect: Interconnection between the various nodes of the cluster system can be done using 10GbE,
Myrinet etc. In case of small cluster system these and be connected with the help of simple switches.
Nodes: Nodes of the cluster system implies about the different computers that are connected. All of these
processors can be of intels or AMD 64 bit.
4. CLUSTER OPERATION
Node technology has migrated from the conventional tower cases to single rack-unit multiprocessor
systems and blade servers that provide a much higher processor density within a decreased area. Processor
speeds and server architectures have increased in performance, as well as solutions that provide options for
either 32-bit or 64-bit processors systems. Additionally, memory performance as well as hard-disk access
speeds and storage capacities have also increased. It is interesting to note that even though performance is
growing exponentially in some cases, the cost of these technologies has dropped considerably. As shown ,
node participation in the cluster falls into one of two responsibilities: master (or head) node and compute (or
slave) nodes. The master node is the unique server in cluster systems.
It is responsible for running the file system and also serves as the key system for clustering
middleware to route processes, duties, and monitor the health and status of each slave node. A compute (or
slave) node within a cluster provides the cluster a computing and data storage capability. These nodes are
derived from fully operational, standalone computers that are typically marketed as desktop or server
systems that, as such, are off-the-shelf commodity systems.
(Cluster Node)
There are two primary characteristics establishing the operational properties of a network: bandwidth
and delay. Bandwidth is measured in millions of bits per second (Mbps) and/or billions of bits per-second
(Gbps). Peak bandwidth is the maximum amount of data that can be transferred in a single unit of time
through a single connection. Bi-section bandwidth is the total peak bandwidth that can be passed across a
single switch.
Latency is measured in microseconds (µSec) or milliseconds (mSec) and is the time it takes to move
a single packet of information in one port and out of another. For parallel clusters, latency is measured as the
time it takes for a message to be passed from one processor to another that includes the latency of the
interconnecting switch or switches. The actual latencies observed will vary widely even on a single switch
depending on characteristics such as packet size, switch architecture (centralized versus distributed),
queuing, buffer depths and allocations, and protocol processing at the nodes.
Ethernet is the most widely used interconnect technology for local area networking (LAN). Ethernet
as a technology supports speeds varying from 10Mbps to 10 Gbps and it is successfully deployed and
operational within many high-performance cluster computing environments.
Parallel applications exhibit a wide range of communication behaviors and impose various
requirements on the underlying network. These may be unique to a specific application, or an application
category depending on the requirements of the computational processes. Some problems require the high
bandwidth and low-latency capabilities of today's low-latency, high throughput switches using 10GbE,
Infiniband or Myrinet. Other application classes perform effectively on commodity clusters and will not
push the bounds of the bandwidth and resources of these same switches. Many applications and the
messaging algorithms used fall in between these two ends of the spectrum. Currently, there are four primary
categories of applications that use parallel clusters: compute intensive, data or input/output (I/O) intensive,
and transaction intensive. Each of these has its own set of characteristics and associated network
requirements. Each has a different impact on the network as well as how each is impacted by the
architectural characteristics of the underlying network. The following subsections describe each application
types.
Some compute-intensive applications may also be graphic intensive. Graphic intensive is a term that
applies to any application that demands a lot of computational cycles where the end result is the delivery of
significant information for the development of graphical output such as ray-tracing applications.
These types of applications are also sensitive to end-to-end message latency. The longer the
processors have to wait for instruction messages or the longer it takes to send resulting data, the longer it
takes to present the graphical representation of the resulting data.
Data intensive is a term that applies to any application that has high demands of attached storage
facilities. Performance of many of these applications is impacted by the quality of the I/O mechanisms
supported by current cluster architectures, the bandwidth available for network attached storage, and, in
some cases, the performance of the underlying network components at both Layer 2 and 3. Data-intensive
applications can be found in the area of data mining, image processing, and genome and protein science
applications. The movement to parallel I/O systems continues to occur to improve the I/O performance for
many of these applications.
Transaction intensive is a term that applies to any application that has a high-level of interactive
transactions between an application resource and the cluster resources. Many financial, banking, human
resource, and web-based applications fall into this category.
There are three main care abouts for cluster applications: message latency, CPU utilization, and
throughput. Each of these plays an important part in improving or impeding application performance. This
section describes each of these issues and their associated impact on application performance.
Message latency is defined as the time it takes to send a zero-length message from one processor to
another (measured in microseconds). The lower the latency for some application types, the better.
Message latency is made up of aggregate latency incurred at each element within the cluster network,
including within the cluster nodes themselves. Although network latency is often focused on, the protocol
processing latency of message passing interface (MPI) and TCP processes within the host itself are typically
larger. Throughput of today's cluster nodes are impacted by protocol processing, both for TCP/IP processing
and the MPI. To maintain cluster stability, node synchronization, and data sharing, the cluster uses message
passing technologies such as Parallel Virtual Machine (PVM) or MPI. TCP/IP stack processing is a CPU-
intensive task that limits performance within high speed networks. As CPU performance has increased and
new techniques such as TCP offload engines (TOE) have been introduced, PCs are now able to drive the
bandwidth levels higher to a point where we see traffic levels reaching near theoretical maximum for
TCP/IP on Gigabit Ethernet and near bus speeds for PCI-X based systems when using 10 Gigabit Ethernet.
These high-bandwidth capabilities will continue to grow as processor speeds increase and more vendors
build network adapters to the PCI-Express specification.
(Message Latency)
To address host stack latency, reductions in protocol processing have been addressed somewhat
through the implementation of TOE and further developments of combined TOE and Remote Direct
Memory Access (RDMA) technologies are occurring that will significantly reduce the protocol processing
in the host.
(Progression)
As the cluster node processes the application, the CPU is dedicated to the application and protocol
processing does not occur. For this to change, the protocol process must interrupt a uniprocessor machine or
request a spin lock for a multiprocessor machine.
As the request is granted, CPU cycles are then applied to the protocol process. As more cycles are
applied to protocol processing, application processing is suspended. In many environments, the value of the
cluster is based on the run-time of the application. The shorter the time to run, the more floating-point
operations and/or millions of instructions per-second occur, and, therefore, the lower the cost of running a
specific application or job.
(CPU Utilization)
5. CLUSTER APPLICATIONS
Few important cluster applications are:
Internet search engines enable Internet users to search for information on the Internet by entering
specific keywords. A widely used search engine, Google uses cluster computing to meet the huge quantity of
worldwide search requests that comprise of a peak of thousands of queries per second. A single Google
query needs to use at least tens of billions of processing cycles and access a few hundred megabytes of data
in order to return satisfactory search results.