|
Running Linpack on Win Compute Cluster
Are clusters and number crunching machines a part of your fantasy world? With this series, we'll take you through a journey of how to build and benchmark your own MS Compute cluster using Linpack
Anindya Roy
Friday, November 02, 2007
We first talked about Microsoft's Compute Cluster Suite in April last year.
Lots of things have changed since then in the world of HPC, and likewise, the
Cluster Suite has also undergone many changes. At that time, we had just three
64-bit machines in our labs and we used all of them to create the MS Compute
Cluster. The interface was so difficult that we were not even able to create a
test MPI (Message passing interface) job and submit to the cluster properly. But
of course that was the first public beta of MS CCS and it was a bit too much to
expect full blown functionality from it.
Today we have the new Compute Cluster Suite SP1, and also have twenty 64-bit
machines at our disposal. That's why this time, we decided to build a much
bigger cluster of 15 nodes, with each node having a dual core CPU (plus one head
node) using the MSCCS SP1 and then test it with some standard industry
benchmarks.
We'll first talk about how to build such a cluster, and then we'll discuss
how to port High Performance Linpack(HPL) to Windows and then finally run it on
all the nodes in a distributed manner to see what kind of performance it's able
to deliver.
Linpack is a benchmark that measures floating point operations (FLOPS) and
comes in different variants. One such variant of Linpack is HPL or High
Performance Linpack. It is an industry standard benchmark for measuring
performance of supercomputers and has been used by top500.org for benchmarking
world's best 500 supercomputers.
 |
| While installing Microsoft
Compute Cluster Pack, you will see this screen. Select the first option to
use a node as the Head node |
The Setup
MS CCS doesn't work on 32-bit architecture, but you can install either the
Head or the Client node on a 32-bit machine. The 15 nodes that we used for
setting up MSCCS had an Intel Core 2 Duo 1.8 GHz processor and 512 MB RAM. For
the head node, we took a Dual Xeon processor machine with one GB RAM. The 15
nodes were meant to process the computing jobs, whereas the Head node managed
jobs and the whole cluster.
To interconnect the cluster we've used a Gigabit Ethernet network. All nodes
of course, had Gigabit Ethernet cards, and were PXE boot enabled. These PXE
enabled cards are used for installing an OS remotely and come in handy while
using the Windows Remote Deployment server to do a bulk installation of OSes on
multiple machines. All nodes were head less and connected to an IP KVM for
centralized management.
| Wanna be part of this series ?
What we plan is to do a comparative shootout of
commodity clustering architecture in the series, where we will benchmark all
the clustering solutions one after the other each month on similar set of
physical hardware. At the end of the series we will compile a full-fledged
summary: which is the best clustering solution and will cover all the
aspects such as usability, support, performance, cost, etc. But that's a
long way to go and right now we can't be sure where will this story head,
because of the requirement of huge amount of resources , time and skilled
manpower. So, we are looking out for contributors who can help us in this
story. For more discussion on the topic we've already started a post on our
forums. You can also join in and discuss at
http://forums.pcquest.com/forum/viewtopic.php?t=6148. |
Installing the Head Node
The first thing you need of course is a copy of MS Windows Server 2003
Compute Cluster Edition, and you can download a 180 days trial version of the
same from http://tinyurl.com/3ysqz5. For this download to be successful you will
require a Microsoft .Net Passport.
Install it on the machine you want to use as the Head node. The same OS can
be used for creating the Head node as well as the Compute nodes. After
installing the Head node, create an isolated domain for the cluster.
If you still have another domain controller on this network, then you can
create the head node as an additional domain controller. We created an isolated
domain controller for our setup. For this we ran the dcpromo command and
followed the dcpromo wizard. Just make sure that while creating the domain you
also install and create a local DNS server on the Head node. This will help you
when you deploy MS CCS.
Now, install the DHCP server on this machine so that the remote deployment
server can work properly. (Configuration of DHCP server is out of the scope of
this article and we are assuming that you have the basic knowhow of how to
configure basic services like DHCP on a Windows Server 2003). One word of
caution- if you are planning to provide an Internet connection to your cluster
(which is a good idea as you will get regular updates and downloads easily),
then configure it using Windows Internet Connection Sharing and not with Remote
Access Server (RAS). I am not sure about the reason but MSCCS recommends ICS
instead of RAS, and we also had troubles while we tried to run it with RAS.
As you are done with the configuration of all necessary services i.e. ADS,
DNS, DHCP and ICS, download the latest x64 version of Compute Cluster Pack SP1
from http://tinyurl.com/2rjwt4.
When installation starts the wizard pops up, which is pretty much self
explanatory. All you have to do is to select the 'Create a new compute cluster'
option. Follow this wizard to install all the required components to make the
machine a Head Node.
Go to Program Files and you will find a new menu where you will see two
applications: Cluster Job manager (used for submitting and managing cluster
jobs) and Cluster Administration (used to configure cluster and cluster nodes).
 |
| This is the 'admin' window of
Compute Cluster Pack. All the installation and management tasks happen from
this single interface |
Page(s) 1 2 3
|