Skip to content

Commit

Permalink
rewrite introduction to verify section (Qiskit#350)
Browse files Browse the repository at this point in the history
Fixes Qiskit#86
  • Loading branch information
kevinsung authored Nov 15, 2023
1 parent 908dc68 commit 60aee51
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
1 change: 1 addition & 0 deletions cSpell.json
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@
"QRTE",
"mathrm",
"exponentiated",
"simulable",
"resynthesizes"
],
"ignoreRegExpList": [
Expand Down
16 changes: 12 additions & 4 deletions docs/verify/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,17 @@ description: Introduction to the Verify phase
---
# Introduction

In the verify phase, you test your quantum programs by running them on simulated devices and exploring their performance under realistic device [noise models](https://qiskit.org/ecosystem/aer/apidocs/aer_noise.html). This allows you to validate them before sending them to a physical system. This phase consists of the following steps:
In the verify phase, you test your quantum programs by running them on simulated devices and exploring their performance under realistic device noise models. This allows you to validate them before sending them to a physical system.

1. Run your program on a quantum simulator, using [Qiskit reference primitives](simulate-with-qiskit-primitives) or [IBM Quantum cloud-based simulators](cloud-based-simulators).
1. [Add noise to your simulation](using-ibm-quantum-simulators).
2. Optionally [create your own noise model](building_noise_models).
Because the cost of classically simulating quantum circuits scales exponentially with the number of qubits, circuits that are larger than 50 qubits or so generally cannot be directly verified. For such circuits, you can:

- Test smaller versions of the circuits that can be simulated classically.
- Modify the circuits so that they become classically simulable and test these modified circuits.

Stabilizer circuits are a useful tool for accomplishing this latter goal. These are a restricted class of quantum circuits that can be efficiently simulated classically. Specialized simulators can easily simulate stabilizer circuits with thousands of qubits. See [Efficient simulation of stabilizer circuits with Qiskit Aer primitives](stabilizer-circuit-simulation) for an overview of stabilizer circuits and how to simulate them efficiently.

For general quantum circuits, the following tools are available for you to verify your quantum programs:

- For exact simulation of small quantum circuits, you can use the reference primitives included with Qiskit. See [Exact simulation with Qiskit primitives](simulate-with-qiskit-primitives).
- For higher-performance simulation that can handle larger circuits, or to incorporate noise models into your simulation, use [Qiskit Aer](https://qiskit.org/ecosystem/aer/), a project that is part of the [Qiskit Ecosystem](https://qiskit.github.io/ecosystem/). See [Exact and noisy simulation with Qiskit Aer primitives](simulate-with-qiskit-aer).
- To build your own custom noise models, use the [`noise`](https://qiskit.org/ecosystem/aer/apidocs/aer_noise.html) module of Qiskit Aer. See [Building noise models](building_noise_models).

0 comments on commit 60aee51

Please sign in to comment.