author | description | ms.author | ms.date | ms.service | ms.subservice | ms.topic | title | uid |
---|---|---|---|---|---|---|---|---|
KittyYeungQ |
Article describing the different types of targets existing in Azure Quantum |
kitty |
02/01/2021 |
azure-quantum |
core |
conceptual |
Targets in Azure Quantum |
microsoft.quantum.concepts.targets |
This article introduces the different type of targets available in Azure Quantum and the Quantum Development Kit (QDK). Targets in Azure Quantum can be solvers for optimization problems or quantum devices (either physical or simulated) that you can use to run Q# quantum applications.
Currently, Azure Quantum includes the following types of targets:
Azure Quantum offers optimization targets to solve binary optimization problems on classical CPUs, or hardware accelerated on field-programmable gate arrays (FPGA), GPUs or hardware annealers.
For more information on optimization, see Optimization solvers.
Azure Quantum also offers a variety of quantum solutions, such as different hardware devices and quantum simulators. At this time, because of the early development stage of the field, these devices have some limitations and requirements for programs that run on them. The Quantum Development Kit and Azure Quantum will keep track of these requirements in the background so that you can run Q# programs on Azure Quantum targets.
A quantum processing unit (QPU) is a physical or simulated processor that contains a number of interconnected qubits that can be manipulated to compute quantum algorithms. It's the central component of a quantum computer.
Quantum devices are still an emerging technology, and not all of them can run all Q# code. As such, you need to keep some restrictions in mind when developing programs for different targets. Currently, Azure Quantum and the QDK manage three different profiles for QPUs:
- Full: This profile can run any Q# program within the limits of memory for simulated quantum processing units (QPU) or the number of qubits of the physical quantum hardware.
- No Control Flow: This profile can run any Q# program that doesn't
require the use of the results from qubit measurements to control the
program flow. Within a Q# program targeted for this kind of QPU, values of
type
Result
do not support equality comparison. - Basic Measurement Feedback: This profile has limited ability to use the
results from qubit measurements to control the program flow. Within a Q# program
targeted for this kind of QPU, you can only compare values of type
Result
as part of conditions withinif
statements in operations. The corresponding conditional blocks may not containreturn
orset
statements.
You can find a complete list of the Azure Quantum targets for quantum computing here and for optimization here.