DIY Supercomputing: How to Build a Small Windows HPC Cluster
This guide* describes how to build a small Windows HPC cluster that you can use to run your parallel software applications, cluster-enabled Microsoft Excel workbooks, or service-oriented architecture (SOA) based applications. This guide is intended for those of you out there who want to set up a small development or proof-of-concept cluster, or for those of you who do not have an IT department to set up a cluster for you, and so you need to do it yourself.
After you complete the steps in this guide, you will have a cluster that is ready for you to install applications and start running jobs. Many parallel computing software applications provide documentation about how to install their software on a Windows HPC cluster.
If you have all the required parts and permissions, and you already have the Windows Server 2008 R2 operating system installed on your computers, the steps in this guide should take about one to two hours to complete.
In this guide:
- The plan
- What you need
- Set up hardware and join a domain
- Install Microsoft HPC Pack 2008 R2 to create the head node
- Perform the initial configuration tasks on the head node
- Pre-configure the compute nodes
- Join the nodes to the cluster
*This guide is the companion to the video DIY Supercomputing: How to build a small Windows HPC cluster.
The plan
In this guide, we will walk through the steps to build an HPC cluster that consists of at least three nodes (computers with the server operating system installed). One node acts as a head node (to manage the cluster) and as a compute node (to run jobs). Additional nodes act only as compute nodes.
Note: The head node also acts as a WCF broker node to manage SOA service requests and responses. The WCF broker functionality is necessary if you are using the HPC Services for Excel to offload your UDF calculations or Microsoft Excel spreadsheets, or if your application uses the SOA programming model.
The cluster nodes are connected to each other on an isolated, private network. This network is basically used to coordinate the workload on your cluster. The head node has an additional network connection to the enterprise network (a network with an Active Directory domain controller that manages logging in, security, and authentication in your work environment). After your cluster is set up, you can submit and monitor jobs by logging in to the head node directly, or by connecting to the cluster from another computer on the enterprise network (if you install the HPC Pack client utilities on that computer).
Because we are building a small cluster, and to keep things simple, we will build a cluster with preconfigured compute nodes. That means that the computers that we add to the cluster already have the operating system installed, and we will manually install the HPC software on each node.
Note: If you are building a larger cluster, then read about how to deploy nodes from bare metal. In a bare metal deployment, you take some extra steps to set up automated installation of the operating system and HPC software to all your compute nodes.
The following diagram illustrates the cluster plan:
What you need
Hardware
- 3 (or more) computers with the following recommended specifications*
- Processor (x64-based): 2 GHz or faster
- RAM: 2 GB or more
- Available disk space: 80 GB or more
- Keyboard, monitor, and mouse for the head node
- 1 switch or hub for the private network
- 3 (or more) cables for the private network
- 1 extra Network Interface Card (NIC) for the head node
- 1 cable to connect the head node to the enterprise network
*You can see the minimum system requirements for Windows HPC here (http://go.microsoft.com/fwlink/?LinkId=194785). However, if you want to run specific software applications on your cluster, consult the software documentation for any additional system requirements.
Software
- Windows Server 2008 R2 operating system already installed on each node
- Microsoft HPC Pack 2008 R2 installation media
For information about how to download the software, see Download Windows HPC Server 2008 R2 software.
Network and permissions
- You must have an Active Directory domain that you can join the cluster to. If you do not have an Active Directory domain controller in your environment, you can create your own domain by setting up the head node to act as a domain controller.
- To set up and use your cluster, you must use domain credentials (credentials that are managed by the Active Directory domain controller).
- You must have permission to add the cluster nodes to the Active Directory domain. This means that you must have permission to create computer objects in Active Directory Domain Services, and join computers to the domain. If you can buy a new computer and add it to your domain without calling your IT department, then you probably have sufficient permissions. If not, work with your domain administrator to add the cluster nodes to the domain. In some cases, a domain administrator can pre-create the computer objects for you in Active Directory Domain Services before you set up your cluster. For more information, see Deploy Nodes with Pre-created Computer Objects in Active Directory (http://go.microsoft.com/fwlink/?LinkId=194363).
- This guide also assumes that there is a DHCP server for your enterprise network. This means that an IP address is automatically assigned to your NIC when you connect it to the enterprise network.
Set up hardware and join a domain
- Insert the extra NIC into the server that will act as the head node.
- Connect the new NIC to the enterprise network. Do not connect the private network yet.
- Plug in the head node, monitor, keyboard and mouse.
- Power up the head node.
- Name the network connections:
Open the Network and Sharing Center.
Click Change adapter settings. Connection information for the two NICs is displayed.
Right-click the connection that is plugged in, click Rename, and then type “Enterprise”, as illustrated in the following screenshot:
Rename the other connection “Private”.
Close the Network and Sharing Center.
- Join your domain:
In the Initial configuration tasks console, click Provide computer name and domain.
Note: You can reopen the Initial configuration task console by opening a command prompt window and then typing “oobe”.
In the System Properties dialog box, in the Computer Name tab, click the Change button.
In the Computer Name/Domain Changes dialog box, type a name for the head node, for example “HEADNODE”.
Select Domain, type the name of your domain, and then click OK.
When prompted, type the domain credentials that have permission to join the server to the domain. A dialog box appears to confirm the domain join.
When prompted, restart the computer to apply these changes.
- Connect the private network:
- Plug the switch in to a power source.
- Connect all nodes to the switch.
Install Microsoft HPC Pack 2008 R2 to create the head node
- Log on to the head node with your domain credentials.
- Insert the installation media for Microsoft HPC Pack 2008 R2 and run setup (setup.exe).
- Follow the steps in the installation wizard, and select the following options:
In Select Installation Edition, select HPC Pack 2008 R2 Express or HPC Pack 2008 R2 Enterprise and HPC Pack 2008 R2 for Workstation.
Note: Both editions work for creating a head node. Select the Enterprise edition if you want to use or explore the features for Excel offloading and for adding workstation computers to your cluster (this lets you use workstation computers that are on the enterprise network to run HPC jobs during non-working hours).
Accept the license terms.
In Select Installation Type, select Create a new HPC Cluster by creating a head node.
In the next three screens, accept the default installation locations for the HPC databases and for HPC Pack.
In Select Method for Updates, select Use Microsoft Update.
In Customer Experience Improvement Program, select Yes (this helps us improve the product in later versions).
At the end of the wizard, click Finish. The wizard starts HPC Cluster Manager, which is the administration console for configuring and monitoring your cluster.
Perform the initial configuration tasks on the head node
- In HPC Cluster Manager, in the Deployment To-do List, click Configure your network.
- In the Network Configuration Wizard:
- In Network Topology Selection, the wizard detects the installed adapters and preselects a topology accordingly. Verify that the selection is as expected (in this guide, we built a Topology 1 cluster).
- In Enterprise Network Adapter Selection, in the Network adapter drop-down list, select the network connection that you named “Enterprise”.
- In Private Network Adapter Selection, select the network connection that you named “Private”.
- In Private Network Configuration, accept the default settings.
- In Firewall Setup, accept the default settings.
- Click Configure.
- In the to-do list, click Provide installation credentials.
In the dialog box, you can type the same domain credentials that you used to join your head node to the domain. When you type your user name, include the domain name in the form DOMAIN\User.
Note: This step must be performed, but these credentials are only used for bare metal deployments. If you are only adding preconfigured nodes, you can use your domain credentials, even if they don’t have permissions to add nodes to the Active Directory.
- In the to-do list, click Configure the naming of new nodes.
In the dialog box, accept the defaults and click OK.
Note: The node naming series does not apply to preconfigured compute nodes, it is only used for bare metal deployments.
- In the to-do list, click Create a node template.
- In the Create Node Template Wizard:
In Choose Node Template Type, select Compute node template.
In Specify Template Name, type a name for the template. For example, “Preconfigured nodes”.
In Select Deployment Type, select Without operating system.
Note: In this guide, the nodes that we are adding already have the Windows Server 2008 R2 operating system installed, so we do not need the node template to install an operating system for us. Since we are adding preconfigured nodes, we only really use the template to add nodes to the cluster. For bare metal deployment, you can use the node template to install an operating system on the compute nodes.
In Windows Updates, select Include a step in the template to download and install updates.
Note: If you include this step, your head node must be able to access the internet or a Windows Update Server on your enterprise network.
- Click Create.
Pre-configure the compute nodes
For each compute node, perform the following steps.
Note: This procedure assumes that the nodes already have the Windows Server 2008 R2 operating system installed.
- Switch the keyboard, monitor and mouse to the compute node.
- Log on to the node as an administrator.
- In the Initial configuration tasks console, select Enable remote desktop.
- Rename the node, for example NODE01.
- Join the node to the domain and then restart the computer when prompted.
- Log on to the node with your domain credentials.
- Insert the installation media for Microsoft HPC Pack 2008 R2 and run setup (setup.exe).
- Follow the steps in the installation wizard, and select the following options:
In Select Installation Edition, select HPC Pack 2008 R2 Express or HPC Pack 2008 R2 Enterprise and HPC Pack 2008 R2 for Workstation.
Note: Both editions work for creating a compute node. Select the Enterprise edition if you want the compute nodes to be able to run Excel offloading jobs.
Accept the license terms.
In Select Installation Type, select Join an existing HPC Cluster by creating a new compute node.
In Join Cluster, select or type the name that you gave to your head node (for example “HEADNODE”).
In the next screen, accept the default installation location for HPC Pack.
In Select Method for Updates, select Use Microsoft Update.
At the end of the wizard, click Finish.
Join the nodes to the cluster
Switch the keyboard, monitor and mouse to the head node.
In HPC Cluster Manager, click Node Management. Your preconfigured nodes appear in the node list. At this point, the nodes have Node State marked as Unknown, and Node Health as Unapproved.
In the node list, select the new nodes, right-click your selection, and then click Assign node template.
In the dialog box, select the node template that you created, “Preconfigured nodes”, and then click OK.
To monitor the provisioning process:
- Select a node in the node list.
- In the Details Pane, select the Provisioning tab. Provisioning details are displayed.
When provisioning is complete, the nodes have Node State marked as Offline, and Node Health as OK.
Select all the nodes, right-click your selection, and then click Bring Online.
Note: Bringing a node to the Online state tells the HPC Job Scheduler Service that you want this node to run jobs. Keep in mind that Online only reflects the intended usage of the node, and that the node must also be healthy and reachable. If you want to stop using a node for jobs, then bring the node to the Offline state.
Now you’re ready to install your software applications or cluster-enabled workbooks!
For information about managing the cluster and submitting jobs, see the following sections in the Windows HPC Server 2008 R2 Technical Library: