Seminar Report On CLUSTER COMPUTING Prepared By : 1. Introduction 2. History 3. Clusters 4. Why Clusters? 5. Logical view of Clusters 6. Architecture 7. Components of Cluster Computer 8. Cluster Classifications 9. Cluster Applications 10. Future Trends 11. Comparison - Cluster and Grid Computing INTRODUCTION -Computing is an evolutionary process. -Computing requirements driven by applications have always outpaced the available technology. -The parallel and distributed computing concept has been with us for over three decades, the high cost of multiprocessor systems has blocked commercial success so far. -Today even a single processor PCs and workstations now can provide extremely fast processing. -Networked clusters of commodity PCs and workstations using off-the-shelf processors and communication platforms such as Myrinet , Fast Ethernet, and Gigabit Ethernet are becoming increasingly cost effective and popular. This concept, known as cluster computing. -Clusters can provide enormous computing power that a pool of users can share or that can be collectively used to solve a single application . -Clusters, built using commodity-off-the-shelf (COTS) hardware components and free, or commonly used, software, are playing a major role in solving large- scale science, engineering, and commercial applications. -Cluster computing has emerged as a result of the convergence of several trends. - Made possible by inexpensive high performance cheap microprocessors and high speed networks, the development of standard software . CLUSTER HISTORY -The first commodity clustering product was ARCnet, developed by Datapoint in 1977, it was not a commercial success. -DEC released their VAXcluster product in the 1980s for the VAX/VMS operating system. - The ARCnet and VAXcluster products not only supported parallel computing, but also shared file systems and peripheral devices. -They give advantage of parallel processing while maintaining data reliability and uniqueness. -VAXcluster, now VMScluster, is still available on OpenVMS systems from HP running on Alpha and Itanium systems. -The history of cluster computing is intimately tied up with the evolution of networking technology. - As networking technology has become cheaper and faster, cluster computers have become significantly more attractive. CLUSTERS -Extraordinary technological improvements over the past few years in areas such as microprocessors, memory, buses, networks, and software have made it possible to assemble groups of inexpensive personal computers and/or workstations into a cost effective system that functions in concert and posses tremendous processing power. -A cluster is a group of independent computer systems and thus forms a loosely coupled multiprocessor system. Cluster computing concept also poses two pressing research challenges: 1. A cluster should be a single computing resource and provide a single system image. This is in contrast to a distributed system. 2. The supporting operating system and communication Mechanism must be efficient enough to remove the performance Bottlenecks. CLUSTERS WHY CLUSTERS? -The question may arise why clusters are designed and built when perfectly good commercial supercomputers are available on the market. -Clusters are surprisingly powerful . -The supercomputer has come to play a larger role in business applications. -In areas from data mining to fault tolerant performance clustering technology has become increasingly important. -Supercomputers is impossible to upgrade. -They are cheap and easy way to take off-the-shelf components and combine them into a single supercomputer. -In some areas of research clusters are actually faster than commercial supercomputer. -Clusters also have the distinct advantage in that they are simple to build using components available from hundreds of sources. LOGICAL VIEW OF CLUSTER LOGICAL VIEW OF CLUSTER -A Beowulf cluster uses multi computer architecture . -It features a parallel computing system that usually consists of one or more master nodes and one or more compute nodes, or cluster nodes, interconnected via widely available network interconnects. -All of the nodes in a typical Beowulf cluster are commodity systems- PCs, workstations, or servers-running commodity software such as Linux. -The master node acts as a server for Network File System (NFS) and as a gateway to the outside world . -As an NFS server, the master node provides user file space and other common system software to the compute nodes via NFS. -As a gateway, the master node allows users to gain access through it to the compute nodes. -The master node is the only machine that is also connected to the outside world using a second network interface card (NIC). -Compute nodes do not need to access machines outside the cluster, nor do machines outside the cluster need to access compute nodes directly. -Compute nodes commonly use private IP addresses, such as the 10.0.0.0/8 or 192.168.0.0/16 address ranges. -The sole task of the compute nodes is to execute parallel jobs. -The compute nodes do not have keyboards, mice, video cards, or monitors. -All access to the client nodes is provided via remote connections from the master node . -From a user’s perspective, a Beowulf cluster appears as a Massively Parallel Processor (MPP) system. -The most common methods of using the system are to access the master node either directly or through Telnet or remote login from personal workstations. -During the execution, compute nodes use 10 standard message-passing middleware, such as Message Passing Interface (MPI) and Parallel Virtual Machine (PVM), to exchange information. ARCHITECTURE -A cluster is a type of parallel or distributed processing system, which consists of a collection of interconnected standalone computers cooperatively working together as a single, integrated computing resource. A node: · A single or multiprocessor system with memory, I/O facilities, & OS. · Generally 2 or more computers (nodes) connected together. · In a single cabinet, or physically separated & connected via a LAN. · Appear as a single system to users and applications. · Provide a cost-effective way to gain features and benefits. Principle features usually provided by cluster computing: Availability. Scalability. Simplification. -The Windows NT Server Edition of the Windows operating system is an example of a base operating system that has been modified to include architecture that facilitates a cluster computing environment to be established. COMPONENTS OF CLUSTER COMPUTER 1. Multiple High Performance Computers a. PCs b. Workstations c. SMPs (CLUMPS) 2. State of the art Operating Systems a. Linux (Beowulf) b. Microsoft NT (Illinois HPVM) c. SUN Solaris (Berkeley NOW) d. HP UX (Illinois - PANDA) e. OS gluing layers(Berkeley Glunix) 3. High Performance Networks/Switches a. Ethernet (10Mbps), b. Fast Ethernet (100Mbps), c. Gigabit Ethernet (1Gbps) d. Myrinet (1.2Gbps) e. Digital Memory Channel 4. Network Interface Card a. Myrinet has NIC b. User-level access support 5. Fast Communication Protocols and Services a. Active Messages (Berkeley) b. Fast Messages (Illinois) c. U-net (Cornell) d. XTP (Virginia) 6. Cluster Middleware a. Single System Image (SSI) b. System Availability (SA) Infrastructure 7. Hardware a. DEC Memory Channel, DSM (Alewife, DASH), SMP Techniques 8. Operating System Kernel/Gluing Layers a. Solaris MC, Unixware, GLUnix 9. Applications and Subsystems a. Applications (system management and electronic forms) b. Runtime systems (software DSM, PFS etc.) c. Resource management and scheduling software (RMS) 10. Applications a. Sequential b. Parallel / Distributed (Cluster-aware app.) 11. Parallel Programming Environments and Tools a. Threads (PCs, SMPs, NOW..) b. MPI c. PVM d. Software DSMs (Shmem) e. Compilers f. RAD (rapid application development tools) g. Debuggers h. Performance Analysis Tools i. Visualization Tools CLUSTER CLASSIFICATIONS -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. TYPES:- 1.High Availability or Failover 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. -When that cluster member is no longer available, the application will failover to another cluster member. -If a node fails, the service can be restored without affecting the availability of the services provided by the cluster. 2. Load Balancing Cluster: -This type of cluster distributes incomming 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. CLUSTER APPLICATIONS Few important cluster application are: 1.Google Search Engine. 2.Earthquake Simulation. 3.Image Rendering. 1. Google 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 result. -Google focuses on 2 important design factors: reliability and request throughput. Reliability: Google is able to achieve reliability at the software level so that a reliable computing infrastructure can be constructed on clusters of 15,000 commodity PCs distributed worldwide. Request throughput: Google maximizes overall request throughput by performing parallel execution of individual search requests. This means that more search requests can be completed within a specific time interval. Google query-serving architecture -The first phase of query execution involves index servers consulting an inverted index that match each query keyword to a matching list of documents. -In the second phase, document servers fetch each document from disk to extract the title and the keyword-in-context portion of the document. -In addition to the 2 phases, the GWS also activates the spell checker and the ad server. The spell checker verifies that the spelling of the query keywords is correct, while the ad server generate advertisements that relate to the query and may therefore interest the user. FUTURE TRENDS - GRID COMPUTING -As computer networks become cheaper and faster, a new computing paradigm, called the Grid has evolved. -The Grid is a large system of computing resources that performs tasks and provides to users a single point of access, commonly based on the World Wide Web interface, to these distributed resources. -Users consider the Grid as a single computational resource. -Users can submit thousands of jobs at a time without being concerned about where they run. -The Grid may scale from single systems to supercomputer-class compute forms that utilize thousands of processors. -Depending on the type of applications, the interconnection between the Grid parts can be performed using dedicated high-speed networks or the Internet. -The Grid technology is currently under intensive development. -Major Grid projects include NASA’s Information Power Grid, two NSF Grid projects (NCSA Alliance’s Virtual Machine Room and NPACI), the European DataGrid Project and the ASCI Distributed Resource Management project. -Also first Grid tools are already available for developers. The Globus Toolkit  represents one such example and includes a set of services and software libraries to Comparison between Cluster Computing and Cluster Computing : Grid Computing. -The computers (or "nodes") on a cluster are networked in a tightly-coupled fashion-- they are all on the same subnet of the same domain, often networked with very high bandwidth connections . -The nodes are homogeneous; they all use the same hardware, run the same software, and are generally configured identically. -Each node in a cluster is a dedicated resource-generally only the cluster applications run on a cluster node. -One advantage available to clusters is the Message Passing Interface (MPI) which is a programming interface that allows the distributed application instances to communicate with each other and share information. Grid Computing: -Nodes on a grid can be loosely-coupled; they may exist across domains or subnets. -The nodes can be heterogeneous; they can include diverse hardware and software configurations. -A grid is a dynamic system that can accommodate nodes coming in and dropping out over time. -Grids typically do not require high-performance interconnects; rather, they usually are configured to work with existing network connections. -Grid can incorporate cluster. CONCLUSION Clusters are promising · Solve parallel processing paradox. · Offer incremental growth and matches with funding pattern. · New trends in hardware and software technologies are likely to make clusters more promising and fill SSI gap. · Clusters based supercomputers (Linux based clusters) can be seen everywhere!