(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)