Quantum simulators
Quantum simulators are software programs that run on classical computers and act as the target machine for a Q# program, making it possible to run and test quantum programs in an environment that predicts how qubits will react to different operations.
The quantum simulator is responsible for providing implementations of quantum operations for an algorithm. This includes primitive operations such as H
, CNOT
, and Measure
, as well as qubit management and tracking. The Quantum Development Kit includes different classes of quantum simulators representing different ways of simulating the same quantum algorithm.
Each type of quantum simulator can provide different implementations of these primitives. For example, the full state simulator runs the quantum algorithm by fully simulating the quantum state vector, whereas the quantum computer trace simulator doesn't consider the actual quantum state at all. Rather, it tracks gate, qubit, and other resource usage for the algorithm.
Quantum machine classes
In the future, the QDK will define additional quantum machine classes to support other types of simulation and to support running on quantum hardware. Allowing the algorithm to stay constant while varying the underlying machine implementation makes it easy to test and debug an algorithm in simulation and then run it on real hardware with confidence that the algorithm hasn't changed.
Simulator | Class | Namespace | Description |
---|---|---|---|
Full state simulator | QuantumSimulator |
Microsoft.Quantum.Simulation.Simulators |
Runs and debugs quantum algorithms, and is limited to about 30 qubits. |
Sparse simulator | SparseSimulator |
Microsoft.Quantum.Simulation.Simulators |
Simulates quantum algorithms with sparse states, small number of states in superposition. |
Trace-based resource estimator | QCTraceSimulator |
Microsoft.Quantum.Simulation.Simulators |
Runs advanced analysis of resources consumptions for the algorithm's entire call-graph, and supports thousands of qubits. |
Resources estimator | ResourcesEstimator |
Microsoft.Quantum.Simulation.Simulators |
Performs a top level analysis of the resources needed to run a quantum algorithm, and supports thousands of qubits. |
Toffoli simulator | ToffoliSimulator |
Microsoft.Quantum.Simulation.Simulators |
Simulates quantum algorithms that are limited to X , CNOT , and multi-controlled X quantum operations, and supports million of qubits. |
Noise simulator | OpenSystemsSimulator |
Microsoft.Quantum.Simulation.Simulators |
Simulates quantum algorithms under the presence of noise, and also the stabilizer representation (also known as CHP simulation) of quantum algorithms. |
Next steps
For details about how to invoke target machines for Q# programs in different environments, see Ways to run a Q# program.
Feedback
Submit and view feedback for