[MUSIC].
>> Hi, I'm Rob Futrick, Principal Program Manager,
Lead for Azure HPC Software and Services platform,
and I'm here today to talk about
our software platform and a bit about CycleCloud.
Azure HPC Platform is built by HPC people for
the Cloud so it is
purpose-built with HPC workloads and constraints in mind.
We understand that these are some of
the most challenging workloads that our users have,
and so we're building the capabilities
for them to address those challenges in Azure.
We also want to add a lot of Azures
additional capabilities to those workloads.
The latest ML Technologies and other offerings give
you true intelligence on top of
traditional HPC simulation approaches.
But that also includes the rest of
Azure and the rest of our offerings, whether it's storage,
other types of skews, or other technologies which
make our HPC Platform incredibly versatile.
Of course, Microsoft has been operating
for decades around the world,
and is one of the most trusted computing companies in the world,
and that extends to the HPC platforms.
What's the philosophy behind what we're building?
It's basically we look at why
our customers want to run in the Cloud to begin with.
Over the years, the three or four things we've
noticed is they want agility and speed.
They want to be able to move quickly when
they have sudden changes to their business,
some changes in demand,
access to new technologies faster
than traditional procurement cycles would have allowed.
They also want to run at
greater scale than they ever even thought possible.
To be able to take their workloads
and drive them bigger and bigger
based on their business needs and opportunities as
opposed to the fixed size environment they had.
Finally, sometimes people don't
want to run Infrastructure anymore,
that's not their business, they want to
trust somebody who knows how to do it.
Well, If the Cloud is so amazing for all those,
why haven't people traditionally
migrated their HPC workloads to the Cloud?
Well, historically speaking, the cost performance wasn't there.
It made Cloud useful for burst and sudden needs,
but the traditional steady-state wasn't necessarily economical.
Data control access, especially in a hybrid world,
and how to manage that,
was very complex and challenging.
Finally, just the governance complexity,
that technical complexity, and the overall challenge of
taking these optimized and tuned environments,
and adding in Cloud capabilities, made it very difficult,
and so the philosophy behind our HPC Software platform is to
enable those benefits by addressing those shortcomings.
If you want to know where our HPC software platform is,
and actually did a greater HPC platform in general,
and where it's headed,
just keep those goals in mind.
What have we built? Basically, we built
an entire stack of HPC resources,
starts off at the ground level where
you'd expect at the compute series.
We have our H-Series,
CPU Compute, our N-Series,
which is accelerators and GPUs,
and even offerings like traditional Cray supercomputers.
Everything from a single optimized VM up
through massive traditional HPC capabilities.
We've married that to HPC storage options,
whether it's a scale-out and NFS cash,
or a NetApp Naz offering,
or something like a parallel file system in Crays cluster store.
We've added in best in class networking,
and that is both to Azure,
so from your location to Azure datacenters through express route,
or within the Azure datacenter itself using
the fastest InfiniBand networking available.
Now once we've offered to this storage,
this compute this networking,
we then build higher level services to orchestrate your workloads,
and reduce that technical complexity
addressing that challenge I mentioned earlier, head on,
and make it so that running your workloads in Azure or in Hybrid
Function is as simple or even simpler than running on-premises.
Then finally to the intelligence we want to add on,
we've built a transformative services on top of that,
such as Azure Machine Learning, Azure Data Lake,
Azure ML Compute, to allow you to drive
new innovations and new value.
Overall, whether you're using the software platform
or just the raw hardware in Azure or honestly,
any part of Azure HPC platform,
we differentiate through several capabilities,
and one of them is scale.
As I mentioned earlier, customers want to be able to run at
a bigger scale and at larger machine count,
core count, storage size,
than they ever thought possible in
a fixed on-premises environment, and also cost.
We understand that we have to address
that cost performance issue and we've done that,
whether you're using Workload optimized,
VMs, that give you a tailored solution,
or whether you're using something like
Spot VMs already drop the price significantly.
We've also added in HPC Optimized Infrastructure,
which gives you the performance and scalability that you need.
That combined with InfiniBand networking means you can scale
out your HPC workloads from single VMs,
all the way to hundreds of VMs,
tens of thousands of cores in a single tightly coupled job.
You can run multiple of those at the same time,
which means you're at whole environment can be
in the hundreds of thousands of course.
Finally, you have a choice of any VM you want operating system.
You want to run containerized workloads, you can.
Windows, Linux, you name it,
you can find it and run it in Azure.
As I mentioned earlier, you have these tremendous capabilities.
How do you actually take advantage of them easily and simply.
We have two primary offerings,
Azure Batch and Azure CycleCloud.
Azure Batch is Cloud-native job scheduling.
It's basically HPC as a service.
All the resources lie in Azure and
its job scheduling built from the ground up for the Cloud.
Azure CycleCloud is a complimentary offering,
which is really aimed at line of business IT people,
people that run these HPC clusters.
It gives you a way of creating
an operating traditional HPC clusters
in Azure or in a hybrid function.
Batch in particular is two main focuses.
Orchestration, the VMs are coming and going.
You want to optimize your use of Azure for
your needs and so the first part is batch pools,
and that's what takes care of getting you
the Infrastructure, when you need it.
The core differentiator for our Cloud-native scheduler like Batch,
is that the idea that the Infrastructure is coming and going,
is native and first-class to the scheduler.
Along with it in your a scheduler, is job scheduling.
I think everybody here is familiar with that,
but give it your tasks, it
executes them and get you the results back.
Batch offers a bunch of other ways,
whether it's application management,
auto-scaling environments up and down,
monitoring in the entire time,
detecting errors, both at the Azure level or at the user level.
Then finally, Azure Batch is also a SAS Enablement Platform.
It's four and by developers,
and so it provides bindings for
multiple languages and common frameworks.
Then you have the complimentary offering and CycleCloud.
CycleCloud is almost like
a traditional HPC cluster tool built for Azure,
so as I mentioned earlier,
users want to have access to scale and agility,
and they want to trust Azure to run their Infrastructure,
but if we are telling
their extremely talented Engineers and HPC Admins and what not,
to take these environments that they have tuned and perfected,
and then we basically introduce
all that Cloud complexity on top of it, that's a non-starter.
The idea behind CycleCloud is to address that third challenge,
the technical and governance complexity.
It gives you instant access to Azure resources.
It gives you support for any IS component that Azure offers.
It will add auto-scaling
and orchestration to third party schedulers.
Azure CycleCloud, unlike Batch, is not a scheduler,
but you can bring the scheduler you're already using to Azure.
It also adds some cost reporting and controls,
that's part of that governance capabilities,
and it supports hybrid work frozen workflows.
The big thing here is that we are announcing CycleCloud 8,
which will be released shortly.
Inside the Cloud 8 it has native support
for Slurm Job Accounting functionalities,
which gives you the ability to take advantage of
slurms own job accounting to enforce usage limits,
and to get a better understanding of who is doing what where.
We're also updating CycleCloud integration
with open PBS to version 20,
as well as support for CentOS 8 and Ubuntu 20.
In particular, the security and performance improvements in
those operating systems will make a big improvement
to HPC environments.
Finally, there's a major overhaul of
the auto-scaling and orchestration integrations with
the grid engine or whether it's the open source of
the newer versions grid engine and open PBS.
This has actually a lot of really exciting things.
You'll get a much bigger scale improvement there.
You'll get a support for hybrid environments where
you want to run your native On-Prem,
Great engine or PBS cluster and then
add in Azure resources kind of automatically.
You will get in an auto-scaling CLI,
which will give you capabilities like a dry run command.
You can understand what would have been
provisioned in Azure had you actually submitted
the work to give you an idea of how to
test out different workloads and what they might set and do.
Finally, we hope you don't need it,
but if you did want to change
the auto-scale behavior, you'll be able to customize it.
With that being said, switch over and show just
how easy it is to run an environment in CycleCloud.
Easiest way to get Azure CycleCloud up and running
is to go to the Azure Marketplace in the portal,
search for CycleCloud and
create went through the Azure marketplace.
You simply fill in a few details for
the VM that you want to run CycleCloud
on and where in the world you can review and
create it and you are off and running Azure provision,
the virtual machine, and it will install CycleCloud for you.
Once installed,
you'll have your cluster orchestration tool ready to go.
You can simply log into
the application and let's create a cluster.
If I'm a new admin,
maybe I have a new researcher has joined the team and they
want to run some particular simulations.
This particular case, they come to me and say, "Hey,
I need a new Slurm cluster,
here's my application", etc.
"Can you give me setup?",
so I come down here and say, "Yes, I want a new cluster."
I would like that to be a Slurm cluster and we'll
call it Slurm Workload.
I have a few required settings.
Where in the world am I going to be running this cluster?
For now we can pick the West US region.
What type of VM in Azure do I want to use for my job queue?
We'll stick with the standard there.
What do I want to use for my HPC VM types?
Now this is the VMs that Slurm will use to run
a tightly coupled job or a traditional MPI job.
I can come over here and I can
pick the High performance compute optimized skews,
and I could pick the HC 44 is
the Intel-based compute optimized HPC skews.
Now, all of our h skews and n skews, are InfiniBand connected.
As I mentioned earlier, they are perfect for these HPC workloads.
The HTC VM type is really for the throughput workloads.
These are the embarrassingly parallel or otherwise not InfiniBand
requiring workloads,
maybe something like risk modeling
or sequencing alignment in genomics, you name it.
For them we can keep the f's.
This particular user, let's call her Michelle.
She might say, "Okay, well I'm going to be running
simulations of maybe 400 cores,
and I'll need several of them at the same time."
Maybe we'll give her 2,000 cores and the HPC cluster.
But maybe every once in a while she wants to run
a very large throughput simulation,
and so we want to make sure she can run that up to 10,000 cores.
Then because of the types of workloads that she has,
we can actually use Azure Spot VMs,
and we'll just let them set the price.
We go in here and pick the subnet,
and then if we needed to attach storage,
we would have the options to attach
NAS storage or some other kind of file server.
We can even configure that maybe
this specific type of Slurm version,
whether you actually want to use the job accounting.
We can install additional kinds of software and basically make
this cluster exactly what
that researcher that caught that engineer needs.
In this particular case,
we're good to go. We save the cluster.
You'll notice here that it's
telling me I haven't used anything yet
and so there's zero dollars spent.
If I needed to configure access for this researcher,
I can simply share this cluster with them.
But for this we're going to say "Go", that's it.
Cyclecloud is going to go out to Azure.
It's going to provision that node.
It's going to create the other VMs,
or at least get them ready to be created when
the user submits their workloads, they're off and running.
The interests of time, we'll jump
over to a previously created cluster,
slightly different settings,
and show how easy it is to submit a job.
First I'm going to do is log into Cloud Shell.
This is part of that enterprise
security we've talked about earlier,
and from here I can access
my CycleCloud environment because I've already
provided it an SSH key for my user.
I and only I with that key can connect.
The first thing I'm going to do here
is connect to my CycleCloud instance.
Now I'm actually on that CycleCloud box,
you'll notice the demo CycleCloud that I've spun up.
From there, I'm going to connect
to the job queue, and that's non-cluster.
This is exactly how that researcher may
login and submit their jobs.
From here, I can run a command to submit a job.
Now what this is going to do is this
is going to submit a single command.
This case it's just printing out the host name,
which is an impressive,
but it's telling Slurm that this is a tightly coupled job,
it needs to run across 14 of the HPC VMs that I've spun up.
I submit the job, you can see
that it's now submitted job Number 6.
I'm back here to CycleCloud and you can
see almost immediately CycleCloud picked
up on the fact that it needs to acquire 14 virtual machines.
It will spin them up, that job will execute.
It'll probably wait a few seconds to see if I've
submitted anything else and it'll turn them off.
But in the meantime, I may decide that, "Hey,
I want to submit a second simulation",
This one only needs six VMs.
Some of this will come back,
Cycle has already detected that I submitted in another job.
Now it's acquiring 20, let's
say typo this and I click "66" instead of six.
Because I set that cluster limit,
CycleCloud will not try to
orchestrate more VMs and it won't even take up the remaining.
I know that my user is safe within their guard rails.
They're going to stay within their budget, but they
have the power and flexibility
to get what they need done for their project.
That is how easy it is to create
a new HPC environment using
CycleCloud and get your users up and running.
But there's plenty more capabilities that Azure offers,
whether the HPC platform or
the additional capabilities we talked about earlier.
You can go online and find some more information at our website.
Whether it's at
Azure.Microsoft.com/solutions/high-performancecomputing.
You can also explore Azure solutions by
industry, whether it's energy,
or public sector, or health and life sciences,
or financial services and others.
Finally, you can engage a partner all around the world to help you
implement your high-performance solutions
and assist you in your HPC doing. Thank you.
[MUSIC]