(electronic whooshing)
Coming up, we'll look
at the latest updates
to the Microsoft Quantum Development Kit.
Microsoft's Quantum mission is to develop
and deploy a Quantum Computing system,
spanning both hardware and software,
and to support a rich
ecosystem of domain experts,
developers and researchers,
to solve today's
most challenging problems
using Quantum Computing.
If you're new to Quantum Computing,
you can learn about the core
concepts by checking out
our previous episodes at the link shown.
To enable Quantum algorithm development
and grow a Quantum community,
we recently introduced
the Microsoft Quantum Development Kit,
which includes the Q#
Quantum programming language,
samples and tutorials to get started,
and target machines to enable simulation
of your Quantum programs,
hardware execution and
resource estimation.
I want to thank you, as part
of our growing community
for your overwhelming support.
The community engagement
has been impressive,
and today we are excited
to partner with you
as we open source the Quantum
Development Kit on GitHub.
Through open source,
we hope to empower you
to explore Quantum
Computing and contribute
to solving some of our world's
most important challenges,
such as clean energy solutions
and resource-efficient food production.
In the field of medicine, for example,
we have a partnership with
Case Western Reserve University
to advance MRI scanning
for higher accuracy,
so that we can detect disease faster.
Today, I'll highlight
some of our latest updates
to the Quantum Development
Kit that make it easier
for you to jump into Quantum programming,
whether it be to contribute
to Quantum algorithms
and applications or to compilers and tools
for mapping Q# programs
to Quantum hardware.
Let's start in the Microsoft
Quantum Development Kit
samples repository on GitHub.
You can get to it by doing
a quick search for Microsoft Quantum.
Or, you can use the link shown:
aka.ms/quantum-samples
From here, we are going to
run the samples in binder.
Once you launch binder it
will spin up a container
with the Quantum
Development Kit preloaded,
as well as a Jupyter notebook.
You don't have to
install anything locally,
allowing you to get started quickly.
And, you'll be able to launch
in Azure Notebooks soon.
We've recently added new samples
for Numerics and Chemistry, as seen here.
Let's step into the samples directory,
which contains many examples
of Quantum programming and algorithms.
One sample I'd like to
highlight is IntroToIQSharp,
which is an introduction
to Quantum Computing
and Q# using Jupyter notebooks.
The notebook contains detailed text
describing the operations in the cells,
so it's easy to follow along
as you execute the code.
Plus, you get instant
feedback within the notebook
if you make a programming mistake.
Now, as I scroll in the notebook,
you'll see that I can call
into different libraries
of the Quantum Development Kit.
For example, here, to do a Pi conversion
or look up a math function.
Jumping to cell 5, we can see an example
of working with qubits in the code.
We need to be able to prepare
a qubit in a Quantum state
or evolve and change its Quantum state.
Here the Q# code randomly prepares a qubit
into one of two states, plus or minus.
And, we can call this operation
within another operation.
So, I can do the things
that I'm used to doing
in Q#, directly within the notebook.
And now, if you scroll
down in the notebook,
we can simulate that operation
using the simulator target machine.
And you can view the output
right here in the notebook.
We've also gone beyond instant feedback
with self-paced learning
exercises called Quantum Katas.
Katas help you deepen your understanding
of Quantum Computing and develop
your expertise in Q# programming.
We have a number of Katas
available as Jupyter notebooks.
And to save time, I've already launched
a new repository in binder.
You can get to it via
aka.ms/online-quantum-katas.
I'll choose the Basic
Quantum Computing Gates Kata.
This kata introduces fundamental concepts
of Quantum Computing, such as operations
to entangle qubits and change their state.
Now, each kata task asks
you to fill in the blank
with Q# code to complete the task.
You can verify your answer
by executing the cells.
For example, here, if I
type an incorrect answer,
then the kata, once executed,
helps me understand where I went wrong.
As you progress through the katas,
the tasks introduce you to more advanced
Quantum Computing and
programming concepts.
To help you complete the tasks,
we also have detailed documentation.
And, when you're really stuck,
you can refer to the Task's solution,
found in the Reference
Implementation file.
If you like an enterprise-grade
development environment,
the Quantum Development Kit is
also integrated with Visual Studio.
In Visual Studio 2019 for example,
you can get in-line code guidance
and feedback directly
in the text explorer.
Here I have opened the
Superdense Coding Kata.
This kata introduces the
concept of Quantum entanglement
and I encourage you to
go back into the kata
and step through it in detail.
When I run this kata, the
unit tests on the left
indicate where I've made a mistake.
Here, you can see one has
failed, indicated by the red X.
I can click on the test
and then get a detailed error message.
Now if I replace this instruction
with another instruction,
you'll notice it becomes
underlined with a red squiggle,
and as I hover over it I see a light bulb.
The Q# compiler is providing me
with a useful suggestion
on how to fix the error.
And by hovering, I can
see that, in this case,
we haven't yet opened
the correct namespace
and it's prompting me to insert
the correct open directive.
And now, when I run the test again,
my unit tests should pass.
In this environment, I
also get detailed feedback
on the program variables,
operations, and functions.
For example, if I click on
a variable name in the code,
it will highlight where
the variable is used.
You can also right-click on the variable
to go to where a variable is defined.
And if I want to rename a variable,
I can even replace all occurrences
of it by simply right-clicking
on the instance and selecting rename.
Now let's switch gears to an
important application area
for Quantum Computing: chemistry.
We have several new
chemistry packages developed
with our community partners,
including a new release with 1Qubit
for intermediate-scale Quantum solutions.
Today, I'll highlight our work
with Pacific Northwest
National Laboratories.
It brings together
advanced Quantum algorithms
for chemistry in Q# and the open source,
HPC chemistry tool, NWChem.
Together it enables simulation
of molecular interactions
and exploration of real-world applications
for chemistry with the
Quantum Development Kit.
For this demo, I'm using
Visual Studio Code,
an open source cross-platform
development environment
from Microsoft.
We'll calculate the resources
required to find the energy
of a particular state
of molecular hydrogen.
I'll use the Resource Estimator
for the target machine.
It enables you to determine
the number of qubits
and operations required to execute
your Quantum application
on Quantum hardware.
We've loaded a description
of a chemistry problem,
written in a format we call Broombridge.
In Q# we've expressed
our Quantum algorithm.
And we can now execute
against the Resource Estimator
target machine and obtain
counts of the numbers
of operations required
to execute this example.
By connecting to tools such as PowerShell
and Python we can visualize analytics.
Here, we've plotted the results
of the resource estimation.
On the Y axis, you see the names
of each chemical configuration.
And on the X axis, you see the numbers
of operations required for
different optimizations
applied to the Quantum algorithm.
From this information we can quickly learn
which optimizations work best.
Thanks for watching this quick tour
of the latest highlights of
the Quantum Development Kit.
Whether you're a professional
developer, Quantum expert,
new student or avid
researcher in this space,
your contributions to
this revolutionary field
of Quantum Computing will be pivotal
in advancing our Quantum understanding.
You may be programming the next
Quantum killer application right now.
To learn more or share
your feedback, visit
docs.microsoft.com/quantum.
And don't forget to watch the rest of
our Quantum Computing series
on Microsoft Mechanics.
Thanks for watching and start
Quantum programming today!
(upbeat electronic music)
