Burst to Azure Batch with Microsoft HPC Pack

 

Applies To: Microsoft HPC Pack 2012 R2

This topic contains information about extending your HPC Pack cluster to include Azure Batch pools as compute resources. Using these Azure Batch pools, you can increase (“burst”) the capacity of your HPC cluster on-demand. See the Azure.com documentation for more about the Azure Batch service.

In this topic:

  • Prerequisites

  • Step 1: Create an Azure Batch pool template

  • Step 2: Add an Azure Batch pool

  • Step 3: Start the pool

  • Step 4: Run a job on the pool

  • Step 5: Stop the pool

Prerequisites

  • HPC Pack cluster - You must create and configure at least the head node of a cluster. See the Getting Started Guide for Microsoft HPC Pack 2012 R2 and HPC Pack 2012 for steps. The burst to Batch feature is available starting in HPC Pack 2012 R2 Update 3.

  • Azure subscription - If you don't already have a subscription, sign up for a free trial, use MSDN subscriber benefits, or explore other purchase options.

  •  Azure Batch account- See Create and manage an Azure Batch account to create a Batch account in the Azure portal.. You'll need the following account information (available in the portal) to burst to Batch from HPC Pack.

    • Batch account name

    • Batch account URL

    • Batch account key

Step 1: Create an Azure Batch pool template

To create an Azure Batch pool template, use the Create Node Template Wizard in HPC Cluster Manager.

To create a Batch pool template

  1. Start HPC Cluster Manager.

  2. In Configuration, in the Navigation Pane, click Node Templates.

  3. In the Actions pane, click New. The Create Node Template Wizard appears.

  4. On the Choose Node Template Type page, click Azure Batch pool template, and then click Next.

  5. On the Specify Template Name page, type a name for the node template, and optionally type a description for it. Click Next.

  6. On the Provide the Azure Batch account information page, copy the required Batch account settings from the Azure portal. Click Next.

  7. On the Configure Remote Desktop Credentials page, optionally provide the credentials of a user that will be created on Azure Batch pool compute nodes during deployment. You can use the credentials later to connect to the pool compute nodes.

  8. On the Specify Startup Script page, optionally specify an Azure Batch start task.

    • Command Line - the command executed when Azure Batch compute nodes start

    • Blob Source URL - Azure storage location of files you previously uploaded and which will automatically download to Azure Batch compute nodes

    • Local File Path - the location to download the files on the Azure Batch compute nodes

Step 2: Add an Azure Batch pool

Use the Add Node Wizard in HPC Cluster Manager to add the Batch pool compute nodes.

To add an Azure Batch pool

  1. In HPC Cluster Manager, in Resource Management, in the Actions pane, click Add Node. The Add Node Wizard appears.

  2. On the Select Deployment Method page, click Add Azure Batch pool, and then click Next.

  3. On the Specify New Nodes page, select an Azure Batch pool template, specify the number and type of compute nodes, and then click Next.

    • Number of Compute Nodes - the number of compute nodes (virtual machine instances) in the new Azure Batch pool

    • Size of Compute Nodes - the role size of each compute node.

    • OS Family - One of the available Windows Server guest OS families to run on the compute nodes. By default the latest release in the OS family is deployed.

    • Max Tasks Per Compute Node - the maximum number of concurrent tasks to run on each compute node. The default number is equal to the number of cores in the selected role size.

Step 3: Start the pool

You have to start the pool before running jobs on it.

To start an Azure Batch pool

  1. In Resource Management, in the Navigation Pane, click Nodes or Azure Batch Pools.

  2. In the List or Heat Map view, select one or more Azure Batch pools.

  3. In the Actions pane, click Start.

    The Start Azure Batch Pools dialog box appears. Click Start.

  4. The state of the nodes changes from Not-Deployed to Provisioning.

    If you want to track the provisioning progress, select the pool, and then in the Details Pane, click the Provisioning Log tab. The Azure Batch pool should be created in less than 1 minute and the state changes to Offline.

Additional considerations

  • Monitor the status of Azure Batch compute nodes- After the Azure Batch pool is ready, the Azure Batch compute nodes are still being created and starting. To monitor the node status, select the pool and then in the Details Pane, click Azure Batch Compute Nodes.

  • Remote Desktop to compute nodes - After the compute nodes in Azure Batch pool are started (node state is Idle), you can connect by Remote Desktop to each compute node if you configured template settings to do so, for example, to perform some manual configuration or troubleshooting. To do this, select one or more Azure Batch pools, and then in the Actions pane, click Remote Desktop.

  • View startup tasks - If you specified a startup task in the Azure Batch pool template, after the Azure Batch pool is started, you can view the detailed output of the startup task by running the following HPC PowerShell cmdlet:

    Get-HpcBatchPoolStartTask -Name <PoolName> 
    
  • Heat map view - While the Azure Batch pool is running, view the heat map of the pool. Currently the following performance counters are collected:

    • CPU Usage

    • Disk Throughput

    • Free Disk Space

    • Network Usage

    • Available Physical Memory

Step 4: Run a job on the pool

Currently, HPC Pack supports running clusrun commands on Azure Batch pools. Please note the following recommendations for using clusrun with Batch:

  • Run clusrun jobs on an Azure Batch pool when no other jobs running on the pool. If there are other jobs or tasks running, the clusrun job may need to wait for the running tasks to finish.

  • Jobs running on an Azure Batch pool by default don’t return the task output to HPC Pack, because of the potential performance impact. You can define node release tasks in the job to retrieve the task output if you want. To retrieve the task output, change the following cluster property through HPC PowerShell:

    Set-HpcClusterProperty -GetAzureBatchTaskOutput $true
    

 

Step 5: Stop the pool

When you are not using the Batch pool, stop the Azure resources. This deprovisions the pool compute nodes, reducing the costs of using a Batch pool.

To stop the pool

  1. In Resource Management, in the Navigation Pane, click Nodes or Azure Batch Pools.

  2. In the List or Heat Map view, select one or more Azure Batch pools that you want to stop.

  3. In the Actions pane, click Stop.

    The Stop Azure Batch Pools dialog box appears. Click Stop.

  4. If you want to track the stopping progress, select a node, and then in the Details Pane, click the Provisioning Log tab.

See Also

Microsoft HPC Pack: Node Deployment