Q# Blog
Quantum Development
Latest posts
Blog Migration on February 5th
We are thrilled to announce that the Q# blog will be moving to a new home at Azure Quantum Technical Blog on February 5, 2025. This will enable us to offer you a more seamless and enhanced experience through a single integrated platform, featuring the latest information and resources in quantum computing. Best regards, The Azure Quantum Team
Important Update: blog migration to quantum.microsoft.com
We are excited to announce that the Q# blog will be migrating to a new home at Azure Quantum in Feb 2025. This move will allow us to provide you with a more integrated and enhanced experience, featuring the latest updates and resources in the world of quantum computing. Stay tuned for more details and thank you for being a valued member of our community!
Resource Estimation Challenge at QRISE 2024: Recap
This spring, we partnered with Quantum Coalition to offer a challenge at QRISE 2024 - a six-week-long event aiming to get students started doing research projects in areas of interest in quantum computing industry. Meet the challenge winners and learn about their projects!
Integrated Hybrid Support in the Azure Quantum Development Kit
Some quantum computers can do more than execute a static sequence of gates. The most advanced ones can perform mid-circuit measurements, conditionally execute gates, perform real-time classical computations and re-use qubits. If you want to experiment with these state-of-the-art capabilities, we have good news for you. The Azure Quantum Development Kit now supports running hybrid quantum programs on hardware targets. This kind of program combines classical and quantum computations; thus, we refer to them as hybrid quantum programs. Last year, we released Azure Quantum’s Integrated Hybrid feature, enabling user...
Evaluating cat qubits for fault-tolerant quantum computing using Azure Quantum Resource Estimator
Introduction This blog post highlights a recent collaboration between Microsoft and Alice & Bob, a French startup whose goal is to build a fault-tolerant quantum computer by leveraging a superconducting qubit called a cat qubit. In this collaboration, Alice & Bob uses the new extensibility mechanisms of Microsoft’s Resource Estimator to obtain resource estimates for their cat qubit architecture. The Resource Estimator is a tool that can help evaluate the practical benefit of quantum algorithms. It calculates an estimate for the expected runtime and the number of physical qubits needed to run a given pro...
Circuit Diagrams with Q#
If you’ve been exploring quantum programming using Q#, you may have been thinking, “This language is great and so easy to use! But what about visual learners?” I’m a software engineer in the Azure Quantum Development Kit team, and I’m very excited to share a new feature I’ve been working on: circuit visualization in Q#. One of the neat things about Q# is that it gives you the ability to express quantum algorithms in a procedural language that’s reminiscent of classical programming languages such as C and Python. If you’re already a programmer, this way of thinking will be very intuitive to you, and you can ...
Exploring space-time tradeoffs with Azure Quantum Resource Estimator
Introduction We are delighted to present a new experience for exploring space-time tradeoffs recently added to the Azure Quantum Resource Estimator. Available both as Azure Quantum Development Kit (VS Code extension) and a Python package, it adds a new dimension to estimates. Resource estimation doesn't just yield a single group of numbers (one per objective), but rather multiple points representing tradeoffs between objectives, such as qubit number and runtime. Our recent update of the Azure Quantum Resource Estimator adds methods for finding such tradeoffs for a given quantum algorithm and a given quantum c...
Design Fault Tolerant Quantum Computing applications with the open-source Resource Estimator
We are excited to announce that following its initial release the Azure Quantum Resource Estimator is now open-source. It has been integrated with the Modern QDK making it run up to 100x faster, and running across PC, Mac, Linux or from your web browser. Try it now. Why is resource estimation relevant today? Quantum computing has the potential for widespread societal and scientific impact, and many applications have been proposed for quantum computers. The quantum community has reached a consensus that NISQ machines do not offer practical quantum advantage and that it is time to graduate to the next of the thre...
Announcing v1.0 of the Azure Quantum Development Kit
Today we are excited to announce the 1.0 release of the Azure Quantum Development Kit, which we often refer to simply as "the QDK". As outlined in an earlier blog post, this is a significant re-write over the prior QDK with an emphasis on speed, simplicity, and a delightful experience. Review that post for the technical details on how we rebuilt it, but at a product level the re-write has enabled us to make some incredible improvements that exceeded the expectations we set out with, some highlights being: And much more! This post will include lots of video clips to try and high...
Interning at Microsoft Quantum – 2024
We announce Microsoft Quantum research internships for summer 2024 and share some completed intern projects from this summer.
Defining logical qubits: Criteria for Resilient Quantum Computation
As an industry, we are all collectively committed to bringing scaled quantum computing to fruition. Understanding what it will take to reach this goal is crucial not just for measuring industry progress, but also for developing a robust strategy to build a quantum machine and a quantum-ready community. That’s why in June 2023, we offered how quantum computing must graduate through three implementation levels to achieve utility scale: Level 1 Foundational, Level 2 Resilient, Level 3 Scale. All quantum computing technologies today are at Level 1, and while numerous NISQ machines have been developed, they do not of...
Calculating resource estimates for cryptanalysis
We’re excited to release the Resource Estimation and Cryptography interactive experience in Azure Quantum. This experience offers a deep dive into the potential implications of fault-tolerant quantum computing on common cryptographic systems. Thanks to the power of the Azure Quantum Resource Estimator, we can provide estimates of the number of qubits required and expected runtime for a range of quantum algorithms that could be used to break these cryptographic systems across different assumptions of hardware configurations. These estimates help generate actionable insights that can help inform every organization ...
Azure Quantum Integrated Hybrid unlocks algorithmic primitives
To build a quantum supercomputer that can solve the world’s hardest and most complex problems in chemistry and materials science, several key ingredients need to come together. First, today’s foundational-level quantum machines need to be scaled up to a size of at least one million stable and controllable qubits. These are the table stakes for solving any interesting, useful algorithmic problem better or faster than a classical computer, based on what we know from profiling quantum programs using the Azure Quantum resource estimator. Second, they need to be kept stable which means that error correction will be...
Introducing the Azure Quantum Development Kit Preview
100x faster, 100x smaller, and it runs in the browser! The Azure Quantum team is excited to announce the initial preview of the new Azure Quantum Development Kit (or QDK for short). This has been entirely rebuilt using a new codebase on a new technology stack, and this blog post outlines the why, the how, and some of the benefits of doing so. The “tl;dr” is that we rewrote it (mostly) in Rust which compiles to WebAssembly for VS Code or the web, and to native binaries for Python. It’s over 100x smaller, over 100x faster, much easier to install & use, works fully in the browser, and is much more productive...
Modeling quantum architecture with Azure Quantum Resource Estimator
Introduction There are numerous architectural decisions to consider when building quantum computers, which have the potential to address real-world computational challenges like quantum chemistry and quantum cryptography. Researchers worldwide are engaged in developing various aspects of quantum computer architecture. Microsoft Azure Quantum Resource Estimator plays a pivotal role in assessing how different combinations of design choices might impact the performance of upcoming quantum computers. Azure Quantum Resource Estimator was designed to assist researchers in estimating computational time and t...
Mentoring capstone projects at the University of Washington
In this blog post we share our experience of mentoring two capstone projects as part of the "Accelerating Quantum-Enabled Technologies" program at the University of Washington.
Blueprint to organize a quantum computing workshop
For many people, learning a new skill is easiest when it's a shared experience. Quantum computing workshops offer an interactive, structured and co-operative forum to jump start your quantum learning. But how do organize such an event? The Azure Quantum team frequently receives questions on how to organize quantum computing workshops, so we thought it would be helpful to provide some guidance. And Azure Quantum is the ideal platform for quantum workshops because it provides the following: If you want to organize a workshop on quantum computing, this is your guide! Note that this guide ...
Azure Quantum introduces sessions to accelerate your research with variational algorithms
To take full advantage of an Interactive Hybrid architecture, many popular algorithms such as the Variational Quantum Eigensolver (VQE) and the Quantum Approximate Optimization Algorithm (QAOA) require tight integration between the cloud provider and the quantum hardware manufacturer. Today, Azure Quantum is introducing sessions, freeing you from the need to understand specificities of the cloud provider or quantum manufacturer. With a simple Python API call you can start a session that will logically group your jobs and take advantage of performance optimizations that the quantum manufacturer m...
Azure Quantum unlocks the next generation of Hybrid Quantum Computing
Today, Microsoft announced a significant quantum advancement and made our new Integrated Hybrid feature in Azure Quantum available to the public. Quantum computing is inherently hybrid. The key to unlocking impactful, commercial applications at scale will be deep integration between classical computing capabilities including HPC and AI with scaled quantum computing in the cloud. Now, researchers can begin developing hybrid quantum applications with a mix of classical and quantum code together that run on one of today’s quantum machines, the Quantinuum H-Series in Azure Quantum. This capability unlocks a ne...
Shorter quantum circuits
To solve some of the world’s most challenging problems in chemistry and materials science will require scaling up a quantum computer to a million qubits and beyond [BMTS+ 2022]. Microsoft has taken a more challenging, but what we believe to be a more promising path towards scaled quantum computing and designed our machine using topological qubits. Our unique qubit architecture is theorized to enable our quantum machine to be small enough to fit in a closet, fast enough to solve problems in a practical timeframe, and have the capability to control more than one million qubits. We are confident in this design gi...
Azure Quantum Winter Learning Opportunities
Want to pursue your interests in quantum computing? Start today and sign up for great winter learning opportunities with Azure Quantum.
Festivus: Azure Quantum Feats of Strength
Azure Quantum team celebrates Festivus by listing Azure Quantum feats of strength - their favorite features and tools.
Developing and using Azure Quantum assignments for quantum computing courses
In this blog post Hal Owens writes about his internship project at Microsoft Quantum - developing quantum programming assignments with Q# and bringing them to the classroom at Purdue.
λ-Q#: Understanding and Evolving the Q# Programming Language
λ-Q# is an idealized version of Q# aimed at providing it a formal language definition, placing the language on a solid mathematical foundation, and enabling further evolution of its design and type system.
Signing up for Azure Quantum from scratch
This blog post offers a step-by-step guide to creating your first Azure account and Azure Quantum workspace.
Teaching Quantum Computing with Q# and Azure Quantum at Northeastern University
This fall I taught "Introduction to quantum computing" at Northeastern University. In this post, I share my experience teaching it and describe the kinds of programming assignments the course offered.
Automate Resource Estimation with QIR
Learn how to automate physical resource estimation jobs using the Azure Quantum Resource Estimator and the Azure Quantum Python library.
Q# Holiday Calendar 2022
Q# Holiday Calendar is a yearly blogging event in which every day in December one awesome community member writes a blog post about Q# and/or Azure Quantum. Check out the previous years' blogs and join the 2022 edition!
Microsoft Quantum is hiring software engineers and software researchers!
Learn about the latest job postings for quantum software engineers and researchers at Microsoft Quantum.
Interning at Microsoft Quantum – 2023
We announce Microsoft Quantum research, chemistry, and program management internships for summer 2023 and share some completed intern projects from this summer.
Announcing the Azure Quantum Summer 2022 Hackathon
Join us for the Azure Quantum Summer 2022 Hackathon hosted in collaboration with IEEE QCE22 to learn more about quantum computing and have a chance to win cool prizes.
Quantum Development Kit adopts .NET6 and supports Visual Studio 2022
In March we migrated the Quantum Development Kit to .NET 6.0 and added support for Visual Studio 2022. Learn more here in this post!
PyQIR Projects at UnitaryHACK
We're happy to be supporting UnitaryHACK June 3 - 17. Register to contribute to some great open source PyQIR projects and collect bounties in the process!
Azure Quantum challenge at QCHack 2022: Recap
This April we partnered with IonQ and Quantinuum to offer one of the technical challenges at Quantum Coalition Hackathon 2022. Meet the challenge winners and learn about their projects!
Microsoft/IonQ challenge at iQuHACK 2022: Recap
This January we partnered with IonQ to offer one of the technical challenges at iQuHACK – MIT’s annual quantum hackathon. Meet the challenge winners and learn about their projects!
Testing large quantum algorithms using sparse simulation
This blog post introduces the sparse simulator. Learn how it works and how it may help you with testing and debugging of quantum algorithms.
Introducing Q# Lambda Expressions
Here we introduce the new Q# lambda expressions language feature and give some examples of its usage.
Announcing Azure Quantum challenge at QCHack 2022
We are excited to announce that Microsoft along with our partners IonQ and Quantinuum will join Quantum Coalition Hack, hosted during the week of April 4-10! Learn more about the challenge we'll be offering and the best ways to prepare for it.
Implementing DevOps for Quantum Applications
This blog post illustrates how CI/CD-pipelines can be built for hybrid quantum apps with tools from the Quantum Development Kit (QDK), GitHub Actions and various Azure services. These cover the full app lifecycle: from app building, automated testing, resource estimating up to provisioning the target environment and deployment of the app.
Explore Quantum Hardware for Free with Azure Quantum
Learn how to use the $500 Azure Quantum credits to experiment with our partners' quantum hardware.
Introducing the Q# Formatter
Here we introduce the Q# Formatter, a tool to help keep your Q# code up to date with the latest Q# syntax.
A quantum circuit logical puzzle
This blog offers you a quantum logical puzzle: you are given the outline of a simple quantum circuit and a set of clues about it, and you have to complete the circuit based on the clues.
Visualizing resource estimates with the trace simulator and quantum-viz.js
Estimating the resources and visualizing execution traces of Q# programs are useful tasks. The trace simulator from the QDK and quantum-viz.js Javascript library help to perform those. In this blog post, we customize the trace simulator to output a circuit with hierarchy and resource information to be displayed with quantum-viz.js. The flame graph visualization from last year's Q# advent calendar inspired this post. Here is an example of the circuit we're going to get for Shor's algorithm sample. Note how each operation is annotated with the resources it requires to run. The high-level steps ...
Hybrid Quantum Applications with Azure Functions
Quantum applications are typically of hybrid nature: there is always a classical component that submits and monitors the quantum jobs at runtime. This blog shows how Azure Functions can be used to integrate quantum components written in Q# via APIs into classical applications in a serverless model.
Four Years of Q#
A look back at the fourth year of Q#.
Being a Quantum MVP
Learn about Microsoft's "Most Valued Professional" MVP program, how quantum MVPs are contributing to and helping build a vibrant quantum computing community today, and how you can become one!
DevOps for Quantum Computing
This blog post shows how DevOps practices need to adapt when software includes both classical and quantum components, resulting in a repeatable, high-quality process for building, deploying, and monitoring hybrid quantum software.
Analyzing a Sudoku solver using resources estimation
In this blog post I show how to analyze and optimize a quantum Sudoku solver written in Q# using resources estimation tools from Quantum Development Kit.
Hybrid Quantum-Classical Computing Models
This post is written as part of the Q# Advent Calendar 2021. Happy Holidays! If you’ve taken a stab at quantum programming, you’ll probably have heard of “hybrid quantum-classical computing”. Not to be confused with hybrid cloud or hybrid computers, hybrid quantum-classical computing is a popular topic among quantum computing aficionados and typically refers to a class of programs that you can run on modern quantum processors. Some of those programs include, for example, variational quantum algorithms and quantum approximate optimization algorithms. But what does "hybrid" really mean in that context? Naively ...
Embedding Q# in your favorite languages and platforms
Q# and the Quantum Development Kit make it easy to write and run quantum programs using Python, .NET, or even Jupyter notebooks. This post shows how you can use the same infrastructure to embed Q# in your favorite languages and platforms, including Julia, Lua, and PowerShell.
Interning at Microsoft Quantum – 2022
We announce Microsoft Quantum research and software engineering internships for summer 2022 and share some completed intern projects from the past years.
Q# Advent Calendar 2021
Q# Advent Calendar is a yearly blogging event in which every day in December one awesome community member writes a blog post about Q#. Check out the previous years' blogs, and join the 2021 edition!
Celebrating Hacktoberfest 2021
It is October, and this means it's time for Hacktoberfest - an annual celebration of open source! Learn how to participate in this year's Quantum Hacktoberfest.
quantum-viz.js: a quantum circuits visualization library
We introduce quantum-viz.js, a JavaScript library for quantum circuits visualization.
Quantum software development using the QDK
In this blog post we look at the end-to-end quantum software development workflow, the stages through which a quantum program goes from idea to complete implementation, and the tools offered by the Quantum Development Kit for each stage.
The AutoSubstitution rewrite step
The new Microsoft.Quantum.AutoSubstitution NuGet package makes it easier to replace operations with alternatives when targeting different simulators.
Visualizing quantum programs using the QDK
In this blog post we’ll look at the tools offered by Microsoft Quantum Development Kit to visualize various elements of quantum programs - the quantum state of the program, the unitary transformations, and the execution path (the circuit) of the program run.
Microsoft Quantum challenge at QCHack 2021: Recap
Meet the winners of the Microsoft challenge at Quantum Coalition Hackathon 2021 and learn about their projects and their experiences at the Hackathon!
Announcing Microsoft Quantum challenge at QCHack
We are excited to announce that Microsoft will join Quantum Coalition Hack, hosted during the week of April 5-11! Learn more about the challenge we'll be offering and the best ways to prepare for it.
Quantum developer tools for chemistry
Quantum computers will be able to reveal the exact quantum nature of chemical systems exponentially faster than classical computers. In this post, we show how to use Microsoft's Q# libraries and developer tools to simulate a caffeine molecule using two quantum algorithms: Quantum Phase Estimation and Variational Quantum Eigensolver.
Inside the Quantum Katas, part 2: testing quantum programs
Learn about the common tools and tricks used for testing quantum programs, using the testing harnesses of the Quantum Katas as an example.
Three Years of Q#
A look back at Q#'s third year, 2020
Emulation in Q#
It can be helpful to implement Q# functions or operations directly in C# - either to access some API that is not directly accessible in Q# or to provide alternative implementations based on the context in which the Q# program is executed. This blog post describes techniques to programmatically replace a Q# function by another one.
Inside the Quantum Katas, part 1
Learn about the internal structure of the Quantum Katas - our collection of self-paced programming exercises on quantum computing - and their most important component – the testing harnesses that provide the learner immediate feedback on their solutions.
Interning at Microsoft Quantum – 2021
We announce Microsoft Quantum internships for summer 2021, share some fun facts about the internships of the summer past, and highlight some of the things that are going to be new next summer.
Q# Advent Calendar 2020
Q# Advent Calendar is a blogging event in which every day in December one awesome community member writes a blog post about Q#. We hosted one in <a href="https://devblogs.microsoft.com/qsharp/q-advent-calendar-2018/">2018</a> and in <a href="https://devblogs.microsoft.com/qsharp/q-advent-calendar-2019/">2019</a>; let's do it again!
Celebrating our open source community with Hacktoberfest
It is October, and this means it's time for Hacktoberfest - an annual celebration of open source! Meet our newest maintainer and learn how to participate in the Quantum Hacktoberfest.
Introducing Quantum Intermediate Representation (QIR)
QIR is a new Microsoft-developed intermediate representation for quantum programs. This post describes QIR and provides pointers to the specification and source code.
Build your own Q# simulator – Part 3: A circuit-diagram builder with ⟨q|pic⟩
We implement a custom simulator that generates a quantum circuit diagram in the ⟨q|pic⟩ format from Q# program execution traces.
Build your own Q# simulator – Part 2: Advanced features for the reversible simulator
This post is the second in a series on how to write your own Q# simulators. In this part we describe advanced features to extend the reversible simulator from the first post in the series.
Build your own Q# simulator – Part 1: A simple reversible simulator
Simulators are a particularly versatile feature of the QDK. This post is the first in a series that teaches you how to write your own simulators, thereby broadly extending the scope of Q#.
Extending the Q# Compiler
In this blog post, I would like to talk about a feature that is especially interesting when it comes to new ways for you to incorporate your own ideas and vision into our tools: Custom compilation steps, which allow you to extend and customize the Q# compilation process.
Interning at Microsoft Quantum
We describe internships at the Microsoft Quantum team, the differences between research and engineering internships, and some of the projects done by our past interns.
Festivus: Q# Feats of Strength
Q# team celebrates Festivus by listing Q# strengths - their favorite language features and tools.
Add Your Own Code Actions!
We discuss code actions in Q# and the details of their implementation in the compiler.
Q# Unit Tests
A brief introduction to unit tests with Q#.
Q# Compiler Optimizations
In this post Rory Soiffer, an intern with Microsoft's Quantum group during the summer of 2019, describes the project he worked on - building a framework for Q# compiler optimizations.
A Second Year of Q#
A look back at the second year of Q#.
New Tutorials: Learn the Basic Concepts of Quantum Computing
We present the new set of introductory tutorials on the basic concepts of quantum computing, complete with programming exercises in Python and Q#.
Teaching Quantum Computing with Q#
This winter our team had an exciting opportunity to teach an introductory course on quantum computing at the University of Washington, led by Krysta Svore. This post is an overview of the course and its results.
Quantum at Microsoft Ignite 2019
This year at Microsoft Ignite 2019, Microsoft announced Azure Quantum, a full-stack approach to quantum computing. The Microsoft Quantum team had a booth on the show floor as well as several sessions on all topics related to quantum computing during the conference.