Blog Post

Educator Developer Blog
3 MIN READ

Data Science Virtual Machine with GPU for $0.18/Hour using Low Priority VMs

Lee_Stott's avatar
Lee_Stott
Icon for Microsoft rankMicrosoft
Mar 21, 2019
First published on MSDN on Dec 18, 2018

Deploy cheaper low priority (preemptable) instances of Ubuntu Data Science Virtual Machine ‘DSVM’ using the Microsoft Azure portal

Deploy to Azure via Github

- We have a set of deploy to Azure Scripts available to deploy the low priority VM simply click the link below


There are additional scripts here on the DSVM GitHub repo for deploying Linux or Windows versions This template uses a Scale set to deploy a single VM low priority.

For example: NC6 (1 K80 GPU) low-priority (preemptible) instance costs $0.18/hour compared to $0.90/hour for a dedicated instance (depending on region).

Please note this template is setup to delete the disks upon eviction. So you want to save any data on the VM externally if you need to, on a blob or Azure files. You can update the template to set eviction policy to “deallocate” to keep the disks (storage costs apply).

Low Priority Pricing

See low priority instance pricing for the latest price for the specific region. Right now, low priority instances are only available behind a VM Scale set pool.

Adding Custom Features

The template can be found here on the DSVM GitHub repo if you want to customize it.

Low-priority VMs’ Anatomy

Microsoft grants access to their spare capacity in each region. The amount of spare capacity varies by region and VM size according to multiple factors, including day of week, time of day, and demand for different VM sizes.

With low-priority VMs, Microsoft effectively lets you take advantage of unused capacity for a great price. The datacentre team can reclaim these VMs at any given moment due to higher priority allocations so the capacity isn't fixed.

Using Batch Pools & VM Scale sets

Low-priority VMs can be easily purchased via Azure Batch, a service that lets you run jobs and tasks across multiple compute pools, “Batch pools”.

However a Batch pool is not needed to create a single Virtual Machine such as  DSVM on a Low Priority instance. All you need is a VM Scaleset. The  DSVM Low priority template at the start of the blog creates a VM Scale set does this automatically.

Creating a VM using Low Priority with the Portal

You can create VMSS with low priority instance on the Azure Portal using Azure Virtual Machine Scale set

Select New Marketplace Virtual Machine Scale set and select the deploy as low priority. – YES


Using a BatchPool


Each Batch pool can contain both on-demand and low-priority nodes which can be independently scaled.

Pricing

Low-priority Linux VMs come with 80% discount while the Windows VMs come with 60% discount. The discount is calculated in comparison to their On-Demand hourly price. The vast majority of VM sizes and types are supported to run as Low-priority VMs.

So we have seen many academics keen to use Low-priority VMs to run and scale their course or research infrastructure cost-effectively.

Here are some examples of common use cases that are suitable for Low-priority VMs.

  • Web Services
  • Testing
  • CI/CD Pipelines
  • Containers Platforms (Kubernetes, Mesos, Docker Swarm, etc..)
  • Batch jobs such as Media processing, Transcoding, and Rendering.
  • Batch jobs such as Machine Learning Data Science.

We look forward to helping you to get started and consuming Low-priority VMs on Microsoft Azure and achieve business agility, cost savings, and scale.

Updated Mar 21, 2019
Version 2.0
No CommentsBe the first to comment