qiskit-documentation/docs/guides/optimize-for-hardware.mdx

62 lines
3.3 KiB
Plaintext

---
title: Optimize for target hardware
description: Optimize abstract circuits and operators so they can run on quantum hardware.
---
# Optimize for target hardware
![All Qiskit pattern steps are shown (Map problem, Optimize for hardware, Execute on hardware, and Post-process results). The 'Optimize for hardware' step is emphasized. This step uses the Qiskit SDK and the Qiskit Transpiler Service.](/images/qiskit-patterns/optimize.svg)
In the "optimize for target hardware" step of a Qiskit pattern, you take the abstract circuits
(or operators) produced from the map step and perform a series of optimizations on them. This
can include mapping the route and layout of the circuit to physical qubit hardware, converting
to basis gates of the hardware, and reducing the number of operations, all designed to optimize
the likelihood of success in the later execute step. At this point you might also wish to debug
your circuits with a simulator before executing on real hardware in the next step.
During this step, abstract circuits must be transpiled to Instruction Set Architecture (ISA) circuits.
An ISA circuit is one that only consists of gates understood by the target hardware (basis gates), and
any multi-qubit gates needed to obey any connectivity constraints (coupling map). Only ISA circuits
can be run on IBM® hardware using IBM Qiskit Runtime.
## Guides for optimizing for target hardware
### Get started with the Qiskit transpiler
* [Introduction to transpilation](./transpile)
* [Transpiler stages](./transpiler-stages)
* [Transpile with pass managers](./transpile-with-pass-managers)
### Configure preset pass managers
* [Default settings and configuration options](./defaults-and-configuration-options)
* [Set optimization level](./set-optimization)
* [Commonly used parameters for transpilation](./common-parameters)
* [Represent quantum computers](./represent-quantum-computers)
### Advanced transpilation resources
* [Create a pass manager for dynamical decoupling](./dynamical-decoupling-pass-manager)
* [Write a custom transpiler pass](./custom-transpiler-pass)
* [Transpile against custom backends](./custom-backend)
* [Install and use transpiler plugins](./transpiler-plugins)
* [Create a transpiler plugin](./create-transpiler-plugin)
* [Transpile using REST API](./transpile-rest-api)
### Qiskit Transpiler Service
* [Transpile circuits remotely with the Qiskit Transpiler Service](./qiskit-transpiler-service)
* [AI transpiler passes](./ai-transpiler-passes)
### Debugging tools
* [Introduction to debugging tools](./debugging-tools)
* [Exact simulation with Qiskit SDK primitives](./simulate-with-qiskit-sdk-primitives)
* [Exact and noisy simulation with Qiskit Aer primitives](./simulate-with-qiskit-aer)
* [Qiskit Runtime local testing mode](./local-testing-mode)
* [Debug Qiskit Runtime jobs](./debug-qiskit-runtime-jobs)
* [Build noise models](./build-noise-models)
* [Plot quantum states](./plot-quantum-states)
* [Efficient simulation of stabilizer circuits with Qiskit Aer primitives](./simulate-stabilizer-circuits)
### Qiskit Functions
- [IBM Circuit function](/guides/ibm-circuit-function)
- [Algorithmiq Tensor-network error mitigation](/guides/algorithmiq-tem)
- [Q-CTRL Performance Management](/guides/q-ctrl-performance-management)
- [QEDMA QESEM](/guides/qedma-qesem)