Set up a hybrid high performance computing (HPC) cluster with Microsoft HPC Pack and on-demand Azure compute nodes
Use Microsoft HPC Pack 2012 R2 and Azure to set up a small, hybrid high performance computing (HPC) cluster. The cluster shown in this article consists of an on-premises HPC Pack head node and some compute nodes you deploy on-demand in an Azure cloud service. You can then run compute jobs on the hybrid cluster.
This tutorial shows one approach, sometimes called cluster "burst to the cloud," to use scalable, on-demand Azure resources to run compute-intensive applications.
This tutorial assumes no prior experience with compute clusters or HPC Pack. It is intended only to help you deploy a hybrid compute cluster quickly for demonstration purposes. For considerations and steps to deploy a hybrid HPC Pack cluster at greater scale in a production environment, or to use HPC Pack 2016, see the detailed guidance. For other scenarios with HPC Pack, including automated cluster deployment in Azure virtual machines, see HPC cluster options with Microsoft HPC Pack in Azure.
- Azure subscription - If you don't have an Azure subscription, you can create a free account in just a couple of minutes.
An on-premises computer running Windows Server 2012 R2 or Windows Server 2012 - Use this computer as the head node of the HPC cluster. If you aren't already running Windows Server, you can download and install an evaluation version.
- The computer must be joined to an Active Directory domain. For test purposes, you can configure the head node computer as a domain controller. To add the Active Directory Domain Services server role and promote the head node computer as a domain controller, see the documentation for Windows Server.
- To support HPC Pack, the operating system must be installed in one of these languages: English, Japanese, or Chinese (Simplified).
- Verify that important and critical updates are installed.
HPC Pack 2012 R2 - Download the installation package for the latest version free of charge and copy the files to the head node computer. Choose installation files in the same language as your installation of Windows Server.
If you want to use HPC Pack 2016 instead of HPC Pack 2012 R2, additional configuration is needed. See the detailed guidance.
- Domain account - This account must be configured with local Administrator permissions on the head node to install HPC Pack.
- TCP connectivity on port 443 from the head node to Azure.
Install HPC Pack on the head node
You first install Microsoft HPC Pack on your on-premises computer running Windows Server. This computer becomes the head node of the cluster.
Log on to the head node by using a domain account that has local Administrator permissions.
Start the HPC Pack Installation Wizard by running Setup.exe from the HPC Pack installation files.
On the HPC Pack 2012 R2 Setup screen, click New installation or add new features to an existing installation.
On the Microsoft Software User Agreement page, click Next.
On the Select Installation Type page, click Create a new HPC cluster by creating a head node, and then click Next.
The wizard runs several pre-installation tests. Click Next on the Installation Rules page if all tests pass. Otherwise, review the information provided and make any necessary changes in your environment. Then run the tests again or if necessary start the Installation Wizard again.
On the HPC DB Configuration page, make sure Head Node is selected for all HPC databases, and then click Next.
Accept default selections on the remaining pages of the wizard. On the Install Required Components page, click Install.
After the installation completes, uncheck Start HPC Cluster Manager and then click Finish. (You start HPC Cluster Manager in a later step.)
Prepare the Azure subscription
Perform the following steps in the Azure portal with your Azure subscription. After completing these steps, you can deploy Azure nodes from the on-premises head node.
Also make a note of your Azure subscription ID, which you need later. Find the ID in Subscriptions in the portal.
Upload the default management certificate
HPC Pack installs a self-signed certificate on the head node, called the Default Microsoft HPC Azure Management certificate, that you can upload as an Azure management certificate. This certificate is provided for testing and proof-of-concept deployments to secure the connection between the head node and Azure.
From the head node computer, sign in to the Azure portal.
Click Subscriptions > your_subscription_name.
Click Management certificates > Upload.
Browse on the head node for the file C:\Program Files\Microsoft HPC Pack 2012\Bin\hpccert.cer. Then, click Upload.
The Default HPC Azure Management certificate appears in the list of management certificates.
Create an Azure cloud service
For best performance, create the cloud service and the storage account (in a later step) in the same geographic region.
In the portal, click Cloud services (classic) > +Add.
Type a DNS name for the service, choose a resource group and a location, and then click Create.
Create an Azure storage account
In the portal, click Storage accounts (classic) > +Add.
Type a name for the account, and select the Classic deployment model.
Choose a resource group and a location, and leave other settings at default values. Then click Create.
Configure the head node
To use HPC Cluster Manager to deploy Azure nodes and to submit jobs, first perform some required cluster configuration steps.
On the head node, start HPC Cluster Manager. If the Select Head Node dialog box appears, click Local Computer. The Deployment To-do List appears.
Under Required deployment tasks, click Configure your network.
In the Network Configuration Wizard, select All nodes only on an enterprise network (Topology 5). This network configuration is the simplest for demonstration purposes.
Click Next to accept default values on the remaining pages of the wizard. Then, on the Review tab, click Configure to complete the network configuration.
In the Deployment To-do List, click Provide installation credentials.
In the Installation Credentials dialog box, type the credentials of the domain account that you used to install HPC Pack. Then click OK.
In the Deployment To-do List, click Configure the naming of new nodes.
In the Specify Node Naming Series dialog box, accept the default naming series and click OK. Complete this step even though the Azure nodes you add in this tutorial are named automatically.
In the Deployment To-do List, click Create a node template. Later in the tutorial, you use the node template to add Azure nodes to the cluster.
In the Create Node Template Wizard, do the following:
a. On the Choose Node Template Type page, click Windows Azure node template, and then click Next.
b. Click Next to accept the default template name.
c. On the Provide Subscription Information page, enter your Azure subscription ID (available in your Azure account information). Then, in Management certificate, browse for Default Microsoft HPC Azure Management. Then click Next.
d. On the Provide Service Information page, select the cloud service and the storage account that you created in a previous step. Then click Next.
e. Click Next to accept default values on the remaining pages of the wizard. Then, on the Review tab, click Create to create the node template.
By default, the Azure node template includes settings for you to start (provision) and stop the nodes manually, using HPC Cluster Manager. You can optionally configure a schedule to start and stop the Azure nodes automatically.
Add Azure nodes to the cluster
Now use the node template to add Azure nodes to the cluster. Adding the nodes to the cluster stores their configuration information so that you can start (provision) them at any time in the cloud service. Your subscription only gets charged for Azure nodes after the instances are running in the cloud service.
Follow these steps to add two Small nodes.
In HPC Cluster Manager, click Node Management (called Resource Management in current versions of HPC Pack) > Add Node.
In the Add Node Wizard, on the Select Deployment Method page, click Add Windows Azure nodes, and then click Next.
On the Specify New Nodes page, select the Azure node template you created previously (called by default Default AzureNode Template). Then specify 2 nodes of size Small, and then click Next.
On the Completing the Add Node Wizard page, click Finish.
Two Azure nodes, named AzureCN-0001 and AzureCN-0002, now appear in HPC Cluster Manager. Both are in the Not-Deployed state.
Start the Azure nodes
When you want to use the cluster resources in Azure, use HPC Cluster Manager to start (provision) the Azure nodes and bring them online.
In HPC Cluster Manager, click Node Management (called Resource Management in current versions of HPC Pack), and select the Azure nodes.
Click Start, and then click OK.
The nodes transition to the Provisioning state. View the provisioning log to track the provisioning progress.
After a few minutes, the Azure nodes finish provisioning and are in the Offline state. In this state, the role instances are running but cannot yet accept cluster jobs.
To confirm that the role instances are running, in the Azure portal, click Cloud Services (classic) > your_cloud_service_name.
You should see two HpcWorkerRole instances (nodes) running in the service. HPC Pack also automatically deploys two HpcProxy instances (size Medium) to handle communication between the head node and Azure.
To bring the Azure nodes online to run cluster jobs, select the nodes, right-click, and then click Bring Online.
HPC Cluster Manager indicates that the nodes are in the Online state.
Run a command across the cluster
To check the installation, use the HPC Pack clusrun command to run a command or application on one or more cluster nodes. As a simple example, use clusrun to get the IP configuration of the Azure nodes.
On the head node, open a command prompt as an administrator.
Type the following command:
clusrun /nodes:azurecn* ipconfig
If prompted, enter your cluster administrator password. You should see command output similar to the following.
Run a test job
Now submit a test job that runs on the hybrid cluster. This example is a simple parametric sweep job (a type of intrinsically parallel computation). This example runs subtasks that add an integer to itself by using the set /a command. All the nodes in the cluster contribute to finishing the subtasks for integers from 1 to 100.
In HPC Cluster Manager, click Job Management > New Parametric Sweep Job.
In the New Parametric Sweep Job dialog box, in Command line, type
set /a *+*(overwriting the default command line that appears). Leave default values for the remaining settings, and then click Submit to submit the job.
When the job is finished, double-click the My Sweep Task job.
Click View Tasks, and then click a subtask to view the calculated output of that subtask.
To see which node performed the calculation for that subtask, click Allocated Nodes. (Your cluster might show a different node name.)
Stop the Azure nodes
After you try out the cluster, stop the Azure nodes to avoid unnecessary charges to your account. This step stops the cloud service and removes the Azure role instances.
In HPC Cluster Manager, in Node Management (called Resource Management in previous versions of HPC Pack), select both Azure nodes. Then, click Stop.
In the Stop Windows Azure nodes dialog box, click Stop.
The nodes transition to the Stopping state. After a few minutes, HPC Cluster Manager shows that the nodes are Not-Deployed.
To confirm that the role instances are no longer running in Azure, in the Azure portal, click Cloud services (classic) > your_cloud_service_name. No instances are deployed in the production environment.
This completes the tutorial.
- Explore the documentation for HPC Pack.
- To set up a hybrid HPC Pack cluster deployment at greater scale, see Burst to Azure Worker Role Instances with Microsoft HPC Pack.
- For other ways to create an HPC Pack cluster in Azure, including using Azure Resource Manager templates, see HPC cluster options with Microsoft HPC Pack in Azure.