Microsoft Azure Low-priority Virtual Machines - take advantage of surplus capacity in Azure.

Low-priority VMs make new types of Batch workloads possible by providing a large amount of compute power that is also economical.

imageSee example at https://blogs.msdn.microsoft.com/uk_faculty_connection/2017/07/24/running-a-simulation-on-20-low-priority-azure-vms-for-a-cost-of-0-02/ 

Low-priority VMs

Take advantage of surplus capacity in Azure. When you specify low-priority VMs in your pools, Azure Batch can automatically use this surplus when available.

Low-priority VMs are offered at a significantly reduced price compared with dedicated VMs. For pricing details, see Batch Pricing.

Low-priority VMs are currently available only for workloads running in Batch.

Use cases for low-priority VMs

In general, batch processing workloads are a good fit, as jobs are broken into many parallel tasks or there are many jobs that are scaled out and distributed across many VMs.

Examples of Low Priority and Batch Usage

Batch  use cases well suited to use low-priority VMs are:

  • Development and testing: In particular, if large-scale solutions are being developed, significant savings can be realized. All types of testing can benefit, but large-scale load testing and regression testing are great uses.

  • Supplementing on-demand capacity: Low-priority VMs can be used to supplement regular dedicated VMs - when available, jobs can scale and therefore complete quicker for lower cost; when not available, the baseline of dedicated VMs remains available.

  • Flexible job execution time: If there is flexibility in the time jobs have to complete, then potential drops in capacity can be tolerated; however, with the addition of low-priority VMs jobs frequently run faster and for a lower cost.

Setup and Configuration

Batch pools can be configured to use low-priority VMs in a few ways, depending on the flexibility in job execution time:

  • Low-priority VMs can solely be used in a pool. In this case, Batch recovers any preempted capacity when available. This configuration is the cheapest way to execute jobs, as only low-priority VMs are used.

  • Low-priority VMs can be used in conjunction with a fixed baseline of dedicated VMs. The fixed number of dedicated VMs ensures there is always some capacity to keep a job progressing.

  • There can be dynamic mix of dedicated and low-priority VMs, so that the cheaper low-priority VMs are solely used when available, but the full-priced dedicated VMs are scaled up when required. This configuration keeps a minimum amount of capacity available to keep the jobs progressing.

Resources

Azure Batch Docs https://docs.microsoft.com/en-us/azure/batch/batch-technical-overview

Using low-priority VMs with Batch https://docs.microsoft.com/en-us/azure/batch/batch-low-pri-vms