Tuesday, June 3, 2008

Building Windows Clusters

Hardware
Before starting, you have to have following hardware and software. You have at least two computers with Windows NT, SP6 or Windows 2000 networked with some sort of LAN equipment (hub, switch etc.). Ensure during the Windows set up phase that TCP/IP, and NETBUI are installed, and that the network is started, with all the network cards detected and the correct drivers installed. We will call these two computers as Windows cluster. Ok, now you need some sort of software that will help you to develop, deploy and execute application over this cluster. This software is the core what makes a Windows cluster possible.

Software
The Message Passing Interface (MPI) is an evolving de facto standard for supporting cluster computing based on message passing. There are several implementations of this standard. In this article, we will use MPICH, which is freely available, and you can download it from here for windows clustering, and find related documentation here. Please read Quick Start.pdf and manual before starting following steps.
Step 1: Download and unzip nt-mpich-1.3.0-a.zip onto any folder (for example C:\NT-MPICH) and share this folder with write permission.
Step 2: Copy all files with .dll extension from C:\NT-MPICH\lib to folder C:\Windows\system32
Step 3: Install the Cluster Manager Service on each host you want to use for remote execution of MPI processes. For installation, start rcluma-install.bat (located in subdirectory C:\NT-MPICH\bin) by double-clicking from local or network-drive. You must have administrator rights on the hosts to install the service.
Step 4: Follow step 1 and 2 for each node in the cluster (we will name each computer in the cluster as node)
Step 5: Now Start RexecShell (from folder C:\NT-MPICH\bin) by double-clicking it. Open the configuration dialog by pressing F2. The distribution contains a precompiled example MPI program named cpi.exe (located in NT-MPICH/bin). Choose it as the actual program. Make sure that each host can reach cpi.exe at the specified path. Choose ch_wsock as active plug-in. Select the hosts to compute on. On the tab 'Account', enter your username, domain and password, which need to be valid on each host chosen. Press OK to confirm your selections. The Start Button (from Window RexecShell) is now enabled and can be pressed to start cpi.exe on all chosen hosts. The output will be displayed in separate windows.

Source : http://www.devbuilder.org/article/24

Definition and Benefits from Clustering

Greg Pfister, in his wonderful book In Search of Clusters, defines a cluster as "a type of parallel or distributed system that: consists of a collection of interconnected whole computers, and is used as a single, unified computing resource." Therefore, cluster is a group of computers, bound together into a common resource pool. A given task can be executed on all computers or on any specific computer in the cluster. Lets look into the benefits from clustering:
Scientific applications: Enterprise running scientific applications on supercomputers can benefit from migrating to more cost effective Linux cluster.
Large ISPs and E-Commerce enterprise with large database: Internet service providers or e-commerce web sites that require high availability and load balancing and scalability.
Graphics rendering and animation: a Linux cluster has become important in the film industry for rendering quality graphics. In the movie Titanic, a Linux cluster was used to render background in ocean scenes. Same concept used in movies True Lies and Interview with the Vampire. One may also characterize clusters by their function:
Definition and Benefits from Clustering: Tasks (small piece of executable codes) are broken down and worked on by many small systems rather than one large system, often deployed for task previously handled by supercomputers. This type of cluster is very suitable for scientific or financial analysis.
Fail-over clusters: Clusters are used to increase the availability and serviceability of network services. When an application or server fails, its services are migrated to another system, the identity of failed system also migrated. Failover servers are used for database servers, mail servers or file servers.
High availability load balancing clusters: A given application can run on all computers and a given computer can host multiple applications. The ?outside world? interacts with the cluster and individual computers are ?hidden?. It support large cluster pool and application do not need to be specialized. High availability clustering works best with stateless application ands that can be run concurrently.


Source : http://www.devbuilder.org/article/24