Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,6 @@ jobs:
run: npm run check:spelling
- name: Check Qiskit bot config
run: npm run check:qiskit-bot
- name: Check Patterns index
run: npm run check:patterns-index
- name: Check tutorials index
run: python scripts/ci/check-tutorials-index.py
- name: Internal link checker
Expand Down
1 change: 0 additions & 1 deletion check
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ CHECKS = {
"notebook linters": ["tox", "-e", "lint"],
"all notebooks are tested": ["python3", "scripts/ci/check-all-notebooks-are-tested.py"],
"Qiskit bot": ["npm", "run", "check:qiskit-bot"],
"patterns index pages": ["npm", "run", "check:patterns-index"],
"tutorials index page": ["python3", "scripts/ci/check-tutorials-index.py"],
"markdown": ["npm", "run", "check:markdown"],
"orphan pages": ["npm", "run", "check:orphan-pages"],
Expand Down
23 changes: 1 addition & 22 deletions docs/guides/_toc.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,28 +49,7 @@
},
{
"title": "Development workflow",
"children": [
{
"title": "Introduction to Qiskit patterns",
"url": "/docs/guides/intro-to-patterns"
},
{
"title": "Map the problem to circuits",
"url": "/docs/guides/map-problem-to-circuits"
},
{
"title": "Optimize for hardware",
"url": "/docs/guides/optimize-for-hardware"
},
{
"title": "Execute on hardware",
"url": "/docs/guides/execute-on-hardware"
},
{
"title": "Post-process results",
"url": "/docs/guides/post-process-results"
}
]
"url": "/docs/guides/intro-to-patterns"
},
{
"title": "Latest updates",
Expand Down
1 change: 0 additions & 1 deletion docs/guides/configure-qiskit-local.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ Set these environment variables to alter the default behavior of Qiskit:
## Next steps

<Admonition type="tip" title="Recommendations">
- Learn how to [build circuits](./map-problem-to-circuits).
- Try a tutorial, such as [Grover's algorithm](/docs/tutorials/grovers-algorithm).
- [Run the Hello world program](/docs/tutorials/hello-world).
- Read the [contributing guidelines](https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md) if you want to contribute to the open-source Qiskit SDK.
Expand Down
72 changes: 0 additions & 72 deletions docs/guides/execute-on-hardware.mdx

This file was deleted.

2 changes: 1 addition & 1 deletion docs/guides/ibm-circuit-function.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"\n",
"After submitting your PUB, your abstract circuits and observables are automatically transpiled, executed on hardware, and post-processed to return mitigated expectation values. To do so, this combines the following tools:\n",
"\n",
"- [Qiskit Transpiler Service](./qiskit-transpiler-service), including auto-selection of AI-driven and heuristic transpilation passes to translate your abstract circuits to [hardware-optimized ISA circuits](/docs/guides/optimize-for-hardware)\n",
"- [Qiskit Transpiler Service](./qiskit-transpiler-service), including auto-selection of AI-driven and heuristic transpilation passes to translate your abstract circuits to hardware-optimized ISA circuits\n",
"- [Error suppression and mitigation required for utility-scale computation](./error-mitigation-and-suppression-techniques), including measurement and gate twirling, dynamical decoupling, Twirled Readout Error eXtinction (TREX), Zero-Noise Extrapolation (ZNE), and Probabilistic Error Amplification (PEA)\n",
"- [Qiskit Runtime Estimator](./get-started-with-primitives), to execute ISA PUBs on hardware and return mitigated expectation values\n",
"\n",
Expand Down
1 change: 0 additions & 1 deletion docs/guides/install-qiskit-source.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,6 @@ pip install -e ".[dev]"

<Admonition type="tip" title="Recommendations">
- Read the [contributing guidelines](https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md) to contribute to the open-source Qiskit SDK.
- Learn how to [build circuits](./map-problem-to-circuits).
- [Run the Hello world program](/docs/tutorials/hello-world).
- Try a tutorial, such as [Grover's algorithm](/docs/tutorials/grovers-algorithm).
</Admonition>
57 changes: 8 additions & 49 deletions docs/guides/intro-to-patterns.mdx
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
---
title: Introduction to Qiskit patterns
description: Qiskit patterns are the broad steps employed when running a domain-specific problem on quantum hardware.
title: Development workflow
description: A Qiskit pattern is the set of broad steps to use when running a domain-specific problem on quantum hardware.
---

# Introduction to Qiskit patterns
# Development workflow

A Qiskit pattern is a general framework for breaking down domain-specific problems and contextualizing required capabilities in stages. This allows for the seamless composability of new capabilities developed by IBM Quantum&reg; researchers (and others) and enables a future in which quantum computing tasks are performed by powerful heterogenous (CPU/GPU/QPU) computing infrastructure. Blocks or groups of blocks perform the steps of a pattern, with the Qiskit SDK providing an important foundational layer, supported by other tools or services developed by IBM Quantum or the quantum open-source community. Qiskit patterns allow domain experts to specify a problem and compose the tooling (blocks) that achieves a Qiskit pattern. That pattern can then be executed locally, through cloud services, or deployed with Qiskit Serverless.
The term *Qiskit pattern* describes the development workflow for breaking down domain-specific problems and contextualizing required capabilities in stages. This allows for the seamless composability of new capabilities developed by IBM Quantum&reg; researchers (and others) and enables a future in which quantum computing tasks are performed by powerful heterogenous (CPU/GPU/QPU) computing infrastructure. Blocks or groups of blocks perform the steps of a pattern, with the Qiskit SDK providing an important foundational layer, supported by other tools or services developed by IBM Quantum or the quantum open-source community. Qiskit patterns allow domain experts to specify a problem and compose the tooling (blocks) that achieves a Qiskit pattern. That pattern can then be executed locally, through cloud services, or deployed with Qiskit Serverless.


The four steps of a Qiskit pattern are as follows:
- [**Map** problem to quantum circuits and operators](./map-problem-to-circuits)
- [**Optimize** for target hardware](./optimize-for-hardware)
- [**Execute** on target hardware](./execute-on-hardware)
- [**Post-process** results](./post-process-results)

![All Qiskit pattern steps are shown (Map the problem, Optimize for hardware, Execute on hardware, and Post-process results). All steps except 'Execute on hardware' use the Qiskit SDK. Optimizing for hardware additionally uses the Qiskit Transpiler Service. Executing on hardware uses only the Qiskit Runtime Service.](/docs/images/qiskit-patterns/patterns.svg)
- **Map** problem to quantum circuits and operators
- **Optimize** for target hardware
- **Execute** on target hardware
- **Post-process** results

Each step is detailed in the sections below.

Expand All @@ -41,48 +40,8 @@ This step involves running your circuits on hardware and produces the outputs of

Depending on whether you are using the Sampler or Estimator primitive, the outcome of this step will be different. If using the Sampler, the output will be per-shot measurements in the form of bitstrings. If using the Estimator, the output will be expectation values of observables corresponding to physical quantities or cost functions.


## Post-process results

This final step involves stitching the outputs from the prior step back together to obtain the desired result. This can involve a range of classical data-processing steps such as visualizing results, readout error mitigation techniques, marginalizing quasi-probability distributions to ascertain results on smaller sets of qubits, or post-selection on inherent properties of the problem, such as total spin, parity, or particle conservation by removing unphysical observables.



---


As the field moves from bespoke circuit construction to utility-scale workflows, the flexibility and ease with which Qiskit patterns allow users to compose the different steps of the pattern opens quantum computing to a wide variety of applications and techniques for easy use by quantum computational scientists.

## Guides demonstrating Qiskit patterns in action

### Guides focused on one or more pattern steps

* [Map the problem to quantum circuits and operators](/docs/guides/map-problem-to-circuits)
* [Optimize for target hardware](/docs/guides/optimize-for-hardware)
* [Execute on target hardware](/docs/guides/execute-on-hardware)
* [Post-process results](/docs/guides/post-process-results)

### Guides focused on the full patterns workflow

- [Qiskit Serverless](/docs/guides/serverless)
* [Overview of Qiskit Serverless](./serverless)
* [Write your first Qiskit Serverless program](./serverless-first-program)
* [Run your first Qiskit Serverless workload remotely](./serverless-run-first-workload)
* [Manage Qiskit Serverless compute and data resources](./serverless-manage-resources)
* [Port code to Qiskit Serverless](./serverless-port-code)

- [Qiskit Functions](/docs/guides/functions)
* [Kipu Quantum Iskay Quantum Optimizer](/docs/guides/kipu-optimization)
* [Multiverse Computing Singularity](/docs/guides/multiverse-computing-singularity)
* [Q-CTRL Optimization Solver](/docs/guides/q-ctrl-optimization-solver)
* [Quantum Portfolio Optimizer: A Qiskit Function by Global Data Quantum](/docs/guides/global-data-quantum-optimizer)
* [QUICK-PDE: A Qiskit Function by ColibriTD](/docs/guides/colibritd-pde)
* [Qunova Computing HI-VQE Chemistry](/docs/guides/qunova-chemistry)

## Next steps

<Admonition type="tip" title="Recommendations">
- Explore each step in a Qiskit pattern in more detail, starting with [Map the problem to quantum circuits and operators](./map-problem-to-circuits).
- Run a full example of a Qiskit pattern in the [CHSH inequality tutorial](/docs/tutorials/chsh-inequality).
</Admonition>

55 changes: 0 additions & 55 deletions docs/guides/map-problem-to-circuits.mdx

This file was deleted.

Loading