Skip to main content Explore View all products (200+) Microsoft Foundry Azure Copilot GitHub Copilot Azure Kubernetes Service (AKS) Azure Cosmos DB Azure Database for PostgreSQL Azure Arc Microsoft Fabric Linux virtual machines in Azure Foundry Models Foundry Agent Service Foundry IQ Foundry Tools Foundry Control Plane Observability in Foundry Control Plane Azure OpenAI in Foundry Models Azure Speech in Foundry Tools Azure Machine Learning View all databases Azure Cosmos DB Azure DocumentDB Azure SQL Azure Database for PostgreSQL Azure Managed Redis Microsoft Fabric Azure Databricks Linux virtual machines in Azure Windows Server on Azure Azure Functions Azure Virtual Machine Scale Sets Azure API Management Azure Container Apps Azure Kubernetes Service (AKS) Azure Kubernetes Fleet Manager Azure Container Registry Azure Red Hat OpenShift Azure Container Instances Azure Container Storage Azure Arc Azure Local Microsoft Defender for Cloud Azure Monitor Microsoft Sentinel Azure Migrate View all solutions (40+) Cloud solutions for small and medium businesses Cloud migration and modernization center Data analytics for AI Azure Databases AI apps and agents Microsoft Marketplace Microsoft Sovereign Cloud AI apps and agents Responsible AI with Azure AI Infrastructure Data analytics for AI Machine learning operations (MLOps) Low-code application development on Azure Integration Services Serverless computing DevOps Migration and modernization center .NET apps migration Databases on Azure Linux on Azure Oracle on Azure SAP on the Microsoft Cloud Adaptive cloud High-performance computing (HPC) Infrastructure as a service (IaaS) Resiliency Azure Essentials Frontier Accelerate for Azure FinOps on Azure Microsoft Marketplace Azure pricing overview Create an Azure account Free Azure services Flexible purchase options Pricing calculator FinOps on Azure Maximize ROI from AI Azure savings plans Azure reservations Azure Hybrid Benefit Virtual Machines Azure SQL Microsoft Foundry Microsoft Fabric Azure Kubernetes Service (AKS) Microsoft Defender for Cloud View more Software Development Companies Microsoft Marketplace Find a partner Resources for Azure partners Get started with Azure Customer stories Analyst reports, white papers, and e-books Videos Learn more about cloud computing Documentation Explore Azure portal Developer resources Quickstart templates Resources for startups Developer community Students Azure for partners Blog Events and Webinars Learn Support Contact Sales Get started with Azure Sign in

Developers, enterprises, and students are all eager to understand the potential of quantum computing and to start building quantum solutions. To do that, we offer a programming language – called Q# – that lets people develop quantum programs that can take on real-world problems.

Current small-scale quantum computers lack the scale and reliability needed to execute all but the simplest of programs. To develop, test, debug and optimize quantum programs, we can work around this hurdle using quantum simulators to test quantum the execution of a quantum program on a classical computer and other tools that give the developer insight on their program.

Close up of atoms

We recently released an update to the Microsoft Quantum Development Kit that includes two new tools. One, a Toffoli simulator, can execute a specific set of quantum algorithms that implement classical arithmetic in a coherent superposition. The other, a resource estimator, helps to better understand the memory footprint and overall computational cost that it will take to implement quantum algorithms at scale.

These new tools add to the collection of simulators that were already available: a full-state simulator and a trace simulator.

Adding a Toffoli simulator and resource estimator

The Toffoli simulator is a special-purpose simulator that is valuable for coherent quantum implementations of simulating classical arithmetic operations. These are common subroutines of many quantum algorithms. The simulator can simulate quantum algorithms that are limited to X, CNOT, and multi-controlled X quantum operations. Any classical can be realized on a quantum computer using these operations, which can all be expressed through Toffoli gates.

While the Toffoli simulator is restricted to these specific operations, it can simulate millions of qubits, in contrast to the full-state simulator that is limited to moderate numbers of qubits. As a result, the Toffoli simulator is a great resource for developers to debug quantum implementations of complex classical algorithms. It is especially valuable for simulating classical arithmetic operations that appear in many real-world applications.

The other new tool for the Quantum Development Kit, the resource estimator, helps quantum application developers evaluate what resources a program will use on a quantum computer. It can do so even when it is impossible to simulate the program on a classical computer. Without changing the Q# operation, the resource estimator counts the overall number of primitive operations and qubits needed to execute a given Q# operation on a quantum computer. Then, based on estimated costs of primitive operations, the resource estimator analyzes the operation and provide metrics on the overall cost for that operation.

The resource estimator is built on top of the quantum computer trace simulator, which provides a richer set of metrics and other capabilities described below. We have found that it is very common for our users to use the trace simulator to perform resource estimation of the whole program, so we provided this new tool to give users a way to quickly get these basic metrics for their program. Quantum resource estimation is a valuable tool for quantum software developers. As a quantum program is developed, developers can understand the resources the algorithm consumes and improve its efficiency before a quantum computer is available.

Simulators play a big role in developing real-world quantum solutions

The new tools in our Quantum Development Kit are important additions to our existing set of important simulators: a full-state simulator and a trace simulator. Each can execute a quantum algorithm on a classical computer instead of on a quantum computer.

For developing, testing and finding bugs in quantum programs, it is ideal to fully simulate the algorithm. When developing a Q# program, the full-state simulator executes the quantum algorithm by keeping track of the state of the qubits and models the operations on those qubits. The full-state simulator can be used to run quantum programs that manipulate in the range of 30 qubits on a laptop, to more than 40 qubits on a cluster of computers in Azure.

In many ways, a full-state quantum simulator running on classical hardware is more useful than any developing algorithms on NISQ (Noisy Intermediate-Scale Quantum) devices. That’s because the developer does not have to manage fragile qubit state (noise); the simulator can run longer and more complex algorithms; and most importantly, a classical simulator allows full inspection of the wave function, which is very helpful for debugging. For these reasons, developers will continue to develop and debug using the simulator even when able to run these programs on actual hardware.

While full-state simulators are a valuable tool for quantum program development, true advances in computation with quantum algorithms requires far greater scale than can be simulated on classical hardware or NISQ devices. The Quantum Development Kit’s trace simulator executes a quantum program without actually simulating the state of a quantum computer.  For this reason, the trace simulator can execute quantum programs that use thousands of qubits. This very powerful simulator collects data about gate counts, depth, number of qubits of a Q# operations’ call-graph.  It provides a rich set of metrics to give more detailed and customized resource estimates that help the developer understand the quantum program performance and help find bugs on Q# programs. The trace simulator can also be used to provide customizable resource estimation when the developer wishes to change the default costs used by the new resource estimator tool.

Running the quantum simulators and the resource estimator is a great way for developers to build real applications today that will work on tomorrow’s quantum hardware.  Here are some resources for learning more:

Explore the Microsoft Quantum Development Kit

Whether it’s creating new materials, developing new pharmaceuticals, or improving artificial intelligence, quantum computers hold the potential to re-shape our world. Our Quantum Development Kit makes it easier to investigate quantum solutions and prepare for working with the quantum computers we think are just a few years away. The kit’s extensive set of quantum simulators help developers gain more insight into how to create programs for quantum computers, helping our growing community take another step toward the new world of quantum computing.

Get started with the Quantum Development Kit.