New Methods for Estimating Quantum Computing Requirements
Quantum computing and its real-time application implementations are rapidly growing. We can expect many enterprises to use quantum computing applications in the near future. The QSPs (Quantum Service Providers) like IBM, Google, Rigetti, AWS, and Azure are already planning to offer services in the hybrid quantum computing space.
In November ‘2022, IBM unveiled its largest quantum processor, which knits together a mere 433 qubits. IBM is aiming to scale up its systems to more than 4,000 qubits by 2025, and D-Wave Systems is planning to roll out a 7,000-qubit annealing quantum computer in the 2023–2024 time frame.
If the technology and offerings are rapidly advancing, we’ll be deploying our real-time application in production very soon. However, there is a problem: how can the quantum computing sizing and estimations be solved?
To resolve the problem, Microsoft has come up with an app called “Azure Quantum Resource Estimator.” It’s a software tool that was originally developed for Microsoft’s internal use. The tool is already guiding the company’s effort to develop full-stack quantum computers, and now it is available for outside developers to figure out how much computing power they’ll need to execute a given quantum algorithm in a reasonable amount of time.
The guidelines used for classical computing don’t necessarily apply to the quantum frontier. In quantum computing, Microsoft resource estimation is the process used to determine the number of qubits, quantum gates, processing time, and other resources needed to run a quantum program, assuming (taking as parameters) specific hardware characteristics.
The Azure Quantum Resource Estimator allows to understand the resources required to run a particular algorithm. By incorporating the Resource Estimator in the development workflow and continuously evaluating our quantum programs, we can understand how implementation changes to the program impact resource consumption.
Why is resource estimation important in the development of quantum computing?
However, in order for quantum computers to be commercially viable, they must be large-scale, fault-tolerant, and contain a large number of qubits in superposition as well as physical error rates that are below a predetermined threshold.
Commercial and scientific viability will also require quantum error correction (QEC) schemes to achieve fault tolerance. QEC is both time and space intensive, requiring increased execution time for algorithmic or logical-level operations, as well as additional physical qubits to store and compute information.
Using the Resource Estimator, we can understand the impact of architectural design choices and quantum error correction schemes. The Resource Estimator will help to understand how many qubits are needed to run an application, how long it will take to run, and which qubit technologies are better suited to solving a specific problem. Understanding these requirements will allow us to prepare and refine quantum solutions to run on future, scaled quantum machines.
The Resource Estimator, which was designed specifically for post-NISQ (Noisy Intermediate Scale Quantum) fault-tolerant quantum systems, allows you to assess architectural decisions, compare qubit technologies, and determine the resources required to execute a given quantum algorithm.
The Resource Estimator is free of charge and only requires an Azure account. The tool provides the number of physical qubits, clock time, and required computational resources for each program submitted, as well as details of the formulas and values used for each estimate.
We can start from well-known pre-defined qubit parameter settings and Quantum Error Correction (QEC) schemes. More advanced options include setting the configuration across a wide range of machine characteristics, such as operation error rates, operation speeds, and error correction schemes and thresholds.
The Resource Estimator is built on community-supported Quantum Intermediate Representation (QIR), so it’s extensible and portable. Because it takes a QIR program as input, it supports any language that translates to QIR. For example, we can use the Resource Estimator with popular quantum SDKs and languages such as Q# and #Qiskit.