From c8b9e5a80844f46958f98f99fea2a832f585790c Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 13 Nov 2025 11:43:04 -0500 Subject: [PATCH 01/82] collapsed version --- docs/guides/_toc.json | 971 ++++++++++++++++++++---------------------- 1 file changed, 454 insertions(+), 517 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 4bb0124eeb7..7017bf9c7cf 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -6,14 +6,20 @@ "title": "Get started", "children": [ { - "title": "Overview", + "title": "Introduction", "url": "/docs/guides" }, { "title": "Quickstart", - "url": "/docs/guides/quick-start", - "isNew": true, - "isNewDate": "2025-11-07" + "url": "/docs/guides/quick-start" + }, + { + "title": "Hello world", + "url": "/docs/tutorials/hello-world" + }, + { + "title": "Tools index", + "url": "https://github.com/qiskit-community/qdc-challenges-2025/blob/main/challenges_cheat_sheet.md" }, { "title": "Install", @@ -23,476 +29,345 @@ "url": "/docs/guides/install-qiskit" }, { - "title": "Online lab environments", - "url": "/docs/guides/online-lab-environments" + "title": "Install the Qiskit SDK from source", + "url": "/docs/guides/install-qiskit-source" }, { - "title": "Advanced install", - "children": [ - { - "title": "Install the Qiskit SDK from source", - "url": "/docs/guides/install-qiskit-source" - }, - { - "title": "Configure the Qiskit SDK locally", - "url": "/docs/guides/configure-qiskit-local" - }, - { - "title": "Install the Qiskit C API", - "url": "/docs/guides/install-c-api" - }, - { - "title": "Extend Qiskit in Python with C", - "url": "/docs/guides/c-extension-for-python" - } - ] - } - ] - }, - { - "title": "Development workflow", - "children": [ - { - "title": "Introduction to Qiskit patterns", - "url": "/docs/guides/intro-to-patterns" + "title": "Configure the Qiskit SDK locally", + "url": "/docs/guides/configure-qiskit-local" }, { - "title": "Map the problem to circuits", - "url": "/docs/guides/map-problem-to-circuits" + "title": "Install the Qiskit C API", + "url": "/docs/guides/install-c-api" }, { - "title": "Optimize for hardware", - "url": "/docs/guides/optimize-for-hardware" - }, - { - "title": "Execute on hardware", - "url": "/docs/guides/execute-on-hardware" + "title": "Extend Qiskit in Python with C", + "url": "/docs/guides/c-extension-for-python" }, + { - "title": "Post-process results", - "url": "/docs/guides/post-process-results" + "title": "Online lab environments", + "url": "/docs/guides/online-lab-environments" } ] }, + { + "title": "IBM Quantum Composer", + "url": "/docs/guides/composer" + }, { "title": "Latest updates", "url": "/docs/guides/latest-updates" } - ], - "collapsible": false - }, + ] }, { - "title": "IBM Quantum Platform", + "title": "Tools overviews", + "children": [ + { + "title": "Qiskit overview", + "url": "/docs/guides/tools-intro" + }, + { + "title": "Qiskit Functions overview", + "url": "/docs/guides/functions" + }, + { + "title": "Qiskit addons overview", + "url": "/docs/guides/addons" + } + ] }, + { + "title": "Prepare your circuit", + "children":[ + { + "title": "Workload usage", + "url": "/docs/guides/estimate-job-run-time" + }, + { + "title": "Minimize job run time", + "url": "/docs/guides/minimize-time" + }, + { + "title": "Maximum execution time", + "url": "/docs/guides/max-execution-time" + }, + { + "title": "Job limits", + "url": "/docs/guides/job-limits" + }, + { + "title": "Qubit initialization", + "url": "/docs/guides/repetition-rate-execution" + } + ] }, + { + "title": "Circuits and operators", "children": [ { - "title": "Set up IBM Quantum Platform", + "title": "Circuit library", + "url": "/docs/guides/circuit-library" + }, + { + "title": "Construct circuits", + "url": "/docs/guides/construct-circuits" + }, + { + "title": "Fractional gates", + "url": "/docs/guides/fractional-gates" + }, + { + "title": "Classical feedforward and control flow", + "url": "/docs/guides/classical-feedforward-and-control-flow" + }, + { + "title": "Deferred timing resolution using stretch", + "url": "/docs/guides/stretch" + }, + { + "title": "Measure qubits", + "url": "/docs/guides/measure-qubits" + }, + { + "title": "Synthesize unitary operators", + "url": "/docs/guides/synthesize-unitary-operators" + }, + { + "title": "Bit-ordering in the Qiskit SDK", + "url": "/docs/guides/bit-ordering" + }, + { + "title": "Save circuits to disk", + "url": "/docs/guides/save-circuits" + }, + { + "title": "Operators module overview", + "url": "/docs/guides/operators-overview" + }, + { + "title": "Specify observables in the Pauli basis", + "url": "/docs/guides/specify-observables-pauli" + }, + { + "title": "The Operator class", + "url": "/docs/guides/operator-class" + }, + { + "title": "OpenQASM", "children": [ { - "title": "Set up your IBM Cloud account", - "url": "/docs/guides/cloud-setup" - }, - { - "title": "Set up your IBM Cloud account - invited users", - "url": "/docs/guides/cloud-setup-invited", - "platform": "cloud" + "title": "Intro to OpenQASM", + "url": "/docs/guides/introduction-to-qasm" }, { - "title": "Set up your IBM Cloud account in an untrusted environment", - "url": "/docs/guides/cloud-setup-untrusted", - "platform": "cloud" + "title": "OpenQASM 2 and the Qiskit SDK", + "url": "/docs/guides/interoperate-qiskit-qasm2" }, { - "title": "Set up to use IBM Quantum Platform with REST API", - "url": "/docs/guides/cloud-setup-rest-api", - "platform": "cloud" + "title": "OpenQASM 3 and the Qiskit SDK", + "url": "/docs/guides/interoperate-qiskit-qasm3" }, { - "title": "Save your login credentials", - "url": "/docs/guides/save-credentials", - "platform": "cloud" - }, - { - "title": "Initialize your Qiskit Runtime service account", - "url": "/docs/guides/initialize-account", - "platform": "cloud" + "title": "OpenQASM 3 feature table", + "url": "/docs/guides/qasm-feature-table" }, { - "title": "Set up for an organization", - "children": [ - { - "title": "Setup considerations", - "url": "/docs/guides/considerations-set-up-runtime" - }, - { - "title": "Configure IBM Quantum Platform", - "url": "/docs/guides/quickstart-steps-org" - } - ] + "title": "OpenQASM 3.x live specification", + "url": "https://openqasm.com/" } ] + } + ] }, + { + "title": "Optimize circuits", + "children":[ + { + "title": "Introduction to transpilation", + "url": "/docs/guides/transpile" }, { - "title": "IBM Quantum plans", + "title": "Transpiler stages", + "url": "/docs/guides/transpiler-stages" + }, + { + "title": "Transpile with pass managers", + "url": "/docs/guides/transpile-with-pass-managers" + }, + { + "title": "Create a pass manager for dynamical decoupling", + "url": "/docs/guides/dynamical-decoupling-pass-manager" + }, + { + "title": "Configure preset pass managers", "children": [ { - "title": "Overview of plans", - "url": "/docs/guides/plans-overview" + "title": "Default settings and configuration options", + "url": "/docs/guides/defaults-and-configuration-options" }, { - "title": "Upgrade from the Open Plan", - "url": "/docs/guides/upgrade-from-open" + "title": "Set optimization level", + "url": "/docs/guides/set-optimization" }, { - "title": "Manage cost on the Pay-As-You-Go Plan", - "url": "/docs/guides/manage-cost" + "title": "Commonly used parameters for transpilation", + "url": "/docs/guides/common-parameters" + }, + { + "title": "Represent quantum computers", + "url": "/docs/guides/represent-quantum-computers" } ] }, { - "title": "Work with instances", + "title": "Qiskit Transpiler Service", "children": [ { - "title": "Create and manage instances", - "url": "/docs/guides/instances" + "title": "Transpile circuits remotely with the Qiskit Transpiler Service", + "url": "/docs/guides/qiskit-transpiler-service" }, { - "title": "Set allocation limits", - "url": "/docs/guides/allocation-limits" - }, - { - "title": "Use IBM Cloud Platform APIs to access instances", - "url": "/docs/guides/access-instances-platform-apis" + "title": "AI transpiler passes", + "url": "/docs/guides/ai-transpiler-passes" } ] }, { - "title": "Accounts, access groups, and policies", + "title": "Advanced transpilation resources", "children": [ { - "title": "Cloud account structure", - "url": "/docs/guides/cloud-account-structure" + "title": "Write a custom transpiler pass", + "url": "/docs/guides/custom-transpiler-pass" }, { - "title": "Create access groups and policies", - "url": "/docs/guides/access-groups" + "title": "Transpile against custom backends", + "url": "/docs/guides/custom-backend" }, { - "title": "Set up custom roles", - "url": "/docs/guides/custom-roles" + "title": "Install and use transpiler plugins", + "url": "/docs/guides/transpiler-plugins" + }, + { + "title": "Create a transpiler plugin", + "url": "/docs/guides/create-transpiler-plugin" + }, + { + "title": "Work with DAGs in transpiler passes", + "url": "/docs/guides/DAG-representation" } ] }, { - "title": "Manage users", + "title": "Approximate quantum compilation (AQC-Tensor)", "children": [ { - "title": "Invite users and manage access", - "url": "/docs/guides/invite-and-manage-users" + "title": "AQC-Tensor addon overview", + "url": "/docs/guides/qiskit-addons-aqc" }, { - "title": "Manage ID provider users", - "url": "/docs/guides/manage-appid" - }, - { - "title": "Manage IBM Cloud users", - "url": "/docs/guides/manage-cloud-users" + "title": "Get started with AQC-Tensor", + "url": "/docs/guides/qiskit-addons-aqc-get-started" } ] }, { - "title": "Logging", - "url": "/docs/guides/logging" - } - ], - "collapsible": false - }, - - { - "title": "Qiskit Functions", - "children": [ - { - "title": "Introduction to Qiskit Functions", - "url": "/docs/guides/functions" - }, - { - "title": "Circuit functions", + "title": "Operator backpropagation (OBP)", "children": [ { - "title": "IBM Circuit function", - "url": "/docs/guides/ibm-circuit-function" + "title": "OBP addon overview", + "url": "/docs/guides/qiskit-addons-obp" }, { - "title": "Algorithmiq Tensor-network error mitigation", - "url": "/docs/guides/algorithmiq-tem" - }, - { - "title": "Q-CTRL Performance Management", - "url": "/docs/guides/q-ctrl-performance-management" - }, - { - "title": "Qedma QESEM", - "url": "/docs/guides/qedma-qesem" + "title": "Get started with OBP", + "url": "/docs/guides/qiskit-addons-obp-get-started" } ] }, { - "title": "Application functions", + "title": "Multi-product formulas (MPF)", "children": [ { - "title": "Kipu Quantum Iskay Quantum Optimizer", - "url": "/docs/guides/kipu-optimization" - }, - { - "title": "Multiverse Computing Singularity", - "url": "/docs/guides/multiverse-computing-singularity" - }, - { - "title": "Q-CTRL Optimization Solver", - "url": "/docs/guides/q-ctrl-optimization-solver" - }, - { - "title": "Quantum Portfolio Optimizer: A Qiskit Function by Global Data Quantum", - "url": "/docs/guides/global-data-quantum-optimizer" - }, - { - "title": "QUICK-PDE: A Qiskit Function by ColibriTD", - "url": "/docs/guides/colibritd-pde" + "title": "MPF addon overview", + "url": "/docs/guides/qiskit-addons-mpf" }, { - "title": "Qunova Computing HI-VQE Chemistry", - "url": "/docs/guides/qunova-chemistry" + "title": "Get started with MPFs", + "url": "/docs/guides/qiskit-addons-mpf-get-started" } ] }, { - "title": "Qiskit Function templates", + "title": "Circuit cutting (CC)", "children": [ { - "title": "Introduction to Qiskit Function templates", - "url": "/docs/guides/qiskit-function-templates" + "title": "Circuit cutting overview", + "url": "/docs/guides/qiskit-addons-cutting" }, { - "title": "Template for chemistry simulation", - "url": "/docs/guides/function-template-chemistry-workflow" + "title": "Get started with gate cuts", + "url": "/docs/guides/qiskit-addons-cutting-gates" }, { - "title": "Template for Hamiltonian simulation", - "url": "/docs/guides/function-template-hamiltonian-simulation" + "title": "Get started with wire cuts", + "url": "/docs/guides/qiskit-addons-cutting-wires" } ] } - ], - "collapsible": false - }, + ] }, { - "title": "Tools", + "title": "Debug", "children": [ { - "title": "Introduction to Qiskit", - "url": "/docs/guides/tools-intro" + "title": "Introduction to debugging tools", + "url": "/docs/guides/debugging-tools" }, { - "title": "Circuits and operators", - "children": [ - { - "title": "Circuit library", - "url": "/docs/guides/circuit-library" - }, - { - "title": "Construct circuits", - "url": "/docs/guides/construct-circuits" - }, - { - "title": "Fractional gates", - "url": "/docs/guides/fractional-gates" - }, - { - "title": "Classical feedforward and control flow", - "url": "/docs/guides/classical-feedforward-and-control-flow" - }, - { - "title": "Deferred timing resolution using stretch", - "url": "/docs/guides/stretch", - "isNew": true, - "isNewDate": "2025-11-06" - }, - { - "title": "Measure qubits", - "url": "/docs/guides/measure-qubits" - }, - { - "title": "Synthesize unitary operators", - "url": "/docs/guides/synthesize-unitary-operators" - }, - { - "title": "Bit-ordering in the Qiskit SDK", - "url": "/docs/guides/bit-ordering" - }, - { - "title": "Save circuits to disk", - "url": "/docs/guides/save-circuits" - }, - { - "title": "Operators module overview", - "url": "/docs/guides/operators-overview" - }, - { - "title": "Specify observables in the Pauli basis", - "url": "/docs/guides/specify-observables-pauli" - }, - { - "title": "The Operator class", - "url": "/docs/guides/operator-class" - }, - { - "title": "Other circuit-building tools", - "children": [ - { - "title": "Pulse schedules", - "url": "/docs/guides/pulse" - }, - { - "title": "OpenQASM", - "children": [ - { - "title": "Intro to OpenQASM", - "url": "/docs/guides/introduction-to-qasm" - }, - { - "title": "OpenQASM 2 and the Qiskit SDK", - "url": "/docs/guides/interoperate-qiskit-qasm2" - }, - { - "title": "OpenQASM 3 and the Qiskit SDK", - "url": "/docs/guides/interoperate-qiskit-qasm3" - }, - { - "title": "OpenQASM 3 feature table", - "url": "/docs/guides/qasm-feature-table" - }, - { - "title": "OpenQASM 3.x live specification", - "url": "https://openqasm.com/" - } - ] - } - ] - } - ] + "title": "Exact simulation with Qiskit SDK primitives", + "url": "/docs/guides/simulate-with-qiskit-sdk-primitives" }, { - "title": "Transpiler", - "children": [ - { - "title": "Introduction to transpilation", - "url": "/docs/guides/transpile" - }, - { - "title": "Transpiler stages", - "url": "/docs/guides/transpiler-stages" - }, - { - "title": "Transpile with pass managers", - "url": "/docs/guides/transpile-with-pass-managers" - }, - { - "title": "Create a pass manager for dynamical decoupling", - "url": "/docs/guides/dynamical-decoupling-pass-manager" - }, - { - "title": "Configure preset pass managers", - "children": [ - { - "title": "Default settings and configuration options", - "url": "/docs/guides/defaults-and-configuration-options" - }, - { - "title": "Set optimization level", - "url": "/docs/guides/set-optimization" - }, - { - "title": "Commonly used parameters for transpilation", - "url": "/docs/guides/common-parameters" - }, - { - "title": "Represent quantum computers", - "url": "/docs/guides/represent-quantum-computers" - } - ] - }, - { - "title": "Qiskit Transpiler Service", - "children": [ - { - "title": "Transpile circuits remotely with the Qiskit Transpiler Service", - "url": "/docs/guides/qiskit-transpiler-service" - }, - { - "title": "AI transpiler passes", - "url": "/docs/guides/ai-transpiler-passes" - } - ] - }, - { - "title": "Advanced transpilation resources", - "children": [ - { - "title": "Write a custom transpiler pass", - "url": "/docs/guides/custom-transpiler-pass" - }, - { - "title": "Transpile against custom backends", - "url": "/docs/guides/custom-backend" - }, - { - "title": "Install and use transpiler plugins", - "url": "/docs/guides/transpiler-plugins" - }, - { - "title": "Create a transpiler plugin", - "url": "/docs/guides/create-transpiler-plugin" - }, - { - "title": "Work with DAGs in transpiler passes", - "url": "/docs/guides/DAG-representation" - } - ] - } - ] + "title": "Exact and noisy simulation with Qiskit Aer primitives", + "url": "/docs/guides/simulate-with-qiskit-aer" }, { - "title": "Debugging tools", - "children": [ - { - "title": "Introduction to debugging tools", - "url": "/docs/guides/debugging-tools" - }, - { - "title": "Exact simulation with Qiskit SDK primitives", - "url": "/docs/guides/simulate-with-qiskit-sdk-primitives" - }, - { - "title": "Exact and noisy simulation with Qiskit Aer primitives", - "url": "/docs/guides/simulate-with-qiskit-aer" - }, + "title": "Qiskit Runtime local testing mode", + "url": "/docs/guides/local-testing-mode" + }, + { + "title": "Debug Qiskit Runtime jobs", + "url": "/docs/guides/debug-qiskit-runtime-jobs" + }, + { + "title": "Build noise models", + "url": "/docs/guides/build-noise-models" + }, + { + "title": "Efficient simulation of stabilizer circuits with Qiskit Aer primitives", + "url": "/docs/guides/simulate-stabilizer-circuits" + }, + { + "title": "Visualization", + "children":[ { - "title": "Qiskit Runtime local testing mode", - "url": "/docs/guides/local-testing-mode" + "title": "Visualize circuits", + "url": "/docs/guides/visualize-circuits" }, { - "title": "Debug Qiskit Runtime jobs", - "url": "/docs/guides/debug-qiskit-runtime-jobs" + "title": "Visualize circuit timing", + "url": "/docs/guides/visualize-circuit-timing" }, { - "title": "Build noise models", - "url": "/docs/guides/build-noise-models" + "title": "Plot quantum states", + "url": "/docs/guides/plot-quantum-states" }, { - "title": "Efficient simulation of stabilizer circuits with Qiskit Aer primitives", - "url": "/docs/guides/simulate-stabilizer-circuits" + "title": "Visualize results", + "url": "/docs/guides/visualize-results" } ] - }, + } + ] }, + { + "title": "Execute on hardware", + "children": [ { "title": "Primitives", "children": [ @@ -516,15 +391,9 @@ "title": "Primitives with REST API", "url": "/docs/guides/primitives-rest-api" }, - { - "title": "Noise learning", - "url": "/docs/guides/noise-learning" - }, { "title": "Directed execution model (beta)", - "url": "/docs/guides/directed-execution-model", - "isNew": true, - "isNewDate": "2025-11-06" + "url": "/docs/guides/directed-execution-model" }, { "title": "Introduction to options", @@ -533,18 +402,6 @@ { "title": "Specify options", "url": "/docs/guides/specify-runtime-options" - }, - { - "title": "Error mitigation and suppression techniques", - "url": "/docs/guides/error-mitigation-and-suppression-techniques" - }, - { - "title": "Configure error mitigation", - "url": "/docs/guides/configure-error-mitigation" - }, - { - "title": "Configure error suppression", - "url": "/docs/guides/configure-error-suppression" } ] }, @@ -570,72 +427,153 @@ { "title": "Execution modes using REST API", "url": "/docs/guides/execution-modes-rest-api" + }, + { + "title": "Execution modes FAQ", + "url": "/docs/guides/execution-modes-faq" } ] }, { - "title": "Manage jobs", - "children": [ - { - "title": "Monitor or cancel a job", - "url": "/docs/guides/monitor-job" - }, + "title": "Organize and search by job tags", + "url": "/docs/guides/add-job-tags" + }, + { + "title": "Retrieve and save job results", + "url": "/docs/guides/save-jobs" + }, + { + "title": "Fair-share scheduler", + "url": "/docs/guides/fair-share-scheduler" + } + ] }, + { + "title": "Noise management", + "children": [ + { + "title": "Noise learning", + "url": "/docs/guides/noise-learning" + }, + { + "title": "Directed execution model (beta)", + "url": "/docs/guides/directed-execution-model" + }, + { + "title": "Error mitigation and suppression techniques", + "url": "/docs/guides/error-mitigation-and-suppression-techniques" + }, + { + "title": "Configure error mitigation", + "url": "/docs/guides/configure-error-mitigation" + }, + { + "title": "Configure error suppression", + "url": "/docs/guides/configure-error-suppression" + }, + { + "title": "Get started with SQD", + "url": "/docs/guides/qiskit-addons-sqd-get-started" + }, + { + "title": "Mthree (M3)", + "url": "https://qiskit.github.io/qiskit-addon-mthree/" + }, + { + "title": "Propagated noise absorption (PNA)", + "url": "https://qiskit.github.io/qiskit-addon-pna/" + }, + { + "title": "S lightcones (SLC)", + "url": "https://qiskit.github.io/qiskit-addon-slc/" + } + ] }, + { + "title": "IBM Quantum Platform", + "children": [ + { + "title": "Account setup", + "children":[ { - "title": "Workload usage", - "url": "/docs/guides/estimate-job-run-time" + "title": "Set up your account", + "url": "/docs/guides/cloud-setup" }, { - "title": "Minimize job run time", - "url": "/docs/guides/minimize-time" + "title": "Set up your account - invited users", + "url": "/docs/guides/cloud-setup-invited" }, { - "title": "Maximum execution time", - "url": "/docs/guides/max-execution-time" - }, + "title": "Set up to use IBM Quantum Platform with REST API", + "url": "/docs/guides/cloud-setup-rest-api" + } + ] + }, + { + "title": "Authenticate", + "children":[ { - "title": "Job limits", - "url": "/docs/guides/job-limits" + "title": "Initialize your Qiskit Runtime service account", + "url": "/docs/guides/initialize-account" }, { - "title": "Organize and search by job tags", - "url": "/docs/guides/add-job-tags" + "title": "Save your login credentials", + "url": "/docs/guides/save-credentials" }, { - "title": "Retrieve and save job results", - "url": "/docs/guides/save-jobs" + "title": "Authenticate in an untrusted environment", + "url": "/docs/guides/cloud-setup-untrusted" } ] }, { - "title": "IBM quantum computers", + "title": "Administrative tasks", "children": [ { - "title": "Processor types", - "url": "/docs/guides/processor-types" + "title": "Setup considerations", + "url": "/docs/guides/considerations-set-up-runtime" + }, + { + "title": "Configure IBM Quantum Platform", + "url": "/docs/guides/quickstart-steps-org" + }, + { + "title": "Cloud account structure", + "url": "/docs/guides/cloud-account-structure" + }, + { + "title": "Create access groups and policies", + "url": "/docs/guides/access-groups" + }, + { + "title": "Set up custom roles", + "url": "/docs/guides/custom-roles" + }, + { + "title": "Invite users and manage access", + "url": "/docs/guides/invite-and-manage-users" }, { - "title": "QPU information", - "url": "/docs/guides/qpu-information" + "title": "Manage ID provider users", + "url": "/docs/guides/manage-appid" }, { - "title": "Get backend information with Qiskit", - "url": "/docs/guides/get-qpu-information" + "title": "Manage IBM Cloud users", + "url": "/docs/guides/manage-cloud-users" }, { - "title": "Calibration jobs", - "url": "/docs/guides/calibration-jobs" + "title": "Cloud account structure", + "url": "/docs/guides/cloud-account-structure" }, { - "title": "Qubit initialization", - "url": "/docs/guides/repetition-rate-execution" + "title": "Create access groups and policies", + "url": "/docs/guides/access-groups" }, { - "title": "Retired cloud QPUs", - "url": "/docs/guides/retired-qpus" + "title": "Set up custom roles", + "url": "/docs/guides/custom-roles" }, { - "title": "Fair-share scheduler", - "url": "/docs/guides/fair-share-scheduler" + "title": "Manage cost on the Pay-As-You-Go Plan", + "url": "/docs/guides/manage-cost" }, { "title": "View cost", @@ -644,136 +582,143 @@ ] }, { - "title": "Visualization", + "title": "IBM Quantum plans", "children": [ { - "title": "Visualize circuits", - "url": "/docs/guides/visualize-circuits" + "title": "Overview of plans", + "url": "/docs/guides/plans-overview" }, { - "title": "Visualize circuit timing", - "url": "/docs/guides/visualize-circuit-timing" + "title": "Upgrade from the Open Plan", + "url": "/docs/guides/upgrade-from-open" + } + ] + }, + { + "title": "Work with instances", + "children": [ + { + "title": "Create and manage instances", + "url": "/docs/guides/instances" }, { - "title": "Plot quantum states", - "url": "/docs/guides/plot-quantum-states" + "title": "Set allocation limits", + "url": "/docs/guides/allocation-limits" }, { - "title": "Visualize results", - "url": "/docs/guides/visualize-results" + "title": "Use IBM Cloud Platform APIs to access instances", + "url": "/docs/guides/access-instances-platform-apis" + } + ] + } + ] }, + { + "title": "Qiskit Functions", + "children": [ + { + "title": "Circuit functions", + "children": [ + { + "title": "IBM Circuit function", + "url": "/docs/guides/ibm-circuit-function" + }, + { + "title": "Algorithmiq Tensor-network error mitigation", + "url": "/docs/guides/algorithmiq-tem" }, { - "title": "IBM Quantum Composer", - "url": "/docs/guides/composer" + "title": "Q-CTRL Performance Management", + "url": "/docs/guides/q-ctrl-performance-management" + }, + { + "title": "Qedma QESEM", + "url": "/docs/guides/qedma-qesem" } ] }, { - "title": "Qiskit Serverless", + "title": "Application functions", "children": [ { - "title": "Qiskit Serverless overview", - "url": "/docs/guides/serverless" + "title": "Kipu Quantum Iskay Quantum Optimizer", + "url": "/docs/guides/kipu-optimization" }, { - "title": "Write your first Qiskit Serverless program", - "url": "/docs/guides/serverless-first-program" + "title": "Multiverse Computing Singularity", + "url": "/docs/guides/multiverse-computing-singularity" }, { - "title": "Run your first Qiskit Serverless workload remotely", - "url": "/docs/guides/serverless-run-first-workload" + "title": "Q-CTRL Optimization Solver", + "url": "/docs/guides/q-ctrl-optimization-solver" }, { - "title": "Manage Qiskit Serverless compute and data resources", - "url": "/docs/guides/serverless-manage-resources" + "title": "Quantum Portfolio Optimizer: A Qiskit Function by Global Data Quantum", + "url": "/docs/guides/global-data-quantum-optimizer" }, { - "title": "Port code to Qiskit Serverless", - "url": "/docs/guides/serverless-port-code" + "title": "QUICK-PDE: A Qiskit Function by ColibriTD", + "url": "/docs/guides/colibritd-pde" + }, + { + "title": "Qunova Computing HI-VQE Chemistry", + "url": "/docs/guides/qunova-chemistry" } ] }, { - "title": "Qiskit addons", + "title": "Qiskit Function templates", "children": [ { - "title": "Qiskit addons overview", - "url": "/docs/guides/addons" + "title": "Introduction to Qiskit Function templates", + "url": "/docs/guides/qiskit-function-templates" }, { - "title": "Qiskit addon utilities", - "url": "/docs/guides/qiskit-addons-utils" + "title": "Template for chemistry simulation", + "url": "/docs/guides/function-template-chemistry-workflow" }, { - "title": "Sample-based quantum diagonalization (SQD)", - "children": [ - { - "title": "SQD addon overview", - "url": "/docs/guides/qiskit-addons-sqd" - }, - { - "title": "Get started with SQD", - "url": "/docs/guides/qiskit-addons-sqd-get-started" - } - ] + "title": "Template for Hamiltonian simulation", + "url": "/docs/guides/function-template-hamiltonian-simulation" + } + ] + } + ] }, + { + "title": "Integrations", + "children": [ + { + "title": "Qiskit Serverless", + "children": [ + { + "title": "Qiskit Serverless overview", + "url": "/docs/guides/serverless" }, { - "title": "Approximate quantum compilation (AQC-Tensor)", - "children": [ - { - "title": "AQC-Tensor addon overview", - "url": "/docs/guides/qiskit-addons-aqc" - }, - { - "title": "Get started with AQC-Tensor", - "url": "/docs/guides/qiskit-addons-aqc-get-started" - } - ] + "title": "Write your first Qiskit Serverless program", + "url": "/docs/guides/serverless-first-program" }, { - "title": "Operator backpropagation (OBP)", - "children": [ - { - "title": "OBP addon overview", - "url": "/docs/guides/qiskit-addons-obp" - }, - { - "title": "Get started with OBP", - "url": "/docs/guides/qiskit-addons-obp-get-started" - } - ] + "title": "Run your first Qiskit Serverless workload remotely", + "url": "/docs/guides/serverless-run-first-workload" }, { - "title": "Multi-product formulas (MPF)", - "children": [ - { - "title": "MPF addon overview", - "url": "/docs/guides/qiskit-addons-mpf" - }, - { - "title": "Get started with MPFs", - "url": "/docs/guides/qiskit-addons-mpf-get-started" - } - ] + "title": "Manage Qiskit Serverless compute and data resources", + "url": "/docs/guides/serverless-manage-resources" }, { - "title": "Circuit cutting (CC)", - "children": [ - { - "title": "Circuit cutting overview", - "url": "/docs/guides/qiskit-addons-cutting" - }, - { - "title": "Get started with gate cuts", - "url": "/docs/guides/qiskit-addons-cutting-gates" - }, - { - "title": "Get started with wire cuts", - "url": "/docs/guides/qiskit-addons-cutting-wires" - } - ] + "title": "Port code to Qiskit Serverless", + "url": "/docs/guides/serverless-port-code" } ] + } + ] + }, + { + "title": "Additional resources", + "children": [ + { + "title": "Retired cloud QPUs", + "url": "/docs/guides/retired-qpus" }, { "title": "Qiskit Code Assistant", @@ -799,14 +744,7 @@ "url": "/docs/guides/qiskit-code-assistant-openai-api" } ] - } - ], - "collapsible": false - }, - { - "title": "Additional resources", - "collapsible": false, - "children": [ + }, { "title": "Support and FAQ", "children": [ @@ -817,10 +755,6 @@ { "title": "Frequently-asked questions", "url": "/docs/guides/faq" - }, - { - "title": "Execution modes FAQ", - "url": "/docs/guides/execution-modes-faq" } ] }, @@ -925,8 +859,11 @@ "url": "https://www.ibm.com/quantum/ecosystem" } ] + }, + { + "title": "Logging", + "url": "/docs/guides/logging" } - ] - } + ] } ] -} +} \ No newline at end of file From 2a79734ab8d1c7b57bf9efdd13fd22ac566e130e Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 13 Nov 2025 12:24:52 -0500 Subject: [PATCH 02/82] typo and add utilities addon --- docs/guides/_toc.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 7017bf9c7cf..714eeb37310 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -483,7 +483,7 @@ "url": "https://qiskit.github.io/qiskit-addon-pna/" }, { - "title": "S lightcones (SLC)", + "title": "Shaded lightcones (SLC)", "url": "https://qiskit.github.io/qiskit-addon-slc/" } ] }, @@ -716,6 +716,10 @@ { "title": "Additional resources", "children": [ + { + "title": "Qiskit addon utilities", + "url": "/docs/guides/qiskit-addons-utils" + }, { "title": "Retired cloud QPUs", "url": "/docs/guides/retired-qpus" From 701c3a8d02cc7501f256ba7af6c6cce9b204e19d Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 13 Nov 2025 16:08:38 -0500 Subject: [PATCH 03/82] Add HPC-ready SQD --- docs/guides/_toc.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 714eeb37310..a7973a98159 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -474,6 +474,10 @@ "title": "Get started with SQD", "url": "/docs/guides/qiskit-addons-sqd-get-started" }, + { + "title": "SQD (HPC-ready)", + "url": "https://qiskit.github.io/qiskit-addon-sqd-hpc/" + }, { "title": "Mthree (M3)", "url": "https://qiskit.github.io/qiskit-addon-mthree/" From c37efd8d7cbc6e721b639c639ebfec3c896d795d Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 13 Nov 2025 16:41:51 -0500 Subject: [PATCH 04/82] leave get started open --- docs/guides/_toc.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index a7973a98159..c132b13004e 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -59,7 +59,9 @@ "title": "Latest updates", "url": "/docs/guides/latest-updates" } - ] }, + ], + "collapsible": false + }, { "title": "Tools overviews", "children": [ From b9b6bf83150b8d6f35e2a358c7edad59c4c06d9f Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 14 Nov 2025 13:25:57 -0500 Subject: [PATCH 05/82] Bring in IBM hardware stuff --- docs/guides/_toc.json | 55 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index c132b13004e..baf07d3b903 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -448,7 +448,8 @@ "title": "Fair-share scheduler", "url": "/docs/guides/fair-share-scheduler" } - ] }, + ] + }, { "title": "Noise management", "children": [ @@ -492,7 +493,8 @@ "title": "Shaded lightcones (SLC)", "url": "https://qiskit.github.io/qiskit-addon-slc/" } - ] }, + ] + }, { "title": "IBM Quantum Platform", "children": [ @@ -616,8 +618,51 @@ "url": "/docs/guides/access-instances-platform-apis" } ] + }, + { + "title": "Work with instances", + "children": [ + { + "title": "Create and manage instances", + "url": "/docs/guides/instances" + }, + { + "title": "Set allocation limits", + "url": "/docs/guides/allocation-limits" + }, + { + "title": "Use IBM Cloud Platform APIs to access instances", + "url": "/docs/guides/access-instances-platform-apis" + } + ] + }, + { + "title": "IBM quantum computers", + "children": [ + { + "title": "Processor types", + "url": "/docs/guides/processor-types" + }, + { + "title": "QPU information", + "url": "/docs/guides/qpu-information" + }, + { + "title": "Get backend information with Qiskit", + "url": "/docs/guides/get-qpu-information" + }, + { + "title": "Calibration jobs", + "url": "/docs/guides/calibration-jobs" + }, + { + "title": "Retired cloud QPUs", + "url": "/docs/guides/retired-qpus" + } + ] } - ] }, + ] + }, { "title": "Qiskit Functions", "children": [ @@ -726,10 +771,6 @@ "title": "Qiskit addon utilities", "url": "/docs/guides/qiskit-addons-utils" }, - { - "title": "Retired cloud QPUs", - "url": "/docs/guides/retired-qpus" - }, { "title": "Qiskit Code Assistant", "children": [ From 3fc29107b5d0e345f597a2b4b5d8d64081a63617 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 14 Nov 2025 13:40:08 -0500 Subject: [PATCH 06/82] Update where they go --- docs/guides/_toc.json | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index baf07d3b903..a8287e1254a 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -447,6 +447,10 @@ { "title": "Fair-share scheduler", "url": "/docs/guides/fair-share-scheduler" + }, + { + "title": "Get backend information with Qiskit", + "url": "/docs/guides/get-qpu-information" } ] }, @@ -647,14 +651,6 @@ "title": "QPU information", "url": "/docs/guides/qpu-information" }, - { - "title": "Get backend information with Qiskit", - "url": "/docs/guides/get-qpu-information" - }, - { - "title": "Calibration jobs", - "url": "/docs/guides/calibration-jobs" - }, { "title": "Retired cloud QPUs", "url": "/docs/guides/retired-qpus" From bebdf6e9b9dd4bc36a8b11b4d356b677318ebb1b Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 18 Nov 2025 09:44:57 -0500 Subject: [PATCH 07/82] tools by task example --- docs/guides/index.mdx | 89 ++++++++++++++++++++++++++----------------- 1 file changed, 54 insertions(+), 35 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index d34e689e408..735fef74f55 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -7,14 +7,11 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more ## Introduction to Qiskit and IBM Quantum -Welcome to the documentation for Qiskit, its related packages, and IBM Quantum® Platform. This documentation includes how-to guides to get you started on our tools, specific use-case tutorials that include end-to-end examples, and a collection of API references. +Find how-to guides, specific use-case tutorials, and API references for your quantum research and development. Use Qiskit and its related packages and tools to build, optimize, and execute workflows on the IBM® fleet of quantum computers. -Qiskit provides a modular and extensible framework for quantum research and development across algorithms, high-performance computing, and quantum information science. With it, researchers can build, optimize, and execute quantum workflows with specialized addons, software tools, and extensive resources. Through IBM Quantum Platform, users can access Quantum Compute services, such as Qiskit Runtime and the Qiskit Functions Catalog, to run workloads efficiently on the IBM® fleet of quantum computers. ![A graphic showing the different components of IBM Quantum Platform and Qiskit.](/docs/images/guides/index/overview-image.svg) -Beyond Qiskit and its related packages is the [Qiskit ecosystem](https://www.ibm.com/quantum/ecosystem), a catalog of open-source projects that interface with Qiskit to extend its functionality. - ## Get started -## Explore capabilities +## Tools by task + +### Map circuits + + + + +### Prepare and optimize quantum workloads + + + From dfae731b486dcb680cb5ffc63add30a42e0d975d Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 20 Nov 2025 10:22:27 -0500 Subject: [PATCH 08/82] table example --- docs/guides/index.mdx | 73 ++++++------------------------------------- 1 file changed, 9 insertions(+), 64 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index 735fef74f55..afbf8d478ac 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -34,75 +34,20 @@ Find how-to guides, specific use-case tutorials, and API references for your qua ## Tools by task ### Map circuits - - - - - - - - +| Tool | Description | Links | +| --- | --- | --- | +| AQC-Tensor | A Qiskit addon for building time evolution circuits |
  • • [Overview page](/docs/guides/qiskit-addons-aqc)
  • • [Get started with AQC-Tensor](/docs/guides/qiskit-addons-aqc-get-started)
  • • [Tutorial](/docs/tutorials/approximate-quantum-compilation-for-time-evolution)
| +| Qiskit Circuit library | The standard library of gates and circuit instructions |
    • [Overview](/docs/guides/circuit-library)
  • • [API reference](/docs/api/qiskit/circuit_library)
  • • [Fractional gates](/docs/guides/fractional-gates)
  • • [Synthesize unitary operators](/docs/guides/synthesize-unitary-operators)
| +| Optimization mapper | A Qiskit addon for mapping optimization problems to circuits and operators |
  • • [Documentation](https://qiskit.github.io/qiskit-addon-opt-mapper/)
  • • [GitHub repository](https://github.com/qiskit/qiskit-addon-opt-mapper)
| +| Quantum optimization best practices | A collection of guidelines to run quantum optimization workloads |
  • • [GitHub repository](https://github.com/qiskit-community/qopt-best-practices)
  • • [QAOA training pipeline](https://github.com/qiskit-community/qaoa_training_pipeline)
| ### Prepare and optimize quantum workloads - - - - +| Tool | Description | Links | +| --- | --- | --- | +| Transpiler |
  • • [Introduction to transpilation](/docs/guides/transpile)
  • • [Write custom passes](/docs/guides/custom-transpiler-pass)
  • • [Use transpiler plugins](/docs/guides/transpiler-plugins)
  • • [Configure preset pass managers](/docs/guides/defaults-and-configuration-options)
  • • [Qubit selection tutorial](/docs/tutorials/real-time-benchmarking-for-qubit-selection)
| Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing | - - - -
## Support From a7b4710944a711e825348587aac43423b38bf923 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 26 Nov 2025 15:31:45 -0500 Subject: [PATCH 09/82] Update _toc.json --- docs/guides/_toc.json | 86 +++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index c75d172752a..c40a2542c80 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -43,11 +43,6 @@ { "title": "Extend Qiskit in Python with C", "url": "/docs/guides/c-extension-for-python" - }, - - { - "title": "Online lab environments", - "url": "/docs/guides/online-lab-environments" } ] }, @@ -316,7 +311,8 @@ } ] } - ] }, + ] + }, { "title": "Debug", "children": [ @@ -369,7 +365,8 @@ } ] } - ] }, + ] + }, { "title": "Execute on hardware", "children": [ @@ -458,8 +455,12 @@ ] }, { - "title": "Noise management", + "title": "Manage noise", "children": [ + { + "title": "Tools to manage noise (UPDATE WHEN NEW PAGE IS MERGED)", + "url": "https://github.com/Qiskit/documentation/blob/bb673fb318a8e9539b67ec92d9de6948849ed727/docs/guides/tools-manage-noise.mdx" + }, { "title": "Noise learning", "url": "/docs/guides/noise-learning" @@ -732,7 +733,8 @@ } ] } - ] }, + ] + }, { "title": "Integrations", "children": [ @@ -770,6 +772,10 @@ "title": "Qiskit addon utilities", "url": "/docs/guides/qiskit-addons-utils" }, + { + "title": "Online lab environments", + "url": "/docs/guides/online-lab-environments" + }, { "title": "Qiskit Code Assistant", "children": [ @@ -913,38 +919,38 @@ { "title": "Logging", "url": "/docs/guides/logging" - } - ] } - "title": "Security and compliance", - "collapsed": true, - "children": [ - { - "title": "Securing your data", - "url": "/docs/guides/secure-data" - }, - { - "title": "Understanding your responsibilities when using Qiskit Runtime", - "url": "/docs/guides/responsibilities" - }, - { - "title": "Use virtual private endpoints for VPC", - "url": "/docs/guides/virtual-private-endpoints" - }, + }, + { + "title": "Security and compliance", + "collapsed": true, + "children": [ + { + "title": "Securing your data", + "url": "/docs/guides/secure-data" + }, + { + "title": "Understanding your responsibilities when using Qiskit Runtime", + "url": "/docs/guides/responsibilities" + }, + { + "title": "Use virtual private endpoints for VPC", + "url": "/docs/guides/virtual-private-endpoints" + }, - { - "title": "High availability and disaster recovery", - "url": "/docs/guides/ha-dr" - }, - { - "title": "Activity tracking events for Qiskit Runtime", - "url": "/docs/guides/observability" - }, - { - "title": "Protecting Qiskit Runtime Service resources with context-based restrictions", - "url": "/docs/guides/context-based-restrictions" - } - ] - } + { + "title": "High availability and disaster recovery", + "url": "/docs/guides/ha-dr" + }, + { + "title": "Activity tracking events for Qiskit Runtime", + "url": "/docs/guides/observability" + }, + { + "title": "Protecting Qiskit Runtime Service resources with context-based restrictions", + "url": "/docs/guides/context-based-restrictions" + } + ] + } ] } ] From 37ea617667b51f4b5efa04626dfdaec8958fcd18 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 26 Nov 2025 15:36:45 -0500 Subject: [PATCH 10/82] update to advanced install --- docs/guides/_toc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index c40a2542c80..5f50d3668ac 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -22,7 +22,7 @@ "url": "https://github.com/qiskit-community/qdc-challenges-2025/blob/main/challenges_cheat_sheet.md" }, { - "title": "Install", + "title": "Advanced install", "children": [ { "title": "Install Qiskit", From 9f9019e674d2f694b43405444943bde2e87ad149 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 26 Nov 2025 15:56:14 -0500 Subject: [PATCH 11/82] radical new approach --- docs/guides/_toc.json | 10 +- docs/guides/index.mdx | 59 +++++-- docs/guides/tool-index.mdx | 353 +++++++++++++++++++++++++++++++++++++ 3 files changed, 407 insertions(+), 15 deletions(-) create mode 100644 docs/guides/tool-index.mdx diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 5f50d3668ac..185b8ecd174 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -18,8 +18,8 @@ "url": "/docs/tutorials/hello-world" }, { - "title": "Tools index", - "url": "https://github.com/qiskit-community/qdc-challenges-2025/blob/main/challenges_cheat_sheet.md" + "title": "Tools index by task", + "url": "/docs/guides/tool-index" }, { "title": "Advanced install", @@ -58,12 +58,16 @@ "collapsible": false }, { - "title": "Tools overviews", + "title": "About IBM Quantum tools", "children": [ { "title": "Qiskit overview", "url": "/docs/guides/tools-intro" }, + { + "title": "Qiskit Runtime overview (PLACEHOLDER)", + "url": "https://quantum.cloud.ibm.com/docs/en/guides/tools-intro#qiskit-runtime" + }, { "title": "Qiskit Functions overview", "url": "/docs/guides/functions" diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index afbf8d478ac..fa791beb4d9 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -33,20 +33,55 @@ Find how-to guides, specific use-case tutorials, and API references for your qua ## Tools by task -### Map circuits +### Tools for mapping -| Tool | Description | Links | -| --- | --- | --- | -| AQC-Tensor | A Qiskit addon for building time evolution circuits |
  • • [Overview page](/docs/guides/qiskit-addons-aqc)
  • • [Get started with AQC-Tensor](/docs/guides/qiskit-addons-aqc-get-started)
  • • [Tutorial](/docs/tutorials/approximate-quantum-compilation-for-time-evolution)
| -| Qiskit Circuit library | The standard library of gates and circuit instructions |
    • [Overview](/docs/guides/circuit-library)
  • • [API reference](/docs/api/qiskit/circuit_library)
  • • [Fractional gates](/docs/guides/fractional-gates)
  • • [Synthesize unitary operators](/docs/guides/synthesize-unitary-operators)
| -| Optimization mapper | A Qiskit addon for mapping optimization problems to circuits and operators |
  • • [Documentation](https://qiskit.github.io/qiskit-addon-opt-mapper/)
  • • [GitHub repository](https://github.com/qiskit/qiskit-addon-opt-mapper)
| -| Quantum optimization best practices | A collection of guidelines to run quantum optimization workloads |
  • • [GitHub repository](https://github.com/qiskit-community/qopt-best-practices)
  • • [QAOA training pipeline](https://github.com/qiskit-community/qaoa_training_pipeline)
| +- [*AQC-Tensor*](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits +- [*Qiskit Circuit Library*](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK’s standard library of gates and circuit instructions +- [*Optimization Mapper*](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators +- [*Quantum Optimization Best Practices*](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads -### Prepare and optimize quantum workloads +### [2. Tools for Preparing & Optimizing Quantum Workloads](/docs/guides/tool-index#tools-for-preparing--optimizing-quantum-workloads) -| Tool | Description | Links | -| --- | --- | --- | -| Transpiler |
  • • [Introduction to transpilation](/docs/guides/transpile)
  • • [Write custom passes](/docs/guides/custom-transpiler-pass)
  • • [Use transpiler plugins](/docs/guides/transpiler-plugins)
  • • [Configure preset pass managers](/docs/guides/defaults-and-configuration-options)
  • • [Qubit selection tutorial](/docs/tutorials/real-time-benchmarking-for-qubit-selection)
| Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing | +- [*Transpiler*](/docs/guides/tool-index#transpiler) - Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing +- [*Dynamic Circuits*](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long range entanglement and state preparation, at constant depth +- [*Dynamical Decoupling*](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits +- [*Operator Backpropagation*](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements + +### [3. Tools for Debugging & Validating Workloads](/docs/guides/tool-index#tools-for-debugging-and-validating-workloads) + +- [*Noisy Estimator Analyzer Tool*](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads +- [*Local Testing Mode*](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance + + +### [4. Tools for Executing Workloads](/docs/guides/tool-index#4-tools-for-executing-workloads) +- [*Estimator & Sampler Primitives*](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support +- [*Execution Modes*](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution +- [*Executor Primitive*](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on input samplex directive + +### [5. Tools for Error Mitigation](/docs/guides/tool-index#tools-for-error-mitigation) + +- [*Samplomatic*](/docs/guides/tool-index#samplomatic) - Fine tune error mitigation in specific circuit regions +- [*Noise Learner*](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA +- [*Pauli Twirling*](/docs/guides/tool-index#pauli-twirling) - Covert coherent noise to better characterized stochastic noise +- [*Matrix-Free Measurement Mitigation*](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors +- [*Probabilistic Error Cancellation*](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead +- [*Zero Noise Extrapolation*](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values +- [*Twirled Readout Error Extinction*](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Reduce measurement error via twirling +- [*Propagated Noise Absorption*](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable +- [*Shaded Light Cones*](/docs/guides/tool-index#shaded-light-cones) - Reduce the overhead of PEC error mitigation + +### [6. Tools for Post-Processing](/docs/guides/tool-index#tools-for-post-processing) + +- [*Sample Based Quantum Diagonalization*](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads +- [*Multi-Product Formulas*](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution +- [*Measurement Post-Selection*](/docs/guides/tool-index#measurement-post-selection) - Refine samples by post-selecting known “bad” bitstrings + + +### [7. Qiskit Functions](/docs/guides/tool-index#qiskit-functions-pre-built-workflows-to-speed-up-applications-research) +- [*Algorithmiq Tensor-Network Error Mitigation Function*](/docs/guides/tool-index#algorithmiq-tensor-network-error-mitigation-function) +- [*Q-CTRL Performance Management Function*](/docs/guides/tool-index#q-ctrl-performance-management-function) +- [*QEDMA Qiskit Function QESEM*](/docs/guides/tool-index#qedma-qiskit-function-qesem) +- [*Q-CTRL Optimization Solver*](/docs/guides/tool-index#q-ctrl-optimization-solver) ## Support @@ -66,4 +101,4 @@ Find how-to guides, specific use-case tutorials, and API references for your qua analyticsName="Overview page: Support page" linkText="Get help" /> -
+ \ No newline at end of file diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx new file mode 100644 index 00000000000..e254427d1a0 --- /dev/null +++ b/docs/guides/tool-index.mdx @@ -0,0 +1,353 @@ +--- +title: Tools index by task +description: Find resources relevant to your work, organized by task. +--- + +# Tools index by task + +## Tools Related to Mapping + +### AQC-Tensor + +AQC-Tensor is a Qiskit addon which uses tensor network methods to compile the initial portion of a circuit into a nearly equivalent approximation, with much fewer layers. This addon will likely be most useful for the challenges that simulate the time evolution of a quantum system, but may also be useful for circuits which have: + +A great intermediate state which can be achieved by tensor-network simulation + +A good circuit that prepares an approximation to the target state, but with fewer layers when compiled to the target hardware device. + +*Relevant docs links:* + +- [Overview page](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc) +- [Getting started with AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc-get-started) +- [Tutorial featuring AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/tutorials/approximate-quantum-compilation-for-time-evolution) + +### Qiskit Circuit Library + +The Qiskit SDK’s circuit library will be your go-to place for constructing circuits and beginning the process of building your workloads for the challenges. There is a wide berth of features here, from standard single-/multi-qubit gates to pre-built ansatze, and even custom unitary gates. We also recommend using fractional gates when circuits have many parameters with relatively small angles. + +*Relevant docs links:* + +- [Circuit library overview](https://quantum.cloud.ibm.com/docs/en/guides/circuit-library) +- [Circuit library API reference](https://quantum.cloud.ibm.com/docs/en/api/qiskit/circuit_library) +- [Fractional gates](https://quantum.cloud.ibm.com/docs/en/guides/fractional-gates) +- [Synthesizing custom unitary operators](https://quantum.cloud.ibm.com/docs/en/guides/synthesize-unitary-operators) + +### Optimization Mapper + +Optimization mapper is a Qiskit addon that contains functionality to model optimization problems. For example, it contains functions for creating model of binary optimization problems to solve with Qiskit. + +*Relevant docs links:* + +- [Optimization mapper documentation page](https://qiskit.github.io/qiskit-addon-opt-mapper/) +- [qiskit-addon-opt-mapper Github repo](https://github.com/qiskit/qiskit-addon-opt-mapper) + +### Quantum Optimization Best Practices + +A community repository full of guidelines, best practices, and reference implementations for running quantum optimization algorithms. While they are not feature-complete, they are a helpful way to get started in building quantum workloads to solve optimization problems. There is also a repo which hosts a reference QAOA pipeline. + +*Relevant links:* + +- [Github repository for quantum optimization](https://github.com/qiskit-community/qopt-best-practices) +- [QAOA Training Pipeline](https://github.com/qiskit-community/qaoa_training_pipeline) + +### Device Benchmarking + +Qiskit Device Benchmarking is a respository for code to run various device level benchmarks through Qiskit. It is not intended to define a benchmark standard, but instead provides code examples replicate benchmarking metrics that have been reported in literature or elsewhere. + +*Relevant links:* + +- [Qiskit Device Benchmarking repository](https://github.com/qiskit-community/qiskit-device-benchmarking) +- [Benchmarking notebooks](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/README.md) + +## Tools for Preparing & Optimizing Quantum Workloads + +### Transpiler + +Once your circuits have been created, they then need to be transpiled against the QPU you will be executing on. The Qiskit SDK has robust tooling for building custom transpilation pipelines that allow you to carefully tune which transformation and analysis passes are executed (and in which sequence). But the simplest way to get started is to just use the pre-build pass managers. + +*Relevant docs links:* + +- [Introduction to transpilation](https://quantum.cloud.ibm.com/docs/en/guides/transpile) +- [Write custom transpilation passes](https://quantum.cloud.ibm.com/docs/en/guides/custom-transpiler-pass) +- [Utilize transpiler plugins](https://quantum.cloud.ibm.com/docs/en/guides/transpiler-plugins) +- [Configure the preset pass managers](https://quantum.cloud.ibm.com/docs/en/guides/defaults-and-configuration-options) +- [Tutorial on qubit selection](https://quantum.cloud.ibm.com/docs/en/tutorials/real-time-benchmarking-for-qubit-selection) + +### Dynamic Circuits + +Dynamic circuits are powerful tools with which your can measure qubits in the middle of a quantum circuit execution and then perform classical logic operations within the circuit, based on the outcome of those mid-circuit measurements. Some common uses cases of dynamic circuits include efficient quantum state preparation, long-range entanglement, and sampling of IQP-like circuits. + +*Relevant docs links:* + +- [Classical feed-forward and control flow](https://quantum.cloud.ibm.com/docs/en/guides/classical-feedforward-and-control-flow) (this is the primary way to integrate dynamic circuits into your workloads) +- [Tutorial on using dynamic circuits to generate long-range entanglement](https://quantum.cloud.ibm.com/docs/en/tutorials/long-range-entanglement) + +### Dynamical Decoupling + +Dynamical decoupling (DD) is a technique for suppressing errors due to qubit decoherence. It is primarily useful in regions within a quantum circuit in which one or more qubits site idle while other instructions are being executed. Both Sampler and Estimator primitives have built-in support for applying DD. Alternatively, you can use the PadDynamicalDecoupling transpiler pass in Qiskit, or build your own using the new stretch instruction. + +*Relevant docs links:* + +- [Overview of DD](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) +- [Introduction to primitive options](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview) +- [Create a pass manager for dynamical decoupling](https://quantum.cloud.ibm.com/docs/en/guides/dynamical-decoupling-pass-manager) +- [Deferred timing resolution using stretch](https://quantum.cloud.ibm.com/docs/en/guides/stretch) (this is especially useful for apply DD in a dynamic circuit) + +### Operator Backpropagation + +This Qiskit addon utilizes a technique to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. However, this increased cost can be trimmed down by dropping operators with small coefficients which don’t contribute much to the final estimation. You could experiment coupling this alongside the AQC-Tensor addon for even lower circuit depths. + +*Relevant docs links:* + +- [Overview of OBP addon](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-obp) +- [Get started with OBP](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-obp-get-started) +- [Tutorial on OBP](https://quantum.cloud.ibm.com/docs/en/tutorials/operator-back-propagation) + + + +## Tools for Debugging and Validating Workloads + +### Noisy Estimator Analyzer Tool + +To gauge the expected performance of estimator-based workloads, NEAT is provided as a convenience tool to analyze and predict the performance of your queries. It uses Qiskit Aer to simulate the estimation task classically efficiently, either exactly or in the presence of noise, and can also convert your PUBs into cliffordized circuits. + +*Relevant docs links:* + +- [Analyze a Qiskit Runtime job using NEAT](https://quantum.cloud.ibm.com/docs/en/guides/debug-qiskit-runtime-jobs) +- [NEAT API reference page](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/debug-tools-neat) + + +### Local Testing Mode + +Qiskit Runtime possesses the ability to test workloads while fine-tuning them before submitting them as jobs to a QPU. To use this feature, simply specify one of the fake backends from `qiskit_ibm_runtime.fake_provider` or use one from the Qiskit Aer library. To utilize this feature, we suggest either cliffordizing the circuit you plan to run or scale down the number of qubits in your workload. + +*Relevant docs links:* + +- [Overview of using the local testing mode](https://quantum.cloud.ibm.com/docs/en/guides/local-testing-mode) +- [Fake Provider API reference](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/fake-provider) + + + +## Executing Workloads + +### Estimator & Sampler Primitives + +The Estimator and Sampler primitives are used to execute your circuits on QPUs. Estimator computes expectation values of observables with respect to states prepared by quantum circuits, and Sampler samples the output register from quantum circuit execution. Both primitives have built-in error suppression support, and Estimator also have built-in error mitigation methods. + +*Relevant docs links:* + +- [Primitive inputs and outputs](https://quantum.cloud.ibm.com/docs/en/guides/primitive-input-output) +- [Introduction to the primitive options](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview) +- [Primitives examples](https://quantum.cloud.ibm.com/docs/en/guides/primitives-examples) +- [Tutorial on combining error mitigation options with Estimator](https://quantum.cloud.ibm.com/docs/en/tutorials/combine-error-mitigation-techniques) + +### Execution modes + +When building quantum workloads, it can sometimes be helpful to utilize different scheduling strategies for execution. The execution modes determine how your jobs are scheduled, and choosing the right execution mode allows your workload to run efficiently (and within your budget). + +*Relevant docs links:* + +- [Overview of Job, Batch, and Session modes](https://quantum.cloud.ibm.com/docs/en/guides/execution-modes) +- [How to choose the right execution mode](https://quantum.cloud.ibm.com/docs/en/guides/choose-execution-mode) + +### Executor Primitive + +Executor allows you to fine-tune error mitigation and other techniques without sacrificing performance by providing the ingredients to capture design intents on the client side, and shifting the costly generation of circuit variants to the server side. With Executor, users will gain a clearer and more composable model for execution workflows, making it easier to experiment with new techniques, reproduce results, and share methods. + +Relevant docs links: +- [API reference for Executor primitive](https://qiskit.github.io/qiskit-ibm-runtime/index.html) + + + + +## Tools for Error mitigation + +### Samplomatic + +Samplomatic is a library that helps you sample randomizations of your quantum circuits in exactly the way that you specify. It utilizes the Qiskit SDK’s `Box` annotations to specify regions of a circuit that should have similar noise profiles and can group collections of gates to twirl or use the same noise model from the Noise Learner. + +*Relevant docs links:* + +- [Samplomatic documentation](https://qiskit.github.io/samplomatic/) +- [Samplomatic Github repo](https://github.com/Qiskit/samplomatic) + +### Noise Learner + +Many error mitigation techniques, such as PEA and PEC, require an accurate noise model. Noise Learner is a helper program that returns a Pauli-Lindblad noise model for the input circuit. This can help you to further tune how PEA and PEC are done in your Estimator job, or re-use the same model in an iterative workload. + +*Relevant docs links:* + +- [Overview of noise learning helper](https://quantum.cloud.ibm.com/docs/en/guides/noise-learning) +- API reference for [`NoiseLearner`](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/noise-learner) and [`NoiseLearnerOptions``](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-noise-learner-options) +- [Related link to NLV3 which has samplomatic support + +### Pauli Twirling + +Pauli twirling, also known as randomized compiling, is an error suppression technique used to convert the effects of unknown types of noise into one which can be characterized (and thus mitigated). + +*Relevant docs links:* + +- [Explanation and usage of Pauli Twirling in primitive options](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#pauli-twirling) +- [Related link to using Pauli Twirling with Samplomatic]() +- [Error mitigation compatibility in primitive options](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview#feature-compatibility) + +### Matrix-Free Measurement Mitigation + +This Qiskit addon is used to reduce measurement error by finding corrected measurement probabilities. This is primarily useful for problems which can benefit from workloads which estimate the expectation value of observables and also works in the context of dynamic circuits. + +*Relevant docs links:* + +- [M3 addon documentation](https://qiskit.github.io/qiskit-addon-mthree/) +- [Guide on the basic usage of M3](https://qiskit.github.io/qiskit-addon-mthree/basic.html) +- [Tutorial on using M3 with mid-circuit measurement](https://qiskit.github.io/qiskit-addon-mthree/tutorials/04_dynamic_bv.html) + +### Probabilistic Error Cancellation (PEC) + +This error mitigation technique returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. The Qiskit Runtime Estimator has built-in support for PEC, which you can enable through the Estimator option. + +*Relevant docs links:* + +- [Explanation of PEC](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec) +- [API Reference for PEC options](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-pec-options) + +### Zero Noise Extrapolation (ZNE) + +This error mitigation technique first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. Since this can be done in multiple ways, there are a number of noise amplification and extrapolation techniques available. In working through these challenges, you may want to experiment with different approaches to both noise amplification and extrapolation. + +*Relevant docs links:* + +- [Qiskit Runtime primitive options for ZNE](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-zne-options) +- [Introduction to ZNE](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) +- [Error mitigation feature compatibility](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview#feature-compatibility) +- [ArXiV white paper on best practices for digital ZNE](https://arxiv.org/abs/2307.05203) + +### Gate Folding Based ZNE + +Gate folding is a noise amplification process which replaces two-qubit gates with equivalent sequences of two-qubit gates and their inverses. This approach is straightforward and simple to utilized but can be imperfect. + +*Relevant docs links:* + +- [Qiskit Runtime primitive options for ZNE](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-zne-options) +- [Introduction to ZNE](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) + +### Probabilistic Error Amplification + +PEA is a more sophisticated means of amplifying errors for ZNE and involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification. + +*Relevant docs links:* + +- [API reference for `LayerNoiseLearningOptions`](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-layer-noise-learning-options) +- [API reference for `NoiseLearner`](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/noise-learner-noise-learner) + +### Twirled Readout Error Extinction (TREX) + +This error mitigation technique is used to mitigate the effects of measurement errors by using twirled measurements and can be used alongside many other techniques such as ZNE and PEC that mitigates gate errors. + +*Relevant docs links:* + +- [Explanation of TREX](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex) +- [Error mitigation feature compatibility](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview#feature-compatibility) +- [API reference for measurement noise learning options](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-measure-noise-learning-options) + +### Propagated Noise Absorption + +This new Qiskit addon uses Pauli propagation to characterize Pauli noise affecting different layers of a circuit. It accomplishes this by using a learned noise model and propagating its inverse into the target observable to measure. + +*Relevant docs links:* + +- [PNA documentation page](https://qiskit.github.io/qiskit-addon-pna/) +- [qiskit-addon-pna Github repo](https://github.com/Qiskit/qiskit-addon-pna) + +### Shaded Light Cones + +Shaded lightcones (SLC) uses pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. This new Qiskit addon is most useful for reducing the sampling overhead for running PEC-based workloads. + +*Relevant docs links:* + +- [SLC documentation page](https://qiskit.github.io/qiskit-addon-slc/) +- [qiskit-addon-slc Github repo](https://github.ibm.com/ibm-q-research/qiskit-addon-slc) + + + +## Tools for Post Processing + +### Sample based Quantum Diagonalization + +This Qiskit addon allows you to implement a post-processing technique to measure the ground state energies of a quantum system. It processes samples obtained from a given circuit to project and diagonalize a target Hamiltonian in a subspace spanned by them, essentially “refining” the results obtained from a workload. This is primarily useful when building workloads which seek to obtain the eigenvalues and eigenvectors of quantum systems (such as chemical or lattice models). + +*Relevant docs links:* + +- [Overview of SQD](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-sqd) +- [Getting started with SQD](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-sqd-get-started) +- [Tutorial using SQD for a chemistry Hamiltonian](https://quantum.cloud.ibm.com/docs/en/tutorials/sample-based-quantum-diagonalization) +- [Tutorial using SQD and KQD for a lattice model](https://quantum.cloud.ibm.com/docs/en/tutorials/sample-based-krylov-quantum-diagonalization) + +### Multi-Product Formulas + +The MPF Qiskit addon is primarily used to post-process workloads seeking to simulate the time evolution of a quantum system. The MPF tool will ingest data such as the number of Trotter steps to prepare and solve an associated system of linear equations, which can then be used to refine the expectation-value measurements of a time-evolved state. + +*Relevant docs links:* + +- [Overview of MPF](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-mpf) +- [Getting started with MPF](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-mpf-get-started) +- [Tutorial using MPF to reduce Trotter error](https://quantum.cloud.ibm.com/docs/en/tutorials/multi-product-formula) + +### Measurement Post-Selection + +The noise models produced by Noise Learner may not be accurate for Heron backends due to non-Markovian noise on these devices. Our internal study has shown this can be alleviated with measurement-based post-selection. This technique adds a series of rx gates followed by a measurement to the circuit, and in post-processing throws away the “bad” bitstrings. There are utility functions in Qiskit addons to help implementing this, and NoiseLearnerV3 also has built-in support. + +*Relevant docs links:* + +- [API reference for post selection utilities](https://quantum.cloud.ibm.com/docs/en/api/qiskit-addon-utils/noise-management-post-selection) +- [API reference for post selection transpiler passes](https://quantum.cloud.ibm.com/docs/en/api/qiskit-addon-utils/noise-management-post-selection-transpiler-passes) +- [Link to NoiseLearnerV3 API ref] + +## Qiskit Functions (Pre-built workflows to speed up applications research) + +### Algorithmiq Tensor-Network Error Mitigation Function + +Algorithmiq’s Tensor-network Error Mitigation (TEM) method is a hybrid quantum-classical algorithm designed for automating and performing noise mitigation. It accomplishes this by constructing a tensor network representing an approximate inverse of the noise affecting a circuit to obtain unbiased estimates of an observable. TEM is a novel error mitigation method based on post-processing with tensor networks, and it provides unbiased error mitigation with the lowest possible shot overhead on the quantum hardware, minimizing the runtime and hence the costs of experiments. It requires exponentially less shots than probabilistic error cancellation (PEC) and significantly less shots than zero noise extrapolation (ZNE). + + +*Relevant docs links:* + +- [Overview of TEM function](https://quantum.cloud.ibm.com/docs/en/guides/algorithmiq-tem) + +### Q-CTRL Performance Management Function + +This Qiskit function uses AI-powered error suppression and mitigation techniques and is agnostic to the type of workload being executed. + +Relevant docs links: + +- [Overview of Q-CTRL Performance Management](https://quantum.cloud.ibm.com/docs/en/guides/q-ctrl-performance-management) +- [Tutorial using Performance Management for TFIM](https://quantum.cloud.ibm.com/docs/en/tutorials/transverse-field-ising-model) +- [Tutorial using Performance Management for QPE](https://quantum.cloud.ibm.com/docs/en/tutorials/quantum-phase-estimation-qctrl) + +### QEDMA Qiskit Function QESEM + +The QESEM Qiskit Functioon by QEDMA uses a suite of proprietary error mitigation techniques to improve the results of your workload. These techniques include gate optimization, noise-aware transpilation, error suppression, and unbiased error mitigation. + + +*Relevant docs links:* + +- [Overview of QESEM Function](https://quantum.cloud.ibm.com/docs/en/guides/kipu-optimization) +- [Tutorial for QESEM coming soon...] + +### Iskay Quantum Optimizer + +This Qiskit Function by Kipu Quantum solves unconstrained binary optimization problems with QUBO (Quadratic Unconstrained Binary Optimization) formulation and higher-order (HUBO) optimization problems. + +*Relevant docs links:* + +- [Overview of Iskay Quantum Function](https://quantum.cloud.ibm.com/docs/en/guides/kipu-optimization) +- [Tutorial for Iskay coming soon...] + +### Q-CTRL Optimization Solver + +This Qiskit Function by Q-CTRL is designed to solve utility-scale optimization problems. It takes in a high-level problem definition, and executes an entire workflow to optimize the problem, without manual configuration. + + +*Relevant docs links:* + +- [Overview of Optimization Solver](https://quantum.cloud.ibm.com/docs/en/guides/q-ctrl-optimization-solver) +- [Spin-glass tutorial for Optimization Solver](https://quantum.cloud.ibm.com/docs/en/tutorials/solve-higher-order-binary-optimization-problems-with-q-ctrls-optimization-solver) \ No newline at end of file From d0afc43c4fbc5771acadb207cd4ce4447008c387 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 26 Nov 2025 16:03:32 -0500 Subject: [PATCH 12/82] Some cleanup --- docs/guides/index.mdx | 18 ++++++++++-------- qiskit_bot.yaml | 4 ++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index fa791beb4d9..7cffb0aaea0 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -36,29 +36,30 @@ Find how-to guides, specific use-case tutorials, and API references for your qua ### Tools for mapping - [*AQC-Tensor*](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits -- [*Qiskit Circuit Library*](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK’s standard library of gates and circuit instructions +- [*Qiskit Circuit Library*](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK's standard library of gates and circuit instructions - [*Optimization Mapper*](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators - [*Quantum Optimization Best Practices*](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads -### [2. Tools for Preparing & Optimizing Quantum Workloads](/docs/guides/tool-index#tools-for-preparing--optimizing-quantum-workloads) +### Tools for Preparing & Optimizing Quantum Workloads - [*Transpiler*](/docs/guides/tool-index#transpiler) - Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing - [*Dynamic Circuits*](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long range entanglement and state preparation, at constant depth - [*Dynamical Decoupling*](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits - [*Operator Backpropagation*](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements -### [3. Tools for Debugging & Validating Workloads](/docs/guides/tool-index#tools-for-debugging-and-validating-workloads) +### Tools for Debugging and Validating Workloads - [*Noisy Estimator Analyzer Tool*](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads - [*Local Testing Mode*](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance -### [4. Tools for Executing Workloads](/docs/guides/tool-index#4-tools-for-executing-workloads) -- [*Estimator & Sampler Primitives*](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support +### Tools for Executing Workloads + +- [*Estimator and Sampler Primitives*](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support - [*Execution Modes*](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution - [*Executor Primitive*](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on input samplex directive -### [5. Tools for Error Mitigation](/docs/guides/tool-index#tools-for-error-mitigation) +### Tools for Error Mitigation - [*Samplomatic*](/docs/guides/tool-index#samplomatic) - Fine tune error mitigation in specific circuit regions - [*Noise Learner*](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA @@ -70,14 +71,15 @@ Find how-to guides, specific use-case tutorials, and API references for your qua - [*Propagated Noise Absorption*](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable - [*Shaded Light Cones*](/docs/guides/tool-index#shaded-light-cones) - Reduce the overhead of PEC error mitigation -### [6. Tools for Post-Processing](/docs/guides/tool-index#tools-for-post-processing) +### Tools for Post-Processing - [*Sample Based Quantum Diagonalization*](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads - [*Multi-Product Formulas*](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution - [*Measurement Post-Selection*](/docs/guides/tool-index#measurement-post-selection) - Refine samples by post-selecting known “bad” bitstrings -### [7. Qiskit Functions](/docs/guides/tool-index#qiskit-functions-pre-built-workflows-to-speed-up-applications-research) +### Qiskit Functions + - [*Algorithmiq Tensor-Network Error Mitigation Function*](/docs/guides/tool-index#algorithmiq-tensor-network-error-mitigation-function) - [*Q-CTRL Performance Management Function*](/docs/guides/tool-index#q-ctrl-performance-management-function) - [*QEDMA Qiskit Function QESEM*](/docs/guides/tool-index#qedma-qiskit-function-qesem) diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index 1080b70d678..86364ab1118 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -349,6 +349,10 @@ notifications: "docs/guides/qpu-information": - "`@lerongil`" - "@abbycross" + "docs/guides/tool-index": + - "@kaelynj" + - "@abbycross" + - "@beckykd" "docs/guides/transpile": - "@kaelynj" - "@abbycross" From 1baf440009263dcd827aa0031b0f48e357bc71c3 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 26 Nov 2025 16:09:20 -0500 Subject: [PATCH 13/82] More cleanup --- docs/guides/index.mdx | 77 +++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index 7cffb0aaea0..ad83a4d944b 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -1,11 +1,9 @@ --- -title: Overview +title: Introduction description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more --- -# Overview - -## Introduction to Qiskit and IBM Quantum +# Introduction Find how-to guides, specific use-case tutorials, and API references for your quantum research and development. Use Qiskit and its related packages and tools to build, optimize, and execute workflows on the IBM® fleet of quantum computers. @@ -33,57 +31,56 @@ Find how-to guides, specific use-case tutorials, and API references for your qua ## Tools by task -### Tools for mapping - -- [*AQC-Tensor*](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits -- [*Qiskit Circuit Library*](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK's standard library of gates and circuit instructions -- [*Optimization Mapper*](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators -- [*Quantum Optimization Best Practices*](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads +### Map -### Tools for Preparing & Optimizing Quantum Workloads +- [AQC-Tensor](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits +- [Qiskit Circuit Library](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK's standard library of gates and circuit instructions +- [Optimization Mapper](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators +- [Quantum Optimization Best Practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads -- [*Transpiler*](/docs/guides/tool-index#transpiler) - Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing -- [*Dynamic Circuits*](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long range entanglement and state preparation, at constant depth -- [*Dynamical Decoupling*](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits -- [*Operator Backpropagation*](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements +### Prepare and optimize quantum workloads -### Tools for Debugging and Validating Workloads +- [Transpiler](/docs/guides/tool-index#transpiler) - Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing +- [Dynamic Circuits](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long range entanglement and state preparation, at constant depth +- [Dynamical Decoupling](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits +- [Operator Backpropagation](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements -- [*Noisy Estimator Analyzer Tool*](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads -- [*Local Testing Mode*](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance +### Debug and validate workloads +- [Noisy Estimator Analyzer Tool](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads +- [Local Testing Mode](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance -### Tools for Executing Workloads -- [*Estimator and Sampler Primitives*](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support -- [*Execution Modes*](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution -- [*Executor Primitive*](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on input samplex directive +### Execute workloads -### Tools for Error Mitigation +- [Estimator and Sampler Primitives](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support +- [Execution Modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution +- [Executor Primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on input samplex directive -- [*Samplomatic*](/docs/guides/tool-index#samplomatic) - Fine tune error mitigation in specific circuit regions -- [*Noise Learner*](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA -- [*Pauli Twirling*](/docs/guides/tool-index#pauli-twirling) - Covert coherent noise to better characterized stochastic noise -- [*Matrix-Free Measurement Mitigation*](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors -- [*Probabilistic Error Cancellation*](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead -- [*Zero Noise Extrapolation*](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values -- [*Twirled Readout Error Extinction*](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Reduce measurement error via twirling -- [*Propagated Noise Absorption*](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable -- [*Shaded Light Cones*](/docs/guides/tool-index#shaded-light-cones) - Reduce the overhead of PEC error mitigation +### Manage noise -### Tools for Post-Processing +- [Samplomatic](/docs/guides/tool-index#samplomatic) - Fine tune error mitigation in specific circuit regions +- [Noise Learner](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA +- [Pauli Twirling](/docs/guides/tool-index#pauli-twirling) - Covert coherent noise to better characterized stochastic noise +- [Matrix-Free Measurement Mitigation](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors +- [Probabilistic Error Cancellation](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead +- [Zero Noise Extrapolation](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values +- [Twirled Readout Error Extinction](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Reduce measurement error via twirling +- [Propagated Noise Absorption](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable +- [Shaded Light Cones](/docs/guides/tool-index#shaded-light-cones) - Reduce the overhead of PEC error mitigation -- [*Sample Based Quantum Diagonalization*](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads -- [*Multi-Product Formulas*](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution -- [*Measurement Post-Selection*](/docs/guides/tool-index#measurement-post-selection) - Refine samples by post-selecting known “bad” bitstrings +### Post-process +- [Sample Based Quantum Diagonalization](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads +- [Multi-Product Formulas](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution +- [Measurement Post-Selection](/docs/guides/tool-index#measurement-post-selection) - Refine samples by post-selecting known "bad" bitstrings ### Qiskit Functions -- [*Algorithmiq Tensor-Network Error Mitigation Function*](/docs/guides/tool-index#algorithmiq-tensor-network-error-mitigation-function) -- [*Q-CTRL Performance Management Function*](/docs/guides/tool-index#q-ctrl-performance-management-function) -- [*QEDMA Qiskit Function QESEM*](/docs/guides/tool-index#qedma-qiskit-function-qesem) -- [*Q-CTRL Optimization Solver*](/docs/guides/tool-index#q-ctrl-optimization-solver) +- [Algorithmiq Tensor-Network Error Mitigation Function](/docs/guides/tool-index#algorithmiq-tensor-network-error-mitigation-function) +- [Q-CTRL Performance Management Function](/docs/guides/tool-index#q-ctrl-performance-management-function) +- [QEDMA Qiskit Function QESEM](/docs/guides/tool-index#qedma-qiskit-function-qesem) +- [Q-CTRL Optimization Solver](/docs/guides/tool-index#q-ctrl-optimization-solver) ## Support From 4f9b08ec298863d0a5241044bba96ad94f4ddbe1 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 26 Nov 2025 16:12:36 -0500 Subject: [PATCH 14/82] tweaking headers --- docs/guides/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index ad83a4d944b..3f35a1c6376 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -5,7 +5,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more # Introduction -Find how-to guides, specific use-case tutorials, and API references for your quantum research and development. Use Qiskit and its related packages and tools to build, optimize, and execute workflows on the IBM® fleet of quantum computers. +**Welcome to the documentation for Qiskit and IBM Quantum.** Find how-to guides, specific use-case tutorials, and API references for your quantum research and development. Use Qiskit and its related packages and tools to build, optimize, and execute workflows on the IBM® fleet of quantum computers. ![A graphic showing the different components of IBM Quantum Platform and Qiskit.](/docs/images/guides/index/overview-image.svg) From dcf1317692043e0c42406b2d4ce07021b7ed48f4 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 26 Nov 2025 16:23:52 -0500 Subject: [PATCH 15/82] rmv workflow indexes --- docs/guides/execute-on-hardware.mdx | 72 -------------------- docs/guides/intro-to-patterns.mdx | 88 ------------------------- docs/guides/map-problem-to-circuits.mdx | 56 ---------------- docs/guides/optimize-for-hardware.mdx | 71 -------------------- docs/guides/post-process-results.mdx | 21 ------ qiskit_bot.yaml | 6 -- 6 files changed, 314 deletions(-) delete mode 100644 docs/guides/execute-on-hardware.mdx delete mode 100644 docs/guides/intro-to-patterns.mdx delete mode 100644 docs/guides/map-problem-to-circuits.mdx delete mode 100644 docs/guides/optimize-for-hardware.mdx delete mode 100644 docs/guides/post-process-results.mdx diff --git a/docs/guides/execute-on-hardware.mdx b/docs/guides/execute-on-hardware.mdx deleted file mode 100644 index 35c0151dd26..00000000000 --- a/docs/guides/execute-on-hardware.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Execute on target hardware -description: Run circuits on hardware and return output from a quantum computer. ---- - -# Execute on target hardware - -![All Qiskit pattern steps are shown (Map the problem, Optimize for hardware, Execute on hardware, and Post-process results), with 'Execute on hardware' emphasized. Executing on hardware uses only the Qiskit Runtime service.](/docs/images/qiskit-patterns/execute.svg) - -The "execute on hardware" step of a Qiskit pattern involves running your circuits on hardware -and produces the outputs of the quantum computation. The ISA circuits produced in -the previous step can be executed using either a Sampler or Estimator primitive from -Qiskit Runtime, initialized locally on your computer or from a cluster or other -heterogeneous compute environment. These can be executed in a Batch, which allows -parallel transpilation for classical computational efficiency - or a Session, -which allows iterative tasks to be implemented efficiently without queuing delays. Note: Open Plan users cannot submit session jobs. - -During this step, there is also the option to configure certain error suppression and -mitigation techniques provided by Qiskit Runtime. - -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. - -## Guides for executing on hardware - -### Run with primitives -* [Introduction to primitives](./primitives) -* [Get started with primitives](./get-started-with-primitives) -* [PUBs and primitive results](./primitive-input-output) -* [Primitives examples](./primitives-examples) -* [Primitives with REST API](./primitives-rest-api) -* [Noise learning helper](./noise-learning) -* [Directed execution model (beta)](/docs/guides/directed-execution-model) - -### Configure runtime options -* [Overview](./runtime-options-overview) -* [Specify options](./specify-runtime-options) -* [Configure error suppression](./configure-error-suppression) -* [Configure error mitigation](./configure-error-mitigation) -* [Error mitigation and suppression techniques](./error-mitigation-and-suppression-techniques) - -### Execution modes -* [Introduction to execution modes](./execution-modes) -* [Choose the right execution mode](./choose-execution-mode) -* [Run jobs in a session](./run-jobs-session) -* [Run jobs in a batch](./run-jobs-batch) -* [Execution modes using REST API](./execution-modes-rest-api) -* [Execution modes FAQs](/docs/guides/execution-modes-faq) - -### Manage jobs -* [Monitor or cancel a job](./monitor-job) -* [Workload usage](./estimate-job-run-time) -* [Minimize job run time](./minimize-time) -* [Maximum execution time](./max-execution-time) -* [Job limits](./job-limits) -* [Organize and search by job tags](/docs/guides/add-job-tags) - -### QPU and platform information - -* [Processor types](./processor-types) -* [QPU information](./qpu-information) -* [Calibration jobs](./calibration-jobs) -* [Get QPU information with Qiskit](./get-qpu-information) -* [Dynamic repetition rate execution](./repetition-rate-execution) -* [Retired QPUs](./retired-qpus) -* [Instances](./instances) -* [Fair-share scheduler](./fair-share-scheduler) -* [Manage cost](./manage-cost) -* [View cost](./view-cost) - diff --git a/docs/guides/intro-to-patterns.mdx b/docs/guides/intro-to-patterns.mdx deleted file mode 100644 index d95f37dd06e..00000000000 --- a/docs/guides/intro-to-patterns.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Introduction to Qiskit patterns -description: Qiskit patterns are the broad steps employed when running a domain-specific problem on quantum hardware. ---- - -# Introduction to Qiskit patterns - -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® 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) - -Each step is detailed in the sections below. - -## Map the problem to quantum circuits and operators - - -This step describes how a user starts with a classical problem and figures out how to map it to a quantum computer. For example, in applications such as chemistry and quantum simulation, this step generally involves constructing a quantum circuit representing the Hamiltonian you are attempting to solve. During this step, for certain problems, it might also be desirable to specify the mapping of the problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the outset if the structure of the problem lends itself to optimization earlier. It is also worth considering at this point what the outcome of the particular algorithm will be in preparation for the later execute step - for example, if the desired outcome involves inferring correlation functions using Hadamard tests, you might prepare to use Sampler, whereas specifying observables would use the Estimator and could provide many error mitigation options. - -The output of this step is normally a collection of circuits or quantum operators that can be optimized for hardware in the next step. - - -## Optimize for target hardware - -In this step 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 test out 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. - - - -## Execute on target hardware - -This step involves running your circuits on hardware and produces the outputs of the quantum computation. The ISA circuits produced in the previous step can be executed using either a Sampler or Estimator primitive from Qiskit Runtime, initialized locally on your computer or from a cluster or other heterogeneous compute environment. These can be executed in a Batch, which allows parallel transpilation for classical computational efficiency - or a Session, which allows iterative tasks to be implemented efficiently without queuing delays. During this step, there is also the option to configure certain error suppression and mitigation techniques provided by Qiskit Runtime. - -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 - - - - 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). - - diff --git a/docs/guides/map-problem-to-circuits.mdx b/docs/guides/map-problem-to-circuits.mdx deleted file mode 100644 index a623e0b4198..00000000000 --- a/docs/guides/map-problem-to-circuits.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Map the problem to quantum circuits and operators -description: Take a classical problem and map it to run on a quantum computer. ---- - -# Map the problem to quantum circuits and operators - -![All Qiskit pattern steps are shown (Map the problem, Optimize for hardware, Execute on hardware, and Post-process results). The 'Map the problem' step is emphasized. This step uses the Qiskit SDK.](/docs/images/qiskit-patterns/map-problem.svg) - -The "map the problem to quantum circuits and operators" step of a Qiskit pattern describes how a user starts with a classical -problem and figures out how to map it to a quantum computer. - -For example, in applications such as chemistry and quantum simulation, this step generally involves -constructing a quantum circuit representing the Hamiltonian you are attempting to solve. -During this step, for certain problems, it might also be desirable to specify the mapping of -the problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the -outset if the structure of the problem lends itself to optimization earlier. - -It is also worth considering at this point what the outcome of the particular algorithm will be -in preparation for the later execute step - for example, if the desired outcome involves -inferring correlation functions using Hadamard tests, you might prepare to use Sampler, whereas -specifying observables would use Estimator and could provide many error mitigation options. - -The output of this step in a Qiskit pattern is normally a collection of circuits or quantum operators. - -## Guides for mapping problems to quantum circuits and operators - -### Build circuits with the Qiskit SDK -* [Circuit library](./circuit-library) -* [Construct circuits](./construct-circuits) -* [Measure qubits](./measure-qubits) -* [Visualize circuits](./visualize-circuits) -* [Visualize circuit timing](./visualize-circuit-timing) -* [Fractional gates](./fractional-gates) -* [Classical feedforward and control flow](./classical-feedforward-and-control-flow) -* [Deferred timing resolution using stretch](./stretch) -* [Synthesize unitary operators](./synthesize-unitary-operators) -* [Bit-ordering in the Qiskit SDK](./bit-ordering) -* [Save circuits to disk](./save-circuits) - -### Build operators with the Qiskit SDK -* [Operators module overview](./operators-overview) -* [Specifying observables in the Pauli basis](./specify-observables-pauli) -* [The Operator class](./operator-class) - -### Other circuit-building tools -* [Pulse schedules](./pulse) -* OpenQASM - * [Introduction to OpenQASM](./introduction-to-qasm) - * [OpenQASM 2 and the Qiskit SDK](./interoperate-qiskit-qasm2) - * [OpenQASM 3 and the Qiskit SDK](./interoperate-qiskit-qasm3) - * [OpenQASM 3 feature table](./qasm-feature-table) - * [OpenQASM 3.x live specification](https://openqasm.com/) -* [MPF Qiskit addon](/docs/guides/qiskit-addons-mpf) - * [Get started with MPF](/docs/guides/qiskit-addons-mpf-get-started) -* [IBM Quantum Composer](/docs/guides/composer) diff --git a/docs/guides/optimize-for-hardware.mdx b/docs/guides/optimize-for-hardware.mdx deleted file mode 100644 index d37702e5dbc..00000000000 --- a/docs/guides/optimize-for-hardware.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -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 the 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.](/docs/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) -* [Understand the DAG representation](./DAG-representation) - -### 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](/docs/guides/ibm-circuit-function) -- [Algorithmiq Tensor-network error mitigation](/docs/guides/algorithmiq-tem) -- [Q-CTRL Performance Management](/docs/guides/q-ctrl-performance-management) -- [QEDMA QESEM](/docs/guides/qedma-qesem) - -### Qiskit addons -* [Approximate Quantum Compilation with Tensor Networks (AQC-Tensor)](./qiskit-addons-aqc) - * [Get started with AQC-Tensor](./qiskit-addons-aqc-get-started) -* [Operator Backpropagation (OBP)](./qiskit-addons-obp) - * [Get started with OBP](./qiskit-addons-obp-get-started) -* [Circuit cutting](./qiskit-addons-cutting) - * [Get started with circuit cutting using gate cuts](./qiskit-addons-cutting-gates) - * [Get started with circuit cutting using wire cuts](./qiskit-addons-cutting-wires) diff --git a/docs/guides/post-process-results.mdx b/docs/guides/post-process-results.mdx deleted file mode 100644 index 61941ff6da2..00000000000 --- a/docs/guides/post-process-results.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Post-process results -description: Post-process the results obtained by running on a quantum computer. ---- - -# Post-process results - -![All Qiskit pattern steps are shown (Map the problem, Optimize for hardware, Execute on hardware, and Post-process results). The 'Post-process results' step is emphasized. This step uses the Qiskit SDK.](/docs/images/qiskit-patterns/post-process-results.svg) - -This final "post-process results" step of a Qiskit pattern 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. - -## Guides for post-processing results -* [Retrieve and save job results](/docs/guides/save-jobs) -* [Visualize results](/docs/guides/visualize-results) -* [Sample-based quantum diagonalization (SQD) overview](/docs/guides/qiskit-addons-sqd) - * [Getting started with SQD](/docs/guides/qiskit-addons-sqd-get-started) diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index 86364ab1118..1223d5e62fe 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -127,9 +127,6 @@ notifications: "docs/guides/choose-execution-mode": - "@jyu00" - "@beckykd" - "docs/guides/execute-on-hardware": - - "@abbycross" - - "`@lerongil`" "docs/guides/directed-execution-model": - "abbycross" - "@jyu00" @@ -227,9 +224,6 @@ notifications: "docs/guides/manage-cloud-users": - "@abbycross" - "@beckykd" - "docs/guides/map-problem-to-circuits": - - "@abbycross" - - "@beckykd" "docs/guides/max-execution-time": - "@jyu00" - "@beckykd" From 98a135f3c161cd48450887704b702ee16e69a900 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 2 Dec 2025 15:10:40 -0500 Subject: [PATCH 16/82] change file name/title --- docs/guides/_toc.json | 6 +++--- docs/guides/{tools-intro.mdx => qiskit-sdk-overview.mdx} | 6 +++--- qiskit_bot.yaml | 2 +- scripts/js/commands/checkPatternsIndex.ts | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename docs/guides/{tools-intro.mdx => qiskit-sdk-overview.mdx} (98%) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 185b8ecd174..88939b88698 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -61,12 +61,12 @@ "title": "About IBM Quantum tools", "children": [ { - "title": "Qiskit overview", - "url": "/docs/guides/tools-intro" + "title": "Qiskit SDK overview", + "url": "/docs/guides/qiskit-sdk-overview" }, { "title": "Qiskit Runtime overview (PLACEHOLDER)", - "url": "https://quantum.cloud.ibm.com/docs/en/guides/tools-intro#qiskit-runtime" + "url": "https://quantum.cloud.ibm.com/docs/en/guides/qiskit-sdk-overview#qiskit-runtime" }, { "title": "Qiskit Functions overview", diff --git a/docs/guides/tools-intro.mdx b/docs/guides/qiskit-sdk-overview.mdx similarity index 98% rename from docs/guides/tools-intro.mdx rename to docs/guides/qiskit-sdk-overview.mdx index 6b0b382a8b6..7cdcda34c93 100644 --- a/docs/guides/tools-intro.mdx +++ b/docs/guides/qiskit-sdk-overview.mdx @@ -1,11 +1,11 @@ --- -title: Introduction to Qiskit -description: What is Qiskit? This document provides an introduction to the Qiskit stack. +title: Qiskit SDK overview +description: What is the Qiskit SDK? This document provides an introduction to the Qiskit stack. --- {/* cspell:ignore Benchpress */} -# Introduction to Qiskit +# Qiskit SDK overview The name "Qiskit" is a general term referring to a collection of software for executing programs on quantum computers. Most notably among these software tools is the open-source Qiskit SDK, and the runtime environment (accessed using Qiskit Runtime) through which you can execute workloads on IBM® quantum processing units (QPUs). As quantum technology evolves, so does Qiskit, with new capabilities released every year that expand this core collection of quantum software. diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index 1223d5e62fe..c6ae8297d79 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -233,7 +233,7 @@ notifications: "docs/guides/monitor-job": - "@jyu00" - "@beckykd" - "docs/guides/tools-intro": + "docs/guides/qiskit-sdk-overview": - "@abbycross" - "@beckykd" "docs/guides/function-template-hamiltonian-simulation": diff --git a/scripts/js/commands/checkPatternsIndex.ts b/scripts/js/commands/checkPatternsIndex.ts index 9e63674c48c..6c5e804d3db 100644 --- a/scripts/js/commands/checkPatternsIndex.ts +++ b/scripts/js/commands/checkPatternsIndex.ts @@ -23,7 +23,7 @@ const ALLOWLIST_MISSING_FROM_INDEX: Set = new Set([ "/docs/guides/qiskit-code-assistant-vscode", "/docs/guides/qiskit-code-assistant-local", "/docs/guides/addons", - "/docs/guides/tools-intro", + "/docs/guides/qiskit-sdk-overview", "/docs/guides/function-template-hamiltonian-simulation", "/docs/guides/qiskit-addons-utils", "/docs/guides/qiskit-code-assistant-openai-api", From 55d5f92f7ff9bb25bf9033d6f8dd79b44a86c68b Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 2 Dec 2025 15:10:45 -0500 Subject: [PATCH 17/82] Delete llms.txt --- public/docs/guides/llms.txt | 205 ------------------------------------ 1 file changed, 205 deletions(-) delete mode 100644 public/docs/guides/llms.txt diff --git a/public/docs/guides/llms.txt b/public/docs/guides/llms.txt deleted file mode 100644 index 358ebe684e1..00000000000 --- a/public/docs/guides/llms.txt +++ /dev/null @@ -1,205 +0,0 @@ -# Converted from Qiskit/documentation/docs/guides/index.mdx - - - - - - - -## Metadata -- title: Overview -- description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more -- License: CC-BY-4.0 -- Crawl Policy: allow - ---- - - -# Overview - - -## Introduction to Qiskit and IBM Quantum - - -Welcome to the documentation for Qiskit, its related packages, and IBM Quantum® Platform. This documentation includes how-to guides to get you started on our tools, specific use-case tutorials that include end-to-end examples, and a collection of API references. - - -Qiskit provides a modular and extensible framework for quantum research and development across algorithms, high-performance computing, and quantum information science. With it, researchers can build, optimize, and execute quantum workflows with specialized addons, software tools, and extensive resources. Through IBM Quantum Platform, users can access Quantum Compute services, such as Qiskit Runtime and the Qiskit Functions Catalog, to run workloads efficiently on the IBM® fleet of quantum computers. - - -![A graphic showing the different components of IBM Quantum Platform and Qiskit.](/docs/images/guides/index/overview-image.svg) - - -Beyond Qiskit and its related packages is the [Qiskit ecosystem](https://www.ibm.com/quantum/ecosystem), a catalog of open-source projects that interface with Qiskit to extend its functionality. - - -## Get started - - - - - - - -## Explore capabilities - - - - - - - - - - - - - - - - - - - -## Support - - - - - - - - - ---- - -## Links - -- [Qiskit Code Assistant - OpenAI API compatibility](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-openai-api.mdx): Learn how to integrate Qiskit Code Assistant with other applications through the OpenAI completions API. -- [Latest updates](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/latest-updates.mdx): The latest updates from Qiskit and IBM Quantum, including the latest package release summaries and platform updates. -- [Introduction to options](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/runtime-options-overview.mdx): Available options for building with Qiskit Runtime primitives -- [Migrate from Qiskit Pulse to fractional gates](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/pulse-migration.mdx): Migrate from using Qiskit Pulse to fractional gates to execute single and two-qubit rotations -- [Qiskit Function templates](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-function-templates.mdx): Learn how to use and build Qiskit Function templates. -- [Manage ID provider users](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/manage-appid.mdx): Use IBM Cloud Identity Access Management (IAM) to manage users with or without an IBM Cloud account -- [Use Qiskit Code Assistant in local mode](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-local.mdx): Learn how to deploy and use the Qiskit Code Assistant model locally. -- [Use Qiskit Code Assistant in VS Code](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-vscode.mdx): How to install, use, and configure Qiskit Code Assistant in Visual Studio Code (VS Code). -- [Set up to use IBM Quantum Platform with REST API](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup-rest-api.mdx): Setup instructions for using IBM Quantum on IBM Cloud to submit Qiskit SDK and Qiskit Runtime jobs by using the REST API -- [Open source](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/open-source.mdx): Learn how to get involved with the Qiskit open-source community to shape the future of quantum computing. -- [Set up access policies and access groups](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/access-groups.mdx): How to create and manage access groups for your organization's account users. -- [Calibration jobs](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/calibration-jobs.mdx): Describes what calibration jobs are and how often they run -- [Understanding your responsibilities when using Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/responsibilities.mdx): Learn about the management responsibilities that you have when you use Qiskit Runtime. -- [Save your login credentials](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/save-credentials.mdx): Save your login credentials instead of manually entering them -- [Create a provider](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/create-a-provider.mdx): A short guide on integrating Qiskit into an external provider's quantum resources. -- [Online lab environments](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/online-lab-environments.mdx): Set up an online lab environment to use Qiskit in the cloud. Choose a preconfigured environment or set up your own. -- [Use Qiskit Code Assistant in JupyterLab](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-jupyterlab.mdx): How to install, use, and configure Qiskit Code Assistant in JupyterLab. -- [Install the Qiskit C API](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/install-c-api.mdx): How to install and use the Qiskit C API as standalone library -- [Execute on target hardware](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/execute-on-hardware.mdx): Run circuits on hardware and return output from a quantum computer. -- [Approximate quantum compilation with tensor networks](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-aqc.mdx): Overview of the addon for approximate quantum compilation using tensor networks -- [Extend Qiskit in Python with C](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/c-extension-for-python.mdx): How to build a C extension for your Qiskit workflow in Python -- [Qiskit Code Assistant](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant.mdx): Learn how to use Qiskit Code Assistant, a generative AI code assistant. -- [Introduction to Qiskit patterns](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/intro-to-patterns.mdx): Qiskit patterns are the broad steps employed when running a domain-specific problem on quantum hardware. -- [Configure the Qiskit SDK locally](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/configure-qiskit-local.mdx): How to customize the configuration of a local Qiskit SDK installation. -- [Create and manage instances](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/instances.mdx): Create, update, and use instances to run jobs with free or paid plans. -- [Activity tracking events for Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/observability.mdx): Learn about activity tracking events for Qiskit Runtime. -- [Processor types](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/processor-types.mdx): Information on IBM Quantum hardware and features of different processors -- [Migrate from BackendV1 to BackendV2](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-backendv1-to-v2.mdx): How to update your code to use BackendV2 instead of BackendV1. -- [IBM Cloud account structure](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-account-structure.mdx): Overview of IBM Cloud accounts, users, instances, and permissions. -- [Choose the right execution mode](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/choose-execution-mode.mdx): Choose the right execution mode for Qiskit Runtime sessions, batch, or single jobs. -- [Overview](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/index.mdx): Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more -- [Introduction to execution modes](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/execution-modes.mdx): An overview of the available execution modes in Qiskit Runtime, including sessions, batch, and single jobs. -- [Considerations for setting up IBM Quantum Platform for an organization](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/considerations-set-up-runtime.mdx): Considerations for setting up IBM Quantum Platform in an organization -- [Securing your data](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/secure-data.mdx): How customer data is encrypted and how users can delete their personal data. -- [OpenQASM 3 feature table](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qasm-feature-table.mdx): A table of the language features included in OpenQASM 3. -- [Understand the breaking package changes](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/metapackage-migration.mdx): Understand the packaging changes that occurred with the release of Qiskit v1.0 -- [Invite users and manage their access](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/invite-and-manage-users.mdx): How to invite collaborators to the IBM Quantum Platform account for your organization, and manage their access -- [Support](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/support.mdx): How to find answers to questions or problems you encounter while using IBM Quantum Platform or Qiskit Runtime -- [Optimize for target hardware](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/optimize-for-hardware.mdx): Optimize abstract circuits and operators so they can run on quantum hardware. -- [Job limits](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/job-limits.mdx): Job limits imposed by the job validation service for jobs sent to IBM QPUs. -- [Qiskit addons](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/addons.mdx): Understand the Qiskit addon tools, which help you build utility-grade quantum workflows. -- [Configure IBM Quantum Platform for an organization](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/quickstart-steps-org.mdx): Configure IBM Quantum Platform for an organization by configuring IAM, resource groups, and access groups. -- [Install Qiskit](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/install-qiskit.mdx): Install the Qiskit SDK and Qiskit Runtime on various operating systems -- [Upgrade from the Open Plan](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/upgrade-from-open.mdx): upgrade from the IBM Quantum Open Plan to an IBM Cloud Pay-As-You-Go Plan -- [Use IBM Cloud Platform APIs to access instances](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/access-instances-platform-apis.mdx): Parameters to set when provisioning a Qiskit Runtime service instance, and extension fields returned when accessing an instance. -- [Install the Qiskit SDK from source](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/install-qiskit-source.mdx): Learn how to install the development version of Qiskit. -- [Use virtual private endpoints for VPC to privately connect to IBM Quantum Platform](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/virtual-private-endpoints.mdx): How to use a virtual private endpoint to privately connect to IBM Quantum Platform. -- [Manage IBM Cloud users](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/manage-cloud-users.mdx): How to use IBM Cloud to manage users with IBM Cloud accounts -- [Introduction to OpenQASM](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/introduction-to-qasm.mdx): An introduction to OpenQASM (Open quantum assembly language) -- [Qiskit v2.0 migration guide](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-2.0.mdx): How to update your project so that it works with Qiskit v2.0. -- [Understanding high availability and disaster recovery for Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/ha-dr.mdx): Learn about high availability and disaster recovery for Qiskit Runtime -- [Sample-based quantum diagonalization](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-sqd.mdx): Overview of the Sample-based quantum diagonalization (SQD) workflow -- [Set up custom roles](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/custom-roles.mdx): How to set up custom roles that provide access to a specific set of actions -- [Directed execution model (beta)](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/directed-execution-model.mdx): Use this composable, explicit execution model with your utility-scale experiments to fine-tune error mitigation and other techniques. -- [Fair-share scheduler](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/fair-share-scheduler.mdx): How the IBM Quantum fair-share scheduler determines order of workloads submitted to quantum processing units -- [Set up your IBM Cloud account](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup.mdx): Setup instructions for IBM Quantum on IBM Cloud to submit Qiskit SDK and Qiskit Runtime jobs for users without email invitations -- [View the cost](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/view-cost.mdx): View how much cost has been incurred by an instance -- [Introduction to transpilation](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/transpile.mdx): Introduction to transpiling quantum circuits in the Qiskit SDK. -- [Logging for Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/logging.mdx): Information about IBM Quantum on IBM Cloud logging -- [Introduction to Qiskit Serverless](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/serverless.mdx): Use Qiskit Serverless to run quantum-classical workloads across the cloud and on quantum-centric supercomputers. -- [Map the problem to quantum circuits and operators](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/map-problem-to-circuits.mdx): Take a classical problem and map it to run on a quantum computer. -- [Qiskit SDK version strategy](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-sdk-version-strategy.mdx): Details on the Qiskit SDK versioning strategy, release schedule, upgrade strategy, pre-releases, post-releases, and how contributors can mark deprecations. -- [Migrate to local simulators](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/local-simulators.mdx): Migrate from using the IBM Quantum cloud simulators to using Qiskit Runtime local testing mode. -- [Set instance allocation limits](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/allocation-limits.mdx): Set, view, and change how much time an instance is allowed to use. -- [Operator backpropagation (OBP)](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-obp.mdx): Learn about the operator backpropagation addon to reduce the depth of quantum circuits -- [Frequently asked questions (FAQ)](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/faq.mdx): Frequently asked questions about IBM Quantum Platform and Qiskit Runtime -- [Overview of plans](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/plans-overview.mdx): Overview of the available plans, including Pay-As-You-Go, Premium, and Open -- [Introduction to Qiskit](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/tools-intro.mdx): What is Qiskit? This document provides an introduction to the Qiskit stack. -- [Qiskit 1.0 feature migration guide](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-1.0-features.mdx): Description of feature changes introduced in Qiskit 1.0 and how to update your code to work with them. -- [Minimize job run time](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/minimize-time.mdx): How to minimize the amount of quantum time spent processing and running a job. -- [Manage cost on the Pay-As-You-Go Plan](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/manage-cost.mdx): How to manage costs of running jobs on QPUs when using the Pay-As-You-Go Plan on IBM Quantum Platform. -- [Qiskit 1.0 migration guide](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-1.0.mdx): How to update your project so that it works with Qiskit 1.0. -- [Migrate to the V2 primitives](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/v2-primitives.mdx): Migrate from using the original primitives (Estimator and Sampler) to using the updated V2 primitives (Estimator V2 and Sampler V2) -- [Protecting Qiskit Runtime Service resources with context-based restrictions](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/context-based-restrictions.mdx): Learn about managing context-based restrictions to define and enforce restrictions on resources. -- [QPU information](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qpu-information.mdx): Information about QPU calibration, properties, and versioning -- [Deferred timing resolution using stretch](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/stretch.mdx): How to use stretch to defer timing resolution with dynamic circuits -- [Code of conduct](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/code-of-conduct.mdx): The Qiskit Code of Conduct defines and enforces the values and conduct of contributors and participants in the Qiskit open source community. -- [Introduction to debugging tools](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/debugging-tools.mdx): Introduction to testing and debugging quantum circuits in Qiskit. -- [Set up your IBM Cloud account - invited users](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup-invited.mdx): Setup instructions for IBM Quantum on IBM Cloud to submit Qiskit SDK and Qiskit Runtime jobs for users with email invitations -- [Post-process results](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/post-process-results.mdx): Post-process the results obtained by running on a quantum computer. -- [Initialize the service in an untrusted environment](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup-untrusted.mdx): Initialize the service in an untrusted environment, such as a public computer -- [Initialize your Qiskit Runtime service account](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/initialize-account.mdx): How to initialize your Qiskit Runtime account, instantiate your account, and load saved credentials. -- [IBM Quantum Composer](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/composer.mdx): IBM Quantum Composer is a graphical programming tool. Drag and drop operations to build circuits and run them on quantum hardware. -- [Circuit cutting](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-cutting.mdx): Overview of the addon for circuit cutting to build utility-scale workloads -- [Execution modes FAQs](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/execution-modes-faq.mdx): Answers to commonly-asked questions about Qiskit Runtime execution modes -- [Qiskit 1.0 installation and packaging changes](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-1.0-installation.mdx): Adapt to changes in installing and depending on Qiskit 1.0 From 65f3190e1e2a30c3331f3e834e0c0849ace8e625 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 2 Dec 2025 15:28:34 -0500 Subject: [PATCH 18/82] add runtime overview pg --- docs/guides/_toc.json | 46 ++++++++++++------------- docs/guides/overview-qiskit-runtime.mdx | 23 +++++++++++++ docs/guides/qiskit-sdk-overview.mdx | 23 +------------ qiskit_bot.yaml | 3 ++ 4 files changed, 50 insertions(+), 45 deletions(-) create mode 100644 docs/guides/overview-qiskit-runtime.mdx diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 88939b88698..d60f381638b 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -17,10 +17,6 @@ "title": "Hello world", "url": "/docs/tutorials/hello-world" }, - { - "title": "Tools index by task", - "url": "/docs/guides/tool-index" - }, { "title": "Advanced install", "children": [ @@ -53,30 +49,34 @@ { "title": "Latest updates", "url": "/docs/guides/latest-updates" + }, + { + "title": "About IBM Quantum tools", + "children": [ + { + "title": "Qiskit SDK overview", + "url": "/docs/guides/qiskit-sdk-overview" + }, + { + "title": "Qiskit Runtime overview (PLACEHOLDER)", + "url": "https://quantum.cloud.ibm.com/docs/en/guides/qiskit-sdk-overview#qiskit-runtime" + }, + { + "title": "Qiskit Functions overview", + "url": "/docs/guides/functions" + }, + { + "title": "Qiskit addons overview", + "url": "/docs/guides/addons" + } + ] } ], "collapsible": false }, { - "title": "About IBM Quantum tools", - "children": [ - { - "title": "Qiskit SDK overview", - "url": "/docs/guides/qiskit-sdk-overview" - }, - { - "title": "Qiskit Runtime overview (PLACEHOLDER)", - "url": "https://quantum.cloud.ibm.com/docs/en/guides/qiskit-sdk-overview#qiskit-runtime" - }, - { - "title": "Qiskit Functions overview", - "url": "/docs/guides/functions" - }, - { - "title": "Qiskit addons overview", - "url": "/docs/guides/addons" - } - ] + "title": "Tools index by task", + "url": "/docs/guides/tool-index" }, { "title": "Circuits and operators", diff --git a/docs/guides/overview-qiskit-runtime.mdx b/docs/guides/overview-qiskit-runtime.mdx new file mode 100644 index 00000000000..a726f2942cf --- /dev/null +++ b/docs/guides/overview-qiskit-runtime.mdx @@ -0,0 +1,23 @@ + +--- +title: Qiskit Runtime overview +description: An explanation of the Qiskit Runtime service and how to get started. +--- + +# Qiskit Runtime Overview + +Qiskit Runtime is a cloud-based service for executing quantum computations on IBM Quantum® hardware. The `qiskit-ibm-runtime` package is a client for that service, and is the successor to the Qiskit IBM Provider. The Qiskit Runtime service streamlines quantum computations and provides optimal implementations of the Qiskit primitives for IBM Quantum hardware. To get started with Qiskit Runtime primitives, visit the [documentation](/docs/guides/get-started-with-primitives). + +Qiskit Runtime is designed to use additional classical and quantum compute resources, including techniques such as error suppression and error mitigation, to return a higher-quality result from executing quantum circuits on quantum processors. Examples include dynamical decoupling for error suppression, and readout mitigation and zero-noise extrapolation (ZNE) for error mitigation. Learn how to configure these options on the [Configure error mitigation](/docs/guides/configure-error-mitigation) page. + +Qiskit Runtime also includes three types of execution modes for running your quantum program on IBM hardware: [_Job_, _Session_, and _Batch_,](/docs/guides/execution-modes) each of which have different use cases and implications for the quantum job queue. A Job is a single query to a primitive that can be run over a specified number of shots. Sessions allow you to efficiently run multiple jobs in iterative workloads on quantum computers. Batch mode allows you to submit all your jobs at once for parallel processing. Note that Open Plan users cannot submit session jobs. + +To quickly install Qiskit Runtime, run the following command: +```bash +pip install qiskit-ibm-runtime +``` + +More details on setting up a development environment for building quantum programs can be found in the [installation page](/docs/guides/install-qiskit). + +## Is Qiskit Runtime open-source? +The short answer is, _not all of it_. The Qiskit Runtime service software that handles the technicalities of running your quantum program on an IBM Quantum device (including any error mitigation and suppression) is **not** open-source. However, the Qiskit Runtime client (the interface for users to access the Qiskit Runtime service), the Qiskit SDK running on the server side, and some of the software used for error mitigation, **are** open-source. To get involved with the Qiskit open-source efforts, visit our GitHub organization at [github.com/Qiskit](https://github.com/Qiskit) and [github.com/Qiskit-Extensions](https://github.com/Qiskit-Extensions/). diff --git a/docs/guides/qiskit-sdk-overview.mdx b/docs/guides/qiskit-sdk-overview.mdx index 7cdcda34c93..3380618146e 100644 --- a/docs/guides/qiskit-sdk-overview.mdx +++ b/docs/guides/qiskit-sdk-overview.mdx @@ -13,8 +13,6 @@ In addition, many open-source projects are part of the broader Qiskit ecosystem. ![All Qiskit pattern steps are shown (Map the problem, Optimize for hardware, Execute on hardware, and Post-process results). All steps, except for '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) -IBM is committed to the responsible development of quantum computing. Learn more and review our responsible quantum principles in the [Responsible quantum computing](/docs/responsible-quantum-computing) topic. - ## The Qiskit SDK The Qiskit SDK (package name [`qiskit`](https://pypi.org/project/qiskit/)) is an open-source SDK for working with quantum computers at the level of extended (static, dynamic, and scheduled) quantum circuits, operators, and primitives. This library is the core component of Qiskit; it is the largest package under the Qiskit name with the broadest suite of tools for quantum computation, and many other components interface with it. @@ -33,7 +31,7 @@ Some of the most useful features of the Qiskit SDK include: ### Installation -For a more detailed introduction to installing the Qiskit SDK, check out the [installation page](./install-qiskit). If you're ready to install it now, simply run: +For a more detailed introduction to installing the Qiskit SDK, check out the [installation page](/docs/guides/install-qiskit). If you're ready to install it now, simply run: ```bash pip install qiskit @@ -43,25 +41,6 @@ pip install qiskit Benchmarking is important for comparing the relative performance of quantum software across different stages of a development workflow. Benchmarking tests for quantum software might, for example, look at the speed and quality of building, manipulating, and transpiling circuits. IBM Quantum is committed to delivering the most performant SDK possible, and to that end, the Qiskit SDK is benchmarked using over 1,000 tests developed by leading universities, national labs, and researchers at IBM. The benchmarking suite used for these tests, named Benchpress, is now available as [an open-source package](https://github.com/qiskit/benchpress). You can now use the Benchpress package to perform your own analysis of quantum SDK performance. -## Qiskit Runtime - -Qiskit Runtime is a cloud-based service for executing quantum computations on IBM Quantum® hardware. The `qiskit-ibm-runtime` package is a client for that service, and is the successor to the Qiskit IBM Provider. The Qiskit Runtime service streamlines quantum computations and provides optimal implementations of the Qiskit primitives for IBM Quantum hardware. To get started with Qiskit Runtime primitives, visit the [documentation](./get-started-with-primitives). - -Qiskit Runtime is designed to use additional classical and quantum compute resources, including techniques such as error suppression and error mitigation, to return a higher-quality result from executing quantum circuits on quantum processors. Examples include dynamical decoupling for error suppression, and readout mitigation and zero-noise extrapolation (ZNE) for error mitigation. Learn how to configure these options on the [Configure error mitigation](./configure-error-mitigation) page. - - -Qiskit Runtime also includes three types of execution modes for running your quantum program on IBM hardware: [_Job_, _Session_, and _Batch_,](/docs/guides/execution-modes) each of which have different use cases and implications for the quantum job queue. A Job is a single query to a primitive that can be run over a specified number of shots. Sessions allow you to efficiently run multiple jobs in iterative workloads on quantum computers. Batch mode allows you to submit all your jobs at once for parallel processing. Note that Open Plan users cannot submit session jobs. - -To quickly install Qiskit Runtime, run the following command: -```bash -pip install qiskit-ibm-runtime -``` - -More details on setting up a development environment for building quantum programs can be found in the [installation page](./install-qiskit). - -### Is Qiskit Runtime open-source? -The short answer is, _not all of it_. The Qiskit Runtime service software that handles the technicalities of running your quantum program on an IBM Quantum device (including any error mitigation and suppression) is **not** open-source. However, the Qiskit Runtime client (the interface for users to access the Qiskit Runtime service), the Qiskit SDK running on the server side, and some of the software used for error mitigation, **are** open-source. To get involved with the Qiskit open-source efforts, visit our GitHub organization at [github.com/Qiskit](https://github.com/Qiskit) and [github.com/Qiskit-Extensions](https://github.com/Qiskit-Extensions/). - ## Qiskit Serverless Creating utility-scale quantum applications generally requires a variety of compute resource requirements. Qiskit Serverless (`qiskit-ibm-catalog.QiskitServerless`) provides a simple interface to run workloads across quantum-classical resources. This includes deploying programs to IBM Quantum Platform and running workloads remotely, as well as easy resource management for multi-cloud and quantum-centric supercomputing use cases. See more information in the [Qiskit Serverless documentation](/docs/guides/serverless) about how to use this collection of tools to: diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index c6ae8297d79..b53a5b17d6e 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -236,6 +236,9 @@ notifications: "docs/guides/qiskit-sdk-overview": - "@abbycross" - "@beckykd" + "docs/guides/overview-qiskit-runtime": + - "@abbycross" + - "@beckykd" "docs/guides/function-template-hamiltonian-simulation": - "@jenglick" - "@garrison" From a25726a2ab4d4e0960ae154ed1f28806a76b5e40 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 2 Dec 2025 15:30:42 -0500 Subject: [PATCH 19/82] add to toc --- docs/guides/_toc.json | 6 +++--- docs/guides/overview-qiskit-runtime.mdx | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index d60f381638b..2ffbd61d350 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -58,9 +58,9 @@ "url": "/docs/guides/qiskit-sdk-overview" }, { - "title": "Qiskit Runtime overview (PLACEHOLDER)", - "url": "https://quantum.cloud.ibm.com/docs/en/guides/qiskit-sdk-overview#qiskit-runtime" - }, + "title": "Qiskit Runtime overview", + "url": "/docs/guides/overview-qiskit-runtime" + }, { "title": "Qiskit Functions overview", "url": "/docs/guides/functions" diff --git a/docs/guides/overview-qiskit-runtime.mdx b/docs/guides/overview-qiskit-runtime.mdx index a726f2942cf..27989065b9e 100644 --- a/docs/guides/overview-qiskit-runtime.mdx +++ b/docs/guides/overview-qiskit-runtime.mdx @@ -1,10 +1,9 @@ - --- title: Qiskit Runtime overview description: An explanation of the Qiskit Runtime service and how to get started. --- -# Qiskit Runtime Overview +# Qiskit Runtime overview Qiskit Runtime is a cloud-based service for executing quantum computations on IBM Quantum® hardware. The `qiskit-ibm-runtime` package is a client for that service, and is the successor to the Qiskit IBM Provider. The Qiskit Runtime service streamlines quantum computations and provides optimal implementations of the Qiskit primitives for IBM Quantum hardware. To get started with Qiskit Runtime primitives, visit the [documentation](/docs/guides/get-started-with-primitives). From dd9454b1a09cb74c3fd5f46d4a5d198b4e3de349 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 2 Dec 2025 15:50:55 -0500 Subject: [PATCH 20/82] split out overview pages, adjust orphans --- docs/guides/_toc.json | 31 ++++-- docs/guides/overview-qiskit-ecosystem.mdx | 15 +++ docs/guides/overview-qiskit-sdk.mdx | 50 +++++++++ docs/guides/overview-qiskit-serverless.mdx | 17 +++ docs/guides/qiskit-sdk-overview.mdx | 124 --------------------- qiskit_bot.yaml | 8 +- scripts/js/commands/checkPatternsIndex.ts | 2 +- 7 files changed, 114 insertions(+), 133 deletions(-) create mode 100644 docs/guides/overview-qiskit-ecosystem.mdx create mode 100644 docs/guides/overview-qiskit-sdk.mdx create mode 100644 docs/guides/overview-qiskit-serverless.mdx delete mode 100644 docs/guides/qiskit-sdk-overview.mdx diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 2ffbd61d350..9facf6c095c 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -55,7 +55,7 @@ "children": [ { "title": "Qiskit SDK overview", - "url": "/docs/guides/qiskit-sdk-overview" + "url": "/docs/guides/overview-qiskit-sdk" }, { "title": "Qiskit Runtime overview", @@ -68,6 +68,14 @@ { "title": "Qiskit addons overview", "url": "/docs/guides/addons" + }, + { + "title": "Qiskit Serverless overview", + "url": "/docs/guides/overview-qiskit-serverless" + }, + { + "title": "Qiskit ecosystem overview", + "url": "/docs/guides/overview-qiskit-ecosystem" } ] } @@ -486,12 +494,21 @@ "url": "/docs/guides/configure-error-suppression" }, { - "title": "Get started with SQD", - "url": "/docs/guides/qiskit-addons-sqd-get-started" - }, - { - "title": "SQD (HPC-ready)", - "url": "https://qiskit.github.io/qiskit-addon-sqd-hpc/" + "title": "Sample-based quantum diagonalization (SQD)", + "children":[ + { + "title": "Sample-based quantum diagonalization (SQD) overview", + "url": "/docs/guides/qiskit-addons-sqd" + }, + { + "title": "Get started with SQD", + "url": "/docs/guides/qiskit-addons-sqd-get-started" + }, + { + "title": "SQD (HPC-ready)", + "url": "https://qiskit.github.io/qiskit-addon-sqd-hpc/" + } + ] }, { "title": "Mthree (M3)", diff --git a/docs/guides/overview-qiskit-ecosystem.mdx b/docs/guides/overview-qiskit-ecosystem.mdx new file mode 100644 index 00000000000..3dffae1dd38 --- /dev/null +++ b/docs/guides/overview-qiskit-ecosystem.mdx @@ -0,0 +1,15 @@ +--- +title: Qiskit ecosystem overview +description: An explanation of the Qiskit ecosystem and examples of popular projects. +--- +# The Qiskit ecosystem + +Beyond Qiskit there are many open-source projects that use the "Qiskit" name but are not part of Qiskit itself; rather, they interface with Qiskit and can provide valuable additional functionality to supplement the core Qiskit workflow. Some of these projects are maintained by IBM Quantum teams, whereas others are supported by the broader open-source community. The Qiskit SDK is designed in a modular, extensible way to make it easy for developers to create projects like these that extend its capabilities. + +Some popular projects in the Qiskit ecosystem include: + +- **Qiskit Aer** (`qiskit-aer`) - a package for quantum computing simulators with realistic noise models. It provides interfaces to run quantum circuits with or without noise using multiple different simulation methods. Maintained by IBM Quantum. +- **qBraid SDK** (`qbraid`) - a platform-agnostic quantum runtime framework for both quantum software and hardware providers, designed to streamline the full lifecycle management of quantum jobs—from defining program specifications to job submission and through to the post-processing and visualization of results. Maintained by qBraid. +- **mthree** `mthree` - a package for implementing M3 (Matrix-free Measurement Mitigation), a measurement mitigation technique that solves for corrected measurement probabilities using a dimensionality reduction step followed by either direct LU factorization or a preconditioned iterative method that nominally converges in O(1) steps, and can be computed in parallel. Maintained by IBM Quantum. + +You can find a catalog of projects in the [Qiskit ecosystem page](https://qiskit.github.io/ecosystem/), as well as information about how to nominate your own project. \ No newline at end of file diff --git a/docs/guides/overview-qiskit-sdk.mdx b/docs/guides/overview-qiskit-sdk.mdx new file mode 100644 index 00000000000..169327f97e6 --- /dev/null +++ b/docs/guides/overview-qiskit-sdk.mdx @@ -0,0 +1,50 @@ +--- +title: Qiskit SDK overview +description: What is the Qiskit SDK? This document provides an introduction to the Qiskit stack. +--- + +{/* cspell:ignore Benchpress */} + +# Qiskit SDK overview + +The name "Qiskit" is a general term referring to a collection of software for executing programs on quantum computers. Most notably among these software tools is the open-source Qiskit SDK, and the runtime environment (accessed using Qiskit Runtime) through which you can execute workloads on IBM® quantum processing units (QPUs). As quantum technology evolves, so does Qiskit, with new capabilities released every year that expand this core collection of quantum software. + +In addition, many open-source projects are part of the broader Qiskit ecosystem. These software tools are not part of Qiskit itself, but rather interface with Qiskit and can provide valuable additional functionality. + +![All Qiskit pattern steps are shown (Map the problem, Optimize for hardware, Execute on hardware, and Post-process results). All steps, except for '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) + +## The Qiskit SDK + +The Qiskit SDK (package name [`qiskit`](https://pypi.org/project/qiskit/)) is an open-source SDK for working with quantum computers at the level of extended (static, dynamic, and scheduled) quantum circuits, operators, and primitives. This library is the core component of Qiskit; it is the largest package under the Qiskit name with the broadest suite of tools for quantum computation, and many other components interface with it. + +Some of the most useful features of the Qiskit SDK include: + +- **Circuit-building tools** ([`qiskit.circuit`](/docs/api/qiskit/circuit)) - For initializing and manipulating registers, circuits, instructions, gates, parameters, and control flow objects. + +- **Circuit library** ([`qiskit.circuit.library`](/docs/api/qiskit/circuit_library)) - A vast range of circuits, instructions, and gates - key building blocks for circuit-based quantum computations. + +- **Quantum info library** ([`qiskit.quantum_info`](/docs/api/qiskit/quantum_info)) - A toolkit for working with quantum states, operators and channels, using exact calculations (no sampling noise). Use this module to specify input observables and analyze fidelity of outputs from primitives queries. + +- **Transpiler** ([`qiskit.transpiler`](/docs/api/qiskit/transpiler)) - For transforming and adapting quantum circuits to suit specific device topology, and optimizing for execution on real quantum processing units (QPUs). + +- **Primitives** ([`qiskit.primitives`](/docs/api/qiskit/primitives)) - The module that contains the base definitions and reference implementations of the Sampler and Estimator primitives, from which different quantum hardware providers can derive their own implementations. See more information about the Qiskit Runtime primitives [in the documentation](./primitives). + +### Installation + +For a more detailed introduction to installing the Qiskit SDK, check out the [installation page](/docs/guides/install-qiskit). If you're ready to install it now, simply run: + +```bash +pip install qiskit +``` + +### Benchmarking and the Benchpress package + +Benchmarking is important for comparing the relative performance of quantum software across different stages of a development workflow. Benchmarking tests for quantum software might, for example, look at the speed and quality of building, manipulating, and transpiling circuits. IBM Quantum is committed to delivering the most performant SDK possible, and to that end, the Qiskit SDK is benchmarked using over 1,000 tests developed by leading universities, national labs, and researchers at IBM. The benchmarking suite used for these tests, named Benchpress, is now available as [an open-source package](https://github.com/qiskit/benchpress). You can now use the Benchpress package to perform your own analysis of quantum SDK performance. + +## Next steps + + + - Learn about the library of circuits and instructions available in the Qiskit [circuit library](/docs/guides/circuit-library). + - Read about the Qiskit transpiler and the many options for transpilation in the [Transpiler](/docs/guides/transpile) section. + - Find out how to use [Qiskit primitives](/docs/guides/primitives) to streamline quantum programming. + diff --git a/docs/guides/overview-qiskit-serverless.mdx b/docs/guides/overview-qiskit-serverless.mdx new file mode 100644 index 00000000000..59654f6190c --- /dev/null +++ b/docs/guides/overview-qiskit-serverless.mdx @@ -0,0 +1,17 @@ +--- +title: Qiskit Serverless overview +description: An explanation of the Qiskit Serverless catalog and how to get started. +--- + +# Qiskit Serverless overview + +Creating utility-scale quantum applications generally requires a variety of compute resource requirements. Qiskit Serverless (`qiskit-ibm-catalog.QiskitServerless`) provides a simple interface to run workloads across quantum-classical resources. This includes deploying programs to IBM Quantum Platform and running workloads remotely, as well as easy resource management for multi-cloud and quantum-centric supercomputing use cases. See more information in the [Qiskit Serverless documentation](/docs/guides/serverless) about how to use this collection of tools to: + +- Parallelize classical tasks, such as pre-processing and post-processing +- Persist long-running workloads in the cloud, even if your laptop is turned off +- Deploy reusable programs in the cloud + +To start using Qiskit Serverless right away, install it with pip: +```bash +pip install qiskit_serverless +``` diff --git a/docs/guides/qiskit-sdk-overview.mdx b/docs/guides/qiskit-sdk-overview.mdx deleted file mode 100644 index 3380618146e..00000000000 --- a/docs/guides/qiskit-sdk-overview.mdx +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Qiskit SDK overview -description: What is the Qiskit SDK? This document provides an introduction to the Qiskit stack. ---- - -{/* cspell:ignore Benchpress */} - -# Qiskit SDK overview - -The name "Qiskit" is a general term referring to a collection of software for executing programs on quantum computers. Most notably among these software tools is the open-source Qiskit SDK, and the runtime environment (accessed using Qiskit Runtime) through which you can execute workloads on IBM® quantum processing units (QPUs). As quantum technology evolves, so does Qiskit, with new capabilities released every year that expand this core collection of quantum software. - -In addition, many open-source projects are part of the broader Qiskit ecosystem. These software tools are not part of Qiskit itself, but rather interface with Qiskit and can provide valuable additional functionality. - -![All Qiskit pattern steps are shown (Map the problem, Optimize for hardware, Execute on hardware, and Post-process results). All steps, except for '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) - -## The Qiskit SDK - -The Qiskit SDK (package name [`qiskit`](https://pypi.org/project/qiskit/)) is an open-source SDK for working with quantum computers at the level of extended (static, dynamic, and scheduled) quantum circuits, operators, and primitives. This library is the core component of Qiskit; it is the largest package under the Qiskit name with the broadest suite of tools for quantum computation, and many other components interface with it. - -Some of the most useful features of the Qiskit SDK include: - -- **Circuit-building tools** ([`qiskit.circuit`](/docs/api/qiskit/circuit)) - For initializing and manipulating registers, circuits, instructions, gates, parameters, and control flow objects. - -- **Circuit library** ([`qiskit.circuit.library`](/docs/api/qiskit/circuit_library)) - A vast range of circuits, instructions, and gates - key building blocks for circuit-based quantum computations. - -- **Quantum info library** ([`qiskit.quantum_info`](/docs/api/qiskit/quantum_info)) - A toolkit for working with quantum states, operators and channels, using exact calculations (no sampling noise). Use this module to specify input observables and analyze fidelity of outputs from primitives queries. - -- **Transpiler** ([`qiskit.transpiler`](/docs/api/qiskit/transpiler)) - For transforming and adapting quantum circuits to suit specific device topology, and optimizing for execution on real quantum processing units (QPUs). - -- **Primitives** ([`qiskit.primitives`](/docs/api/qiskit/primitives)) - The module that contains the base definitions and reference implementations of the Sampler and Estimator primitives, from which different quantum hardware providers can derive their own implementations. See more information about the Qiskit Runtime primitives [in the documentation](./primitives). - -### Installation - -For a more detailed introduction to installing the Qiskit SDK, check out the [installation page](/docs/guides/install-qiskit). If you're ready to install it now, simply run: - -```bash -pip install qiskit -``` - -### Benchmarking and the Benchpress package - -Benchmarking is important for comparing the relative performance of quantum software across different stages of a development workflow. Benchmarking tests for quantum software might, for example, look at the speed and quality of building, manipulating, and transpiling circuits. IBM Quantum is committed to delivering the most performant SDK possible, and to that end, the Qiskit SDK is benchmarked using over 1,000 tests developed by leading universities, national labs, and researchers at IBM. The benchmarking suite used for these tests, named Benchpress, is now available as [an open-source package](https://github.com/qiskit/benchpress). You can now use the Benchpress package to perform your own analysis of quantum SDK performance. - -## Qiskit Serverless - -Creating utility-scale quantum applications generally requires a variety of compute resource requirements. Qiskit Serverless (`qiskit-ibm-catalog.QiskitServerless`) provides a simple interface to run workloads across quantum-classical resources. This includes deploying programs to IBM Quantum Platform and running workloads remotely, as well as easy resource management for multi-cloud and quantum-centric supercomputing use cases. See more information in the [Qiskit Serverless documentation](/docs/guides/serverless) about how to use this collection of tools to: - -- Parallelize classical tasks, such as pre-processing and post-processing -- Persist long-running workloads in the cloud, even if your laptop is turned off -- Deploy reusable programs in the cloud - -To start using Qiskit Serverless right away, install it with pip: -```bash -pip install qiskit_serverless -``` - - -## Qiskit Functions - -Qiskit Functions (`qiskit-ibm-catalog.QiskitFunctionsCatalog`) are abstracted services designed to accelerate algorithm discovery and application prototyping. Explore the [Qiskit Functions Catalog](https://quantum.cloud.ibm.com/functions), including: - -- **Circuit functions**: Services that include transpilation, error suppression, error mitigation, and post-processing techniques that take abstract circuits and desired measurement observables as input. With Circuit functions, users can discover new algorithms and applications without needing to manage transpilation or quantum hardware performance. -- **Application functions**: Services that include entire quantum workflows, from mapping classical to quantum, optimizing for hardware, execution on hardware, and post-processing. Users can prototype industry applications with domain-familiar inputs and outputs. - -Premium Plan, Flex Plan, and On-Prem (via IBM Quantum Platform API) Plan members can access IBM-provided functions right away, or purchase licenses for the partner-provided functions directly from those partners. - -The catalog can be installed with pip: -```bash -pip install qiskit-ibm-catalog -``` - -## Qiskit Transpiler Service -The Qiskit Transpiler Service ([package name `qiskit-ibm-transpiler`](https://pypi.org/project/qiskit-ibm-transpiler/)) is a new experimental service that provides remote transpilation capabilities on the cloud to IBM Quantum Premium Plan, Flex Plan, and On-Prem (via IBM Quantum Platform API) Plan users. In addition to the local Qiskit SDK transpiler capabilities, your transpilation tasks can benefit from both IBM Quantum cloud resources and AI-powered transpiler passes using this service. To learn more about how to integrate cloud-based transpilation into your Qiskit workflow you can [check out the documentation](./qiskit-transpiler-service). - -The transpiler service can be installed with pip: -```bash -pip install qiskit-ibm-transpiler -``` - -## Qiskit addons - -Qiskit addons are a collection of research capabilities for utility-scale algorithm discovery. These capabilities build upon Qiskit’s performant foundation of tools for creating and running quantum algorithms. Addons are modular software components that plug into a workflow to scale or design new quantum algorithms. To learn more about the set of available Qiskit addons and how to get started using them, visit the [documentation](/docs/guides/addons). - -There are a number of addons depending on what research capability you are interested in. Each of them can be installed with pip. - -[Sample-based quantum diagonalization (SQD)](/docs/guides/qiskit-addons-sqd): -```bash -pip install qiskit-addon-sqd -``` - -[Approximate quantum compilation (AQC)](/docs/guides/qiskit-addons-aqc): -```bash -pip install qiskit-addon-aqc-tensor[quimb-jax] -``` - -[Operator backpropagation (OBP)](/docs/guides/qiskit-addons-obp): -```bash -pip install qiskit-addon-obp -``` - -[Multi-product formulas (MPF)](/docs/guides/qiskit-addons-mpf): -```bash -pip install qiskit-addon-mpf -``` - -## The Qiskit ecosystem - -Beyond Qiskit there are many open-source projects that use the "Qiskit" name but are not part of Qiskit itself; rather, they interface with Qiskit and can provide valuable additional functionality to supplement the core Qiskit workflow. Some of these projects are maintained by IBM Quantum teams, whereas others are supported by the broader open-source community. The Qiskit SDK is designed in a modular, extensible way to make it easy for developers to create projects like these that extend its capabilities. - -Some popular projects in the Qiskit ecosystem include: - -- **Qiskit Aer** (`qiskit-aer`) - a package for quantum computing simulators with realistic noise models. It provides interfaces to run quantum circuits with or without noise using multiple different simulation methods. Maintained by IBM Quantum. -- **qBraid SDK** (`qbraid`) - a platform-agnostic quantum runtime framework for both quantum software and hardware providers, designed to streamline the full lifecycle management of quantum jobs—from defining program specifications to job submission and through to the post-processing and visualization of results. Maintained by qBraid. -- **mthree** `mthree` - a package for implementing M3 (Matrix-free Measurement Mitigation), a measurement mitigation technique that solves for corrected measurement probabilities using a dimensionality reduction step followed by either direct LU factorization or a preconditioned iterative method that nominally converges in O(1) steps, and can be computed in parallel. Maintained by IBM Quantum. - -You can find a catalog of projects in the [Qiskit ecosystem page](https://qiskit.github.io/ecosystem/), as well as information about how to nominate your own project. - -## Next steps - - - - Learn about the library of circuits and instructions available in the Qiskit [circuit library](/docs/guides/circuit-library). - - Read about the Qiskit transpiler and the many options for transpilation in the [Transpiler](/docs/guides/transpile) section. - - Find out how to use [Qiskit primitives](/docs/guides/primitives) to streamline quantum programming. - diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index b53a5b17d6e..f64b6a76207 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -233,7 +233,13 @@ notifications: "docs/guides/monitor-job": - "@jyu00" - "@beckykd" - "docs/guides/qiskit-sdk-overview": + "docs/guides/overview-qiskit-ecosystem": + - "@abbycross" + - "@beckykd" + "docs/guides/overview-qiskit-serverless": + - "@abbycross" + - "@beckykd" + "docs/guides/overview-qiskit-sdk": - "@abbycross" - "@beckykd" "docs/guides/overview-qiskit-runtime": diff --git a/scripts/js/commands/checkPatternsIndex.ts b/scripts/js/commands/checkPatternsIndex.ts index 6c5e804d3db..38253454cc6 100644 --- a/scripts/js/commands/checkPatternsIndex.ts +++ b/scripts/js/commands/checkPatternsIndex.ts @@ -23,7 +23,7 @@ const ALLOWLIST_MISSING_FROM_INDEX: Set = new Set([ "/docs/guides/qiskit-code-assistant-vscode", "/docs/guides/qiskit-code-assistant-local", "/docs/guides/addons", - "/docs/guides/qiskit-sdk-overview", + "/docs/guides/overview-qiskit-sdk", "/docs/guides/function-template-hamiltonian-simulation", "/docs/guides/qiskit-addons-utils", "/docs/guides/qiskit-code-assistant-openai-api", From 46a2f2f8a9edea1077873cc3d69ccec7cc3df620 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 2 Dec 2025 15:54:21 -0500 Subject: [PATCH 21/82] adjust header levels --- docs/guides/overview-qiskit-sdk.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/overview-qiskit-sdk.mdx b/docs/guides/overview-qiskit-sdk.mdx index 169327f97e6..a4f0d5122fc 100644 --- a/docs/guides/overview-qiskit-sdk.mdx +++ b/docs/guides/overview-qiskit-sdk.mdx @@ -27,17 +27,17 @@ Some of the most useful features of the Qiskit SDK include: - **Transpiler** ([`qiskit.transpiler`](/docs/api/qiskit/transpiler)) - For transforming and adapting quantum circuits to suit specific device topology, and optimizing for execution on real quantum processing units (QPUs). -- **Primitives** ([`qiskit.primitives`](/docs/api/qiskit/primitives)) - The module that contains the base definitions and reference implementations of the Sampler and Estimator primitives, from which different quantum hardware providers can derive their own implementations. See more information about the Qiskit Runtime primitives [in the documentation](./primitives). +- **Primitives** ([`qiskit.primitives`](/docs/api/qiskit/primitives)) - The module that contains the base definitions and reference implementations of the Sampler and Estimator primitives, from which different quantum hardware providers can derive their own implementations. See more information about the Qiskit Runtime primitives [in the documentation](/docs/guides/primitives). -### Installation +## Installation -For a more detailed introduction to installing the Qiskit SDK, check out the [installation page](/docs/guides/install-qiskit). If you're ready to install it now, simply run: +For a more detailed introduction to installing the Qiskit SDK, check out the [installation guide](/docs/guides/install-qiskit). If you're ready to install it now, simply run: ```bash pip install qiskit ``` -### Benchmarking and the Benchpress package +## Benchmarking and the Benchpress package Benchmarking is important for comparing the relative performance of quantum software across different stages of a development workflow. Benchmarking tests for quantum software might, for example, look at the speed and quality of building, manipulating, and transpiling circuits. IBM Quantum is committed to delivering the most performant SDK possible, and to that end, the Qiskit SDK is benchmarked using over 1,000 tests developed by leading universities, national labs, and researchers at IBM. The benchmarking suite used for these tests, named Benchpress, is now available as [an open-source package](https://github.com/qiskit/benchpress). You can now use the Benchpress package to perform your own analysis of quantum SDK performance. From 105c2d9a645da059536135fa2c675ec795eb8d85 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 2 Dec 2025 16:11:14 -0500 Subject: [PATCH 22/82] rmv pulse pg --- docs/guides/_toc.json | 25 +- docs/guides/pulse.ipynb | 1568 --------------------- scripts/config/notebook-testing.toml | 4 - scripts/js/commands/checkInternalLinks.ts | 1 - 4 files changed, 8 insertions(+), 1590 deletions(-) delete mode 100644 docs/guides/pulse.ipynb diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 9facf6c095c..17bd822bbed 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -456,6 +456,10 @@ "title": "Retrieve and save job results", "url": "/docs/guides/save-jobs" }, + { + "title": "Monitor or cancel a job", + "url": "/docs/guides/monitor-job" + }, { "title": "Fair-share scheduler", "url": "/docs/guides/fair-share-scheduler" @@ -648,23 +652,6 @@ } ] }, - { - "title": "Work with instances", - "children": [ - { - "title": "Create and manage instances", - "url": "/docs/guides/instances" - }, - { - "title": "Set allocation limits", - "url": "/docs/guides/allocation-limits" - }, - { - "title": "Use IBM Cloud Platform APIs to access instances", - "url": "/docs/guides/access-instances-platform-apis" - } - ] - }, { "title": "IBM quantum computers", "children": [ @@ -679,6 +666,10 @@ { "title": "Retired cloud QPUs", "url": "/docs/guides/retired-qpus" + }, + { + "title": "Calibration jobs", + "url": "/docs/guides/calibration-jobs" } ] } diff --git a/docs/guides/pulse.ipynb b/docs/guides/pulse.ipynb deleted file mode 100644 index b7c4b15197c..00000000000 --- a/docs/guides/pulse.ipynb +++ /dev/null @@ -1,1568 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "64c16b43-bb03-4fd0-8aaf-a1b1f9864a4f", - "metadata": {}, - "source": [ - "# Pulse schedules" - ] - }, - { - "cell_type": "markdown", - "id": "cce2a0ff-152d-4462-a187-7741cb9ce87a", - "metadata": { - "tags": [ - "version-info" - ] - }, - "source": [ - "
\n", - "Package versions\n", - "\n", - "The code on this page was developed using the following requirements.\n", - "We recommend using these versions or newer.\n", - "\n", - "```\n", - "qiskit[all]~=1.4.0\n", - "qiskit-ibm-runtime~=0.36.1\n", - "```\n", - "
" - ] - }, - { - "cell_type": "markdown", - "id": "e315fbd1-f3a6-4eab-bb47-0ee1d52f3d84", - "metadata": {}, - "source": [ - "\n", - "\n", - " Pulse-level control on __all__ IBM Quantum® processors has been removed and this tutorial will __not work correctly__ using these QPUs.\n", - "\n", - " If you were using pulse schedules to execute single- and two-qubit rotations, use the new [fractional gates](/docs/guides/fractional-gates) feature. Alternatively, if you would like to simulate pulse schedules for your work, try the [Qiskit Dynamics](https://qiskit-community.github.io/qiskit-dynamics/) package.\n", - "\n", - "Additionally, the `qiskit.pulse` module has been **removed** as of Qiskit SDK v2.0.0. See the [pulse migration guide](/docs/guides/pulse-migration) for more information.\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "de13a71a-8d34-4988-a24f-abaaf8bf123a", - "metadata": {}, - "source": [ - "## Overview\n", - "\n", - "Most quantum algorithms can be described with circuit operations alone. When you need more control over the low-level program implementation, you can use _pulse gates_. Pulse gates remove the constraint of executing circuits with basis gates only and let you override the default implementation of any basis gate.\n", - "\n", - "Pulse gates let you map a logical circuit gate (for example, `X`) to a Qiskit Pulse program, called a `ScheduleBlock`. This mapping is referred to as a _calibration_. A high-fidelity calibration is one that faithfully implements the logical operation it is mapped from (for example, whether the `X` gate calibration drives $|0\\rangle$ to $|1\\rangle$).\n", - "\n", - "A schedule specifies the exact time dynamics of the input signals across all input _channels_ to the device. There are usually multiple channels per qubit, such as drive and measure. This interface is more powerful, and requires a deeper understanding of the underlying device physics.\n", - "\n", - "It's important to note that pulse programs operate on physical qubits. A drive pulse on qubit $a$ does not enact the same logical operation on the state of qubit $b$. In other words, gate calibrations are not interchangeable across qubits. This is in contrast to the circuit level, where an `X` gate is defined independently of its qubit operand.\n", - "\n", - "This page shows you how to add a calibration to your circuit.\n", - "\n", - "**Note:** Not all QPUs support pulse gates. To see which QPUs have pulse gate support, filter your view (click the funnel icon) on the [Compute resources page](https://quantum.cloud.ibm.com/computers) by checking the _Pulse gates_ box." - ] - }, - { - "cell_type": "markdown", - "id": "69b0d6c1-49ac-4062-aefd-1673f5c6a62d", - "metadata": {}, - "source": [ - "### Build your circuit\n", - "\n", - "Let's start with a very simple example, a Bell state circuit." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "90c68fb2-6ed5-41f3-a4f8-f73e92367c4c", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from qiskit import QuantumCircuit\n", - "\n", - "circ = QuantumCircuit(2, 2)\n", - "circ.h(0)\n", - "circ.cx(0, 1)\n", - "circ.measure(0, 0)\n", - "circ.measure(1, 1)\n", - "\n", - "circ.draw(\"mpl\")" - ] - }, - { - "cell_type": "markdown", - "id": "2d87ee19-8ffb-40b1-b847-992eb6295375", - "metadata": {}, - "source": [ - "### Build your calibrations\n", - "\n", - "Define a calibration for the Hadamard gate on qubit 0.\n", - "\n", - "In practice, the pulse shape and its parameters would be optimized through a series of calibration experiments. For this demonstration, the Hadamard will be a Gaussian pulse. You _play_ the pulse on the _drive_ channel of qubit 0.\n", - "\n", - "For more information about calibrations, see the [legacy Qiskit Experiments tutorial in GitHub.](https://github.com/qiskit-community/qiskit-experiments/blob/stable/0.8/docs/tutorials/calibrations.rst)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "769fed93-24fe-4679-be2b-d03c82868548", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/889520912.py:7: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend, name=\"hadamard\") as h_q0:\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/889520912.py:9: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " Gaussian(duration=128, amp=0.1, sigma=16), pulse.drive_channel(0)\n", - "/tmp/ipykernel_5320/889520912.py:8: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(\n" - ] - } - ], - "source": [ - "from qiskit import pulse\n", - "from qiskit.pulse.library import Gaussian\n", - "from qiskit_ibm_runtime.fake_provider import FakeValenciaV2\n", - "\n", - "backend = FakeValenciaV2()\n", - "\n", - "with pulse.build(backend, name=\"hadamard\") as h_q0:\n", - " pulse.play(\n", - " Gaussian(duration=128, amp=0.1, sigma=16), pulse.drive_channel(0)\n", - " )" - ] - }, - { - "cell_type": "markdown", - "id": "b57b9ae0-a8a1-4cd9-a991-e8eded0f20fa", - "metadata": {}, - "source": [ - "Let's draw the new schedule to see what we've built." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "61ebd003-c9e3-48ca-9df3-b1c676bbd94a", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "h_q0.draw()" - ] - }, - { - "cell_type": "markdown", - "id": "6b7319f6-e47e-4f20-b0b2-783af5c0b277", - "metadata": {}, - "source": [ - "### Link your calibration to your circuit\n", - "\n", - "All that remains is to complete the registration. The circuit method `add_calibration` needs information about the gate and a reference to the schedule to complete the mapping:\n", - "\n", - "`QuantumCircuit.add_calibration(gate, qubits, schedule, parameters)`\n", - "\n", - "The `gate` can be either a `circuit.Gate` object or the name of the gate. Usually, you'll need a different schedule for each unique set of `qubits` and `parameters`. Since the Hadamard gate doesn't have any parameters, there is no need to supply any." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "9d38fcf0-1196-4151-a19e-4ac9f2d49012", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1015678639.py:1: DeprecationWarning: The method ``qiskit.circuit.quantumcircuit.QuantumCircuit.add_calibration()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics. Note that once removed, ``qiskit.circuit.quantumcircuit.QuantumCircuit.add_calibration()`` will have no alternative in Qiskit.\n", - " circ.add_calibration(\"h\", [0], h_q0)\n" - ] - } - ], - "source": [ - "circ.add_calibration(\"h\", [0], h_q0)" - ] - }, - { - "cell_type": "markdown", - "id": "955f4f18-c181-4cb4-86da-25cb76b285e2", - "metadata": {}, - "source": [ - "Lastly, note that the transpiler will respect your calibrations. Use it as you normally would (our example is too simple for the transpiler to optimize, so the output is the same)." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "b28bb363-5b77-471e-9ec7-79e9c9394096", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]) (0, 1)\n", - "Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]) (1, 0)\n", - "Instruction(name='id', num_qubits=1, num_clbits=0, params=[]) (0,)\n", - "Instruction(name='id', num_qubits=1, num_clbits=0, params=[]) (1,)\n", - "Delay(duration=t[unit=dt]) (0,)\n", - "Delay(duration=t[unit=dt]) (1,)\n", - "Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]) (0,)\n", - "Instruction(name='measure', num_qubits=1, num_clbits=1, params=[]) (1,)\n", - "Instruction(name='rz', num_qubits=1, num_clbits=0, params=[Parameter(λ)]) (0,)\n", - "Instruction(name='rz', num_qubits=1, num_clbits=0, params=[Parameter(λ)]) (1,)\n", - "Instruction(name='sx', num_qubits=1, num_clbits=0, params=[]) (0,)\n", - "Instruction(name='sx', num_qubits=1, num_clbits=0, params=[]) (1,)\n", - "Instruction(name='reset', num_qubits=1, num_clbits=0, params=[]) (0,)\n", - "Instruction(name='reset', num_qubits=1, num_clbits=0, params=[]) (1,)\n", - "Instruction(name='x', num_qubits=1, num_clbits=0, params=[]) (0,)\n", - "Instruction(name='x', num_qubits=1, num_clbits=0, params=[]) (1,)\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from qiskit_ibm_runtime.fake_provider import FakeHanoiV2\n", - "from qiskit.transpiler import generate_preset_pass_manager\n", - "\n", - "backend = FakeHanoiV2()\n", - "passmanager = generate_preset_pass_manager(\n", - " optimization_level=1, backend=backend\n", - ")\n", - "circ = passmanager.run(circ)\n", - "\n", - "# Print instructions that only affect qubits 0 and 1\n", - "for instruction, qubits in FakeHanoiV2().instructions:\n", - " if qubits and set(qubits).issubset({0, 1}):\n", - " print(instruction, qubits)\n", - "circ.draw(\"mpl\", idle_wires=False)" - ] - }, - { - "cell_type": "markdown", - "id": "aa09ca2c-25cb-4220-859e-c03dc710c6ea", - "metadata": {}, - "source": [ - "Notice that `h` is not a basis gate for the mock backend `FakeHanoiV2`. Since you added a calibration for it, the transpiler will treat the gate as a basis gate, _but only on the qubits for which it was defined_. A Hadamard applied to a different qubit would be unrolled to the basis gates.\n", - "\n", - "### Custom gates\n", - "\n", - "This demonstrates the same process for nonstandard, completely custom gates, including a gate with parameters." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "7b6f5f69-9e27-42fb-a37f-b62d76d0da40", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from qiskit import QuantumCircuit\n", - "from qiskit.circuit import Gate\n", - "\n", - "circ = QuantumCircuit(1, 1)\n", - "custom_gate = Gate(\"my_custom_gate\", 1, [3.14, 1])\n", - "# 3.14 is an arbitrary parameter for demonstration\n", - "circ.append(custom_gate, [0])\n", - "circ.measure(0, 0)\n", - "\n", - "circ.draw(\"mpl\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "0b1b9bf4-c6f3-4d46-9be1-3ef53388a2b6", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1758347651.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend, name=\"custom\") as my_schedule:\n", - "/tmp/ipykernel_5320/1758347651.py:3: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " Gaussian(duration=64, amp=0.2, sigma=8), pulse.drive_channel(0)\n", - "/tmp/ipykernel_5320/1758347651.py:2: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(\n", - "/tmp/ipykernel_5320/1758347651.py:6: DeprecationWarning: The method ``qiskit.circuit.quantumcircuit.QuantumCircuit.add_calibration()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics. Note that once removed, ``qiskit.circuit.quantumcircuit.QuantumCircuit.add_calibration()`` will have no alternative in Qiskit.\n", - " circ.add_calibration(\"my_custom_gate\", [0], my_schedule, [3.14, 1])\n" - ] - } - ], - "source": [ - "with pulse.build(backend, name=\"custom\") as my_schedule:\n", - " pulse.play(\n", - " Gaussian(duration=64, amp=0.2, sigma=8), pulse.drive_channel(0)\n", - " )\n", - "\n", - "circ.add_calibration(\"my_custom_gate\", [0], my_schedule, [3.14, 1])\n", - "# Alternatively: circ.add_calibration(custom_gate, [0], my_schedule)" - ] - }, - { - "cell_type": "markdown", - "id": "88ed512f-5ec5-4e42-80ca-83a0cbe4dbfa", - "metadata": {}, - "source": [ - "If you use the `Gate` instance variable `custom_gate` to add the calibration, the parameters are derived from that instance. Remember that the order of parameters is significant." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "a47b526c-957b-40f5-a556-302e936a4694", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "circ = passmanager.run(circ)\n", - "circ.draw(\"mpl\", idle_wires=False)" - ] - }, - { - "cell_type": "markdown", - "id": "dd042f04-288c-4f78-8f3a-14679750b035", - "metadata": {}, - "source": [ - "Normally, if you tried to transpile `circ`, you would get an error. There was no functional definition provided for `\"my_custom_gate\"`, so the transpiler can't unroll it to the basis gate set of the target device. You can show this by trying to add `\"my_custom_gate\"` to another qubit that hasn't been calibrated." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "3d084f3f-0dcf-48be-9fc0-7af636633924", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\"HighLevelSynthesis was unable to synthesize Instruction(name='my_custom_gate', num_qubits=1, num_clbits=0, params=[3.14, 1]).\"\n" - ] - } - ], - "source": [ - "from qiskit import QiskitError\n", - "\n", - "circ = QuantumCircuit(2, 2)\n", - "circ.append(custom_gate, [1])\n", - "\n", - "try:\n", - " circ = passmanager.run(circ)\n", - "except QiskitError as e:\n", - " print(e)" - ] - }, - { - "cell_type": "markdown", - "id": "0bc19b2c-9210-4aff-a6e7-7b5bf8d5060f", - "metadata": {}, - "source": [ - "To link a custom gate to your circuits, you can also add to `Target` and transpile. A pass manager pass implicitly extracts calibration data from the target and calls `add_calibration`. This is convenient if you need to attach a calibration to multiple circuits or manage multiple calibrations." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "dc3ecb7f-895a-433e-8ca6-0bee059f3b3c", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/2463145812.py:13: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with builder.build() as custom_sched_q0:\n", - "/tmp/ipykernel_5320/2463145812.py:14: DeprecationWarning: The class ``qiskit.pulse.channels.Channel`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " builder.play([0.1] * 160, DriveChannel(0))\n", - "/tmp/ipykernel_5320/2463145812.py:14: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " builder.play([0.1] * 160, DriveChannel(0))\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/2463145812.py:18: DeprecationWarning: ``qiskit.transpiler.target.InstructionProperties.__init__()``'s argument ``calibration`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and this argument uses a dependency on the package.\n", - " {(0,): InstructionProperties(calibration=custom_sched_q0)},\n" - ] - } - ], - "source": [ - "from qiskit_ibm_runtime.fake_provider import FakeKyoto\n", - "from qiskit.circuit import QuantumCircuit, Gate\n", - "from qiskit.pulse import builder, DriveChannel\n", - "from qiskit.transpiler import InstructionProperties\n", - "\n", - "backend = FakeKyoto()\n", - "\n", - "custom_gate = Gate(\"my_gate\", 1, [])\n", - "qc = QuantumCircuit(1, 1)\n", - "qc.append(custom_gate, [0])\n", - "qc.measure(0, 0)\n", - "\n", - "with builder.build() as custom_sched_q0:\n", - " builder.play([0.1] * 160, DriveChannel(0))\n", - "\n", - "backend.target.add_instruction(\n", - " custom_gate,\n", - " {(0,): InstructionProperties(calibration=custom_sched_q0)},\n", - ")\n", - "\n", - "# Re-generate the passmanager with the new backend target\n", - "passmanager = generate_preset_pass_manager(\n", - " optimization_level=1, backend=backend\n", - ")\n", - "qc = passmanager.run(qc)" - ] - }, - { - "cell_type": "markdown", - "id": "0884d58e-88ff-473b-8ff2-23b9ad4e655a", - "metadata": {}, - "source": [ - "## Build pulse schedules\n", - "\n", - "Pulse gates define a low-level, exact representation for a circuit gate. A single operation can be implemented with a pulse program, which is comprised of multiple low-level instructions. Regardless of how the program is used, the syntax for building the program is the same." - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "606c12f4-5296-4d66-b082-edaf16a19b44", - "metadata": {}, - "source": [ - "**Important:** For IBM® devices, pulse programs are used as subroutines to describe gates. IBM devices do not accept full programs in this format." - ] - }, - { - "cell_type": "markdown", - "id": "d50ac149-6248-4e0d-b531-3ec86a32f869", - "metadata": {}, - "source": [ - "A pulse program, which is called a `ScheduleBlock`, describes instruction sequences for the control electronics. Use the Pulse Builder to build a `ScheduleBlock`, then initialize a schedule:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "15e6357b-d092-4035-90d9-cfafda151925", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1973151745.py:3: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(name=\"my_example\") as my_program:\n" - ] - }, - { - "data": { - "text/plain": [ - "ScheduleBlock(, name=\"my_example\", transform=AlignLeft())" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from qiskit import pulse\n", - "\n", - "with pulse.build(name=\"my_example\") as my_program:\n", - " # Add instructions here\n", - " pass\n", - "\n", - "my_program" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "7f25ee3c-4e71-48a7-9538-2345148080c0", - "metadata": {}, - "source": [ - "You can see that there are no instructions yet. The next section explains each of the instructions you might add to a schedule, and the last section will describe various _alignment contexts_, which determine how instructions are placed in time relative to one another." - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "f4de5a32-8d42-4351-afb3-7be434ad7fab", - "metadata": {}, - "source": [ - "### `ScheduleBlock` Instructions\n", - "\n", - " - [delay(duration, channel)](#delay)\n", - " - [play(pulse, channel)](#play)\n", - " - [set_frequency(frequency, channel)](#set_frequency)\n", - " - [shift_phase(phase, channel)](#shift_phase)\n", - " - [shift_frequency(frequency, channel)](#shift_frequency)\n", - " - [set_phase(phase, channel)](#set_phase)\n", - " - [acquire(duration, channel, mem_slot, reg_slot)](#acquire)\n", - "\n", - "Each instruction type has its own set of operands. As you can see above, they each include at least one `Channel` to specify where the instruction will be applied.\n", - "\n", - "**Channels** are labels for signal lines from the control hardware to the quantum chip.\n", - "\n", - " - A `DriveChannel` is typically used for _driving_ single-qubit rotations.\n", - " - A `ControlChannel` is typically used for multi-qubit gates or additional drive lines for tunable qubits.\n", - " - A `MeasureChannel` is specific to transmitting pulses that stimulate readout.\n", - " - An `AcquireChannel` is used to trigger digitizers which collect readout signals.\n", - "\n", - "`DriveChannel`s, `ControlChannel`s, and `MeasureChannel`s are all `PulseChannel`s; this means that they support _transmitting_ pulses, whereas the `AcquireChannel` is a receive channel only and cannot play waveforms.\n", - "\n", - "In the following examples, you can create one `DriveChannel` instance for each `Instruction` that accepts a `PulseChannel`. Channels take one integer `index` argument. Except for `ControlChannel`s, the index maps trivially to the qubit label." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "87f0dda0-ab93-40f2-abc6-4fa13a9fb216", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/501434037.py:3: DeprecationWarning: The class ``qiskit.pulse.channels.Channel`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " channel = DriveChannel(0)\n" - ] - } - ], - "source": [ - "from qiskit.pulse import DriveChannel\n", - "\n", - "channel = DriveChannel(0)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "4300cbd4-50ed-4d91-ab1b-25ab52476d00", - "metadata": {}, - "source": [ - "The pulse `ScheduleBlock` is independent of the backend it runs on. However, you can build your program in a context that is aware of the target backend by supplying it to `pulse.build`. When possible you should supply a backend. By using the channel accessors `pulse._channel()` you ensure you are only using available device resources." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "1a815f55-61ec-4603-abc1-ea766f7aac43", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/3624911394.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(\n", - "/tmp/ipykernel_5320/3624911394.py:8: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " channel = pulse.drive_channel(0)\n", - "/tmp/ipykernel_5320/3624911394.py:9: DeprecationWarning: The function ``qiskit.pulse.builder.num_qubits()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " print(pulse.num_qubits())\n" - ] - } - ], - "source": [ - "from qiskit_ibm_runtime.fake_provider import FakeValenciaV2\n", - "\n", - "backend = FakeValenciaV2()\n", - "\n", - "with pulse.build(\n", - " backend=backend, name=\"backend_aware\"\n", - ") as backend_aware_program:\n", - " channel = pulse.drive_channel(0)\n", - " print(pulse.num_qubits())\n", - " # Raises an error as backend only has 5 qubits\n", - " # pulse.drive_channel(100)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "3bed995b-c0f2-448a-8a19-3c5f6b7d0d0b", - "metadata": {}, - "source": [ - "### `delay`\n", - "\n", - "One of the simplest instructions is `delay`. This is a blocking instruction that tells the control electronics to output no signal on the given channel for the duration specified. It is useful for controlling the timing of other instructions.\n", - "\n", - "The duration here and elsewhere is in terms of the backend's cycle time (1 / sample rate), `dt`. It must take an integer value.\n", - "\n", - "To add a `delay` instruction, pass a duration and a channel, where `channel` can be any kind of channel, including `AcquireChannel`. Use `pulse.build` to begin a Pulse Builder context. This automatically schedules the delay into the schedule `delay_5dt`." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "8caa502e-0e02-4e77-bbe1-e35891060bae", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1337470939.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend) as delay_5dt:\n", - "/tmp/ipykernel_5320/1337470939.py:2: DeprecationWarning: The function ``qiskit.pulse.builder.delay()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.delay(5, channel)\n" - ] - } - ], - "source": [ - "with pulse.build(backend) as delay_5dt:\n", - " pulse.delay(5, channel)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "0662720c-dfbe-4f6e-92e5-d7a1990af0c0", - "metadata": {}, - "source": [ - "Any instruction added after this delay on the same channel will execute five timesteps later than it would have without this delay.\n", - "\n", - "### `play`\n", - "\n", - "The `play` instruction is responsible for executing _pulses_. It's straightforward to add a play instruction:\n", - "\n", - "```\n", - "with pulse.build() as sched:\n", - " pulse.play(pulse, channel)\n", - "```\n", - "\n", - "Let's clarify what the `pulse` argument is and explore a few different ways to build one.\n", - "\n", - "#### Pulses\n", - "\n", - "A `Pulse` specifies an arbitrary pulse _envelope_. The modulation frequency and phase of the output waveform are controlled by the [`set_frequency`](#set_frequency) and [`shift_phase`](#shift_phase) instructions.\n", - "\n", - "There are many methods available for building pulses, such as those available in the Qiskit Pulse `library`. Take for example a simple Gaussian pulse -- a pulse with its envelope described by a sampled Gaussian function. We arbitrarily choose an amplitude of 1, standard deviation $\\sigma$ of 10, and 128 sample points.\n", - "\n", - "**Note**: The amplitude norm is arbitrarily limited to `1.0`. Each backend may also impose further constraints. For instance, a minimum pulse size of 64. Any additional constraints are provided through [Target.](../api/qiskit/qiskit.transpiler.Target)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "9c96402f-ade7-41a6-810f-3d42f354c708", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [], - "source": [ - "from qiskit.pulse import library\n", - "\n", - "amp = 1\n", - "sigma = 10\n", - "num_samples = 128" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "fb403c63-cd57-4a12-8eee-ef3723ab8633", - "metadata": {}, - "source": [ - "##### Parametric pulses\n", - "You can build a Gaussian pulse by using the `Gaussian` parametric pulse. A parametric pulse sends the name of the function and its parameters to the backend, rather than every individual sample. Using parametric pulses makes the jobs much smaller to send. IBM Quantum backends limit the maximum job size that they accept, so parametric pulses might allow you to run larger programs.\n", - "\n", - "Other parametric pulses in the `library` include `GaussianSquare`, `Drag`, and `Constant`. See the [full list in the API reference](/docs/api/qiskit/1.4/pulse#parametric-pulse-representation).\n", - "\n", - "\n", - "**Note**: The backend is responsible for deciding how to sample the parametric pulses. It is possible to draw parametric pulses, but the samples displayed are not guaranteed to be the same as those executed on the backend." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "5e83aa2b-a0f8-43b3-a8d5-4569c7b06c61", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "gaussian = pulse.library.Gaussian(\n", - " num_samples, amp, sigma, name=\"Parametric Gaussian\"\n", - ")\n", - "gaussian.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "409d3c9f-ce3f-40ee-8632-37d5f9159a9b", - "metadata": {}, - "source": [ - "##### Pulse waveforms described by samples\n", - "\n", - "A `Waveform` is a pulse signal specified as an array of time-ordered complex amplitudes, or _samples_. Each sample is played for one cycle, a timestep `dt`, determined by the backend. You must know the value of `dt` to determine a program's real-time dynamics. The (zero-indexed) $i^{th}$ sample plays from time `i*dt` up to `(i + 1)*dt`, modulated by the qubit frequency." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "493ddc1a-62f6-44c9-ae52-51c24a505ec8", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1496865686.py:8: DeprecationWarning: The class ``qiskit.pulse.library.waveform.Waveform`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " gaussian = library.Waveform(gaussian_samples, name=\"WF Gaussian\")\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import numpy as np\n", - "\n", - "times = np.arange(num_samples)\n", - "gaussian_samples = np.exp(\n", - " -1 / 2 * ((times - num_samples / 2) ** 2 / sigma**2)\n", - ")\n", - "\n", - "gaussian = library.Waveform(gaussian_samples, name=\"WF Gaussian\")\n", - "gaussian.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "c6ac255a-c042-49de-ace0-f79e54cbb577", - "metadata": {}, - "source": [ - "Regardless of which method you use to specify your `pulse`, `play` is added to your schedule the same way:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "300f3be9-d358-441b-b860-689ce2583f45", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1983464279.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build() as schedule:\n", - "/tmp/ipykernel_5320/1983464279.py:2: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian, channel)\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with pulse.build() as schedule:\n", - " pulse.play(gaussian, channel)\n", - "schedule.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "03c572ac-6114-46b9-8e6d-1682e336d084", - "metadata": {}, - "source": [ - "You may also supply a complex list or array directly to `play`." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "3d503e04-806f-4cc5-af79-9a335856d735", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/165485598.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build() as schedule:\n", - "/tmp/ipykernel_5320/165485598.py:2: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play([0.001 * i for i in range(160)], channel)\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with pulse.build() as schedule:\n", - " pulse.play([0.001 * i for i in range(160)], channel)\n", - "schedule.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "840295bd-df21-4c66-9292-995532713416", - "metadata": {}, - "source": [ - "The `play` instruction gets its duration from its `Pulse`: the duration of a parametrized pulse is an explicit argument, and the duration of a `Waveform` is the number of input samples.\n", - "\n", - "### `set_frequency`\n", - "\n", - "As explained previously, the output pulse waveform envelope is also modulated by a frequency and phase. Each channel has a default frequency listed in the `backend.defaults`.\n", - "\n", - "A channel's frequency can be updated at any time within a `ScheduleBlock` by the `set_frequency` instruction. It takes a float `frequency` and a `PulseChannel` `channel` as input. All pulses on a channel following a `set_frequency` instruction are modulated by the given frequency until another `set_frequency` instruction is encountered or until the program ends.\n", - "\n", - "The instruction has an implicit duration of `0`.\n", - "\n", - "**Note**: The frequencies that can be requested are limited by the total bandwidth and the instantaneous bandwidth of each hardware channel. In the future, these will be reported by the `backend`." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "e0f65474-a2ba-4c5e-a7e4-8714937e6d8a", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/3276186557.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend) as schedule:\n", - "/tmp/ipykernel_5320/3276186557.py:2: DeprecationWarning: The function ``qiskit.pulse.builder.set_frequency()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.set_frequency(4.5e9, channel)\n" - ] - } - ], - "source": [ - "with pulse.build(backend) as schedule:\n", - " pulse.set_frequency(4.5e9, channel)" - ] - }, - { - "cell_type": "markdown", - "id": "b1f5b068-c59b-4db6-941e-4b3d3a9fb077", - "metadata": {}, - "source": [ - "### `shift_frequency`\n", - "\n", - "The `shift_frequency` instruction shifts the `frequency` of a pulse `channel`." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "c2adf31b-1435-4321-b35f-b207ccdf3c91", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/327681344.py:1: DeprecationWarning: The class ``qiskit.pulse.channels.Channel`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " d0 = pulse.DriveChannel(0)\n", - "/tmp/ipykernel_5320/327681344.py:3: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build() as pulse_prog:\n", - "/tmp/ipykernel_5320/327681344.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.shift_frequency()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.shift_frequency(1e9, d0)\n" - ] - } - ], - "source": [ - "d0 = pulse.DriveChannel(0)\n", - "\n", - "with pulse.build() as pulse_prog:\n", - " pulse.shift_frequency(1e9, d0)" - ] - }, - { - "cell_type": "markdown", - "id": "e1adf50c-ec96-4c2b-b213-2b90fd5a70a6", - "metadata": {}, - "source": [ - "\n", - "The `shift_frequency` and `set_frequency` instructions change the frequency of following pulses and also change the channel's frame of reference. Because a qubit oscillates at its transition frequency, the controller needs to sync with its oscillation; otherwise, an unwanted Z drive is continuously applied. Usually, because the frame is matched with the drive's frequency, and drive matches with the transition's frequency, the Z drive is eliminated when the qubit frequency is calibrated properly. When you apply the `shift_frequency` instruction, it changes the drive frequency and impacts the frame. In other words, it accumulates the phase (Z) as a function of shifted frequency and duration of the program. Specifically, when you shift the frequency by `df` and spend `dt` on that frame, the qubit may experience a phase rotation of `df * dt`. The programmer needs to take this into account to control their qubits precisely.\n", - "\n", - "Note also that these instructions are localized in the pulse gate in IBM devices. This means that accumulated phase and frequency shifts are not carried over. Each pulse gate always starts from the hardware default setting. This behavior is backend-dependent.\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "1ee4f053-0d46-44d4-9782-97666d35ca70", - "metadata": {}, - "source": [ - "### `set_phase`\n", - "\n", - "The `set_phase` instruction sets the phase of a pulse channel." - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "6815bb84-cef0-4c85-8023-cde8034ee225", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/4030167415.py:1: DeprecationWarning: The class ``qiskit.pulse.channels.Channel`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " d0 = pulse.DriveChannel(0)\n", - "/tmp/ipykernel_5320/4030167415.py:3: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build() as pulse_prog:\n", - "/tmp/ipykernel_5320/4030167415.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.set_phase()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.set_phase(np.pi, d0)\n" - ] - } - ], - "source": [ - "d0 = pulse.DriveChannel(0)\n", - "\n", - "with pulse.build() as pulse_prog:\n", - " pulse.set_phase(np.pi, d0)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "8f3da67a-aefb-49b9-831a-fa187945db2c", - "metadata": {}, - "source": [ - "### `shift_phase`\n", - "\n", - "The `shift_phase` instruction will increase the phase of the frequency modulation by `phase`. Like `set_frequency`, this phase shift will affect all following instructions on the same channel until the program ends. To undo the affect of a `shift_phase`, the negative `phase` can be passed to a new instruction.\n", - "\n", - "Like `set_frequency`, the instruction has an implicit duration of `0`." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "fcbee831-0ee0-4495-862f-889ddb6f1870", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/2840692844.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend) as schedule:\n", - "/tmp/ipykernel_5320/2840692844.py:2: DeprecationWarning: The function ``qiskit.pulse.builder.shift_phase()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.shift_phase(np.pi, channel)\n" - ] - } - ], - "source": [ - "with pulse.build(backend) as schedule:\n", - " pulse.shift_phase(np.pi, channel)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "a5c3ee82-ee4e-48af-9ece-c5b7243170a6", - "metadata": {}, - "source": [ - "### `acquire`\n", - "\n", - "The `acquire` instruction triggers data acquisition for readout. It takes a duration, an `AcquireChannel`, which maps to the qubit being measured, and a `MemorySlot` or a `RegisterSlot`. The `MemorySlot` is classical memory where the readout result will be stored. The `RegisterSlot` maps to a register in the control electronics that stores the readout result for fast feedback.\n", - "\n", - "The `acquire` instruction can also take custom `Discriminator`s and `Kernel`s as keyword arguments. The `Kernel` subroutine integrates a time series of measurement responses and generates an IQ data point, which will be classified into a quantum state by the discriminator. This indicates that if you use a custom measurement stimulus, as in a measurement pulse, you might need to update the kernel setting to not deteriorate the measurement SNR." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "018c6d6a-fd57-4789-93be-0171733cb415", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/988163519.py:3: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend) as schedule:\n", - "/tmp/ipykernel_5320/988163519.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.acquire_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.acquire(1200, pulse.acquire_channel(0), MemorySlot(0))\n", - "/tmp/ipykernel_5320/988163519.py:4: DeprecationWarning: The class ``qiskit.pulse.channels.Channel`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.acquire(1200, pulse.acquire_channel(0), MemorySlot(0))\n", - "/tmp/ipykernel_5320/988163519.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.acquire()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.acquire(1200, pulse.acquire_channel(0), MemorySlot(0))\n" - ] - } - ], - "source": [ - "from qiskit.pulse import MemorySlot\n", - "\n", - "with pulse.build(backend) as schedule:\n", - " pulse.acquire(1200, pulse.acquire_channel(0), MemorySlot(0))" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "f052f3c0-d1a6-4137-879a-c9459ca647e6", - "metadata": {}, - "source": [ - "After adding `ScheduleBlock` instructions, you need to understand how to control when they're played.\n", - "\n", - "## Pulse Builder\n", - "Below are the most important Pulse Builder features for learning how to build schedules. This is not an exhaustive list. For more details about using the Pulse Builder, refer to the [Pulse API reference.](/docs/api/qiskit/1.4/pulse)\n", - "\n", - "### Alignment contexts\n", - "The builder has alignment contexts that influence how a schedule is built. Contexts can also be nested. Try them out, and use `.draw()` to see how the pulses are aligned.\n", - "\n", - "Regardless of the alignment context, the duration of the resulting schedule is as short as it can be while including every instruction and following the alignment rules. This still allows some degrees of freedom for scheduling instructions off the \"longest path\". The examples below illustrate this.\n", - "\n", - "### `align_left`\n", - "The builder has alignment contexts that influence how a schedule is built. The default is `align_left`." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "c08405d1-302d-41fa-a6a4-58becd557541", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1095120153.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend, name=\"Left align example\") as program:\n", - "/tmp/ipykernel_5320/1095120153.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/1095120153.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/1095120153.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1095120153.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1095120153.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1095120153.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with pulse.build(backend, name=\"Left align example\") as program:\n", - " with pulse.align_left():\n", - " gaussian_pulse = library.Gaussian(100, 0.5, 20)\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "\n", - "program.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "e686e6e2-b6da-45b0-b497-fe1a883dee3c", - "metadata": {}, - "source": [ - "Notice how there is no scheduling freedom for the pulses on `D1`. The second waveform begins immediately after the first. The pulse on `D0` can start at any time between `t=0` and `t=100` without changing the duration of the overall schedule. The `align_left` context sets the start time of this pulse to `t=0`. You can think of this like left-justification of a text document.\n", - "\n", - "\n", - "### `align_right`\n", - "`align_right` does the opposite of `align_left`. It chooses `t=100` in the above example to begin the Gaussian pulse on `D0`. Left and right are also sometimes called \"as soon as possible\" and \"as late as possible\" scheduling, respectively." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "77762b02-af9d-4bd7-b2f5-71938e20b356", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/624025647.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend, name=\"Right align example\") as program:\n", - "/tmp/ipykernel_5320/624025647.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/624025647.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/624025647.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/624025647.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/624025647.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/624025647.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with pulse.build(backend, name=\"Right align example\") as program:\n", - " with pulse.align_right():\n", - " gaussian_pulse = library.Gaussian(100, 0.5, 20)\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "\n", - "program.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "ee9de5a2-8261-40e3-93df-6264cff8c19c", - "metadata": {}, - "source": [ - "### `align_equispaced(duration)`\n", - "\n", - "If the duration of a particular block is known, you can also use `align_equispaced` to insert equal duration delays between each instruction." - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "edb9c3d3-7ef6-4226-a58e-5406bed352a7", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1975630487.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend, name=\"example\") as program:\n", - "/tmp/ipykernel_5320/1975630487.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/1975630487.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/1975630487.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1975630487.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1975630487.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1975630487.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with pulse.build(backend, name=\"example\") as program:\n", - " gaussian_pulse = library.Gaussian(100, 0.5, 20)\n", - " with pulse.align_equispaced(2 * gaussian_pulse.duration):\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "\n", - "program.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "5137c890-e997-493a-b5c9-237e88b4f834", - "metadata": {}, - "source": [ - "### `align_sequential`\n", - "\n", - "This alignment context does not schedule instructions in parallel. Each instruction will begin at the end of the previously added instruction." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "dbf45d14-a643-4616-bbe1-7ff83f2cfc70", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/1927066405.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend, name=\"example\") as program:\n", - "/tmp/ipykernel_5320/1927066405.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/1927066405.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/1927066405.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1927066405.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1927066405.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "/tmp/ipykernel_5320/1927066405.py:6: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with pulse.build(backend, name=\"example\") as program:\n", - " with pulse.align_sequential():\n", - " gaussian_pulse = library.Gaussian(100, 0.5, 20)\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(1))\n", - "\n", - "program.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "a673e1bc-b7e8-43df-b676-92cdcdac2af4", - "metadata": {}, - "source": [ - "### Phase and frequency offsets\n", - "\n", - "The builder can help temporarily offset the frequency or phase of pulses on a channel." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "298055b0-d979-4527-af10-8fe3f211d9de", - "metadata": { - "tags": [ - "ignore-warnings" - ] - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_5320/869399433.py:1: DeprecationWarning: The function ``qiskit.pulse.builder.build()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.build(backend, name=\"Offset example\") as program:\n", - "/tmp/ipykernel_5320/869399433.py:2: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.phase_offset(3.14, pulse.drive_channel(0)):\n", - "/tmp/ipykernel_5320/869399433.py:3: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/869399433.py:3: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/869399433.py:4: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " with pulse.frequency_offset(10e6, pulse.drive_channel(0)):\n", - "/tmp/ipykernel_5320/869399433.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.drive_channel()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "/tmp/ipykernel_5320/869399433.py:5: DeprecationWarning: The function ``qiskit.pulse.builder.play()`` is deprecated as of Qiskit 1.3. It will be removed in Qiskit 2.0. The entire Qiskit Pulse package is being deprecated and will be moved to the Qiskit Dynamics repository: https://github.com/qiskit-community/qiskit-dynamics\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n" - ] - }, - { - "data": { - "text/plain": [ - "\"Output" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "with pulse.build(backend, name=\"Offset example\") as program:\n", - " with pulse.phase_offset(3.14, pulse.drive_channel(0)):\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - " with pulse.frequency_offset(10e6, pulse.drive_channel(0)):\n", - " pulse.play(gaussian_pulse, pulse.drive_channel(0))\n", - "\n", - "program.draw()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "8b04e0e7-ec54-4e2d-bfb5-43bb388ea6d1", - "metadata": {}, - "source": [ - "## Next steps\n", - "\n", - "\n", - "\n", - "- Review the [Pulse API](/docs/api/qiskit/1.4/pulse) reference.\n", - "- See the [Qiskit Experiments](https://qiskit.org/ecosystem/experiments/) documentation.\n", - "" - ] - } - ], - "metadata": { - "description": "Learn low-level pulse waveform programming using the Qiskit pulse module", - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3" - }, - "title": "Pulse schedules" - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/scripts/config/notebook-testing.toml b/scripts/config/notebook-testing.toml index a3f087ba756..0ae0c72af48 100644 --- a/scripts/config/notebook-testing.toml +++ b/scripts/config/notebook-testing.toml @@ -150,10 +150,6 @@ notebooks = [ "docs/guides/global-data-quantum-optimizer.ipynb", "docs/guides/colibritd-pde.ipynb", - # This is broken with the most recent versions of Qiskit/Runtime, but we're - # removing the page soon so we've decided not to fix it. - "docs/guides/pulse.ipynb", - # These notebooks have code snippets which are embedded in cloud/legacy tags # and can't be run until we convert them to testable snippets "docs/guides/retired-qpus.ipynb", diff --git a/scripts/js/commands/checkInternalLinks.ts b/scripts/js/commands/checkInternalLinks.ts index 6034c692271..02c591bdeec 100644 --- a/scripts/js/commands/checkInternalLinks.ts +++ b/scripts/js/commands/checkInternalLinks.ts @@ -126,7 +126,6 @@ const QISKIT_GLOBS_TO_LOAD = [ "docs/guides/qiskit-1.0-features.mdx", "docs/guides/construct-circuits.ipynb", "docs/guides/bit-ordering.ipynb", - "docs/guides/pulse.ipynb", "docs/guides/primitives.ipynb", "docs/guides/configure-qiskit-local.mdx", "docs/guides/transpiler-stages.ipynb", From 349b4b38d6feeab5333c46dee331b1b1c91137f0 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 10:15:19 -0500 Subject: [PATCH 23/82] Revert "Delete llms.txt" This reverts commit 55d5f92f7ff9bb25bf9033d6f8dd79b44a86c68b. --- public/docs/guides/llms.txt | 205 ++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 public/docs/guides/llms.txt diff --git a/public/docs/guides/llms.txt b/public/docs/guides/llms.txt new file mode 100644 index 00000000000..358ebe684e1 --- /dev/null +++ b/public/docs/guides/llms.txt @@ -0,0 +1,205 @@ +# Converted from Qiskit/documentation/docs/guides/index.mdx + + + + + + + +## Metadata +- title: Overview +- description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more +- License: CC-BY-4.0 +- Crawl Policy: allow + +--- + + +# Overview + + +## Introduction to Qiskit and IBM Quantum + + +Welcome to the documentation for Qiskit, its related packages, and IBM Quantum® Platform. This documentation includes how-to guides to get you started on our tools, specific use-case tutorials that include end-to-end examples, and a collection of API references. + + +Qiskit provides a modular and extensible framework for quantum research and development across algorithms, high-performance computing, and quantum information science. With it, researchers can build, optimize, and execute quantum workflows with specialized addons, software tools, and extensive resources. Through IBM Quantum Platform, users can access Quantum Compute services, such as Qiskit Runtime and the Qiskit Functions Catalog, to run workloads efficiently on the IBM® fleet of quantum computers. + + +![A graphic showing the different components of IBM Quantum Platform and Qiskit.](/docs/images/guides/index/overview-image.svg) + + +Beyond Qiskit and its related packages is the [Qiskit ecosystem](https://www.ibm.com/quantum/ecosystem), a catalog of open-source projects that interface with Qiskit to extend its functionality. + + +## Get started + + + + + + + +## Explore capabilities + + + + + + + + + + + + + + + + + + + +## Support + + + + + + + + + +--- + +## Links + +- [Qiskit Code Assistant - OpenAI API compatibility](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-openai-api.mdx): Learn how to integrate Qiskit Code Assistant with other applications through the OpenAI completions API. +- [Latest updates](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/latest-updates.mdx): The latest updates from Qiskit and IBM Quantum, including the latest package release summaries and platform updates. +- [Introduction to options](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/runtime-options-overview.mdx): Available options for building with Qiskit Runtime primitives +- [Migrate from Qiskit Pulse to fractional gates](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/pulse-migration.mdx): Migrate from using Qiskit Pulse to fractional gates to execute single and two-qubit rotations +- [Qiskit Function templates](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-function-templates.mdx): Learn how to use and build Qiskit Function templates. +- [Manage ID provider users](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/manage-appid.mdx): Use IBM Cloud Identity Access Management (IAM) to manage users with or without an IBM Cloud account +- [Use Qiskit Code Assistant in local mode](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-local.mdx): Learn how to deploy and use the Qiskit Code Assistant model locally. +- [Use Qiskit Code Assistant in VS Code](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-vscode.mdx): How to install, use, and configure Qiskit Code Assistant in Visual Studio Code (VS Code). +- [Set up to use IBM Quantum Platform with REST API](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup-rest-api.mdx): Setup instructions for using IBM Quantum on IBM Cloud to submit Qiskit SDK and Qiskit Runtime jobs by using the REST API +- [Open source](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/open-source.mdx): Learn how to get involved with the Qiskit open-source community to shape the future of quantum computing. +- [Set up access policies and access groups](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/access-groups.mdx): How to create and manage access groups for your organization's account users. +- [Calibration jobs](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/calibration-jobs.mdx): Describes what calibration jobs are and how often they run +- [Understanding your responsibilities when using Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/responsibilities.mdx): Learn about the management responsibilities that you have when you use Qiskit Runtime. +- [Save your login credentials](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/save-credentials.mdx): Save your login credentials instead of manually entering them +- [Create a provider](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/create-a-provider.mdx): A short guide on integrating Qiskit into an external provider's quantum resources. +- [Online lab environments](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/online-lab-environments.mdx): Set up an online lab environment to use Qiskit in the cloud. Choose a preconfigured environment or set up your own. +- [Use Qiskit Code Assistant in JupyterLab](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant-jupyterlab.mdx): How to install, use, and configure Qiskit Code Assistant in JupyterLab. +- [Install the Qiskit C API](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/install-c-api.mdx): How to install and use the Qiskit C API as standalone library +- [Execute on target hardware](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/execute-on-hardware.mdx): Run circuits on hardware and return output from a quantum computer. +- [Approximate quantum compilation with tensor networks](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-aqc.mdx): Overview of the addon for approximate quantum compilation using tensor networks +- [Extend Qiskit in Python with C](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/c-extension-for-python.mdx): How to build a C extension for your Qiskit workflow in Python +- [Qiskit Code Assistant](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-code-assistant.mdx): Learn how to use Qiskit Code Assistant, a generative AI code assistant. +- [Introduction to Qiskit patterns](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/intro-to-patterns.mdx): Qiskit patterns are the broad steps employed when running a domain-specific problem on quantum hardware. +- [Configure the Qiskit SDK locally](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/configure-qiskit-local.mdx): How to customize the configuration of a local Qiskit SDK installation. +- [Create and manage instances](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/instances.mdx): Create, update, and use instances to run jobs with free or paid plans. +- [Activity tracking events for Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/observability.mdx): Learn about activity tracking events for Qiskit Runtime. +- [Processor types](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/processor-types.mdx): Information on IBM Quantum hardware and features of different processors +- [Migrate from BackendV1 to BackendV2](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-backendv1-to-v2.mdx): How to update your code to use BackendV2 instead of BackendV1. +- [IBM Cloud account structure](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-account-structure.mdx): Overview of IBM Cloud accounts, users, instances, and permissions. +- [Choose the right execution mode](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/choose-execution-mode.mdx): Choose the right execution mode for Qiskit Runtime sessions, batch, or single jobs. +- [Overview](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/index.mdx): Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more +- [Introduction to execution modes](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/execution-modes.mdx): An overview of the available execution modes in Qiskit Runtime, including sessions, batch, and single jobs. +- [Considerations for setting up IBM Quantum Platform for an organization](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/considerations-set-up-runtime.mdx): Considerations for setting up IBM Quantum Platform in an organization +- [Securing your data](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/secure-data.mdx): How customer data is encrypted and how users can delete their personal data. +- [OpenQASM 3 feature table](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qasm-feature-table.mdx): A table of the language features included in OpenQASM 3. +- [Understand the breaking package changes](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/metapackage-migration.mdx): Understand the packaging changes that occurred with the release of Qiskit v1.0 +- [Invite users and manage their access](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/invite-and-manage-users.mdx): How to invite collaborators to the IBM Quantum Platform account for your organization, and manage their access +- [Support](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/support.mdx): How to find answers to questions or problems you encounter while using IBM Quantum Platform or Qiskit Runtime +- [Optimize for target hardware](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/optimize-for-hardware.mdx): Optimize abstract circuits and operators so they can run on quantum hardware. +- [Job limits](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/job-limits.mdx): Job limits imposed by the job validation service for jobs sent to IBM QPUs. +- [Qiskit addons](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/addons.mdx): Understand the Qiskit addon tools, which help you build utility-grade quantum workflows. +- [Configure IBM Quantum Platform for an organization](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/quickstart-steps-org.mdx): Configure IBM Quantum Platform for an organization by configuring IAM, resource groups, and access groups. +- [Install Qiskit](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/install-qiskit.mdx): Install the Qiskit SDK and Qiskit Runtime on various operating systems +- [Upgrade from the Open Plan](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/upgrade-from-open.mdx): upgrade from the IBM Quantum Open Plan to an IBM Cloud Pay-As-You-Go Plan +- [Use IBM Cloud Platform APIs to access instances](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/access-instances-platform-apis.mdx): Parameters to set when provisioning a Qiskit Runtime service instance, and extension fields returned when accessing an instance. +- [Install the Qiskit SDK from source](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/install-qiskit-source.mdx): Learn how to install the development version of Qiskit. +- [Use virtual private endpoints for VPC to privately connect to IBM Quantum Platform](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/virtual-private-endpoints.mdx): How to use a virtual private endpoint to privately connect to IBM Quantum Platform. +- [Manage IBM Cloud users](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/manage-cloud-users.mdx): How to use IBM Cloud to manage users with IBM Cloud accounts +- [Introduction to OpenQASM](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/introduction-to-qasm.mdx): An introduction to OpenQASM (Open quantum assembly language) +- [Qiskit v2.0 migration guide](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-2.0.mdx): How to update your project so that it works with Qiskit v2.0. +- [Understanding high availability and disaster recovery for Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/ha-dr.mdx): Learn about high availability and disaster recovery for Qiskit Runtime +- [Sample-based quantum diagonalization](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-sqd.mdx): Overview of the Sample-based quantum diagonalization (SQD) workflow +- [Set up custom roles](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/custom-roles.mdx): How to set up custom roles that provide access to a specific set of actions +- [Directed execution model (beta)](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/directed-execution-model.mdx): Use this composable, explicit execution model with your utility-scale experiments to fine-tune error mitigation and other techniques. +- [Fair-share scheduler](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/fair-share-scheduler.mdx): How the IBM Quantum fair-share scheduler determines order of workloads submitted to quantum processing units +- [Set up your IBM Cloud account](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup.mdx): Setup instructions for IBM Quantum on IBM Cloud to submit Qiskit SDK and Qiskit Runtime jobs for users without email invitations +- [View the cost](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/view-cost.mdx): View how much cost has been incurred by an instance +- [Introduction to transpilation](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/transpile.mdx): Introduction to transpiling quantum circuits in the Qiskit SDK. +- [Logging for Qiskit Runtime](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/logging.mdx): Information about IBM Quantum on IBM Cloud logging +- [Introduction to Qiskit Serverless](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/serverless.mdx): Use Qiskit Serverless to run quantum-classical workloads across the cloud and on quantum-centric supercomputers. +- [Map the problem to quantum circuits and operators](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/map-problem-to-circuits.mdx): Take a classical problem and map it to run on a quantum computer. +- [Qiskit SDK version strategy](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-sdk-version-strategy.mdx): Details on the Qiskit SDK versioning strategy, release schedule, upgrade strategy, pre-releases, post-releases, and how contributors can mark deprecations. +- [Migrate to local simulators](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/local-simulators.mdx): Migrate from using the IBM Quantum cloud simulators to using Qiskit Runtime local testing mode. +- [Set instance allocation limits](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/allocation-limits.mdx): Set, view, and change how much time an instance is allowed to use. +- [Operator backpropagation (OBP)](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-obp.mdx): Learn about the operator backpropagation addon to reduce the depth of quantum circuits +- [Frequently asked questions (FAQ)](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/faq.mdx): Frequently asked questions about IBM Quantum Platform and Qiskit Runtime +- [Overview of plans](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/plans-overview.mdx): Overview of the available plans, including Pay-As-You-Go, Premium, and Open +- [Introduction to Qiskit](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/tools-intro.mdx): What is Qiskit? This document provides an introduction to the Qiskit stack. +- [Qiskit 1.0 feature migration guide](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-1.0-features.mdx): Description of feature changes introduced in Qiskit 1.0 and how to update your code to work with them. +- [Minimize job run time](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/minimize-time.mdx): How to minimize the amount of quantum time spent processing and running a job. +- [Manage cost on the Pay-As-You-Go Plan](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/manage-cost.mdx): How to manage costs of running jobs on QPUs when using the Pay-As-You-Go Plan on IBM Quantum Platform. +- [Qiskit 1.0 migration guide](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-1.0.mdx): How to update your project so that it works with Qiskit 1.0. +- [Migrate to the V2 primitives](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/v2-primitives.mdx): Migrate from using the original primitives (Estimator and Sampler) to using the updated V2 primitives (Estimator V2 and Sampler V2) +- [Protecting Qiskit Runtime Service resources with context-based restrictions](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/context-based-restrictions.mdx): Learn about managing context-based restrictions to define and enforce restrictions on resources. +- [QPU information](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qpu-information.mdx): Information about QPU calibration, properties, and versioning +- [Deferred timing resolution using stretch](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/stretch.mdx): How to use stretch to defer timing resolution with dynamic circuits +- [Code of conduct](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/code-of-conduct.mdx): The Qiskit Code of Conduct defines and enforces the values and conduct of contributors and participants in the Qiskit open source community. +- [Introduction to debugging tools](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/debugging-tools.mdx): Introduction to testing and debugging quantum circuits in Qiskit. +- [Set up your IBM Cloud account - invited users](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup-invited.mdx): Setup instructions for IBM Quantum on IBM Cloud to submit Qiskit SDK and Qiskit Runtime jobs for users with email invitations +- [Post-process results](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/post-process-results.mdx): Post-process the results obtained by running on a quantum computer. +- [Initialize the service in an untrusted environment](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/cloud-setup-untrusted.mdx): Initialize the service in an untrusted environment, such as a public computer +- [Initialize your Qiskit Runtime service account](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/initialize-account.mdx): How to initialize your Qiskit Runtime account, instantiate your account, and load saved credentials. +- [IBM Quantum Composer](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/composer.mdx): IBM Quantum Composer is a graphical programming tool. Drag and drop operations to build circuits and run them on quantum hardware. +- [Circuit cutting](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-addons-cutting.mdx): Overview of the addon for circuit cutting to build utility-scale workloads +- [Execution modes FAQs](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/execution-modes-faq.mdx): Answers to commonly-asked questions about Qiskit Runtime execution modes +- [Qiskit 1.0 installation and packaging changes](https://raw.githubusercontent.com/Qiskit/documentation/refs/heads/main/docs/guides/qiskit-1.0-installation.mdx): Adapt to changes in installing and depending on Qiskit 1.0 From a48f50a961811521fa56e0185ac38761b9c88d85 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 10:21:40 -0500 Subject: [PATCH 24/82] move "create a provider" to integrations --- docs/guides/_toc.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 17bd822bbed..3edd599fbcc 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -774,6 +774,10 @@ "url": "/docs/guides/serverless-port-code" } ] + }, + { + "title": "Create a provider", + "url": "/docs/guides/create-a-provider" } ] }, @@ -908,10 +912,6 @@ "title": "Version strategy", "url": "/docs/guides/qiskit-sdk-version-strategy" }, - { - "title": "Create a provider", - "url": "/docs/guides/create-a-provider" - }, { "title": "Contributor guide", "url": "https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md" From b71cd119a629dc696fb8edfc3610c1c35c6599c8 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 10:33:43 -0500 Subject: [PATCH 25/82] Services section --- docs/guides/_toc.json | 452 +++++++++++++++++++++--------------------- 1 file changed, 229 insertions(+), 223 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 3edd599fbcc..94524676763 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -65,14 +65,14 @@ "title": "Qiskit Functions overview", "url": "/docs/guides/functions" }, - { - "title": "Qiskit addons overview", - "url": "/docs/guides/addons" - }, { "title": "Qiskit Serverless overview", "url": "/docs/guides/overview-qiskit-serverless" }, + { + "title": "Qiskit addons overview", + "url": "/docs/guides/addons" + }, { "title": "Qiskit ecosystem overview", "url": "/docs/guides/overview-qiskit-ecosystem" @@ -82,6 +82,231 @@ ], "collapsible": false }, + { + "title": "IBM Quantum services", + "children": [ + { + "title": "IBM Quantum Platform", + "children": [ + { + "title": "Account setup", + "children":[ + { + "title": "Set up your account", + "url": "/docs/guides/cloud-setup" + }, + { + "title": "Set up your account - invited users", + "url": "/docs/guides/cloud-setup-invited" + }, + { + "title": "Set up to use IBM Quantum Platform with REST API", + "url": "/docs/guides/cloud-setup-rest-api" + } + ] + }, + { + "title": "Authenticate", + "children":[ + { + "title": "Initialize your Qiskit Runtime service account", + "url": "/docs/guides/initialize-account" + }, + { + "title": "Save your login credentials", + "url": "/docs/guides/save-credentials" + }, + { + "title": "Authenticate in an untrusted environment", + "url": "/docs/guides/cloud-setup-untrusted" + } + ] + }, + { + "title": "Administrative tasks", + "children": [ + { + "title": "Setup considerations", + "url": "/docs/guides/considerations-set-up-runtime" + }, + { + "title": "Configure IBM Quantum Platform", + "url": "/docs/guides/quickstart-steps-org" + }, + { + "title": "Cloud account structure", + "url": "/docs/guides/cloud-account-structure" + }, + { + "title": "Create access groups and policies", + "url": "/docs/guides/access-groups" + }, + { + "title": "Set up custom roles", + "url": "/docs/guides/custom-roles" + }, + { + "title": "Invite users and manage access", + "url": "/docs/guides/invite-and-manage-users" + }, + { + "title": "Manage ID provider users", + "url": "/docs/guides/manage-appid" + }, + { + "title": "Manage IBM Cloud users", + "url": "/docs/guides/manage-cloud-users" + }, + { + "title": "Cloud account structure", + "url": "/docs/guides/cloud-account-structure" + }, + { + "title": "Create access groups and policies", + "url": "/docs/guides/access-groups" + }, + { + "title": "Set up custom roles", + "url": "/docs/guides/custom-roles" + }, + { + "title": "Manage cost on the Pay-As-You-Go Plan", + "url": "/docs/guides/manage-cost" + }, + { + "title": "View cost", + "url": "/docs/guides/view-cost" + } + ] + }, + { + "title": "IBM Quantum plans", + "children": [ + { + "title": "Overview of plans", + "url": "/docs/guides/plans-overview" + }, + { + "title": "Upgrade from the Open Plan", + "url": "/docs/guides/upgrade-from-open" + } + ] + }, + { + "title": "Work with instances", + "children": [ + { + "title": "Create and manage instances", + "url": "/docs/guides/instances" + }, + { + "title": "Set allocation limits", + "url": "/docs/guides/allocation-limits" + }, + { + "title": "Use IBM Cloud Platform APIs to access instances", + "url": "/docs/guides/access-instances-platform-apis" + } + ] + }, + { + "title": "IBM quantum computers", + "children": [ + { + "title": "Processor types", + "url": "/docs/guides/processor-types" + }, + { + "title": "QPU information", + "url": "/docs/guides/qpu-information" + }, + { + "title": "Retired cloud QPUs", + "url": "/docs/guides/retired-qpus" + }, + { + "title": "Calibration jobs", + "url": "/docs/guides/calibration-jobs" + } + ] + } + ] + }, + { + "title": "Qiskit Functions", + "children": [ + { + "title": "Circuit functions", + "children": [ + { + "title": "IBM Circuit function", + "url": "/docs/guides/ibm-circuit-function" + }, + { + "title": "Algorithmiq Tensor-network error mitigation", + "url": "/docs/guides/algorithmiq-tem" + }, + { + "title": "Q-CTRL Performance Management", + "url": "/docs/guides/q-ctrl-performance-management" + }, + { + "title": "Qedma QESEM", + "url": "/docs/guides/qedma-qesem" + } + ] + }, + { + "title": "Application functions", + "children": [ + { + "title": "Kipu Quantum Iskay Quantum Optimizer", + "url": "/docs/guides/kipu-optimization" + }, + { + "title": "Multiverse Computing Singularity", + "url": "/docs/guides/multiverse-computing-singularity" + }, + { + "title": "Q-CTRL Optimization Solver", + "url": "/docs/guides/q-ctrl-optimization-solver" + }, + { + "title": "Quantum Portfolio Optimizer: A Qiskit Function by Global Data Quantum", + "url": "/docs/guides/global-data-quantum-optimizer" + }, + { + "title": "QUICK-PDE: A Qiskit Function by ColibriTD", + "url": "/docs/guides/colibritd-pde" + }, + { + "title": "Qunova Computing HI-VQE Chemistry", + "url": "/docs/guides/qunova-chemistry" + } + ] + }, + { + "title": "Qiskit Function templates", + "children": [ + { + "title": "Introduction to Qiskit Function templates", + "url": "/docs/guides/qiskit-function-templates" + }, + { + "title": "Template for chemistry simulation", + "url": "/docs/guides/function-template-chemistry-workflow" + }, + { + "title": "Template for Hamiltonian simulation", + "url": "/docs/guides/function-template-hamiltonian-simulation" + } + ] + } + ] + } + ], + "collapsible": false + }, { "title": "Tools index by task", "url": "/docs/guides/tool-index" @@ -528,225 +753,6 @@ } ] }, - { - "title": "IBM Quantum Platform", - "children": [ - { - "title": "Account setup", - "children":[ - { - "title": "Set up your account", - "url": "/docs/guides/cloud-setup" - }, - { - "title": "Set up your account - invited users", - "url": "/docs/guides/cloud-setup-invited" - }, - { - "title": "Set up to use IBM Quantum Platform with REST API", - "url": "/docs/guides/cloud-setup-rest-api" - } - ] - }, - { - "title": "Authenticate", - "children":[ - { - "title": "Initialize your Qiskit Runtime service account", - "url": "/docs/guides/initialize-account" - }, - { - "title": "Save your login credentials", - "url": "/docs/guides/save-credentials" - }, - { - "title": "Authenticate in an untrusted environment", - "url": "/docs/guides/cloud-setup-untrusted" - } - ] - }, - { - "title": "Administrative tasks", - "children": [ - { - "title": "Setup considerations", - "url": "/docs/guides/considerations-set-up-runtime" - }, - { - "title": "Configure IBM Quantum Platform", - "url": "/docs/guides/quickstart-steps-org" - }, - { - "title": "Cloud account structure", - "url": "/docs/guides/cloud-account-structure" - }, - { - "title": "Create access groups and policies", - "url": "/docs/guides/access-groups" - }, - { - "title": "Set up custom roles", - "url": "/docs/guides/custom-roles" - }, - { - "title": "Invite users and manage access", - "url": "/docs/guides/invite-and-manage-users" - }, - { - "title": "Manage ID provider users", - "url": "/docs/guides/manage-appid" - }, - { - "title": "Manage IBM Cloud users", - "url": "/docs/guides/manage-cloud-users" - }, - { - "title": "Cloud account structure", - "url": "/docs/guides/cloud-account-structure" - }, - { - "title": "Create access groups and policies", - "url": "/docs/guides/access-groups" - }, - { - "title": "Set up custom roles", - "url": "/docs/guides/custom-roles" - }, - { - "title": "Manage cost on the Pay-As-You-Go Plan", - "url": "/docs/guides/manage-cost" - }, - { - "title": "View cost", - "url": "/docs/guides/view-cost" - } - ] - }, - { - "title": "IBM Quantum plans", - "children": [ - { - "title": "Overview of plans", - "url": "/docs/guides/plans-overview" - }, - { - "title": "Upgrade from the Open Plan", - "url": "/docs/guides/upgrade-from-open" - } - ] - }, - { - "title": "Work with instances", - "children": [ - { - "title": "Create and manage instances", - "url": "/docs/guides/instances" - }, - { - "title": "Set allocation limits", - "url": "/docs/guides/allocation-limits" - }, - { - "title": "Use IBM Cloud Platform APIs to access instances", - "url": "/docs/guides/access-instances-platform-apis" - } - ] - }, - { - "title": "IBM quantum computers", - "children": [ - { - "title": "Processor types", - "url": "/docs/guides/processor-types" - }, - { - "title": "QPU information", - "url": "/docs/guides/qpu-information" - }, - { - "title": "Retired cloud QPUs", - "url": "/docs/guides/retired-qpus" - }, - { - "title": "Calibration jobs", - "url": "/docs/guides/calibration-jobs" - } - ] - } - ] - }, - { - "title": "Qiskit Functions", - "children": [ - { - "title": "Circuit functions", - "children": [ - { - "title": "IBM Circuit function", - "url": "/docs/guides/ibm-circuit-function" - }, - { - "title": "Algorithmiq Tensor-network error mitigation", - "url": "/docs/guides/algorithmiq-tem" - }, - { - "title": "Q-CTRL Performance Management", - "url": "/docs/guides/q-ctrl-performance-management" - }, - { - "title": "Qedma QESEM", - "url": "/docs/guides/qedma-qesem" - } - ] - }, - { - "title": "Application functions", - "children": [ - { - "title": "Kipu Quantum Iskay Quantum Optimizer", - "url": "/docs/guides/kipu-optimization" - }, - { - "title": "Multiverse Computing Singularity", - "url": "/docs/guides/multiverse-computing-singularity" - }, - { - "title": "Q-CTRL Optimization Solver", - "url": "/docs/guides/q-ctrl-optimization-solver" - }, - { - "title": "Quantum Portfolio Optimizer: A Qiskit Function by Global Data Quantum", - "url": "/docs/guides/global-data-quantum-optimizer" - }, - { - "title": "QUICK-PDE: A Qiskit Function by ColibriTD", - "url": "/docs/guides/colibritd-pde" - }, - { - "title": "Qunova Computing HI-VQE Chemistry", - "url": "/docs/guides/qunova-chemistry" - } - ] - }, - { - "title": "Qiskit Function templates", - "children": [ - { - "title": "Introduction to Qiskit Function templates", - "url": "/docs/guides/qiskit-function-templates" - }, - { - "title": "Template for chemistry simulation", - "url": "/docs/guides/function-template-chemistry-workflow" - }, - { - "title": "Template for Hamiltonian simulation", - "url": "/docs/guides/function-template-hamiltonian-simulation" - } - ] - } - ] - }, { "title": "Integrations", "children": [ From 4b7429cf571240ce5974e58cb9bfda7dbf65b96f Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 10:42:15 -0500 Subject: [PATCH 26/82] clean up orphan links --- docs/guides/configure-qiskit-local.mdx | 1 - docs/guides/ibm-circuit-function.ipynb | 2 +- docs/guides/install-qiskit-source.mdx | 1 - docs/guides/simulate-with-qiskit-aer.ipynb | 1 - 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/guides/configure-qiskit-local.mdx b/docs/guides/configure-qiskit-local.mdx index 47b2f57ce77..137e3e2cc9f 100644 --- a/docs/guides/configure-qiskit-local.mdx +++ b/docs/guides/configure-qiskit-local.mdx @@ -54,7 +54,6 @@ Set these environment variables to alter the default behavior of Qiskit: ## Next steps - - 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. diff --git a/docs/guides/ibm-circuit-function.ipynb b/docs/guides/ibm-circuit-function.ipynb index cfa8c068314..e1308565e25 100644 --- a/docs/guides/ibm-circuit-function.ipynb +++ b/docs/guides/ibm-circuit-function.ipynb @@ -41,7 +41,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", diff --git a/docs/guides/install-qiskit-source.mdx b/docs/guides/install-qiskit-source.mdx index 77b6816d1b6..2a449bf0353 100644 --- a/docs/guides/install-qiskit-source.mdx +++ b/docs/guides/install-qiskit-source.mdx @@ -148,7 +148,6 @@ pip install -e ".[dev]" - 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). diff --git a/docs/guides/simulate-with-qiskit-aer.ipynb b/docs/guides/simulate-with-qiskit-aer.ipynb index d5ebdc3dfd1..5becb15f9ba 100644 --- a/docs/guides/simulate-with-qiskit-aer.ipynb +++ b/docs/guides/simulate-with-qiskit-aer.ipynb @@ -280,7 +280,6 @@ "\n", " - To simulate small, simple circuits, see [Exact simulation with Qiskit primitives](/docs/guides/simulate-with-qiskit-sdk-primitives).\n", " - Review the [Qiskit Aer](https://qiskit.github.io/qiskit-aer/) documentation.\n", - " - Learn how to run on a quantum processor in the [Execute on hardware](/docs/guides/execute-on-hardware) step of the Qiskit patterns workflow.\n", "" ] } From 65c5fdad2c74ca31777c3ccd13ef504cb5be1398 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 12:16:18 -0500 Subject: [PATCH 27/82] Start to clean up tool index --- docs/guides/_toc.json | 52 ++++++------- docs/guides/index.mdx | 3 +- docs/guides/tool-index.mdx | 156 +++++++++++++++++++++++++++++++------ 3 files changed, 160 insertions(+), 51 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 94524676763..abddd17385b 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -303,6 +303,31 @@ ] } ] + }, + { + "title": "Qiskit Serverless", + "children": [ + { + "title": "Qiskit Serverless overview", + "url": "/docs/guides/serverless" + }, + { + "title": "Write your first Qiskit Serverless program", + "url": "/docs/guides/serverless-first-program" + }, + { + "title": "Run your first Qiskit Serverless workload remotely", + "url": "/docs/guides/serverless-run-first-workload" + }, + { + "title": "Manage Qiskit Serverless compute and data resources", + "url": "/docs/guides/serverless-manage-resources" + }, + { + "title": "Port code to Qiskit Serverless", + "url": "/docs/guides/serverless-port-code" + } + ] } ], "collapsible": false @@ -312,7 +337,7 @@ "url": "/docs/guides/tool-index" }, { - "title": "Circuits and operators", + "title": "Map to circuits", "children": [ { "title": "Circuit library", @@ -756,31 +781,6 @@ { "title": "Integrations", "children": [ - { - "title": "Qiskit Serverless", - "children": [ - { - "title": "Qiskit Serverless overview", - "url": "/docs/guides/serverless" - }, - { - "title": "Write your first Qiskit Serverless program", - "url": "/docs/guides/serverless-first-program" - }, - { - "title": "Run your first Qiskit Serverless workload remotely", - "url": "/docs/guides/serverless-run-first-workload" - }, - { - "title": "Manage Qiskit Serverless compute and data resources", - "url": "/docs/guides/serverless-manage-resources" - }, - { - "title": "Port code to Qiskit Serverless", - "url": "/docs/guides/serverless-port-code" - } - ] - }, { "title": "Create a provider", "url": "/docs/guides/create-a-provider" diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index 3f35a1c6376..da258af41f9 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -37,6 +37,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more - [Qiskit Circuit Library](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK's standard library of gates and circuit instructions - [Optimization Mapper](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators - [Quantum Optimization Best Practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads +- [Device benchmarking](/docs/guides/tool-index#device-benchmarking) ### Prepare and optimize quantum workloads @@ -61,7 +62,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more - [Samplomatic](/docs/guides/tool-index#samplomatic) - Fine tune error mitigation in specific circuit regions - [Noise Learner](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA -- [Pauli Twirling](/docs/guides/tool-index#pauli-twirling) - Covert coherent noise to better characterized stochastic noise +- [Pauli Twirling](/docs/guides/tool-index#pauli-twirling) - Convert coherent noise to better characterized stochastic noise - [Matrix-Free Measurement Mitigation](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors - [Probabilistic Error Cancellation](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead - [Zero Noise Extrapolation](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index e254427d1a0..c691d41ba7a 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -5,36 +5,50 @@ description: Find resources relevant to your work, organized by task. # Tools index by task -## Tools Related to Mapping +## Map to circuits ### AQC-Tensor +
+A Qiskit addon for building time evolution circuits + AQC-Tensor is a Qiskit addon which uses tensor network methods to compile the initial portion of a circuit into a nearly equivalent approximation, with much fewer layers. This addon will likely be most useful for the challenges that simulate the time evolution of a quantum system, but may also be useful for circuits which have: -A great intermediate state which can be achieved by tensor-network simulation +- A great intermediate state which can be achieved by tensor-network simulation -A good circuit that prepares an approximation to the target state, but with fewer layers when compiled to the target hardware device. +- A good circuit that prepares an approximation to the target state, but with fewer layers when compiled to the target hardware device. +
-*Relevant docs links:* + - [Overview page](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc) - [Getting started with AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc-get-started) - [Tutorial featuring AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/tutorials/approximate-quantum-compilation-for-time-evolution) + ### Qiskit Circuit Library -The Qiskit SDK’s circuit library will be your go-to place for constructing circuits and beginning the process of building your workloads for the challenges. There is a wide berth of features here, from standard single-/multi-qubit gates to pre-built ansatze, and even custom unitary gates. We also recommend using fractional gates when circuits have many parameters with relatively small angles. +
+The Qiskit SDK's standard library of gates and circuit instructions -*Relevant docs links:* +The Qiskit SDK's circuit library will be your go-to place for constructing circuits and beginning the process of building your workloads for the challenges. There is a wide berth of features here, from standard single-/multi-qubit gates to pre-built ansatze, and even custom unitary gates. We also recommend using fractional gates when circuits have many parameters with relatively small angles. +
+ + - [Circuit library overview](https://quantum.cloud.ibm.com/docs/en/guides/circuit-library) - [Circuit library API reference](https://quantum.cloud.ibm.com/docs/en/api/qiskit/circuit_library) - [Fractional gates](https://quantum.cloud.ibm.com/docs/en/guides/fractional-gates) - [Synthesizing custom unitary operators](https://quantum.cloud.ibm.com/docs/en/guides/synthesize-unitary-operators) + ### Optimization Mapper +
+A Qiskit addon for building time evolution circuits + Optimization mapper is a Qiskit addon that contains functionality to model optimization problems. For example, it contains functions for creating model of binary optimization problems to solve with Qiskit. +
*Relevant docs links:* @@ -43,7 +57,11 @@ Optimization mapper is a Qiskit addon that contains functionality to model optim ### Quantum Optimization Best Practices +
+A collection of guidelines to run quantum optimization workloads + A community repository full of guidelines, best practices, and reference implementations for running quantum optimization algorithms. While they are not feature-complete, they are a helpful way to get started in building quantum workloads to solve optimization problems. There is also a repo which hosts a reference QAOA pipeline. +
*Relevant links:* @@ -52,18 +70,24 @@ A community repository full of guidelines, best practices, and reference impleme ### Device Benchmarking +
Qiskit Device Benchmarking is a respository for code to run various device level benchmarks through Qiskit. It is not intended to define a benchmark standard, but instead provides code examples replicate benchmarking metrics that have been reported in literature or elsewhere. +
*Relevant links:* - [Qiskit Device Benchmarking repository](https://github.com/qiskit-community/qiskit-device-benchmarking) - [Benchmarking notebooks](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/README.md) -## Tools for Preparing & Optimizing Quantum Workloads +## Prepare and optimize a workload ### Transpiler +
+Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing + Once your circuits have been created, they then need to be transpiled against the QPU you will be executing on. The Qiskit SDK has robust tooling for building custom transpilation pipelines that allow you to carefully tune which transformation and analysis passes are executed (and in which sequence). But the simplest way to get started is to just use the pre-build pass managers. +
*Relevant docs links:* @@ -75,7 +99,11 @@ Once your circuits have been created, they then need to be transpiled against th ### Dynamic Circuits +
+Perform certain tasks, such as long range entanglement and state preparation, at constant depth + Dynamic circuits are powerful tools with which your can measure qubits in the middle of a quantum circuit execution and then perform classical logic operations within the circuit, based on the outcome of those mid-circuit measurements. Some common uses cases of dynamic circuits include efficient quantum state preparation, long-range entanglement, and sampling of IQP-like circuits. +
*Relevant docs links:* @@ -84,7 +112,11 @@ Dynamic circuits are powerful tools with which your can measure qubits in the mi ### Dynamical Decoupling +
+Reduce decoherence errors on idle qubits + Dynamical decoupling (DD) is a technique for suppressing errors due to qubit decoherence. It is primarily useful in regions within a quantum circuit in which one or more qubits site idle while other instructions are being executed. Both Sampler and Estimator primitives have built-in support for applying DD. Alternatively, you can use the PadDynamicalDecoupling transpiler pass in Qiskit, or build your own using the new stretch instruction. +
*Relevant docs links:* @@ -95,7 +127,11 @@ Dynamical decoupling (DD) is a technique for suppressing errors due to qubit dec ### Operator Backpropagation -This Qiskit addon utilizes a technique to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. However, this increased cost can be trimmed down by dropping operators with small coefficients which don’t contribute much to the final estimation. You could experiment coupling this alongside the AQC-Tensor addon for even lower circuit depths. +
+Reduce circuit depth by trimming operations at the cost of increased measurements + +This Qiskit addon utilizes a technique to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. However, this increased cost can be trimmed down by dropping operators with small coefficients which don't contribute much to the final estimation. You could experiment coupling this alongside the AQC-Tensor addon for even lower circuit depths. +
*Relevant docs links:* @@ -103,13 +139,15 @@ This Qiskit addon utilizes a technique to reduce circuit depth by trimming opera - [Get started with OBP](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-obp-get-started) - [Tutorial on OBP](https://quantum.cloud.ibm.com/docs/en/tutorials/operator-back-propagation) - - -## Tools for Debugging and Validating Workloads +## Debug ### Noisy Estimator Analyzer Tool +
+Gauge the expected performance of quantum workloads + To gauge the expected performance of estimator-based workloads, NEAT is provided as a convenience tool to analyze and predict the performance of your queries. It uses Qiskit Aer to simulate the estimation task classically efficiently, either exactly or in the presence of noise, and can also convert your PUBs into cliffordized circuits. +
*Relevant docs links:* @@ -119,7 +157,11 @@ To gauge the expected performance of estimator-based workloads, NEAT is provided ### Local Testing Mode +
+Simulate smaller or Cliffordized circuits to assess performance + Qiskit Runtime possesses the ability to test workloads while fine-tuning them before submitting them as jobs to a QPU. To use this feature, simply specify one of the fake backends from `qiskit_ibm_runtime.fake_provider` or use one from the Qiskit Aer library. To utilize this feature, we suggest either cliffordizing the circuit you plan to run or scale down the number of qubits in your workload. +
*Relevant docs links:* @@ -128,11 +170,15 @@ Qiskit Runtime possesses the ability to test workloads while fine-tuning them be -## Executing Workloads +## Execute on hardware ### Estimator & Sampler Primitives +
+Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support + The Estimator and Sampler primitives are used to execute your circuits on QPUs. Estimator computes expectation values of observables with respect to states prepared by quantum circuits, and Sampler samples the output register from quantum circuit execution. Both primitives have built-in error suppression support, and Estimator also have built-in error mitigation methods. +
*Relevant docs links:* @@ -143,7 +189,11 @@ The Estimator and Sampler primitives are used to execute your circuits on QPUs. ### Execution modes +
+Efficiently schedule workload execution + When building quantum workloads, it can sometimes be helpful to utilize different scheduling strategies for execution. The execution modes determine how your jobs are scheduled, and choosing the right execution mode allows your workload to run efficiently (and within your budget). +
*Relevant docs links:* @@ -152,19 +202,24 @@ When building quantum workloads, it can sometimes be helpful to utilize differen ### Executor Primitive +
+Generate and execute circuit variants based on input samplex directive + Executor allows you to fine-tune error mitigation and other techniques without sacrificing performance by providing the ingredients to capture design intents on the client side, and shifting the costly generation of circuit variants to the server side. With Executor, users will gain a clearer and more composable model for execution workflows, making it easier to experiment with new techniques, reproduce results, and share methods. +
Relevant docs links: - [API reference for Executor primitive](https://qiskit.github.io/qiskit-ibm-runtime/index.html) - - - -## Tools for Error mitigation +## Manage noise ### Samplomatic -Samplomatic is a library that helps you sample randomizations of your quantum circuits in exactly the way that you specify. It utilizes the Qiskit SDK’s `Box` annotations to specify regions of a circuit that should have similar noise profiles and can group collections of gates to twirl or use the same noise model from the Noise Learner. +
+Fine tune error mitigation in specific circuit regions + +Samplomatic is a library that helps you sample randomizations of your quantum circuits in exactly the way that you specify. It utilizes the Qiskit SDK's `Box` annotations to specify regions of a circuit that should have similar noise profiles and can group collections of gates to twirl or use the same noise model from the Noise Learner. +
*Relevant docs links:* @@ -173,7 +228,11 @@ Samplomatic is a library that helps you sample randomizations of your quantum ci ### Noise Learner +
+Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA + Many error mitigation techniques, such as PEA and PEC, require an accurate noise model. Noise Learner is a helper program that returns a Pauli-Lindblad noise model for the input circuit. This can help you to further tune how PEA and PEC are done in your Estimator job, or re-use the same model in an iterative workload. +
*Relevant docs links:* @@ -183,7 +242,11 @@ Many error mitigation techniques, such as PEA and PEC, require an accurate noise ### Pauli Twirling +
+Convert coherent noise to better characterized stochastic noise + Pauli twirling, also known as randomized compiling, is an error suppression technique used to convert the effects of unknown types of noise into one which can be characterized (and thus mitigated). +
*Relevant docs links:* @@ -193,7 +256,11 @@ Pauli twirling, also known as randomized compiling, is an error suppression tech ### Matrix-Free Measurement Mitigation +
+Reduce measurement errors + This Qiskit addon is used to reduce measurement error by finding corrected measurement probabilities. This is primarily useful for problems which can benefit from workloads which estimate the expectation value of observables and also works in the context of dynamic circuits. +
*Relevant docs links:* @@ -203,7 +270,11 @@ This Qiskit addon is used to reduce measurement error by finding corrected measu ### Probabilistic Error Cancellation (PEC) +
+Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead + This error mitigation technique returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. The Qiskit Runtime Estimator has built-in support for PEC, which you can enable through the Estimator option. +
*Relevant docs links:* @@ -212,7 +283,11 @@ This error mitigation technique returns an unbiased estimate of the expectation ### Zero Noise Extrapolation (ZNE) +
+Mitigate errors by amplifying noise and extrapolating corrected expectation values + This error mitigation technique first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. Since this can be done in multiple ways, there are a number of noise amplification and extrapolation techniques available. In working through these challenges, you may want to experiment with different approaches to both noise amplification and extrapolation. +
*Relevant docs links:* @@ -223,7 +298,9 @@ This error mitigation technique first computes the expectation value at differen ### Gate Folding Based ZNE +
Gate folding is a noise amplification process which replaces two-qubit gates with equivalent sequences of two-qubit gates and their inverses. This approach is straightforward and simple to utilized but can be imperfect. +
*Relevant docs links:* @@ -232,7 +309,9 @@ Gate folding is a noise amplification process which replaces two-qubit gates wit ### Probabilistic Error Amplification +
PEA is a more sophisticated means of amplifying errors for ZNE and involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification. +
*Relevant docs links:* @@ -241,7 +320,11 @@ PEA is a more sophisticated means of amplifying errors for ZNE and involves runn ### Twirled Readout Error Extinction (TREX) +
+Reduce measurement error via twirling + This error mitigation technique is used to mitigate the effects of measurement errors by using twirled measurements and can be used alongside many other techniques such as ZNE and PEC that mitigates gate errors. +
*Relevant docs links:* @@ -251,7 +334,11 @@ This error mitigation technique is used to mitigate the effects of measurement e ### Propagated Noise Absorption +
+Characterize and propagate the effects of noise into an observable + This new Qiskit addon uses Pauli propagation to characterize Pauli noise affecting different layers of a circuit. It accomplishes this by using a learned noise model and propagating its inverse into the target observable to measure. +
*Relevant docs links:* @@ -260,20 +347,26 @@ This new Qiskit addon uses Pauli propagation to characterize Pauli noise affecti ### Shaded Light Cones +
+Reduce the overhead of PEC error mitigation + Shaded lightcones (SLC) uses pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. This new Qiskit addon is most useful for reducing the sampling overhead for running PEC-based workloads. +
*Relevant docs links:* - [SLC documentation page](https://qiskit.github.io/qiskit-addon-slc/) - [qiskit-addon-slc Github repo](https://github.ibm.com/ibm-q-research/qiskit-addon-slc) - - -## Tools for Post Processing +## Post-process results ### Sample based Quantum Diagonalization +
+Post-process samples to refine results in simulation workloads + This Qiskit addon allows you to implement a post-processing technique to measure the ground state energies of a quantum system. It processes samples obtained from a given circuit to project and diagonalize a target Hamiltonian in a subspace spanned by them, essentially “refining” the results obtained from a workload. This is primarily useful when building workloads which seek to obtain the eigenvalues and eigenvectors of quantum systems (such as chemical or lattice models). +
*Relevant docs links:* @@ -284,7 +377,11 @@ This Qiskit addon allows you to implement a post-processing technique to measure ### Multi-Product Formulas +
+Refine expectation values in workloads simulating time evolution + The MPF Qiskit addon is primarily used to post-process workloads seeking to simulate the time evolution of a quantum system. The MPF tool will ingest data such as the number of Trotter steps to prepare and solve an associated system of linear equations, which can then be used to refine the expectation-value measurements of a time-evolved state. +
*Relevant docs links:* @@ -294,7 +391,11 @@ The MPF Qiskit addon is primarily used to post-process workloads seeking to simu ### Measurement Post-Selection +
+Refine samples by post-selecting known "bad" bitstrings + The noise models produced by Noise Learner may not be accurate for Heron backends due to non-Markovian noise on these devices. Our internal study has shown this can be alleviated with measurement-based post-selection. This technique adds a series of rx gates followed by a measurement to the circuit, and in post-processing throws away the “bad” bitstrings. There are utility functions in Qiskit addons to help implementing this, and NoiseLearnerV3 also has built-in support. +
*Relevant docs links:* @@ -306,8 +407,9 @@ The noise models produced by Noise Learner may not be accurate for Heron backend ### Algorithmiq Tensor-Network Error Mitigation Function -Algorithmiq’s Tensor-network Error Mitigation (TEM) method is a hybrid quantum-classical algorithm designed for automating and performing noise mitigation. It accomplishes this by constructing a tensor network representing an approximate inverse of the noise affecting a circuit to obtain unbiased estimates of an observable. TEM is a novel error mitigation method based on post-processing with tensor networks, and it provides unbiased error mitigation with the lowest possible shot overhead on the quantum hardware, minimizing the runtime and hence the costs of experiments. It requires exponentially less shots than probabilistic error cancellation (PEC) and significantly less shots than zero noise extrapolation (ZNE). - +
+Algorithmiq's Tensor-network Error Mitigation (TEM) method is a hybrid quantum-classical algorithm designed for automating and performing noise mitigation. It accomplishes this by constructing a tensor network representing an approximate inverse of the noise affecting a circuit to obtain unbiased estimates of an observable. TEM is a novel error mitigation method based on post-processing with tensor networks, and it provides unbiased error mitigation with the lowest possible shot overhead on the quantum hardware, minimizing the runtime and hence the costs of experiments. It requires exponentially less shots than probabilistic error cancellation (PEC) and significantly less shots than zero noise extrapolation (ZNE). +
*Relevant docs links:* @@ -315,7 +417,9 @@ Algorithmiq’s Tensor-network Error Mitigation (TEM) method is a hybrid quantum ### Q-CTRL Performance Management Function +
This Qiskit function uses AI-powered error suppression and mitigation techniques and is agnostic to the type of workload being executed. +
Relevant docs links: @@ -325,8 +429,9 @@ Relevant docs links: ### QEDMA Qiskit Function QESEM +
The QESEM Qiskit Functioon by QEDMA uses a suite of proprietary error mitigation techniques to improve the results of your workload. These techniques include gate optimization, noise-aware transpilation, error suppression, and unbiased error mitigation. - +
*Relevant docs links:* @@ -335,7 +440,9 @@ The QESEM Qiskit Functioon by QEDMA uses a suite of proprietary error mitigation ### Iskay Quantum Optimizer +
This Qiskit Function by Kipu Quantum solves unconstrained binary optimization problems with QUBO (Quadratic Unconstrained Binary Optimization) formulation and higher-order (HUBO) optimization problems. +
*Relevant docs links:* @@ -344,8 +451,9 @@ This Qiskit Function by Kipu Quantum solves unconstrained binary optimization pr ### Q-CTRL Optimization Solver +
This Qiskit Function by Q-CTRL is designed to solve utility-scale optimization problems. It takes in a high-level problem definition, and executes an entire workflow to optimize the problem, without manual configuration. - +
*Relevant docs links:* From 26bd853f4b876639859121f5a54261f97caec483 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 12:23:48 -0500 Subject: [PATCH 28/82] bring headers into alignment --- docs/guides/_toc.json | 4 ++-- docs/guides/index.mdx | 10 +++++----- docs/guides/tool-index.mdx | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index abddd17385b..2936c351226 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -337,7 +337,7 @@ "url": "/docs/guides/tool-index" }, { - "title": "Map to circuits", + "title": "Map problem to circuits", "children": [ { "title": "Circuit library", @@ -415,7 +415,7 @@ ] }, { - "title": "Prepare a workload", + "title": "Prepare workloads", "children":[ { "title": "Workload usage", diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index da258af41f9..a0387a2ffee 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -31,7 +31,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more ## Tools by task -### Map +### Map problem to circuits - [AQC-Tensor](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits - [Qiskit Circuit Library](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK's standard library of gates and circuit instructions @@ -39,20 +39,20 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more - [Quantum Optimization Best Practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads - [Device benchmarking](/docs/guides/tool-index#device-benchmarking) -### Prepare and optimize quantum workloads +### Prepare and optimize workloads - [Transpiler](/docs/guides/tool-index#transpiler) - Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing - [Dynamic Circuits](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long range entanglement and state preparation, at constant depth - [Dynamical Decoupling](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits - [Operator Backpropagation](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements -### Debug and validate workloads +### Debug - [Noisy Estimator Analyzer Tool](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads - [Local Testing Mode](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance -### Execute workloads +### Execute on hardware - [Estimator and Sampler Primitives](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support - [Execution Modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution @@ -70,7 +70,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more - [Propagated Noise Absorption](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable - [Shaded Light Cones](/docs/guides/tool-index#shaded-light-cones) - Reduce the overhead of PEC error mitigation -### Post-process +### Post-process results - [Sample Based Quantum Diagonalization](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads - [Multi-Product Formulas](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index c691d41ba7a..786105ccefe 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -5,7 +5,7 @@ description: Find resources relevant to your work, organized by task. # Tools index by task -## Map to circuits +## Map problem to circuits ### AQC-Tensor @@ -79,7 +79,7 @@ Qiskit Device Benchmarking is a respository for code to run various device level - [Qiskit Device Benchmarking repository](https://github.com/qiskit-community/qiskit-device-benchmarking) - [Benchmarking notebooks](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/README.md) -## Prepare and optimize a workload +## Prepare and optimize workloads ### Transpiler From ed72341fbc4dd0dbe7c2a5782e959403571016ac Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 12:25:16 -0500 Subject: [PATCH 29/82] max header lvl 2 --- docs/guides/tool-index.mdx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 786105ccefe..b0e1a3aab9a 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -1,6 +1,9 @@ --- title: Tools index by task description: Find resources relevant to your work, organized by task. +in_page_toc_min_heading_level: 2 +in_page_toc_max_heading_level: 2 + --- # Tools index by task From 58ae3214c62fea53ef75dcd3f451bf49698c37f8 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 12:32:54 -0500 Subject: [PATCH 30/82] copyedit index --- docs/guides/index.mdx | 46 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index a0387a2ffee..ef5f062c605 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -34,47 +34,47 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more ### Map problem to circuits - [AQC-Tensor](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits -- [Qiskit Circuit Library](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK's standard library of gates and circuit instructions -- [Optimization Mapper](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators -- [Quantum Optimization Best Practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads +- [Qiskit circuit library](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK standard library of gates and circuit instructions +- [Optimization mapper](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators +- [Quantum optimization best practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads - [Device benchmarking](/docs/guides/tool-index#device-benchmarking) ### Prepare and optimize workloads - [Transpiler](/docs/guides/tool-index#transpiler) - Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing -- [Dynamic Circuits](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long range entanglement and state preparation, at constant depth -- [Dynamical Decoupling](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits -- [Operator Backpropagation](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements +- [Dynamic circuits](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long-range entanglement and state preparation, at constant depth +- [Dynamical decoupling](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits +- [Operator backpropagation](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements ### Debug -- [Noisy Estimator Analyzer Tool](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads -- [Local Testing Mode](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance +- [Noisy estimator analyzer tool](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads +- [Local testing mode](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance ### Execute on hardware -- [Estimator and Sampler Primitives](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support -- [Execution Modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution -- [Executor Primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on input samplex directive +- [Estimator and Sampler primitives](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support +- [Execution modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution +- [Executor primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on input samplex directive ### Manage noise -- [Samplomatic](/docs/guides/tool-index#samplomatic) - Fine tune error mitigation in specific circuit regions -- [Noise Learner](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA -- [Pauli Twirling](/docs/guides/tool-index#pauli-twirling) - Convert coherent noise to better characterized stochastic noise -- [Matrix-Free Measurement Mitigation](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors -- [Probabilistic Error Cancellation](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead -- [Zero Noise Extrapolation](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values -- [Twirled Readout Error Extinction](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Reduce measurement error via twirling -- [Propagated Noise Absorption](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable -- [Shaded Light Cones](/docs/guides/tool-index#shaded-light-cones) - Reduce the overhead of PEC error mitigation +- [Samplomatic](/docs/guides/tool-index#samplomatic) - Fine-tune error mitigation in specific circuit regions +- [Noise learner](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA +- [Pauli twirling](/docs/guides/tool-index#pauli-twirling) - Convert coherent noise to better characterized stochastic noise +- [Matrix-free measurement mitigation](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors +- [Probabilistic error cancellation](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead +- [Zero-noise extrapolation](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values +- [Twirled readout error extinction](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Use twirling to reduce measurement error +- [Propagated noise absorption](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable +- [Shaded lightcones](/docs/guides/tool-index#shaded-lightcones) - Reduce the overhead of PEC error mitigation ### Post-process results -- [Sample Based Quantum Diagonalization](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads -- [Multi-Product Formulas](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution -- [Measurement Post-Selection](/docs/guides/tool-index#measurement-post-selection) - Refine samples by post-selecting known "bad" bitstrings +- [Sample-based quantum diagonalization](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads +- [Multi-product formulas](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution +- [Measurement post-selection](/docs/guides/tool-index#measurement-post-selection) - Refine samples by post-selecting known "bad" bitstrings ### Qiskit Functions From 13f174aba370f3811a8d13c204ac78f9a31a92ea Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 14:22:58 -0500 Subject: [PATCH 31/82] rmv boxes --- docs/guides/tool-index.mdx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index b0e1a3aab9a..da2699ac28c 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -22,12 +22,9 @@ AQC-Tensor is a Qiskit addon which uses tensor network methods to compile the in - A good circuit that prepares an approximation to the target state, but with fewer layers when compiled to the target hardware device. - - - [Overview page](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc) - [Getting started with AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc-get-started) - [Tutorial featuring AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/tutorials/approximate-quantum-compilation-for-time-evolution) - ### Qiskit Circuit Library @@ -37,18 +34,15 @@ AQC-Tensor is a Qiskit addon which uses tensor network methods to compile the in The Qiskit SDK's circuit library will be your go-to place for constructing circuits and beginning the process of building your workloads for the challenges. There is a wide berth of features here, from standard single-/multi-qubit gates to pre-built ansatze, and even custom unitary gates. We also recommend using fractional gates when circuits have many parameters with relatively small angles. - - - [Circuit library overview](https://quantum.cloud.ibm.com/docs/en/guides/circuit-library) - [Circuit library API reference](https://quantum.cloud.ibm.com/docs/en/api/qiskit/circuit_library) - [Fractional gates](https://quantum.cloud.ibm.com/docs/en/guides/fractional-gates) - [Synthesizing custom unitary operators](https://quantum.cloud.ibm.com/docs/en/guides/synthesize-unitary-operators) - ### Optimization Mapper
-A Qiskit addon for building time evolution circuits +A Qiskit addon for mapping optimization problems to circuits and operators Optimization mapper is a Qiskit addon that contains functionality to model optimization problems. For example, it contains functions for creating model of binary optimization problems to solve with Qiskit.
From 54f8cbc3c6ef4126663102ce55346ed7ebc04ca5 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 15:33:02 -0500 Subject: [PATCH 32/82] Copyediting part 1 --- docs/guides/index.mdx | 4 +- docs/guides/tool-index.mdx | 264 +++++++++++++++++++------------------ 2 files changed, 136 insertions(+), 132 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index ef5f062c605..d968802f53b 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -56,7 +56,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more - [Estimator and Sampler primitives](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support - [Execution modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution -- [Executor primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on input samplex directive +- [Executor primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on the input samplex directive ### Manage noise @@ -64,7 +64,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more - [Noise learner](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA - [Pauli twirling](/docs/guides/tool-index#pauli-twirling) - Convert coherent noise to better characterized stochastic noise - [Matrix-free measurement mitigation](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors -- [Probabilistic error cancellation](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead +- [Probabilistic error cancellation](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, resulting in an unbiased expectation value at the expense of greater overhead - [Zero-noise extrapolation](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values - [Twirled readout error extinction](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Use twirling to reduce measurement error - [Propagated noise absorption](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index da2699ac28c..34db03995a7 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -15,65 +15,65 @@ in_page_toc_max_heading_level: 2
A Qiskit addon for building time evolution circuits -AQC-Tensor is a Qiskit addon which uses tensor network methods to compile the initial portion of a circuit into a nearly equivalent approximation, with much fewer layers. This addon will likely be most useful for the challenges that simulate the time evolution of a quantum system, but may also be useful for circuits which have: +AQC-Tensor is a Qiskit addon that uses tensor network methods to compile the initial portion of a circuit into a nearly equivalent approximation, with many fewer layers. In addition to simulating the time evolution of a quantum system, this addon can also be useful in these cases: -- A great intermediate state which can be achieved by tensor-network simulation +- A circuit for which tensor-network simulation achieves a great intermediate state -- A good circuit that prepares an approximation to the target state, but with fewer layers when compiled to the target hardware device. +- A good circuit that prepares an approximation to the target state, but with fewer layers when compiled to the target hardware device
-- [Overview page](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc) -- [Getting started with AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-aqc-get-started) -- [Tutorial featuring AQC-Tensor](https://quantum.cloud.ibm.com/docs/en/tutorials/approximate-quantum-compilation-for-time-evolution) +- [Overview page](/docs/guides/qiskit-addons-aqc) +- [Get started with AQC-Tensor](/docs/guides/qiskit-addons-aqc-get-started) +- [Tutorial featuring AQC-Tensor](/docs/tutorials/approximate-quantum-compilation-for-time-evolution) -### Qiskit Circuit Library +### Qiskit circuit library
-The Qiskit SDK's standard library of gates and circuit instructions +The standard library of gates and circuit instructions in the Qiskit SDK -The Qiskit SDK's circuit library will be your go-to place for constructing circuits and beginning the process of building your workloads for the challenges. There is a wide berth of features here, from standard single-/multi-qubit gates to pre-built ansatze, and even custom unitary gates. We also recommend using fractional gates when circuits have many parameters with relatively small angles. +Start with the Qiskit circuit library when beginning the process of constructing circuits and workloads. Available features range from standard single- and multi-qubit gates to pre-built ansatze, and also include custom unitary gates.
-- [Circuit library overview](https://quantum.cloud.ibm.com/docs/en/guides/circuit-library) -- [Circuit library API reference](https://quantum.cloud.ibm.com/docs/en/api/qiskit/circuit_library) -- [Fractional gates](https://quantum.cloud.ibm.com/docs/en/guides/fractional-gates) -- [Synthesizing custom unitary operators](https://quantum.cloud.ibm.com/docs/en/guides/synthesize-unitary-operators) +- [Circuit library overview](/docs/guides/circuit-library) +- [Circuit library API reference](/docs/api/qiskit/circuit_library) +- [Fractional gates](/docs/guides/fractional-gates) +- [Synthesize custom unitary operators](/docs/guides/synthesize-unitary-operators) -### Optimization Mapper +### Optimization mapper
A Qiskit addon for mapping optimization problems to circuits and operators -Optimization mapper is a Qiskit addon that contains functionality to model optimization problems. For example, it contains functions for creating model of binary optimization problems to solve with Qiskit. +Optimization mapper is a Qiskit addon that contains the functionality to model optimization problems. For example, you can use it to create models of binary optimization problems to solve with Qiskit.
*Relevant docs links:* - [Optimization mapper documentation page](https://qiskit.github.io/qiskit-addon-opt-mapper/) -- [qiskit-addon-opt-mapper Github repo](https://github.com/qiskit/qiskit-addon-opt-mapper) +- [`qiskit-addon-opt-mapper` GitHub repo](https://github.com/qiskit/qiskit-addon-opt-mapper) -### Quantum Optimization Best Practices +### Quantum optimization best practices
A collection of guidelines to run quantum optimization workloads -A community repository full of guidelines, best practices, and reference implementations for running quantum optimization algorithms. While they are not feature-complete, they are a helpful way to get started in building quantum workloads to solve optimization problems. There is also a repo which hosts a reference QAOA pipeline. +To get started building quantum workloads to solve optimization problems, refer to the following community repository, which containing guidelines, best practices, and reference implementations for running quantum optimization algorithms. Also listed is a reference QAOA training pipeline.
*Relevant links:* -- [Github repository for quantum optimization](https://github.com/qiskit-community/qopt-best-practices) -- [QAOA Training Pipeline](https://github.com/qiskit-community/qaoa_training_pipeline) +- [GitHub repository for quantum optimization](https://github.com/qiskit-community/qopt-best-practices) +- [QAOA training pipeline](https://github.com/qiskit-community/qaoa_training_pipeline) -### Device Benchmarking +### Device benchmarking
-Qiskit Device Benchmarking is a respository for code to run various device level benchmarks through Qiskit. It is not intended to define a benchmark standard, but instead provides code examples replicate benchmarking metrics that have been reported in literature or elsewhere. +Qiskit device benchmarking is a respository for code to run various device-level benchmarks through Qiskit. It is not intended to define a benchmark standard, but instead provides code examples to replicate benchmarking metrics that have been reported in literature or elsewhere.
*Relevant links:* -- [Qiskit Device Benchmarking repository](https://github.com/qiskit-community/qiskit-device-benchmarking) +- [Qiskit device benchmarking repository](https://github.com/qiskit-community/qiskit-device-benchmarking) - [Benchmarking notebooks](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/README.md) ## Prepare and optimize workloads @@ -83,180 +83,182 @@ Qiskit Device Benchmarking is a respository for code to run various device level
Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing -Once your circuits have been created, they then need to be transpiled against the QPU you will be executing on. The Qiskit SDK has robust tooling for building custom transpilation pipelines that allow you to carefully tune which transformation and analysis passes are executed (and in which sequence). But the simplest way to get started is to just use the pre-build pass managers. +Once your circuits have been created, they then need to be transpiled against the QPU that will execute your workload. The Qiskit SDK has robust tooling for building custom transpilation pipelines that allow you to carefully tune which transformation and analysis passes are executed (and in which sequence). Note that the simplest way to get started is to use the pre-built pass managers.
*Relevant docs links:* -- [Introduction to transpilation](https://quantum.cloud.ibm.com/docs/en/guides/transpile) -- [Write custom transpilation passes](https://quantum.cloud.ibm.com/docs/en/guides/custom-transpiler-pass) -- [Utilize transpiler plugins](https://quantum.cloud.ibm.com/docs/en/guides/transpiler-plugins) -- [Configure the preset pass managers](https://quantum.cloud.ibm.com/docs/en/guides/defaults-and-configuration-options) -- [Tutorial on qubit selection](https://quantum.cloud.ibm.com/docs/en/tutorials/real-time-benchmarking-for-qubit-selection) +- [Introduction to transpilation](/docs/guides/transpile) +- [Write custom transpilation passes](/docs/guides/custom-transpiler-pass) +- [Utilize transpiler plugins](/docs/guides/transpiler-plugins) +- [Configure the preset pass managers](/docs/guides/defaults-and-configuration-options) +- [Tutorial on qubit selection](/docs/tutorials/real-time-benchmarking-for-qubit-selection) -### Dynamic Circuits +### Dynamic circuits
-Perform certain tasks, such as long range entanglement and state preparation, at constant depth +Perform certain tasks, such as long-range entanglement and state preparation, at constant depth -Dynamic circuits are powerful tools with which your can measure qubits in the middle of a quantum circuit execution and then perform classical logic operations within the circuit, based on the outcome of those mid-circuit measurements. Some common uses cases of dynamic circuits include efficient quantum state preparation, long-range entanglement, and sampling of IQP-like circuits. +Dynamic circuits are powerful tools for measuring qubits in the middle of a quantum circuit execution - and based on the outcome of those mid-circuit measurements, you can then perform classical logic operations within the circuit. Some common uses cases include efficient quantum state preparation, long-range entanglement, and sampling of instantaneous quantum polynomial-like circuits.
*Relevant docs links:* -- [Classical feed-forward and control flow](https://quantum.cloud.ibm.com/docs/en/guides/classical-feedforward-and-control-flow) (this is the primary way to integrate dynamic circuits into your workloads) -- [Tutorial on using dynamic circuits to generate long-range entanglement](https://quantum.cloud.ibm.com/docs/en/tutorials/long-range-entanglement) +- [Classical feed-forward and control flow](/docs/guides/classical-feedforward-and-control-flow) (This is the primary way to integrate dynamic circuits into your workloads) +- [Tutorial on using dynamic circuits to generate long-range entanglement](/docs/tutorials/long-range-entanglement) -### Dynamical Decoupling +### Dynamical decoupling
Reduce decoherence errors on idle qubits -Dynamical decoupling (DD) is a technique for suppressing errors due to qubit decoherence. It is primarily useful in regions within a quantum circuit in which one or more qubits site idle while other instructions are being executed. Both Sampler and Estimator primitives have built-in support for applying DD. Alternatively, you can use the PadDynamicalDecoupling transpiler pass in Qiskit, or build your own using the new stretch instruction. +Dynamical decoupling (DD) is a technique for suppressing errors due to qubit decoherence. It is primarily useful in regions within a quantum circuit in which one or more qubits site idle while other instructions are being executed. Both Sampler and Estimator primitives have built-in support for applying DD. Alternatively, you can use the [`PadDynamicalDecoupling`](/docs/api/qiskit/qiskit.transpiler.passes.PadDynamicalDecoupling) transpiler pass in Qiskit, or build your own using the new stretch instruction.
*Relevant docs links:* -- [Overview of DD](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) -- [Introduction to primitive options](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview) -- [Create a pass manager for dynamical decoupling](https://quantum.cloud.ibm.com/docs/en/guides/dynamical-decoupling-pass-manager) -- [Deferred timing resolution using stretch](https://quantum.cloud.ibm.com/docs/en/guides/stretch) (this is especially useful for apply DD in a dynamic circuit) +- [Overview of DD](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) +- [Introduction to primitive options](/docs/guides/runtime-options-overview) +- [Create a pass manager for dynamical decoupling](/docs/guides/dynamical-decoupling-pass-manager) +- [Deferred timing resolution using stretch](/docs/guides/stretch) (Especially useful for applying DD in a dynamic circuit) -### Operator Backpropagation +### Operator backpropagation
Reduce circuit depth by trimming operations at the cost of increased measurements -This Qiskit addon utilizes a technique to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. However, this increased cost can be trimmed down by dropping operators with small coefficients which don't contribute much to the final estimation. You could experiment coupling this alongside the AQC-Tensor addon for even lower circuit depths. +This Qiskit addon utilizes a technique to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. However, this increased cost can be lessened by dropping operators with small coefficients, which don't contribute much to the final estimation. You could experiment with coupling this alongside the AQC-Tensor addon for even lower circuit depths.
*Relevant docs links:* -- [Overview of OBP addon](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-obp) -- [Get started with OBP](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-obp-get-started) -- [Tutorial on OBP](https://quantum.cloud.ibm.com/docs/en/tutorials/operator-back-propagation) +- [Overview of OBP addon](/docs/guides/qiskit-addons-obp) +- [Get started with OBP](/docs/guides/qiskit-addons-obp-get-started) +- [Tutorial on OBP](/docs/tutorials/operator-back-propagation) ## Debug -### Noisy Estimator Analyzer Tool +### Noisy estimator analyzer tool
Gauge the expected performance of quantum workloads -To gauge the expected performance of estimator-based workloads, NEAT is provided as a convenience tool to analyze and predict the performance of your queries. It uses Qiskit Aer to simulate the estimation task classically efficiently, either exactly or in the presence of noise, and can also convert your PUBs into cliffordized circuits. +The noisy estimator analyzer tool (NEAT) analyzes and predicts the performance of your queries when you are gauging the expected performance of estimator-based workloads. It uses Qiskit Aer to simulate the estimation task classically and efficiently, either exactly or in the presence of noise, and can also convert your Primitive Unified Blocs (PUBs) into Cliffordized circuits.
*Relevant docs links:* -- [Analyze a Qiskit Runtime job using NEAT](https://quantum.cloud.ibm.com/docs/en/guides/debug-qiskit-runtime-jobs) -- [NEAT API reference page](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/debug-tools-neat) +- [Analyze a Qiskit Runtime job using NEAT](/docs/guides/debug-qiskit-runtime-jobs) +- [NEAT API reference page](/docs/api/qiskit-ibm-runtime/debug-tools-neat) -### Local Testing Mode +### Local testing mode
Simulate smaller or Cliffordized circuits to assess performance -Qiskit Runtime possesses the ability to test workloads while fine-tuning them before submitting them as jobs to a QPU. To use this feature, simply specify one of the fake backends from `qiskit_ibm_runtime.fake_provider` or use one from the Qiskit Aer library. To utilize this feature, we suggest either cliffordizing the circuit you plan to run or scale down the number of qubits in your workload. +Qiskit Runtime can test workloads while fine-tuning them before submitting them to a QPU. To use this feature, simply specify one of the fake backends from `qiskit_ibm_runtime.fake_provider` or use one from the Qiskit Aer library. To utilize this feature, we suggest either Cliffordizing your circuit, or scale down the number of qubits in your workload.
*Relevant docs links:* -- [Overview of using the local testing mode](https://quantum.cloud.ibm.com/docs/en/guides/local-testing-mode) -- [Fake Provider API reference](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/fake-provider) +- [Overview of local testing mode](/docs/guides/local-testing-mode) +- [Fake Provider API reference](/docs/api/qiskit-ibm-runtime/fake-provider) ## Execute on hardware -### Estimator & Sampler Primitives +### Estimator and Sampler primitives
Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support -The Estimator and Sampler primitives are used to execute your circuits on QPUs. Estimator computes expectation values of observables with respect to states prepared by quantum circuits, and Sampler samples the output register from quantum circuit execution. Both primitives have built-in error suppression support, and Estimator also have built-in error mitigation methods. +The Estimator and Sampler primitives are used to execute your circuits on QPUs. Estimator computes expectation values of observables with respect to states prepared by quantum circuits, and Sampler samples the output register from quantum circuit execution. Both primitives have built-in error suppression support, and Estimator also has built-in error mitigation methods.
*Relevant docs links:* -- [Primitive inputs and outputs](https://quantum.cloud.ibm.com/docs/en/guides/primitive-input-output) -- [Introduction to the primitive options](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview) -- [Primitives examples](https://quantum.cloud.ibm.com/docs/en/guides/primitives-examples) -- [Tutorial on combining error mitigation options with Estimator](https://quantum.cloud.ibm.com/docs/en/tutorials/combine-error-mitigation-techniques) +- [Primitive inputs and outputs](/docs/guides/primitive-input-output) +- [Introduction to the primitive options](/docs/guides/runtime-options-overview) +- [Primitives examples](/docs/guides/primitives-examples) +- [Tutorial on combining error mitigation options with Estimator](/docs/tutorials/combine-error-mitigation-techniques) ### Execution modes
Efficiently schedule workload execution -When building quantum workloads, it can sometimes be helpful to utilize different scheduling strategies for execution. The execution modes determine how your jobs are scheduled, and choosing the right execution mode allows your workload to run efficiently (and within your budget). +Explore the different execution modes - scheduling strategies for execution - when building quantum workloads, to determine which one is most efficient for a specific workload.
*Relevant docs links:* -- [Overview of Job, Batch, and Session modes](https://quantum.cloud.ibm.com/docs/en/guides/execution-modes) -- [How to choose the right execution mode](https://quantum.cloud.ibm.com/docs/en/guides/choose-execution-mode) +- [Overview of job, batch, and session modes](/docs/guides/execution-modes) +- [How to choose the right execution mode](/docs/guides/choose-execution-mode) -### Executor Primitive +### Executor primitive
-Generate and execute circuit variants based on input samplex directive +Generate and execute circuit variants based on the input samplex directive -Executor allows you to fine-tune error mitigation and other techniques without sacrificing performance by providing the ingredients to capture design intents on the client side, and shifting the costly generation of circuit variants to the server side. With Executor, users will gain a clearer and more composable model for execution workflows, making it easier to experiment with new techniques, reproduce results, and share methods. +Executor allows you to fine-tune error mitigation and other techniques without sacrificing performance, by providing the ingredients to capture design intents on the client-side, and shifting the costly generation of circuit variants to the server-side. With Executor, users will gain a clearer and more composable model for execution workflows, making it easier to experiment with new techniques, reproduce results, and share methods.
Relevant docs links: - [API reference for Executor primitive](https://qiskit.github.io/qiskit-ibm-runtime/index.html) +- [Directed execution model (beta)](/docs/guides/directed-execution-model) ## Manage noise ### Samplomatic
-Fine tune error mitigation in specific circuit regions +Fine-tune error mitigation in specific circuit regions -Samplomatic is a library that helps you sample randomizations of your quantum circuits in exactly the way that you specify. It utilizes the Qiskit SDK's `Box` annotations to specify regions of a circuit that should have similar noise profiles and can group collections of gates to twirl or use the same noise model from the Noise Learner. +Samplomatic is a library for sampling randomizations of your quantum circuits in exactly the way that you specify. It utilizes the Qiskit SDK's `Box` annotations to specify regions of a circuit that should have similar noise profiles; it can also can group collections of gates to twirl, or use the same noise model from `NoiseLearner`.
*Relevant docs links:* - [Samplomatic documentation](https://qiskit.github.io/samplomatic/) -- [Samplomatic Github repo](https://github.com/Qiskit/samplomatic) +- [Samplomatic GitHub repo](https://github.com/Qiskit/samplomatic) +- [Directed execution model (beta)](/docs/guides/directed-execution-model) ### Noise Learner
Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA -Many error mitigation techniques, such as PEA and PEC, require an accurate noise model. Noise Learner is a helper program that returns a Pauli-Lindblad noise model for the input circuit. This can help you to further tune how PEA and PEC are done in your Estimator job, or re-use the same model in an iterative workload. +Many error mitigation techniques, such as PEA and PEC, require an accurate noise model. `NoiseLearner` is a helper program that returns a Pauli-Lindblad noise model for the input circuit. You can then further tune how PEA and PEC are done in your Estimator job, or re-use the same model in an iterative workload.
*Relevant docs links:* -- [Overview of noise learning helper](https://quantum.cloud.ibm.com/docs/en/guides/noise-learning) -- API reference for [`NoiseLearner`](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/noise-learner) and [`NoiseLearnerOptions``](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-noise-learner-options) -- [Related link to NLV3 which has samplomatic support +- [Overview of noise learning helper](/docs/guides/noise-learning) +- API reference for [`NoiseLearner`](/docs/api/qiskit-ibm-runtime/noise-learner) and [`NoiseLearnerOptions`](/docs/api/qiskit-ibm-runtime/options-noise-learner-options) +- [Directed execution model (beta)](/docs/guides/directed-execution-model) -### Pauli Twirling +### Pauli twirling
Convert coherent noise to better characterized stochastic noise -Pauli twirling, also known as randomized compiling, is an error suppression technique used to convert the effects of unknown types of noise into one which can be characterized (and thus mitigated). +Pauli twirling, also known as randomized compiling, is an error suppression technique used to convert the effects of unknown types of noise into one that can be characterized (and thus mitigated).
*Relevant docs links:* -- [Explanation and usage of Pauli Twirling in primitive options](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#pauli-twirling) -- [Related link to using Pauli Twirling with Samplomatic]() -- [Error mitigation compatibility in primitive options](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview#feature-compatibility) +- [Explanation and usage of Pauli twirling in primitive options](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling) +- [Example of a Pauli twirling annotation in a circuit created in Samplomatic](/docs/guides/directed-execution-model#samplomatic) +- [Error mitigation compatibility in primitive options](/docs/guides/runtime-options-overview#feature-compatibility) -### Matrix-Free Measurement Mitigation +### Matrix-free measurement mitigation
Reduce measurement errors -This Qiskit addon is used to reduce measurement error by finding corrected measurement probabilities. This is primarily useful for problems which can benefit from workloads which estimate the expectation value of observables and also works in the context of dynamic circuits. +The Matrix-free measurement mitigation (M3) Qiskit addon is used to reduce measurement error by finding corrected measurement probabilities. Use it for problems that benefit from workloads that estimate the expectation value of observables. M3 also works in the context of dynamic circuits.
*Relevant docs links:* @@ -264,113 +266,115 @@ This Qiskit addon is used to reduce measurement error by finding corrected measu - [M3 addon documentation](https://qiskit.github.io/qiskit-addon-mthree/) - [Guide on the basic usage of M3](https://qiskit.github.io/qiskit-addon-mthree/basic.html) - [Tutorial on using M3 with mid-circuit measurement](https://qiskit.github.io/qiskit-addon-mthree/tutorials/04_dynamic_bv.html) +- [Readout error mitigation for the Sampler primitive using M3](/docs/tutorials/readout-error-mitigation-sampler) -### Probabilistic Error Cancellation (PEC) +### Probabilistic error cancellation (PEC)
-Mitigate errors by statistically canceling noise, which generally returns an unbiased expectation value at the expense of greater overhead +Mitigate errors by statistically canceling noise, resulting in an unbiased expectation value at the expense of greater overhead -This error mitigation technique returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. The Qiskit Runtime Estimator has built-in support for PEC, which you can enable through the Estimator option. +This error mitigation technique returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. The Qiskit Runtime Estimator primitive has built-in support for PEC, which you can enable through the Estimator option.
*Relevant docs links:* -- [Explanation of PEC](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec) -- [API Reference for PEC options](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-pec-options) +- [Explanation of PEC](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec) +- [API reference for PEC options](/docs/api/qiskit-ibm-runtime/options-pec-options) -### Zero Noise Extrapolation (ZNE) +### Zero-noise extrapolation (ZNE)
Mitigate errors by amplifying noise and extrapolating corrected expectation values -This error mitigation technique first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. Since this can be done in multiple ways, there are a number of noise amplification and extrapolation techniques available. In working through these challenges, you may want to experiment with different approaches to both noise amplification and extrapolation. +This error mitigation technique first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. Since this can be done in multiple ways, a number of noise amplification and extrapolation techniques are available.
*Relevant docs links:* -- [Qiskit Runtime primitive options for ZNE](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-zne-options) -- [Introduction to ZNE](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) -- [Error mitigation feature compatibility](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview#feature-compatibility) -- [ArXiV white paper on best practices for digital ZNE](https://arxiv.org/abs/2307.05203) +- [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) +- [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) +- [Error mitigation feature compatibility](/docs/guides/runtime-options-overview#feature-compatibility) +- [ArXiv white paper on best practices for digital ZNE](https://arxiv.org/abs/2307.05203) -### Gate Folding Based ZNE +### Gate folding-based ZNE
-Gate folding is a noise amplification process which replaces two-qubit gates with equivalent sequences of two-qubit gates and their inverses. This approach is straightforward and simple to utilized but can be imperfect. +Gate folding is a noise amplification process that replaces two-qubit gates with equivalent sequences of two-qubit gates and their inverses. This approach is straightforward and simple to use, but can be imperfect.
*Relevant docs links:* -- [Qiskit Runtime primitive options for ZNE](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-zne-options) -- [Introduction to ZNE](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) +- [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) +- [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) -### Probabilistic Error Amplification +### Probabilistic error amplification
-PEA is a more sophisticated means of amplifying errors for ZNE and involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification. +Probabilistic error amplification (PEA) is a more sophisticated means of amplifying errors for ZNE. It involves running preliminary experiments to learn a twirled noise model of the circuit, and then uses this model to perform a more accurate error amplification.
*Relevant docs links:* -- [API reference for `LayerNoiseLearningOptions`](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-layer-noise-learning-options) -- [API reference for `NoiseLearner`](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/noise-learner-noise-learner) +- [PEA overview](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) +- [API reference for `LayerNoiseLearningOptions`](/docs/api/qiskit-ibm-runtime/options-layer-noise-learning-options) +- [API reference for `NoiseLearner`](/docs/api/qiskit-ibm-runtime/noise-learner-noise-learner) -### Twirled Readout Error Extinction (TREX) +### Twirled readout error extinction (TREX)
-Reduce measurement error via twirling +Use twirling to reduce measurement error -This error mitigation technique is used to mitigate the effects of measurement errors by using twirled measurements and can be used alongside many other techniques such as ZNE and PEC that mitigates gate errors. +This error mitigation technique is used to mitigate the effects of measurement errors by using twirled measurements. It can be used alongside many other techniques that mitigate gate errors, such as ZNE and PEC.
*Relevant docs links:* -- [Explanation of TREX](https://quantum.cloud.ibm.com/docs/en/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex) -- [Error mitigation feature compatibility](https://quantum.cloud.ibm.com/docs/en/guides/runtime-options-overview#feature-compatibility) -- [API reference for measurement noise learning options](https://quantum.cloud.ibm.com/docs/en/api/qiskit-ibm-runtime/options-measure-noise-learning-options) +- [Explanation of TREX](/docs/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex) +- [Error mitigation feature compatibility](/docs/guides/runtime-options-overview#feature-compatibility) +- [API reference for measurement noise learning options](/docs/api/qiskit-ibm-runtime/options-measure-noise-learning-options) -### Propagated Noise Absorption +### Propagated noise absorption
Characterize and propagate the effects of noise into an observable -This new Qiskit addon uses Pauli propagation to characterize Pauli noise affecting different layers of a circuit. It accomplishes this by using a learned noise model and propagating its inverse into the target observable to measure. +This Qiskit addon uses Pauli propagation to characterize Pauli noise affecting different layers of a circuit, by using a learned noise model and propagating its inverse into the target observable to measure.
*Relevant docs links:* - [PNA documentation page](https://qiskit.github.io/qiskit-addon-pna/) -- [qiskit-addon-pna Github repo](https://github.com/Qiskit/qiskit-addon-pna) +- [`qiskit-addon-pna` GitHub repo](https://github.com/Qiskit/qiskit-addon-pna) -### Shaded Light Cones +### Shaded lightcones
Reduce the overhead of PEC error mitigation -Shaded lightcones (SLC) uses pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. This new Qiskit addon is most useful for reducing the sampling overhead for running PEC-based workloads. +The shaded lightcones (SLC) Qiskit addon uses Pauli propagation to reduce the number of error terms accounted for in a noise model, according to the specifics of the target observable. It is useful for reducing the sampling overhead when running PEC-based workloads.
*Relevant docs links:* - [SLC documentation page](https://qiskit.github.io/qiskit-addon-slc/) -- [qiskit-addon-slc Github repo](https://github.ibm.com/ibm-q-research/qiskit-addon-slc) +- [`qiskit-addon-slc` GitHub repo](https://github.ibm.com/ibm-q-research/qiskit-addon-slc) ## Post-process results -### Sample based Quantum Diagonalization +### Sample-based quantum diagonalization
Post-process samples to refine results in simulation workloads -This Qiskit addon allows you to implement a post-processing technique to measure the ground state energies of a quantum system. It processes samples obtained from a given circuit to project and diagonalize a target Hamiltonian in a subspace spanned by them, essentially “refining” the results obtained from a workload. This is primarily useful when building workloads which seek to obtain the eigenvalues and eigenvectors of quantum systems (such as chemical or lattice models). +With the Sample-based quantum diagonalization (SQD) Qiskit addon, you can implement a post-processing technique to measure the ground state energies of a quantum system. SQD processes samples from a given circuit to project and diagonalize a target Hamiltonian in a subspace spanned by them, essentially "refining" the results obtained from a workload. Use when you seek to obtain the eigenvalues and eigenvectors of quantum systems (such as chemical or lattice models).
*Relevant docs links:* -- [Overview of SQD](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-sqd) -- [Getting started with SQD](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-sqd-get-started) -- [Tutorial using SQD for a chemistry Hamiltonian](https://quantum.cloud.ibm.com/docs/en/tutorials/sample-based-quantum-diagonalization) -- [Tutorial using SQD and KQD for a lattice model](https://quantum.cloud.ibm.com/docs/en/tutorials/sample-based-krylov-quantum-diagonalization) +- [Overview of SQD](/docs/guides/qiskit-addons-sqd) +- [Getting started with SQD](/docs/guides/qiskit-addons-sqd-get-started) +- [Tutorial using SQD for a chemistry Hamiltonian](/docs/tutorials/sample-based-quantum-diagonalization) +- [Tutorial using SQD and KQD for a lattice model](/docs/tutorials/sample-based-krylov-quantum-diagonalization) ### Multi-Product Formulas @@ -382,22 +386,22 @@ The MPF Qiskit addon is primarily used to post-process workloads seeking to simu *Relevant docs links:* -- [Overview of MPF](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-mpf) -- [Getting started with MPF](https://quantum.cloud.ibm.com/docs/en/guides/qiskit-addons-mpf-get-started) -- [Tutorial using MPF to reduce Trotter error](https://quantum.cloud.ibm.com/docs/en/tutorials/multi-product-formula) +- [Overview of MPF](/docs/guides/qiskit-addons-mpf) +- [Getting started with MPF](/docs/guides/qiskit-addons-mpf-get-started) +- [Tutorial using MPF to reduce Trotter error](/docs/tutorials/multi-product-formula) ### Measurement Post-Selection
Refine samples by post-selecting known "bad" bitstrings -The noise models produced by Noise Learner may not be accurate for Heron backends due to non-Markovian noise on these devices. Our internal study has shown this can be alleviated with measurement-based post-selection. This technique adds a series of rx gates followed by a measurement to the circuit, and in post-processing throws away the “bad” bitstrings. There are utility functions in Qiskit addons to help implementing this, and NoiseLearnerV3 also has built-in support. +The noise models produced by Noise Learner may not be accurate for Heron backends due to non-Markovian noise on these devices. Our internal study has shown this can be alleviated with measurement-based post-selection. This technique adds a series of rx gates followed by a measurement to the circuit, and in post-processing throws away the "bad" bitstrings. There are utility functions in Qiskit addons to help implementing this, and NoiseLearnerV3 also has built-in support.
*Relevant docs links:* -- [API reference for post selection utilities](https://quantum.cloud.ibm.com/docs/en/api/qiskit-addon-utils/noise-management-post-selection) -- [API reference for post selection transpiler passes](https://quantum.cloud.ibm.com/docs/en/api/qiskit-addon-utils/noise-management-post-selection-transpiler-passes) +- [API reference for post selection utilities](/docs/api/qiskit-addon-utils/noise-management-post-selection) +- [API reference for post selection transpiler passes](/docs/api/qiskit-addon-utils/noise-management-post-selection-transpiler-passes) - [Link to NoiseLearnerV3 API ref] ## Qiskit Functions (Pre-built workflows to speed up applications research) @@ -410,7 +414,7 @@ Algorithmiq's Tensor-network Error Mitigation (TEM) method is a hybrid quantum-c *Relevant docs links:* -- [Overview of TEM function](https://quantum.cloud.ibm.com/docs/en/guides/algorithmiq-tem) +- [Overview of TEM function](/docs/guides/algorithmiq-tem) ### Q-CTRL Performance Management Function @@ -420,9 +424,9 @@ This Qiskit function uses AI-powered error suppression and mitigation techniques Relevant docs links: -- [Overview of Q-CTRL Performance Management](https://quantum.cloud.ibm.com/docs/en/guides/q-ctrl-performance-management) -- [Tutorial using Performance Management for TFIM](https://quantum.cloud.ibm.com/docs/en/tutorials/transverse-field-ising-model) -- [Tutorial using Performance Management for QPE](https://quantum.cloud.ibm.com/docs/en/tutorials/quantum-phase-estimation-qctrl) +- [Overview of Q-CTRL Performance Management](/docs/guides/q-ctrl-performance-management) +- [Tutorial using Performance Management for TFIM](/docs/tutorials/transverse-field-ising-model) +- [Tutorial using Performance Management for QPE](/docs/tutorials/quantum-phase-estimation-qctrl) ### QEDMA Qiskit Function QESEM @@ -432,7 +436,7 @@ The QESEM Qiskit Functioon by QEDMA uses a suite of proprietary error mitigation *Relevant docs links:* -- [Overview of QESEM Function](https://quantum.cloud.ibm.com/docs/en/guides/kipu-optimization) +- [Overview of QESEM Function](/docs/guides/kipu-optimization) - [Tutorial for QESEM coming soon...] ### Iskay Quantum Optimizer @@ -443,7 +447,7 @@ This Qiskit Function by Kipu Quantum solves unconstrained binary optimization pr *Relevant docs links:* -- [Overview of Iskay Quantum Function](https://quantum.cloud.ibm.com/docs/en/guides/kipu-optimization) +- [Overview of Iskay Quantum Function](/docs/guides/kipu-optimization) - [Tutorial for Iskay coming soon...] ### Q-CTRL Optimization Solver @@ -454,5 +458,5 @@ This Qiskit Function by Q-CTRL is designed to solve utility-scale optimization p *Relevant docs links:* -- [Overview of Optimization Solver](https://quantum.cloud.ibm.com/docs/en/guides/q-ctrl-optimization-solver) -- [Spin-glass tutorial for Optimization Solver](https://quantum.cloud.ibm.com/docs/en/tutorials/solve-higher-order-binary-optimization-problems-with-q-ctrls-optimization-solver) \ No newline at end of file +- [Overview of Optimization Solver](/docs/guides/q-ctrl-optimization-solver) +- [Spin-glass tutorial for Optimization Solver](/docs/tutorials/solve-higher-order-binary-optimization-problems-with-q-ctrls-optimization-solver) \ No newline at end of file From 71b59f7a2f87aaf3fa0076eca7c668362b09faf3 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 16:13:23 -0500 Subject: [PATCH 33/82] Second batch of copyediting --- docs/guides/tool-index.mdx | 89 +++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 40 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 34db03995a7..9febd901a73 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -22,6 +22,8 @@ AQC-Tensor is a Qiskit addon that uses tensor network methods to compile the ini - A good circuit that prepares an approximation to the target state, but with fewer layers when compiled to the target hardware device +**Relevant resources** + - [Overview page](/docs/guides/qiskit-addons-aqc) - [Get started with AQC-Tensor](/docs/guides/qiskit-addons-aqc-get-started) - [Tutorial featuring AQC-Tensor](/docs/tutorials/approximate-quantum-compilation-for-time-evolution) @@ -34,6 +36,8 @@ AQC-Tensor is a Qiskit addon that uses tensor network methods to compile the ini Start with the Qiskit circuit library when beginning the process of constructing circuits and workloads. Available features range from standard single- and multi-qubit gates to pre-built ansatze, and also include custom unitary gates. +**Relevant resources** + - [Circuit library overview](/docs/guides/circuit-library) - [Circuit library API reference](/docs/api/qiskit/circuit_library) - [Fractional gates](/docs/guides/fractional-gates) @@ -47,7 +51,7 @@ Start with the Qiskit circuit library when beginning the process of constructing Optimization mapper is a Qiskit addon that contains the functionality to model optimization problems. For example, you can use it to create models of binary optimization problems to solve with Qiskit. -*Relevant docs links:* +**Relevant resources** - [Optimization mapper documentation page](https://qiskit.github.io/qiskit-addon-opt-mapper/) - [`qiskit-addon-opt-mapper` GitHub repo](https://github.com/qiskit/qiskit-addon-opt-mapper) @@ -86,7 +90,7 @@ Qiskit device benchmarking is a respository for code to run various device-level Once your circuits have been created, they then need to be transpiled against the QPU that will execute your workload. The Qiskit SDK has robust tooling for building custom transpilation pipelines that allow you to carefully tune which transformation and analysis passes are executed (and in which sequence). Note that the simplest way to get started is to use the pre-built pass managers. -*Relevant docs links:* +**Relevant resources** - [Introduction to transpilation](/docs/guides/transpile) - [Write custom transpilation passes](/docs/guides/custom-transpiler-pass) @@ -102,7 +106,7 @@ Once your circuits have been created, they then need to be transpiled against th Dynamic circuits are powerful tools for measuring qubits in the middle of a quantum circuit execution - and based on the outcome of those mid-circuit measurements, you can then perform classical logic operations within the circuit. Some common uses cases include efficient quantum state preparation, long-range entanglement, and sampling of instantaneous quantum polynomial-like circuits. -*Relevant docs links:* +**Relevant resources** - [Classical feed-forward and control flow](/docs/guides/classical-feedforward-and-control-flow) (This is the primary way to integrate dynamic circuits into your workloads) - [Tutorial on using dynamic circuits to generate long-range entanglement](/docs/tutorials/long-range-entanglement) @@ -115,7 +119,7 @@ Dynamic circuits are powerful tools for measuring qubits in the middle of a quan Dynamical decoupling (DD) is a technique for suppressing errors due to qubit decoherence. It is primarily useful in regions within a quantum circuit in which one or more qubits site idle while other instructions are being executed. Both Sampler and Estimator primitives have built-in support for applying DD. Alternatively, you can use the [`PadDynamicalDecoupling`](/docs/api/qiskit/qiskit.transpiler.passes.PadDynamicalDecoupling) transpiler pass in Qiskit, or build your own using the new stretch instruction. -*Relevant docs links:* +**Relevant resources** - [Overview of DD](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) - [Introduction to primitive options](/docs/guides/runtime-options-overview) @@ -130,7 +134,7 @@ Dynamical decoupling (DD) is a technique for suppressing errors due to qubit dec This Qiskit addon utilizes a technique to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. However, this increased cost can be lessened by dropping operators with small coefficients, which don't contribute much to the final estimation. You could experiment with coupling this alongside the AQC-Tensor addon for even lower circuit depths. -*Relevant docs links:* +**Relevant resources** - [Overview of OBP addon](/docs/guides/qiskit-addons-obp) - [Get started with OBP](/docs/guides/qiskit-addons-obp-get-started) @@ -146,7 +150,7 @@ This Qiskit addon utilizes a technique to reduce circuit depth by trimming opera The noisy estimator analyzer tool (NEAT) analyzes and predicts the performance of your queries when you are gauging the expected performance of estimator-based workloads. It uses Qiskit Aer to simulate the estimation task classically and efficiently, either exactly or in the presence of noise, and can also convert your Primitive Unified Blocs (PUBs) into Cliffordized circuits. -*Relevant docs links:* +**Relevant resources** - [Analyze a Qiskit Runtime job using NEAT](/docs/guides/debug-qiskit-runtime-jobs) - [NEAT API reference page](/docs/api/qiskit-ibm-runtime/debug-tools-neat) @@ -160,7 +164,7 @@ The noisy estimator analyzer tool (NEAT) analyzes and predicts the performance o Qiskit Runtime can test workloads while fine-tuning them before submitting them to a QPU. To use this feature, simply specify one of the fake backends from `qiskit_ibm_runtime.fake_provider` or use one from the Qiskit Aer library. To utilize this feature, we suggest either Cliffordizing your circuit, or scale down the number of qubits in your workload. -*Relevant docs links:* +**Relevant resources** - [Overview of local testing mode](/docs/guides/local-testing-mode) - [Fake Provider API reference](/docs/api/qiskit-ibm-runtime/fake-provider) @@ -177,7 +181,7 @@ Qiskit Runtime can test workloads while fine-tuning them before submitting them The Estimator and Sampler primitives are used to execute your circuits on QPUs. Estimator computes expectation values of observables with respect to states prepared by quantum circuits, and Sampler samples the output register from quantum circuit execution. Both primitives have built-in error suppression support, and Estimator also has built-in error mitigation methods. -*Relevant docs links:* +**Relevant resources** - [Primitive inputs and outputs](/docs/guides/primitive-input-output) - [Introduction to the primitive options](/docs/guides/runtime-options-overview) @@ -192,7 +196,7 @@ The Estimator and Sampler primitives are used to execute your circuits on QPUs. Explore the different execution modes - scheduling strategies for execution - when building quantum workloads, to determine which one is most efficient for a specific workload. -*Relevant docs links:* +**Relevant resources** - [Overview of job, batch, and session modes](/docs/guides/execution-modes) - [How to choose the right execution mode](/docs/guides/choose-execution-mode) @@ -219,7 +223,7 @@ Relevant docs links: Samplomatic is a library for sampling randomizations of your quantum circuits in exactly the way that you specify. It utilizes the Qiskit SDK's `Box` annotations to specify regions of a circuit that should have similar noise profiles; it can also can group collections of gates to twirl, or use the same noise model from `NoiseLearner`. -*Relevant docs links:* +**Relevant resources** - [Samplomatic documentation](https://qiskit.github.io/samplomatic/) - [Samplomatic GitHub repo](https://github.com/Qiskit/samplomatic) @@ -233,7 +237,7 @@ Samplomatic is a library for sampling randomizations of your quantum circuits in Many error mitigation techniques, such as PEA and PEC, require an accurate noise model. `NoiseLearner` is a helper program that returns a Pauli-Lindblad noise model for the input circuit. You can then further tune how PEA and PEC are done in your Estimator job, or re-use the same model in an iterative workload. -*Relevant docs links:* +**Relevant resources** - [Overview of noise learning helper](/docs/guides/noise-learning) - API reference for [`NoiseLearner`](/docs/api/qiskit-ibm-runtime/noise-learner) and [`NoiseLearnerOptions`](/docs/api/qiskit-ibm-runtime/options-noise-learner-options) @@ -247,7 +251,7 @@ Many error mitigation techniques, such as PEA and PEC, require an accurate noise Pauli twirling, also known as randomized compiling, is an error suppression technique used to convert the effects of unknown types of noise into one that can be characterized (and thus mitigated). -*Relevant docs links:* +**Relevant resources** - [Explanation and usage of Pauli twirling in primitive options](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling) - [Example of a Pauli twirling annotation in a circuit created in Samplomatic](/docs/guides/directed-execution-model#samplomatic) @@ -261,7 +265,7 @@ Pauli twirling, also known as randomized compiling, is an error suppression tech The Matrix-free measurement mitigation (M3) Qiskit addon is used to reduce measurement error by finding corrected measurement probabilities. Use it for problems that benefit from workloads that estimate the expectation value of observables. M3 also works in the context of dynamic circuits. -*Relevant docs links:* +**Relevant resources** - [M3 addon documentation](https://qiskit.github.io/qiskit-addon-mthree/) - [Guide on the basic usage of M3](https://qiskit.github.io/qiskit-addon-mthree/basic.html) @@ -276,7 +280,7 @@ The Matrix-free measurement mitigation (M3) Qiskit addon is used to reduce measu This error mitigation technique returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. The Qiskit Runtime Estimator primitive has built-in support for PEC, which you can enable through the Estimator option. -*Relevant docs links:* +**Relevant resources** - [Explanation of PEC](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec) - [API reference for PEC options](/docs/api/qiskit-ibm-runtime/options-pec-options) @@ -289,7 +293,7 @@ This error mitigation technique returns an unbiased estimate of the expectation This error mitigation technique first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. Since this can be done in multiple ways, a number of noise amplification and extrapolation techniques are available. -*Relevant docs links:* +**Relevant resources** - [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) - [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) @@ -302,7 +306,7 @@ This error mitigation technique first computes the expectation value at differen Gate folding is a noise amplification process that replaces two-qubit gates with equivalent sequences of two-qubit gates and their inverses. This approach is straightforward and simple to use, but can be imperfect. -*Relevant docs links:* +**Relevant resources** - [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) - [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) @@ -313,7 +317,7 @@ Gate folding is a noise amplification process that replaces two-qubit gates with Probabilistic error amplification (PEA) is a more sophisticated means of amplifying errors for ZNE. It involves running preliminary experiments to learn a twirled noise model of the circuit, and then uses this model to perform a more accurate error amplification. -*Relevant docs links:* +**Relevant resources** - [PEA overview](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) - [API reference for `LayerNoiseLearningOptions`](/docs/api/qiskit-ibm-runtime/options-layer-noise-learning-options) @@ -327,7 +331,7 @@ Probabilistic error amplification (PEA) is a more sophisticated means of amplify This error mitigation technique is used to mitigate the effects of measurement errors by using twirled measurements. It can be used alongside many other techniques that mitigate gate errors, such as ZNE and PEC. -*Relevant docs links:* +**Relevant resources** - [Explanation of TREX](/docs/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex) - [Error mitigation feature compatibility](/docs/guides/runtime-options-overview#feature-compatibility) @@ -341,7 +345,7 @@ This error mitigation technique is used to mitigate the effects of measurement e This Qiskit addon uses Pauli propagation to characterize Pauli noise affecting different layers of a circuit, by using a learned noise model and propagating its inverse into the target observable to measure. -*Relevant docs links:* +**Relevant resources** - [PNA documentation page](https://qiskit.github.io/qiskit-addon-pna/) - [`qiskit-addon-pna` GitHub repo](https://github.com/Qiskit/qiskit-addon-pna) @@ -354,7 +358,7 @@ This Qiskit addon uses Pauli propagation to characterize Pauli noise affecting d The shaded lightcones (SLC) Qiskit addon uses Pauli propagation to reduce the number of error terms accounted for in a noise model, according to the specifics of the target observable. It is useful for reducing the sampling overhead when running PEC-based workloads. -*Relevant docs links:* +**Relevant resources** - [SLC documentation page](https://qiskit.github.io/qiskit-addon-slc/) - [`qiskit-addon-slc` GitHub repo](https://github.ibm.com/ibm-q-research/qiskit-addon-slc) @@ -366,43 +370,48 @@ The shaded lightcones (SLC) Qiskit addon uses Pauli propagation to reduce the nu
Post-process samples to refine results in simulation workloads -With the Sample-based quantum diagonalization (SQD) Qiskit addon, you can implement a post-processing technique to measure the ground state energies of a quantum system. SQD processes samples from a given circuit to project and diagonalize a target Hamiltonian in a subspace spanned by them, essentially "refining" the results obtained from a workload. Use when you seek to obtain the eigenvalues and eigenvectors of quantum systems (such as chemical or lattice models). +With the Sample-based quantum diagonalization (SQD) Qiskit addon, you can implement a post-processing technique to measure the ground state energies of a quantum system. SQD processes samples from a given circuit to project and diagonalize a target Hamiltonian in a subspace spanned by them, essentially "refining" the results obtained from a workload. Use when you want to obtain the eigenvalues and eigenvectors of quantum systems (such as chemical or lattice models).
-*Relevant docs links:* +**Relevant resources** - [Overview of SQD](/docs/guides/qiskit-addons-sqd) - [Getting started with SQD](/docs/guides/qiskit-addons-sqd-get-started) - [Tutorial using SQD for a chemistry Hamiltonian](/docs/tutorials/sample-based-quantum-diagonalization) - [Tutorial using SQD and KQD for a lattice model](/docs/tutorials/sample-based-krylov-quantum-diagonalization) -### Multi-Product Formulas +**SQD for HPC**: See the following documentation for an HPC-ready implementation of the SQD addon, which is written in modern C++17 standards and is designed to create a single compiled binary for use with MPI. + +- [SQD for HPC API reference](https://qiskit.github.io/qiskit-addon-sqd-hpc/) +- [SQD for HPC GitHub repository](https://github.com/qiskit/qiskit-addon-sqd-hpc) + +### Multi-product formulas
Refine expectation values in workloads simulating time evolution -The MPF Qiskit addon is primarily used to post-process workloads seeking to simulate the time evolution of a quantum system. The MPF tool will ingest data such as the number of Trotter steps to prepare and solve an associated system of linear equations, which can then be used to refine the expectation-value measurements of a time-evolved state. +The Multi-product formulas (MPF) Qiskit addon is used to post-process workloads that simulate the time evolution of a quantum system. The MPF tool will ingest data such as the number of Trotter steps to prepare and solve an associated system of linear equations, which can then be used to refine the expectation-value measurements of a time-evolved state.
-*Relevant docs links:* +**Relevant resources** - [Overview of MPF](/docs/guides/qiskit-addons-mpf) - [Getting started with MPF](/docs/guides/qiskit-addons-mpf-get-started) - [Tutorial using MPF to reduce Trotter error](/docs/tutorials/multi-product-formula) -### Measurement Post-Selection +### Measurement post-selection
Refine samples by post-selecting known "bad" bitstrings -The noise models produced by Noise Learner may not be accurate for Heron backends due to non-Markovian noise on these devices. Our internal study has shown this can be alleviated with measurement-based post-selection. This technique adds a series of rx gates followed by a measurement to the circuit, and in post-processing throws away the "bad" bitstrings. There are utility functions in Qiskit addons to help implementing this, and NoiseLearnerV3 also has built-in support. +The noise models produced by `NoiseLearner` might not be accurate for Heron backends due to non-Markovian noise on these devices. An internal study has shown this can be alleviated with measurement-based post-selection. This technique adds a series of RX gates followed by a measurement to the circuit, and in post-processing throws away the "bad" bitstrings. The Qiskit addon utilities package contains functionalities to implement this technique, and `NoiseLearnerV3` also has built-in support.
-*Relevant docs links:* +**Relevant resources** -- [API reference for post selection utilities](/docs/api/qiskit-addon-utils/noise-management-post-selection) -- [API reference for post selection transpiler passes](/docs/api/qiskit-addon-utils/noise-management-post-selection-transpiler-passes) -- [Link to NoiseLearnerV3 API ref] +- [API reference for post-selection utilities](/docs/api/qiskit-addon-utils/noise-management-post-selection) +- [API reference for post-selection transpiler passes](/docs/api/qiskit-addon-utils/noise-management-post-selection-transpiler-passes) +- [API reference for `NoiseLearnerV3`](https://qiskit.github.io/qiskit-ibm-runtime/apidocs/noise_learner_v3.html) ## Qiskit Functions (Pre-built workflows to speed up applications research) @@ -412,14 +421,14 @@ The noise models produced by Noise Learner may not be accurate for Heron backend Algorithmiq's Tensor-network Error Mitigation (TEM) method is a hybrid quantum-classical algorithm designed for automating and performing noise mitigation. It accomplishes this by constructing a tensor network representing an approximate inverse of the noise affecting a circuit to obtain unbiased estimates of an observable. TEM is a novel error mitigation method based on post-processing with tensor networks, and it provides unbiased error mitigation with the lowest possible shot overhead on the quantum hardware, minimizing the runtime and hence the costs of experiments. It requires exponentially less shots than probabilistic error cancellation (PEC) and significantly less shots than zero noise extrapolation (ZNE). -*Relevant docs links:* +**Relevant resources** -- [Overview of TEM function](/docs/guides/algorithmiq-tem) +- [Overview of the TEM Qiskit Function](/docs/guides/algorithmiq-tem) ### Q-CTRL Performance Management Function
-This Qiskit function uses AI-powered error suppression and mitigation techniques and is agnostic to the type of workload being executed. +This Qiskit Function uses AI-powered error suppression and mitigation techniques, and is agnostic to the type of workload being executed.
Relevant docs links: @@ -434,21 +443,21 @@ Relevant docs links: The QESEM Qiskit Functioon by QEDMA uses a suite of proprietary error mitigation techniques to improve the results of your workload. These techniques include gate optimization, noise-aware transpilation, error suppression, and unbiased error mitigation. -*Relevant docs links:* +**Relevant resources** - [Overview of QESEM Function](/docs/guides/kipu-optimization) -- [Tutorial for QESEM coming soon...] +- [Simulate 2D tilted-field Ising with the QESEM function](/docs/tutorials/qedma-2d-ising-with-qesem) ### Iskay Quantum Optimizer
-This Qiskit Function by Kipu Quantum solves unconstrained binary optimization problems with QUBO (Quadratic Unconstrained Binary Optimization) formulation and higher-order (HUBO) optimization problems. +This Qiskit Function by Kipu Quantum solves unconstrained binary optimization problems with the QUBO (Quadratic Unconstrained Binary Optimization) formulation and higher-order (HUBO) optimization problems.
-*Relevant docs links:* +**Relevant resources** - [Overview of Iskay Quantum Function](/docs/guides/kipu-optimization) -- [Tutorial for Iskay coming soon...] +- [Solve the Market Split problem with Kipu Quantum's Iskay Quantum Optimizer](/docs/tutorials/solve-market-split-problem-with-iskay-quantum-optimizer) ### Q-CTRL Optimization Solver @@ -456,7 +465,7 @@ This Qiskit Function by Kipu Quantum solves unconstrained binary optimization pr This Qiskit Function by Q-CTRL is designed to solve utility-scale optimization problems. It takes in a high-level problem definition, and executes an entire workflow to optimize the problem, without manual configuration. -*Relevant docs links:* +**Relevant resources** - [Overview of Optimization Solver](/docs/guides/q-ctrl-optimization-solver) - [Spin-glass tutorial for Optimization Solver](/docs/tutorials/solve-higher-order-binary-optimization-problems-with-q-ctrls-optimization-solver) \ No newline at end of file From 24c4fa3e1913dc3bf02d601c93fd378762ae7761 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Wed, 3 Dec 2025 16:27:37 -0500 Subject: [PATCH 34/82] edit header --- docs/guides/tool-index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 9febd901a73..25afbc5f48f 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -413,7 +413,7 @@ The noise models produced by `NoiseLearner` might not be accurate for Heron back - [API reference for post-selection transpiler passes](/docs/api/qiskit-addon-utils/noise-management-post-selection-transpiler-passes) - [API reference for `NoiseLearnerV3`](https://qiskit.github.io/qiskit-ibm-runtime/apidocs/noise_learner_v3.html) -## Qiskit Functions (Pre-built workflows to speed up applications research) +## Qiskit Functions ### Algorithmiq Tensor-Network Error Mitigation Function From 962fd21f85eb34a157f2ffc45c6e12aa5fbcb166 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 10:18:03 -0500 Subject: [PATCH 35/82] Add becky's page back in Co-Authored-By: Rebecca Dimock <66339736+beckykd@users.noreply.github.com> --- docs/guides/tools-manage-noise.mdx | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 docs/guides/tools-manage-noise.mdx diff --git a/docs/guides/tools-manage-noise.mdx b/docs/guides/tools-manage-noise.mdx new file mode 100644 index 00000000000..72d79b8dab8 --- /dev/null +++ b/docs/guides/tools-manage-noise.mdx @@ -0,0 +1,62 @@ +--- +title: Tools to manage noise +description: Discover tools that help manage noise through techniques such as error mitigation and suppression, and reducing circuit depth. +--- +# Tools to manage noise + +## General noise management techniques + +### AQC-Tensor +The [AQC-Tensor](/docs/guides/qiskit-addons-aqc) addon enables users to compile the initial portion of a circuit into a nearly equivalent approximation of that circuit, but with much fewer layers. [Get started with AQC-Tensor.](/docs/guides/qiskit-addons-aqc-get-started) + +### Directed execution model (beta) +The [directed execution model](/docs/guides/directed-execution-model), currently in beta release, provides the ingredients to capture design intents on the client side, and shifts the costly generation of circuit variants to the server side, so that you can fine-tune error mitigation and other techniques without sacrificing performance. + +### Dynamical decoupling +[Dynamical decoupling](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) inserts pulse sequences on idling qubits to try to mitigate coherence errors caused by unwanted interactions between qubits during circuit execution. Enable this technique by setting [`DynamicalDecouplingOptions`](/docs/api/qiskit-ibm-runtime/options-dynamical-decoupling-options) to `True`. + +### Pauli twirling +[Pauli twirling](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling) is a noise tailoring technique that transforms any quantum channel into a Pauli channel. It is often combined with other error mitigation techniques that work well with Pauli noise. Enable this technique in the Qiskit Runtime options by setting `enable_gates` and `enable_measure` to `True` in the [twirling options.](/docs/api/qiskit-ibm-runtime/options-twirling-options) + +## Error mitigation for expectation values + +### Operator backpropagation +The [Operator backpropagation (OBP)](/docs/guides/qiskit-addons-obp) addon uses a method based on Clifford perturbation theory to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. [Get started with OBP.](/docs/guides/qiskit-addons-obp-get-started) + +### Probabilistic error amplification +[Probabilistic error amplification (PEA)](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) is a sophisticated ZNE technique that involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification. To enable PEA, enable ZNE by setting `zne_mitigation` to `True` and set `zne.amplifier` to `pea` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. + +### Probabilistic error cancellation +[Probabilistic error cancellation (PEC)](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec) returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. To enable PEC, set `pec_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. + +### Propagated noise absorption +[Propagated noise absorption (PNA)](https://qiskit.github.io/qiskit-addon-pna/) is a technique for mitigating errors in observable expectation values by “absorbing” the inverses of the learned noise channels into the observable using [Pauli propagation.](https://qiskit.github.io/pauli-prop/) Each Pauli noise generator in the noise model is classically propagated to the end of the circuit and applied to the observable, resulting in a new observable that when measured on a QPU, mitigates the learned gate noise. + +### Shaded lightcones +The [Shaded lightcones (SLC)](https://qiskit.github.io/qiskit-addon-slc/) uses Pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. This new Qiskit addon is most useful for reducing the sampling overhead for running PEC-based workloads. + +### Twirled readout error extinction +[Twirled readout error extinction (TREX)](/docs/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex) mitigates the effect of measurement errors for the estimation of Pauli observable expectation values. Enable TREX by setting `measure_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. + +### Zero-noise extrapolation +[Zero-noise extrapolation (ZNE)](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) is an error mitigation technique that first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. To enable ZNE, set `zne_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. + +## Error mitigation for sampling results + +### Mthree +The [mthree (M3)](https://qiskit.github.io/qiskit-addon-mthree/) addon is a package for scalable quantum measurement error mitigation that need not explicitly form the assignment matrix, or its inverse, as is thus a matrix-free measurement mitigation routine. + +### Sample-based quantum diagonalization +The [sample-based quantum diagonalization (SQD)](https://github.com/Qiskit/qiskit-addon-sqd) addon implements a technique for finding eigenvalues and eigenvectors of quantum operators, such as a quantum system Hamiltonian, using quantum and distributed classical computing together. + +### Sample-based quantum diagonalization (HPC-ready) +The [SQD (HPC-ready)](https://qiskit.github.io/qiskit-addon-sqd-hpc/) addon is an HPC-ready implementation of the [Qiskit addon for SQD.](https://github.com/Qiskit/qiskit-addon-sqd) [Get started with SQD.](https://qiskit.github.io/documentation/pr-4251/docs/guides/qiskit-addons-sqd-get-started) + + +## Next steps + +- Check out the [tutorial](/docs/tutorials/combine-error-mitigation-techniques) on combining error mitigation options with the Estimator primitive. +- [Configure error mitigation in Qiskit Runtime primitives.](/docs/guides/configure-error-mitigation) +- [Configure error suppression in Qiskit Runtime primitives.](/docs/guides/configure-error-suppression) +- Understand how to use the Qiskit Runtime [noise learner](/docs/guides/noise-learning) class. + From 2a7edc67803696cf0e9e135eab7c34e4527797b6 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 10:40:31 -0500 Subject: [PATCH 36/82] feedback from content sweep --- docs/guides/_toc.json | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 2936c351226..941dc344c12 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -51,7 +51,7 @@ "url": "/docs/guides/latest-updates" }, { - "title": "About IBM Quantum tools", + "title": "About Qiskit tools", "children": [ { "title": "Qiskit SDK overview", @@ -61,14 +61,6 @@ "title": "Qiskit Runtime overview", "url": "/docs/guides/overview-qiskit-runtime" }, - { - "title": "Qiskit Functions overview", - "url": "/docs/guides/functions" - }, - { - "title": "Qiskit Serverless overview", - "url": "/docs/guides/overview-qiskit-serverless" - }, { "title": "Qiskit addons overview", "url": "/docs/guides/addons" @@ -235,6 +227,10 @@ { "title": "Qiskit Functions", "children": [ + { + "title": "Qiskit Functions overview", + "url": "/docs/guides/functions" + }, { "title": "Circuit functions", "children": [ From 5356bbe86d2b39453808583fff3342ec7d1a5ac5 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 10:41:20 -0500 Subject: [PATCH 37/82] bring in shortened title --- docs/guides/_toc.json | 10 +++++----- docs/guides/tool-index.mdx | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 941dc344c12..9f46ad0485f 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -54,19 +54,19 @@ "title": "About Qiskit tools", "children": [ { - "title": "Qiskit SDK overview", + "title": "Qiskit SDK", "url": "/docs/guides/overview-qiskit-sdk" }, { - "title": "Qiskit Runtime overview", + "title": "Qiskit Runtime", "url": "/docs/guides/overview-qiskit-runtime" }, { - "title": "Qiskit addons overview", + "title": "Qiskit addons", "url": "/docs/guides/addons" }, { - "title": "Qiskit ecosystem overview", + "title": "Qiskit ecosystem", "url": "/docs/guides/overview-qiskit-ecosystem" } ] @@ -329,7 +329,7 @@ "collapsible": false }, { - "title": "Tools index by task", + "title": "Tools index", "url": "/docs/guides/tool-index" }, { diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 25afbc5f48f..a7c27ed8a68 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -1,12 +1,12 @@ --- -title: Tools index by task +title: Tools index description: Find resources relevant to your work, organized by task. in_page_toc_min_heading_level: 2 in_page_toc_max_heading_level: 2 --- -# Tools index by task +# Tools index ## Map problem to circuits From c4e0c0ad897e8068f5471a48545e71b496317419 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 11:33:43 -0500 Subject: [PATCH 38/82] add back intro page for development workflow --- docs/guides/_toc.json | 4 +-- docs/guides/intro-to-patterns.mdx | 41 ++++++++++++++++++++++ docs/guides/overview-qiskit-serverless.mdx | 17 --------- qiskit_bot.yaml | 14 ++++---- scripts/config/allowLists.ts | 4 +++ 5 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 docs/guides/intro-to-patterns.mdx delete mode 100644 docs/guides/overview-qiskit-serverless.mdx diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 9f46ad0485f..2db715bf874 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -720,8 +720,8 @@ "title": "Manage noise", "children": [ { - "title": "Tools to manage noise (UPDATE WHEN NEW PAGE IS MERGED)", - "url": "https://github.com/Qiskit/documentation/blob/bb673fb318a8e9539b67ec92d9de6948849ed727/docs/guides/tools-manage-noise.mdx" + "title": "Tools to manage noise", + "url": "/docs/guides/tools-manage-noise" }, { "title": "Noise learning", diff --git a/docs/guides/intro-to-patterns.mdx b/docs/guides/intro-to-patterns.mdx new file mode 100644 index 00000000000..6e42afcb3bc --- /dev/null +++ b/docs/guides/intro-to-patterns.mdx @@ -0,0 +1,41 @@ +--- +title: Development workflow +description: A Qiskit pattern is the set of broad steps to use when running a domain-specific problem on quantum hardware. +--- + +# Development workflow + +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® 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 +- **Optimize** for target hardware +- **Execute** on target hardware +- **Post-process** results + +Each step is detailed in the sections below. + +## Map the problem to quantum circuits and operators + + +This step describes how a user starts with a classical problem and figures out how to map it to a quantum computer. For example, in applications such as chemistry and quantum simulation, this step generally involves constructing a quantum circuit representing the Hamiltonian you are attempting to solve. During this step, for certain problems, it might also be desirable to specify the mapping of the problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the outset if the structure of the problem lends itself to optimization earlier. It is also worth considering at this point what the outcome of the particular algorithm will be in preparation for the later execute step - for example, if the desired outcome involves inferring correlation functions using Hadamard tests, you might prepare to use Sampler, whereas specifying observables would use the Estimator and could provide many error mitigation options. + +The output of this step is normally a collection of circuits or quantum operators that can be optimized for hardware in the next step. + +## Optimize for target hardware + +In this step 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 test out 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. + +## Execute on target hardware + +This step involves running your circuits on hardware and produces the outputs of the quantum computation. The ISA circuits produced in the previous step can be executed using either a Sampler or Estimator primitive from Qiskit Runtime, initialized locally on your computer or from a cluster or other heterogeneous compute environment. These can be executed in a Batch, which allows parallel transpilation for classical computational efficiency - or a Session, which allows iterative tasks to be implemented efficiently without queuing delays. During this step, there is also the option to configure certain error suppression and mitigation techniques provided by Qiskit Runtime. + +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. \ No newline at end of file diff --git a/docs/guides/overview-qiskit-serverless.mdx b/docs/guides/overview-qiskit-serverless.mdx deleted file mode 100644 index 59654f6190c..00000000000 --- a/docs/guides/overview-qiskit-serverless.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Qiskit Serverless overview -description: An explanation of the Qiskit Serverless catalog and how to get started. ---- - -# Qiskit Serverless overview - -Creating utility-scale quantum applications generally requires a variety of compute resource requirements. Qiskit Serverless (`qiskit-ibm-catalog.QiskitServerless`) provides a simple interface to run workloads across quantum-classical resources. This includes deploying programs to IBM Quantum Platform and running workloads remotely, as well as easy resource management for multi-cloud and quantum-centric supercomputing use cases. See more information in the [Qiskit Serverless documentation](/docs/guides/serverless) about how to use this collection of tools to: - -- Parallelize classical tasks, such as pre-processing and post-processing -- Persist long-running workloads in the cloud, even if your laptop is turned off -- Deploy reusable programs in the cloud - -To start using Qiskit Serverless right away, install it with pip: -```bash -pip install qiskit_serverless -``` diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index f64b6a76207..c9739d27ff9 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -236,9 +236,6 @@ notifications: "docs/guides/overview-qiskit-ecosystem": - "@abbycross" - "@beckykd" - "docs/guides/overview-qiskit-serverless": - - "@abbycross" - - "@beckykd" "docs/guides/overview-qiskit-sdk": - "@abbycross" - "@beckykd" @@ -294,9 +291,6 @@ notifications: - "@adarsh-tiwari17" - "@abbycross" - "@beckykd" - "docs/guides/pulse": - - "`@nkanazawa1989`" - - "@abbycross" "docs/guides/qasm-feature-table": - "@taalexander" - "`@kitbarton`" @@ -436,6 +430,14 @@ notifications: - "@abbycross" "docs/guides/noise-learning": - "@kaelynj" + "docs/guides/tools-manage-noise": + - "@abbycross" + - "@beckykd" + - "@kaelynj" + "docs/guides/intro-to-patterns": + - "@abbycross" + - "@beckykd" + - "@kaelynj" "docs/guides/algorithmiq-tem": - "@kaelynj" - "@abbycross" diff --git a/scripts/config/allowLists.ts b/scripts/config/allowLists.ts index d32df5572a5..8d71521e664 100644 --- a/scripts/config/allowLists.ts +++ b/scripts/config/allowLists.ts @@ -22,6 +22,10 @@ export function ignoreTitleMismatch(filepath: string): boolean { } const IGNORE_TITLE_MISMATCHES: string[] = [ + "docs/guides/intro-to-patterns.mdx", + "docs/guides/overview-qiskit-ecosystem.mdx", + "docs/guides/overview-qiskit-runtime.mdx", + "docs/guides/overview-qiskit-ecosystem.mdx", "docs/guides/external-providers-primitives-v2.mdx", "docs/guides/create-a-provider.mdx", "docs/guides/local-simulators.mdx", From 586d0b3390df6ba3c085ed9d120ff01c4c979945 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 11:37:04 -0500 Subject: [PATCH 39/82] touch-up --- docs/guides/_toc.json | 4 ++++ scripts/config/allowLists.ts | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 2db715bf874..b9f511622bc 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -70,6 +70,10 @@ "url": "/docs/guides/overview-qiskit-ecosystem" } ] + }, + { + "title": "Development workflow", + "url": "/docs/guides/intro-to-patterns" } ], "collapsible": false diff --git a/scripts/config/allowLists.ts b/scripts/config/allowLists.ts index 8d71521e664..1664f5b9cc1 100644 --- a/scripts/config/allowLists.ts +++ b/scripts/config/allowLists.ts @@ -22,7 +22,6 @@ export function ignoreTitleMismatch(filepath: string): boolean { } const IGNORE_TITLE_MISMATCHES: string[] = [ - "docs/guides/intro-to-patterns.mdx", "docs/guides/overview-qiskit-ecosystem.mdx", "docs/guides/overview-qiskit-runtime.mdx", "docs/guides/overview-qiskit-ecosystem.mdx", From 5c578b461c99ebac20bae9e904b6d66dddb5dad3 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 11:38:56 -0500 Subject: [PATCH 40/82] ital --- docs/guides/_toc.json | 509 +++++++++++++++--------------- docs/guides/intro-to-patterns.mdx | 2 +- 2 files changed, 256 insertions(+), 255 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index b9f511622bc..be7d9304c21 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -78,260 +78,6 @@ ], "collapsible": false }, - { - "title": "IBM Quantum services", - "children": [ - { - "title": "IBM Quantum Platform", - "children": [ - { - "title": "Account setup", - "children":[ - { - "title": "Set up your account", - "url": "/docs/guides/cloud-setup" - }, - { - "title": "Set up your account - invited users", - "url": "/docs/guides/cloud-setup-invited" - }, - { - "title": "Set up to use IBM Quantum Platform with REST API", - "url": "/docs/guides/cloud-setup-rest-api" - } - ] - }, - { - "title": "Authenticate", - "children":[ - { - "title": "Initialize your Qiskit Runtime service account", - "url": "/docs/guides/initialize-account" - }, - { - "title": "Save your login credentials", - "url": "/docs/guides/save-credentials" - }, - { - "title": "Authenticate in an untrusted environment", - "url": "/docs/guides/cloud-setup-untrusted" - } - ] - }, - { - "title": "Administrative tasks", - "children": [ - { - "title": "Setup considerations", - "url": "/docs/guides/considerations-set-up-runtime" - }, - { - "title": "Configure IBM Quantum Platform", - "url": "/docs/guides/quickstart-steps-org" - }, - { - "title": "Cloud account structure", - "url": "/docs/guides/cloud-account-structure" - }, - { - "title": "Create access groups and policies", - "url": "/docs/guides/access-groups" - }, - { - "title": "Set up custom roles", - "url": "/docs/guides/custom-roles" - }, - { - "title": "Invite users and manage access", - "url": "/docs/guides/invite-and-manage-users" - }, - { - "title": "Manage ID provider users", - "url": "/docs/guides/manage-appid" - }, - { - "title": "Manage IBM Cloud users", - "url": "/docs/guides/manage-cloud-users" - }, - { - "title": "Cloud account structure", - "url": "/docs/guides/cloud-account-structure" - }, - { - "title": "Create access groups and policies", - "url": "/docs/guides/access-groups" - }, - { - "title": "Set up custom roles", - "url": "/docs/guides/custom-roles" - }, - { - "title": "Manage cost on the Pay-As-You-Go Plan", - "url": "/docs/guides/manage-cost" - }, - { - "title": "View cost", - "url": "/docs/guides/view-cost" - } - ] - }, - { - "title": "IBM Quantum plans", - "children": [ - { - "title": "Overview of plans", - "url": "/docs/guides/plans-overview" - }, - { - "title": "Upgrade from the Open Plan", - "url": "/docs/guides/upgrade-from-open" - } - ] - }, - { - "title": "Work with instances", - "children": [ - { - "title": "Create and manage instances", - "url": "/docs/guides/instances" - }, - { - "title": "Set allocation limits", - "url": "/docs/guides/allocation-limits" - }, - { - "title": "Use IBM Cloud Platform APIs to access instances", - "url": "/docs/guides/access-instances-platform-apis" - } - ] - }, - { - "title": "IBM quantum computers", - "children": [ - { - "title": "Processor types", - "url": "/docs/guides/processor-types" - }, - { - "title": "QPU information", - "url": "/docs/guides/qpu-information" - }, - { - "title": "Retired cloud QPUs", - "url": "/docs/guides/retired-qpus" - }, - { - "title": "Calibration jobs", - "url": "/docs/guides/calibration-jobs" - } - ] - } - ] - }, - { - "title": "Qiskit Functions", - "children": [ - { - "title": "Qiskit Functions overview", - "url": "/docs/guides/functions" - }, - { - "title": "Circuit functions", - "children": [ - { - "title": "IBM Circuit function", - "url": "/docs/guides/ibm-circuit-function" - }, - { - "title": "Algorithmiq Tensor-network error mitigation", - "url": "/docs/guides/algorithmiq-tem" - }, - { - "title": "Q-CTRL Performance Management", - "url": "/docs/guides/q-ctrl-performance-management" - }, - { - "title": "Qedma QESEM", - "url": "/docs/guides/qedma-qesem" - } - ] - }, - { - "title": "Application functions", - "children": [ - { - "title": "Kipu Quantum Iskay Quantum Optimizer", - "url": "/docs/guides/kipu-optimization" - }, - { - "title": "Multiverse Computing Singularity", - "url": "/docs/guides/multiverse-computing-singularity" - }, - { - "title": "Q-CTRL Optimization Solver", - "url": "/docs/guides/q-ctrl-optimization-solver" - }, - { - "title": "Quantum Portfolio Optimizer: A Qiskit Function by Global Data Quantum", - "url": "/docs/guides/global-data-quantum-optimizer" - }, - { - "title": "QUICK-PDE: A Qiskit Function by ColibriTD", - "url": "/docs/guides/colibritd-pde" - }, - { - "title": "Qunova Computing HI-VQE Chemistry", - "url": "/docs/guides/qunova-chemistry" - } - ] - }, - { - "title": "Qiskit Function templates", - "children": [ - { - "title": "Introduction to Qiskit Function templates", - "url": "/docs/guides/qiskit-function-templates" - }, - { - "title": "Template for chemistry simulation", - "url": "/docs/guides/function-template-chemistry-workflow" - }, - { - "title": "Template for Hamiltonian simulation", - "url": "/docs/guides/function-template-hamiltonian-simulation" - } - ] - } - ] - }, - { - "title": "Qiskit Serverless", - "children": [ - { - "title": "Qiskit Serverless overview", - "url": "/docs/guides/serverless" - }, - { - "title": "Write your first Qiskit Serverless program", - "url": "/docs/guides/serverless-first-program" - }, - { - "title": "Run your first Qiskit Serverless workload remotely", - "url": "/docs/guides/serverless-run-first-workload" - }, - { - "title": "Manage Qiskit Serverless compute and data resources", - "url": "/docs/guides/serverless-manage-resources" - }, - { - "title": "Port code to Qiskit Serverless", - "url": "/docs/guides/serverless-port-code" - } - ] - } - ], - "collapsible": false - }, { "title": "Tools index", "url": "/docs/guides/tool-index" @@ -787,6 +533,261 @@ } ] }, + + { + "title": "IBM Quantum services", + "children": [ + { + "title": "IBM Quantum Platform", + "children": [ + { + "title": "Account setup", + "children":[ + { + "title": "Set up your account", + "url": "/docs/guides/cloud-setup" + }, + { + "title": "Set up your account - invited users", + "url": "/docs/guides/cloud-setup-invited" + }, + { + "title": "Set up to use IBM Quantum Platform with REST API", + "url": "/docs/guides/cloud-setup-rest-api" + } + ] + }, + { + "title": "Authenticate", + "children":[ + { + "title": "Initialize your Qiskit Runtime service account", + "url": "/docs/guides/initialize-account" + }, + { + "title": "Save your login credentials", + "url": "/docs/guides/save-credentials" + }, + { + "title": "Authenticate in an untrusted environment", + "url": "/docs/guides/cloud-setup-untrusted" + } + ] + }, + { + "title": "Administrative tasks", + "children": [ + { + "title": "Setup considerations", + "url": "/docs/guides/considerations-set-up-runtime" + }, + { + "title": "Configure IBM Quantum Platform", + "url": "/docs/guides/quickstart-steps-org" + }, + { + "title": "Cloud account structure", + "url": "/docs/guides/cloud-account-structure" + }, + { + "title": "Create access groups and policies", + "url": "/docs/guides/access-groups" + }, + { + "title": "Set up custom roles", + "url": "/docs/guides/custom-roles" + }, + { + "title": "Invite users and manage access", + "url": "/docs/guides/invite-and-manage-users" + }, + { + "title": "Manage ID provider users", + "url": "/docs/guides/manage-appid" + }, + { + "title": "Manage IBM Cloud users", + "url": "/docs/guides/manage-cloud-users" + }, + { + "title": "Cloud account structure", + "url": "/docs/guides/cloud-account-structure" + }, + { + "title": "Create access groups and policies", + "url": "/docs/guides/access-groups" + }, + { + "title": "Set up custom roles", + "url": "/docs/guides/custom-roles" + }, + { + "title": "Manage cost on the Pay-As-You-Go Plan", + "url": "/docs/guides/manage-cost" + }, + { + "title": "View cost", + "url": "/docs/guides/view-cost" + } + ] + }, + { + "title": "IBM Quantum plans", + "children": [ + { + "title": "Overview of plans", + "url": "/docs/guides/plans-overview" + }, + { + "title": "Upgrade from the Open Plan", + "url": "/docs/guides/upgrade-from-open" + } + ] + }, + { + "title": "Work with instances", + "children": [ + { + "title": "Create and manage instances", + "url": "/docs/guides/instances" + }, + { + "title": "Set allocation limits", + "url": "/docs/guides/allocation-limits" + }, + { + "title": "Use IBM Cloud Platform APIs to access instances", + "url": "/docs/guides/access-instances-platform-apis" + } + ] + }, + { + "title": "IBM quantum computers", + "children": [ + { + "title": "Processor types", + "url": "/docs/guides/processor-types" + }, + { + "title": "QPU information", + "url": "/docs/guides/qpu-information" + }, + { + "title": "Retired cloud QPUs", + "url": "/docs/guides/retired-qpus" + }, + { + "title": "Calibration jobs", + "url": "/docs/guides/calibration-jobs" + } + ] + } + ] + }, + { + "title": "Qiskit Functions", + "children": [ + { + "title": "Qiskit Functions overview", + "url": "/docs/guides/functions" + }, + { + "title": "Circuit functions", + "children": [ + { + "title": "IBM Circuit function", + "url": "/docs/guides/ibm-circuit-function" + }, + { + "title": "Algorithmiq Tensor-network error mitigation", + "url": "/docs/guides/algorithmiq-tem" + }, + { + "title": "Q-CTRL Performance Management", + "url": "/docs/guides/q-ctrl-performance-management" + }, + { + "title": "Qedma QESEM", + "url": "/docs/guides/qedma-qesem" + } + ] + }, + { + "title": "Application functions", + "children": [ + { + "title": "Kipu Quantum Iskay Quantum Optimizer", + "url": "/docs/guides/kipu-optimization" + }, + { + "title": "Multiverse Computing Singularity", + "url": "/docs/guides/multiverse-computing-singularity" + }, + { + "title": "Q-CTRL Optimization Solver", + "url": "/docs/guides/q-ctrl-optimization-solver" + }, + { + "title": "Quantum Portfolio Optimizer: A Qiskit Function by Global Data Quantum", + "url": "/docs/guides/global-data-quantum-optimizer" + }, + { + "title": "QUICK-PDE: A Qiskit Function by ColibriTD", + "url": "/docs/guides/colibritd-pde" + }, + { + "title": "Qunova Computing HI-VQE Chemistry", + "url": "/docs/guides/qunova-chemistry" + } + ] + }, + { + "title": "Qiskit Function templates", + "children": [ + { + "title": "Introduction to Qiskit Function templates", + "url": "/docs/guides/qiskit-function-templates" + }, + { + "title": "Template for chemistry simulation", + "url": "/docs/guides/function-template-chemistry-workflow" + }, + { + "title": "Template for Hamiltonian simulation", + "url": "/docs/guides/function-template-hamiltonian-simulation" + } + ] + } + ] + }, + { + "title": "Qiskit Serverless", + "children": [ + { + "title": "Qiskit Serverless overview", + "url": "/docs/guides/serverless" + }, + { + "title": "Write your first Qiskit Serverless program", + "url": "/docs/guides/serverless-first-program" + }, + { + "title": "Run your first Qiskit Serverless workload remotely", + "url": "/docs/guides/serverless-run-first-workload" + }, + { + "title": "Manage Qiskit Serverless compute and data resources", + "url": "/docs/guides/serverless-manage-resources" + }, + { + "title": "Port code to Qiskit Serverless", + "url": "/docs/guides/serverless-port-code" + } + ] + } + ], + "collapsible": false + }, { "title": "Additional resources", "children": [ diff --git a/docs/guides/intro-to-patterns.mdx b/docs/guides/intro-to-patterns.mdx index 6e42afcb3bc..ebd9ddb359f 100644 --- a/docs/guides/intro-to-patterns.mdx +++ b/docs/guides/intro-to-patterns.mdx @@ -5,7 +5,7 @@ description: A Qiskit pattern is the set of broad steps to use when running a do # Development workflow -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® 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® 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 From ca59da277d898558d4ca114beb7f55c638b05d41 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 11:52:25 -0500 Subject: [PATCH 41/82] add section summaries to toc --- docs/guides/_toc.json | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index be7d9304c21..d6352594ddd 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -85,6 +85,10 @@ { "title": "Map problem to circuits", "children": [ + { + "title": "Section overview", + "url": "/docs/guides/summary-map" + }, { "title": "Circuit library", "url": "/docs/guides/circuit-library" @@ -163,6 +167,10 @@ { "title": "Prepare workloads", "children":[ + { + "title": "Section overview", + "url": "/docs/guides/summary-prepare" + }, { "title": "Workload usage", "url": "/docs/guides/estimate-job-run-time" @@ -188,6 +196,10 @@ { "title": "Optimize circuits", "children":[ + { + "title": "Section overview", + "url": "/docs/guides/summary-optimize" + }, { "title": "Introduction to transpilation", "url": "/docs/guides/transpile" @@ -378,6 +390,10 @@ { "title": "Execute on hardware", "children": [ + { + "title": "Section overview", + "url": "/docs/guides/summary-execute" + }, { "title": "Primitives", "children": [ @@ -469,6 +485,10 @@ { "title": "Manage noise", "children": [ + { + "title": "Section overview", + "url": "/docs/guides/summary-noise" + }, { "title": "Tools to manage noise", "url": "/docs/guides/tools-manage-noise" @@ -527,13 +547,16 @@ { "title": "Integrations", "children": [ + { + "title": "Section overview", + "url": "/docs/guides/summary-integrations" + }, { "title": "Create a provider", "url": "/docs/guides/create-a-provider" } ] }, - { "title": "IBM Quantum services", "children": [ From c73f33c2c9640b495df8fe4f79701f2da638e3fe Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 11:55:38 -0500 Subject: [PATCH 42/82] remove duplicated entries --- docs/guides/_toc.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index d6352594ddd..b6885d0c40b 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -636,14 +636,6 @@ "title": "Cloud account structure", "url": "/docs/guides/cloud-account-structure" }, - { - "title": "Create access groups and policies", - "url": "/docs/guides/access-groups" - }, - { - "title": "Set up custom roles", - "url": "/docs/guides/custom-roles" - }, { "title": "Manage cost on the Pay-As-You-Go Plan", "url": "/docs/guides/manage-cost" From 712958f1bcd513b59289cb57c4d0f001ffffd10c Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 12:06:31 -0500 Subject: [PATCH 43/82] another dupe --- docs/guides/_toc.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index b6885d0c40b..8a359d731cb 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -632,10 +632,6 @@ "title": "Manage IBM Cloud users", "url": "/docs/guides/manage-cloud-users" }, - { - "title": "Cloud account structure", - "url": "/docs/guides/cloud-account-structure" - }, { "title": "Manage cost on the Pay-As-You-Go Plan", "url": "/docs/guides/manage-cost" From 6234f2b59233bed44d62250a3f74e464547e6489 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 12:14:19 -0500 Subject: [PATCH 44/82] placeholders for summaries --- docs/guides/summary-execute.mdx | 4 ++++ docs/guides/summary-map.mdx | 4 ++++ docs/guides/summary-noise.mdx | 4 ++++ docs/guides/summary-optimize.mdx | 4 ++++ docs/guides/summary-prepare.mdx | 4 ++++ qiskit_bot.yaml | 20 ++++++++++++++++++++ 6 files changed, 40 insertions(+) create mode 100644 docs/guides/summary-execute.mdx create mode 100644 docs/guides/summary-map.mdx create mode 100644 docs/guides/summary-noise.mdx create mode 100644 docs/guides/summary-optimize.mdx create mode 100644 docs/guides/summary-prepare.mdx diff --git a/docs/guides/summary-execute.mdx b/docs/guides/summary-execute.mdx new file mode 100644 index 00000000000..bb375007673 --- /dev/null +++ b/docs/guides/summary-execute.mdx @@ -0,0 +1,4 @@ +--- +title: Execute on hardware +description: +--- \ No newline at end of file diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx new file mode 100644 index 00000000000..140286d7428 --- /dev/null +++ b/docs/guides/summary-map.mdx @@ -0,0 +1,4 @@ +--- +title: Map problem to circuits +description: +--- \ No newline at end of file diff --git a/docs/guides/summary-noise.mdx b/docs/guides/summary-noise.mdx new file mode 100644 index 00000000000..114b6205b27 --- /dev/null +++ b/docs/guides/summary-noise.mdx @@ -0,0 +1,4 @@ +--- +title: Manage noise +description: +--- \ No newline at end of file diff --git a/docs/guides/summary-optimize.mdx b/docs/guides/summary-optimize.mdx new file mode 100644 index 00000000000..6d13a8a4049 --- /dev/null +++ b/docs/guides/summary-optimize.mdx @@ -0,0 +1,4 @@ +--- +title: Optimize circuits +description: +--- \ No newline at end of file diff --git a/docs/guides/summary-prepare.mdx b/docs/guides/summary-prepare.mdx new file mode 100644 index 00000000000..14656c23a01 --- /dev/null +++ b/docs/guides/summary-prepare.mdx @@ -0,0 +1,4 @@ +--- +title: Prepare workloads +description: +--- \ No newline at end of file diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index c9739d27ff9..ef1dae08ecd 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -434,6 +434,26 @@ notifications: - "@abbycross" - "@beckykd" - "@kaelynj" + "docs/guides/summary-map": + - "@abbycross" + - "@beckykd" + - "@kaelynj" + "docs/guides/summary-noise": + - "@abbycross" + - "@beckykd" + - "@kaelynj" + "docs/guides/summary-execute": + - "@abbycross" + - "@beckykd" + - "@kaelynj" + "docs/guides/summary-optimize": + - "@abbycross" + - "@beckykd" + - "@kaelynj" + "docs/guides/summary-prepare": + - "@abbycross" + - "@beckykd" + - "@kaelynj" "docs/guides/intro-to-patterns": - "@abbycross" - "@beckykd" From 0722e3a81e2b8a3e65b6f9e5448836f73c377395 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 12:24:01 -0500 Subject: [PATCH 45/82] add integrations --- docs/guides/summary-integrations.mdx | 4 ++++ qiskit_bot.yaml | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 docs/guides/summary-integrations.mdx diff --git a/docs/guides/summary-integrations.mdx b/docs/guides/summary-integrations.mdx new file mode 100644 index 00000000000..407fda96ef5 --- /dev/null +++ b/docs/guides/summary-integrations.mdx @@ -0,0 +1,4 @@ +--- +title: Integrations +description: +--- \ No newline at end of file diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index ef1dae08ecd..638da87a0d9 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -454,6 +454,10 @@ notifications: - "@abbycross" - "@beckykd" - "@kaelynj" + "docs/guides/summary-integrations": + - "@abbycross" + - "@beckykd" + - "@kaelynj" "docs/guides/intro-to-patterns": - "@abbycross" - "@beckykd" From 026bd78c83cb8d4f5c8732b1adbe9c7298336c10 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 13:50:37 -0500 Subject: [PATCH 46/82] move hello world, change links --- docs/guides/_toc.json | 4 ++-- docs/guides/cloud-setup-invited.mdx | 2 +- docs/guides/cloud-setup-rest-api.mdx | 2 +- docs/guides/cloud-setup-untrusted.mdx | 2 +- docs/guides/cloud-setup.mdx | 2 +- docs/guides/configure-qiskit-local.mdx | 2 +- docs/{tutorials => guides}/hello-world.ipynb | 8 ++++---- docs/guides/initialize-account.mdx | 2 +- docs/guides/install-qiskit-source.mdx | 2 +- docs/guides/install-qiskit.mdx | 2 +- docs/guides/quick-start.ipynb | 2 +- docs/guides/save-credentials.mdx | 2 +- docs/guides/upgrade-from-open.mdx | 2 +- docs/tutorials/_toc.json | 4 ---- docs/tutorials/index.mdx | 2 +- .../hello-world/extracted-outputs/87143fcc-0.svg | 0 .../hello-world/extracted-outputs/930ca3b6-0.svg | 0 .../hello-world/extracted-outputs/9a901271-0.svg | 0 .../hello-world/extracted-outputs/de91ebd0-0.svg | 0 qiskit_bot.yaml | 2 +- scripts/config/internal-links.json | 2 +- scripts/config/notebook-testing.toml | 2 +- 22 files changed, 21 insertions(+), 25 deletions(-) rename docs/{tutorials => guides}/hello-world.ipynb (98%) rename public/docs/images/{tutorials => guides}/hello-world/extracted-outputs/87143fcc-0.svg (100%) rename public/docs/images/{tutorials => guides}/hello-world/extracted-outputs/930ca3b6-0.svg (100%) rename public/docs/images/{tutorials => guides}/hello-world/extracted-outputs/9a901271-0.svg (100%) rename public/docs/images/{tutorials => guides}/hello-world/extracted-outputs/de91ebd0-0.svg (100%) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 8a359d731cb..821495c08e3 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -15,10 +15,10 @@ }, { "title": "Hello world", - "url": "/docs/tutorials/hello-world" + "url": "/docs/guides/hello-world" }, { - "title": "Advanced install", + "title": "Installation options", "children": [ { "title": "Install Qiskit", diff --git a/docs/guides/cloud-setup-invited.mdx b/docs/guides/cloud-setup-invited.mdx index 58b727ffcf1..b192ca446cc 100644 --- a/docs/guides/cloud-setup-invited.mdx +++ b/docs/guides/cloud-setup-invited.mdx @@ -56,6 +56,6 @@ If you are using a trusted Python environment, such as a personal laptop, it is - [Overview of available plans.](plans-overview) - [Configure the Qiskit SDK locally.](configure-qiskit-local) - [Set up to use IBM Quantum Platform with REST API](/docs/guides/cloud-setup-rest-api) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. - Try a [tutorial](/docs/tutorials).
\ No newline at end of file diff --git a/docs/guides/cloud-setup-rest-api.mdx b/docs/guides/cloud-setup-rest-api.mdx index 017ec4ec2c8..5d594c8c0d6 100644 --- a/docs/guides/cloud-setup-rest-api.mdx +++ b/docs/guides/cloud-setup-rest-api.mdx @@ -97,6 +97,6 @@ curl -X 'GET' \ - [Overview of available plans.](plans-overview) - [Configure the Qiskit SDK locally.](configure-qiskit-local) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. - Try a [tutorial](/docs/tutorials). \ No newline at end of file diff --git a/docs/guides/cloud-setup-untrusted.mdx b/docs/guides/cloud-setup-untrusted.mdx index d08da5df4ad..4e44c21cccd 100644 --- a/docs/guides/cloud-setup-untrusted.mdx +++ b/docs/guides/cloud-setup-untrusted.mdx @@ -70,6 +70,6 @@ Follow these steps to use your API key directly to authenticate to the Qiskit Ru - [Overview of available plans.](plans-overview) - [Configure the Qiskit SDK locally.](configure-qiskit-local) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. - Try a [tutorial](/docs/tutorials). \ No newline at end of file diff --git a/docs/guides/cloud-setup.mdx b/docs/guides/cloud-setup.mdx index f15865836cd..daeb9aad6d3 100644 --- a/docs/guides/cloud-setup.mdx +++ b/docs/guides/cloud-setup.mdx @@ -57,7 +57,7 @@ If you are using a trusted Python environment, such as a personal laptop, it is - [Overview of available plans.](plans-overview) - [Configure the Qiskit SDK locally.](configure-qiskit-local) - [View your available QPUs.](/docs/guides/qpu-information#available) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. - [Set up to use IBM Quantum Platform with REST API.](/docs/guides/cloud-setup-rest-api) - Try a [tutorial](/docs/tutorials). \ No newline at end of file diff --git a/docs/guides/configure-qiskit-local.mdx b/docs/guides/configure-qiskit-local.mdx index 137e3e2cc9f..23eb78d9eee 100644 --- a/docs/guides/configure-qiskit-local.mdx +++ b/docs/guides/configure-qiskit-local.mdx @@ -55,6 +55,6 @@ Set these environment variables to alter the default behavior of Qiskit: - Try a tutorial, such as [Grover's algorithm](/docs/tutorials/grovers-algorithm). - - [Run the Hello world program](/docs/tutorials/hello-world). + - [Run the Hello world program](/docs/guides/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. diff --git a/docs/tutorials/hello-world.ipynb b/docs/guides/hello-world.ipynb similarity index 98% rename from docs/tutorials/hello-world.ipynb rename to docs/guides/hello-world.ipynb index a9cc133a0e3..1fa38186608 100644 --- a/docs/tutorials/hello-world.ipynb +++ b/docs/guides/hello-world.ipynb @@ -143,7 +143,7 @@ { "data": { "text/plain": [ - "\"Output" + "\"Output" ] }, "execution_count": 1, @@ -243,7 +243,7 @@ { "data": { "text/plain": [ - "\"Output" + "\"Output" ] }, "execution_count": 3, @@ -414,7 +414,7 @@ { "data": { "text/plain": [ - "\"Output" + "\"Output" ] }, "metadata": {}, @@ -652,7 +652,7 @@ { "data": { "text/plain": [ - "\"Output" + "\"Output" ] }, "metadata": {}, diff --git a/docs/guides/initialize-account.mdx b/docs/guides/initialize-account.mdx index e0b9292276d..907aec77fbf 100644 --- a/docs/guides/initialize-account.mdx +++ b/docs/guides/initialize-account.mdx @@ -196,6 +196,6 @@ service = QiskitRuntimeService(channel="local") - [Create and manage instances.](/docs/guides/instances) - [Initialize the service in an untrusted environment.](/docs/guides/cloud-setup-untrusted) - [Set up to use IBM Quantum Platform with REST API.](/docs/guides/cloud-setup-rest-api) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. diff --git a/docs/guides/install-qiskit-source.mdx b/docs/guides/install-qiskit-source.mdx index 2a449bf0353..cbc1e9ae221 100644 --- a/docs/guides/install-qiskit-source.mdx +++ b/docs/guides/install-qiskit-source.mdx @@ -148,6 +148,6 @@ pip install -e ".[dev]" - Read the [contributing guidelines](https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md) to contribute to the open-source Qiskit SDK. - - [Run the Hello world program](/docs/tutorials/hello-world). + - [Run the Hello world program](/docs/guides/hello-world). - Try a tutorial, such as [Grover's algorithm](/docs/tutorials/grovers-algorithm). diff --git a/docs/guides/install-qiskit.mdx b/docs/guides/install-qiskit.mdx index 8078eb1203a..5ed4a1de42b 100644 --- a/docs/guides/install-qiskit.mdx +++ b/docs/guides/install-qiskit.mdx @@ -306,6 +306,6 @@ In the Qiskit v1.x release series, the supported platforms are: - Set up your [IBM Cloud account.](/docs/guides/cloud-setup) - [Configure Qiskit locally.](configure-qiskit-local) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. - Try an IBM Quantum Learning [tutorial.](/docs/tutorials) diff --git a/docs/guides/quick-start.ipynb b/docs/guides/quick-start.ipynb index a1ed9fd12b9..60687c103e1 100644 --- a/docs/guides/quick-start.ipynb +++ b/docs/guides/quick-start.ipynb @@ -231,7 +231,7 @@ "## Next steps\n", "\n", "\n", - "- Run a circuit on real quantum hardware in the [Hello world](/docs/tutorials/hello-world) tutorial.\n", + "- Run a circuit on real quantum hardware in the [Hello world](/docs/guides/hello-world) tutorial.\n", "- Not ready to run on hardware? Start your quantum journey with the [Basics of quantum information](/learning/courses/basics-of-quantum-information) course.\n", "" ] diff --git a/docs/guides/save-credentials.mdx b/docs/guides/save-credentials.mdx index 2116c9326ca..bf3ab8b7a9c 100644 --- a/docs/guides/save-credentials.mdx +++ b/docs/guides/save-credentials.mdx @@ -125,7 +125,7 @@ To view all credentials that you have saved, run `service.saved_accounts()`. No - [Initialize the Qiskit Runtime service in an **untrusted environment**.](/docs/guides/cloud-setup-untrusted) - [View your available QPUs.](/docs/guides/qpu-information#available) - [Configure the Qiskit SDK locally.](/docs/guides/configure-qiskit-local) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. - [Set up to use IBM Quantum Platform with REST API.](/docs/guides/cloud-setup-rest-api) - Try a [tutorial.](/docs/tutorials) \ No newline at end of file diff --git a/docs/guides/upgrade-from-open.mdx b/docs/guides/upgrade-from-open.mdx index c03a71f2ca7..11088712cb6 100644 --- a/docs/guides/upgrade-from-open.mdx +++ b/docs/guides/upgrade-from-open.mdx @@ -48,6 +48,6 @@ It is recommended that you set up a [cost limit](/docs/guides/manage-cost#cost-l - [Manage cost](manage-cost) when using the Pay-As-You-Go Plan. - Learn about the available [plans.](plans-overview) - - Follow the steps in [Hello world](/docs/tutorials/hello-world) to write and run a quantum program. + - Follow the steps in [Hello world](/docs/guides/hello-world) to write and run a quantum program. - Try a [tutorial](/docs/tutorials). \ No newline at end of file diff --git a/docs/tutorials/_toc.json b/docs/tutorials/_toc.json index 8dcb7be388c..781eb2170a7 100644 --- a/docs/tutorials/_toc.json +++ b/docs/tutorials/_toc.json @@ -11,10 +11,6 @@ "url": "/docs/tutorials", "useDivider": true }, - { - "title": "Hello world", - "url": "/docs/tutorials/hello-world" - }, { "title": "CHSH inequality", "url": "/docs/tutorials/chsh-inequality" diff --git a/docs/tutorials/index.mdx b/docs/tutorials/index.mdx index acc2a1ee67a..7b9f591988b 100644 --- a/docs/tutorials/index.mdx +++ b/docs/tutorials/index.mdx @@ -15,7 +15,7 @@ Use these tutorials to learn how to apply Qiskit to common quantum computing use These tutorials are for beginners who are ready to explore running quantum algorithms on a quantum computer. -* [Hello world](/docs/tutorials/hello-world) +* [Hello world](/docs/guides/hello-world) * [CHSH inequality](/docs/tutorials/chsh-inequality) ## Explore workflows toward advantage diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/87143fcc-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/87143fcc-0.svg similarity index 100% rename from public/docs/images/tutorials/hello-world/extracted-outputs/87143fcc-0.svg rename to public/docs/images/guides/hello-world/extracted-outputs/87143fcc-0.svg diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/930ca3b6-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/930ca3b6-0.svg similarity index 100% rename from public/docs/images/tutorials/hello-world/extracted-outputs/930ca3b6-0.svg rename to public/docs/images/guides/hello-world/extracted-outputs/930ca3b6-0.svg diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/9a901271-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/9a901271-0.svg similarity index 100% rename from public/docs/images/tutorials/hello-world/extracted-outputs/9a901271-0.svg rename to public/docs/images/guides/hello-world/extracted-outputs/9a901271-0.svg diff --git a/public/docs/images/tutorials/hello-world/extracted-outputs/de91ebd0-0.svg b/public/docs/images/guides/hello-world/extracted-outputs/de91ebd0-0.svg similarity index 100% rename from public/docs/images/tutorials/hello-world/extracted-outputs/de91ebd0-0.svg rename to public/docs/images/guides/hello-world/extracted-outputs/de91ebd0-0.svg diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index 638da87a0d9..75a605ae454 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -156,7 +156,7 @@ notifications: "docs/guides/responsibilities": - "@abbycross" - "@beckykd" - "docs/tutorials/hello-world": + "docs/guides/hello-world": - "@abbycross" - "@beckykd" "docs/guides/allocation-limits": diff --git a/scripts/config/internal-links.json b/scripts/config/internal-links.json index 78e4eb187e8..0cbe843684f 100644 --- a/scripts/config/internal-links.json +++ b/scripts/config/internal-links.json @@ -848,7 +848,7 @@ ] }, { - "path": "docs/tutorials/hello-world.ipynb", + "path": "docs/guides/hello-world.ipynb", "anchors": [ "#before-you-begin", "#create-and-run-a-simple-quantum-program", diff --git a/scripts/config/notebook-testing.toml b/scripts/config/notebook-testing.toml index 0ae0c72af48..37803e0924a 100644 --- a/scripts/config/notebook-testing.toml +++ b/scripts/config/notebook-testing.toml @@ -100,7 +100,7 @@ notebooks = [ [groups.cron-job-only] test-strategies.hardware = { patch="qiskit-ibm-runtime-open" } notebooks = [ - "docs/tutorials/hello-world.ipynb", + "docs/guides/hello-world.ipynb", # The following notebook takes >300s to run and should be executed in the # cron job. Even though it does not use real hardware "docs/guides/qiskit-addons-cutting-gates.ipynb", From cda8a7d795058418c413b565d7de727a15647c83 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 14:01:34 -0500 Subject: [PATCH 47/82] fix internal links --- docs/guides/index.mdx | 6 +++--- docs/guides/simulate-with-qiskit-sdk-primitives.ipynb | 1 - docs/guides/tool-index.mdx | 7 +++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index d968802f53b..eb270a2be46 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -54,17 +54,17 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more ### Execute on hardware -- [Estimator and Sampler primitives](/docs/guides/tool-index#estimator--sampler-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support +- [Estimator and Sampler primitives](/docs/guides/tool-index#tool-index-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support - [Execution modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution - [Executor primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on the input samplex directive ### Manage noise - [Samplomatic](/docs/guides/tool-index#samplomatic) - Fine-tune error mitigation in specific circuit regions -- [Noise learner](/docs/guides/tool-index#noise-learner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA +- [NoiseLearner](/docs/guides/tool-index#noiselearner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA - [Pauli twirling](/docs/guides/tool-index#pauli-twirling) - Convert coherent noise to better characterized stochastic noise - [Matrix-free measurement mitigation](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors -- [Probabilistic error cancellation](/docs/guides/tool-index#probabilistic-error-cancellation) - Mitigate errors by statistically canceling noise, resulting in an unbiased expectation value at the expense of greater overhead +- [Probabilistic error cancellation](/docs/guides/tool-index#tool-index-pec) - Mitigate errors by statistically canceling noise, resulting in an unbiased expectation value at the expense of greater overhead - [Zero-noise extrapolation](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values - [Twirled readout error extinction](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Use twirling to reduce measurement error - [Propagated noise absorption](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable diff --git a/docs/guides/simulate-with-qiskit-sdk-primitives.ipynb b/docs/guides/simulate-with-qiskit-sdk-primitives.ipynb index 7ff0eb8426e..bf2b238f875 100644 --- a/docs/guides/simulate-with-qiskit-sdk-primitives.ipynb +++ b/docs/guides/simulate-with-qiskit-sdk-primitives.ipynb @@ -513,7 +513,6 @@ " - To learn how to use Quantum Composer for simulation, see the [IBM Quantum Composer](/docs/guides/composer) guide.\n", " - Read the [Qiskit Estimator API](/docs/api/qiskit/1.4/qiskit.primitives.Estimator) reference.\n", " - Read the [Qiskit Sampler API](/docs/api/qiskit/1.4/qiskit.primitives.Sampler) reference.\n", - " - Learn how to run on a QPU in the [Run](./execute-on-hardware) step of the Qiskit patterns workflow.\n", " - Read [Migrate to V2 primitives](/docs/guides/v2-primitives).\n", "" ] diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index a7c27ed8a68..aa02077af5a 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -173,6 +173,7 @@ Qiskit Runtime can test workloads while fine-tuning them before submitting them ## Execute on hardware + ### Estimator and Sampler primitives
@@ -229,7 +230,7 @@ Samplomatic is a library for sampling randomizations of your quantum circuits in - [Samplomatic GitHub repo](https://github.com/Qiskit/samplomatic) - [Directed execution model (beta)](/docs/guides/directed-execution-model) -### Noise Learner +### NoiseLearner
Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA @@ -272,6 +273,8 @@ The Matrix-free measurement mitigation (M3) Qiskit addon is used to reduce measu - [Tutorial on using M3 with mid-circuit measurement](https://qiskit.github.io/qiskit-addon-mthree/tutorials/04_dynamic_bv.html) - [Readout error mitigation for the Sampler primitive using M3](/docs/tutorials/readout-error-mitigation-sampler) + + ### Probabilistic error cancellation (PEC)
@@ -409,7 +412,7 @@ The noise models produced by `NoiseLearner` might not be accurate for Heron back **Relevant resources** -- [API reference for post-selection utilities](/docs/api/qiskit-addon-utils/noise-management-post-selection) +- [API reference for post-selection utilities](/docs/api/qiskit-addon-utils/noise-management) - [API reference for post-selection transpiler passes](/docs/api/qiskit-addon-utils/noise-management-post-selection-transpiler-passes) - [API reference for `NoiseLearnerV3`](https://qiskit.github.io/qiskit-ibm-runtime/apidocs/noise_learner_v3.html) From 6d8cd6db11ec028fec101e4282445aa012608a40 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 14:36:34 -0500 Subject: [PATCH 48/82] put tools/features in their own section --- docs/guides/_toc.json | 736 +++++++++++++++++++------------------ docs/guides/tool-index.mdx | 4 +- 2 files changed, 373 insertions(+), 367 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 821495c08e3..49c34bcd666 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -79,483 +79,489 @@ "collapsible": false }, { - "title": "Tools index", - "url": "/docs/guides/tool-index" - }, - { - "title": "Map problem to circuits", - "children": [ - { - "title": "Section overview", - "url": "/docs/guides/summary-map" - }, - { - "title": "Circuit library", - "url": "/docs/guides/circuit-library" - }, - { - "title": "Construct circuits", - "url": "/docs/guides/construct-circuits" - }, - { - "title": "Fractional gates", - "url": "/docs/guides/fractional-gates" - }, - { - "title": "Classical feedforward and control flow", - "url": "/docs/guides/classical-feedforward-and-control-flow" - }, - { - "title": "Deferred timing resolution using stretch", - "url": "/docs/guides/stretch" - }, - { - "title": "Measure qubits", - "url": "/docs/guides/measure-qubits" - }, - { - "title": "Synthesize unitary operators", - "url": "/docs/guides/synthesize-unitary-operators" - }, - { - "title": "Bit-ordering in the Qiskit SDK", - "url": "/docs/guides/bit-ordering" - }, - { - "title": "Save circuits to disk", - "url": "/docs/guides/save-circuits" - }, - { - "title": "Operators module overview", - "url": "/docs/guides/operators-overview" - }, - { - "title": "Specify observables in the Pauli basis", - "url": "/docs/guides/specify-observables-pauli" - }, + "title": "Tools and features", + "children":[ { - "title": "The Operator class", - "url": "/docs/guides/operator-class" + "title": "Tools and features index", + "url": "/docs/guides/tool-index" }, { - "title": "OpenQASM", + "title": "Map problem to circuits", "children": [ { - "title": "Intro to OpenQASM", - "url": "/docs/guides/introduction-to-qasm" + "title": "Section overview", + "url": "/docs/guides/summary-map" }, { - "title": "OpenQASM 2 and the Qiskit SDK", - "url": "/docs/guides/interoperate-qiskit-qasm2" + "title": "Circuit library", + "url": "/docs/guides/circuit-library" }, { - "title": "OpenQASM 3 and the Qiskit SDK", - "url": "/docs/guides/interoperate-qiskit-qasm3" + "title": "Construct circuits", + "url": "/docs/guides/construct-circuits" }, { - "title": "OpenQASM 3 feature table", - "url": "/docs/guides/qasm-feature-table" + "title": "Fractional gates", + "url": "/docs/guides/fractional-gates" }, { - "title": "OpenQASM 3.x live specification", - "url": "https://openqasm.com/" - } - ] - } - ] - }, - { - "title": "Prepare workloads", - "children":[ - { - "title": "Section overview", - "url": "/docs/guides/summary-prepare" - }, - { - "title": "Workload usage", - "url": "/docs/guides/estimate-job-run-time" - }, - { - "title": "Minimize job run time", - "url": "/docs/guides/minimize-time" - }, - { - "title": "Maximum execution time", - "url": "/docs/guides/max-execution-time" - }, - { - "title": "Job limits", - "url": "/docs/guides/job-limits" - }, - { - "title": "Qubit initialization", - "url": "/docs/guides/repetition-rate-execution" - } - ] - }, - { - "title": "Optimize circuits", - "children":[ - { - "title": "Section overview", - "url": "/docs/guides/summary-optimize" - }, - { - "title": "Introduction to transpilation", - "url": "/docs/guides/transpile" - }, - { - "title": "Transpiler stages", - "url": "/docs/guides/transpiler-stages" - }, - { - "title": "Transpile with pass managers", - "url": "/docs/guides/transpile-with-pass-managers" - }, - { - "title": "Create a pass manager for dynamical decoupling", - "url": "/docs/guides/dynamical-decoupling-pass-manager" - }, - { - "title": "Configure preset pass managers", - "children": [ + "title": "Classical feedforward and control flow", + "url": "/docs/guides/classical-feedforward-and-control-flow" + }, { - "title": "Default settings and configuration options", - "url": "/docs/guides/defaults-and-configuration-options" + "title": "Deferred timing resolution using stretch", + "url": "/docs/guides/stretch" }, { - "title": "Set optimization level", - "url": "/docs/guides/set-optimization" + "title": "Measure qubits", + "url": "/docs/guides/measure-qubits" }, { - "title": "Commonly used parameters for transpilation", - "url": "/docs/guides/common-parameters" + "title": "Synthesize unitary operators", + "url": "/docs/guides/synthesize-unitary-operators" }, { - "title": "Represent quantum computers", - "url": "/docs/guides/represent-quantum-computers" - } - ] - }, - { - "title": "Qiskit Transpiler Service", - "children": [ + "title": "Bit-ordering in the Qiskit SDK", + "url": "/docs/guides/bit-ordering" + }, { - "title": "Transpile circuits remotely with the Qiskit Transpiler Service", - "url": "/docs/guides/qiskit-transpiler-service" + "title": "Save circuits to disk", + "url": "/docs/guides/save-circuits" }, { - "title": "AI transpiler passes", - "url": "/docs/guides/ai-transpiler-passes" + "title": "Operators module overview", + "url": "/docs/guides/operators-overview" + }, + { + "title": "Specify observables in the Pauli basis", + "url": "/docs/guides/specify-observables-pauli" + }, + { + "title": "The Operator class", + "url": "/docs/guides/operator-class" + }, + { + "title": "OpenQASM", + "children": [ + { + "title": "Intro to OpenQASM", + "url": "/docs/guides/introduction-to-qasm" + }, + { + "title": "OpenQASM 2 and the Qiskit SDK", + "url": "/docs/guides/interoperate-qiskit-qasm2" + }, + { + "title": "OpenQASM 3 and the Qiskit SDK", + "url": "/docs/guides/interoperate-qiskit-qasm3" + }, + { + "title": "OpenQASM 3 feature table", + "url": "/docs/guides/qasm-feature-table" + }, + { + "title": "OpenQASM 3.x live specification", + "url": "https://openqasm.com/" + } + ] } ] }, { - "title": "Advanced transpilation resources", - "children": [ + "title": "Prepare workloads", + "children":[ { - "title": "Write a custom transpiler pass", - "url": "/docs/guides/custom-transpiler-pass" + "title": "Section overview", + "url": "/docs/guides/summary-prepare" }, { - "title": "Transpile against custom backends", - "url": "/docs/guides/custom-backend" + "title": "Workload usage", + "url": "/docs/guides/estimate-job-run-time" }, { - "title": "Install and use transpiler plugins", - "url": "/docs/guides/transpiler-plugins" + "title": "Minimize job run time", + "url": "/docs/guides/minimize-time" }, { - "title": "Create a transpiler plugin", - "url": "/docs/guides/create-transpiler-plugin" + "title": "Maximum execution time", + "url": "/docs/guides/max-execution-time" }, { - "title": "Work with DAGs in transpiler passes", - "url": "/docs/guides/DAG-representation" + "title": "Job limits", + "url": "/docs/guides/job-limits" + }, + { + "title": "Qubit initialization", + "url": "/docs/guides/repetition-rate-execution" } ] }, { - "title": "Approximate quantum compilation (AQC-Tensor)", - "children": [ + "title": "Optimize circuits", + "children":[ { - "title": "AQC-Tensor addon overview", - "url": "/docs/guides/qiskit-addons-aqc" + "title": "Section overview", + "url": "/docs/guides/summary-optimize" }, { - "title": "Get started with AQC-Tensor", - "url": "/docs/guides/qiskit-addons-aqc-get-started" - } - ] - }, - { - "title": "Operator backpropagation (OBP)", - "children": [ + "title": "Introduction to transpilation", + "url": "/docs/guides/transpile" + }, { - "title": "OBP addon overview", - "url": "/docs/guides/qiskit-addons-obp" + "title": "Transpiler stages", + "url": "/docs/guides/transpiler-stages" }, { - "title": "Get started with OBP", - "url": "/docs/guides/qiskit-addons-obp-get-started" - } - ] - }, - { - "title": "Multi-product formulas (MPF)", - "children": [ + "title": "Transpile with pass managers", + "url": "/docs/guides/transpile-with-pass-managers" + }, + { + "title": "Create a pass manager for dynamical decoupling", + "url": "/docs/guides/dynamical-decoupling-pass-manager" + }, { - "title": "MPF addon overview", - "url": "/docs/guides/qiskit-addons-mpf" + "title": "Configure preset pass managers", + "children": [ + { + "title": "Default settings and configuration options", + "url": "/docs/guides/defaults-and-configuration-options" + }, + { + "title": "Set optimization level", + "url": "/docs/guides/set-optimization" + }, + { + "title": "Commonly used parameters for transpilation", + "url": "/docs/guides/common-parameters" + }, + { + "title": "Represent quantum computers", + "url": "/docs/guides/represent-quantum-computers" + } + ] }, { - "title": "Get started with MPFs", - "url": "/docs/guides/qiskit-addons-mpf-get-started" + "title": "Qiskit Transpiler Service", + "children": [ + { + "title": "Transpile circuits remotely with the Qiskit Transpiler Service", + "url": "/docs/guides/qiskit-transpiler-service" + }, + { + "title": "AI transpiler passes", + "url": "/docs/guides/ai-transpiler-passes" + } + ] + }, + { + "title": "Advanced transpilation resources", + "children": [ + { + "title": "Write a custom transpiler pass", + "url": "/docs/guides/custom-transpiler-pass" + }, + { + "title": "Transpile against custom backends", + "url": "/docs/guides/custom-backend" + }, + { + "title": "Install and use transpiler plugins", + "url": "/docs/guides/transpiler-plugins" + }, + { + "title": "Create a transpiler plugin", + "url": "/docs/guides/create-transpiler-plugin" + }, + { + "title": "Work with DAGs in transpiler passes", + "url": "/docs/guides/DAG-representation" + } + ] + }, + { + "title": "Approximate quantum compilation (AQC-Tensor)", + "children": [ + { + "title": "AQC-Tensor addon overview", + "url": "/docs/guides/qiskit-addons-aqc" + }, + { + "title": "Get started with AQC-Tensor", + "url": "/docs/guides/qiskit-addons-aqc-get-started" + } + ] + }, + { + "title": "Operator backpropagation (OBP)", + "children": [ + { + "title": "OBP addon overview", + "url": "/docs/guides/qiskit-addons-obp" + }, + { + "title": "Get started with OBP", + "url": "/docs/guides/qiskit-addons-obp-get-started" + } + ] + }, + { + "title": "Multi-product formulas (MPF)", + "children": [ + { + "title": "MPF addon overview", + "url": "/docs/guides/qiskit-addons-mpf" + }, + { + "title": "Get started with MPFs", + "url": "/docs/guides/qiskit-addons-mpf-get-started" + } + ] + }, + { + "title": "Circuit cutting (CC)", + "children": [ + { + "title": "Circuit cutting overview", + "url": "/docs/guides/qiskit-addons-cutting" + }, + { + "title": "Get started with gate cuts", + "url": "/docs/guides/qiskit-addons-cutting-gates" + }, + { + "title": "Get started with wire cuts", + "url": "/docs/guides/qiskit-addons-cutting-wires" + } + ] } ] }, { - "title": "Circuit cutting (CC)", + "title": "Debug", "children": [ { - "title": "Circuit cutting overview", - "url": "/docs/guides/qiskit-addons-cutting" + "title": "Introduction to debugging tools", + "url": "/docs/guides/debugging-tools" }, { - "title": "Get started with gate cuts", - "url": "/docs/guides/qiskit-addons-cutting-gates" + "title": "Exact simulation with Qiskit SDK primitives", + "url": "/docs/guides/simulate-with-qiskit-sdk-primitives" }, { - "title": "Get started with wire cuts", - "url": "/docs/guides/qiskit-addons-cutting-wires" - } - ] - } - ] - }, - { - "title": "Debug", - "children": [ - { - "title": "Introduction to debugging tools", - "url": "/docs/guides/debugging-tools" - }, - { - "title": "Exact simulation with Qiskit SDK primitives", - "url": "/docs/guides/simulate-with-qiskit-sdk-primitives" - }, - { - "title": "Exact and noisy simulation with Qiskit Aer primitives", - "url": "/docs/guides/simulate-with-qiskit-aer" - }, - { - "title": "Qiskit Runtime local testing mode", - "url": "/docs/guides/local-testing-mode" - }, - { - "title": "Debug Qiskit Runtime jobs", - "url": "/docs/guides/debug-qiskit-runtime-jobs" - }, - { - "title": "Build noise models", - "url": "/docs/guides/build-noise-models" - }, - { - "title": "Efficient simulation of stabilizer circuits with Qiskit Aer primitives", - "url": "/docs/guides/simulate-stabilizer-circuits" - }, - { - "title": "Visualization", - "children":[ + "title": "Exact and noisy simulation with Qiskit Aer primitives", + "url": "/docs/guides/simulate-with-qiskit-aer" + }, { - "title": "Visualize circuits", - "url": "/docs/guides/visualize-circuits" + "title": "Qiskit Runtime local testing mode", + "url": "/docs/guides/local-testing-mode" }, { - "title": "Visualize circuit timing", - "url": "/docs/guides/visualize-circuit-timing" + "title": "Debug Qiskit Runtime jobs", + "url": "/docs/guides/debug-qiskit-runtime-jobs" }, { - "title": "Plot quantum states", - "url": "/docs/guides/plot-quantum-states" + "title": "Build noise models", + "url": "/docs/guides/build-noise-models" }, { - "title": "Visualize results", - "url": "/docs/guides/visualize-results" + "title": "Efficient simulation of stabilizer circuits with Qiskit Aer primitives", + "url": "/docs/guides/simulate-stabilizer-circuits" + }, + { + "title": "Visualization", + "children":[ + { + "title": "Visualize circuits", + "url": "/docs/guides/visualize-circuits" + }, + { + "title": "Visualize circuit timing", + "url": "/docs/guides/visualize-circuit-timing" + }, + { + "title": "Plot quantum states", + "url": "/docs/guides/plot-quantum-states" + }, + { + "title": "Visualize results", + "url": "/docs/guides/visualize-results" + } + ] } ] - } - ] - }, - { - "title": "Execute on hardware", - "children": [ - { - "title": "Section overview", - "url": "/docs/guides/summary-execute" }, { - "title": "Primitives", + "title": "Execute on hardware", "children": [ { - "title": "Introduction to primitives", - "url": "/docs/guides/primitives" + "title": "Section overview", + "url": "/docs/guides/summary-execute" }, { - "title": "Get started with primitives", - "url": "/docs/guides/get-started-with-primitives" + "title": "Primitives", + "children": [ + { + "title": "Introduction to primitives", + "url": "/docs/guides/primitives" + }, + { + "title": "Get started with primitives", + "url": "/docs/guides/get-started-with-primitives" + }, + { + "title": "Primitive inputs and outputs", + "url": "/docs/guides/primitive-input-output" + }, + { + "title": "Primitives examples", + "url": "/docs/guides/primitives-examples" + }, + { + "title": "Primitives with REST API", + "url": "/docs/guides/primitives-rest-api" + }, + { + "title": "Directed execution model (beta)", + "url": "/docs/guides/directed-execution-model" + }, + { + "title": "Introduction to options", + "url": "/docs/guides/runtime-options-overview" + }, + { + "title": "Specify options", + "url": "/docs/guides/specify-runtime-options" + } + ] }, { - "title": "Primitive inputs and outputs", - "url": "/docs/guides/primitive-input-output" + "title": "Execution modes", + "children": [ + { + "title": "Introduction to execution modes", + "url": "/docs/guides/execution-modes" + }, + { + "title": "Choose the right execution mode", + "url": "/docs/guides/choose-execution-mode" + }, + { + "title": "Run jobs in a batch", + "url": "/docs/guides/run-jobs-batch" + }, + { + "title": "Run jobs in a session", + "url": "/docs/guides/run-jobs-session" + }, + { + "title": "Execution modes using REST API", + "url": "/docs/guides/execution-modes-rest-api" + }, + { + "title": "Execution modes FAQ", + "url": "/docs/guides/execution-modes-faq" + } + ] }, { - "title": "Primitives examples", - "url": "/docs/guides/primitives-examples" + "title": "Organize and search by job tags", + "url": "/docs/guides/add-job-tags" }, { - "title": "Primitives with REST API", - "url": "/docs/guides/primitives-rest-api" + "title": "Retrieve and save job results", + "url": "/docs/guides/save-jobs" }, { - "title": "Directed execution model (beta)", - "url": "/docs/guides/directed-execution-model" + "title": "Monitor or cancel a job", + "url": "/docs/guides/monitor-job" }, { - "title": "Introduction to options", - "url": "/docs/guides/runtime-options-overview" + "title": "Fair-share scheduler", + "url": "/docs/guides/fair-share-scheduler" }, { - "title": "Specify options", - "url": "/docs/guides/specify-runtime-options" + "title": "Get backend information with Qiskit", + "url": "/docs/guides/get-qpu-information" } ] }, { - "title": "Execution modes", + "title": "Manage noise", "children": [ { - "title": "Introduction to execution modes", - "url": "/docs/guides/execution-modes" + "title": "Section overview", + "url": "/docs/guides/summary-noise" }, { - "title": "Choose the right execution mode", - "url": "/docs/guides/choose-execution-mode" + "title": "Tools to manage noise", + "url": "/docs/guides/tools-manage-noise" }, { - "title": "Run jobs in a batch", - "url": "/docs/guides/run-jobs-batch" + "title": "Noise learning", + "url": "/docs/guides/noise-learning" }, { - "title": "Run jobs in a session", - "url": "/docs/guides/run-jobs-session" + "title": "Directed execution model (beta)", + "url": "/docs/guides/directed-execution-model" }, { - "title": "Execution modes using REST API", - "url": "/docs/guides/execution-modes-rest-api" + "title": "Error mitigation and suppression techniques", + "url": "/docs/guides/error-mitigation-and-suppression-techniques" }, { - "title": "Execution modes FAQ", - "url": "/docs/guides/execution-modes-faq" - } - ] - }, - { - "title": "Organize and search by job tags", - "url": "/docs/guides/add-job-tags" - }, - { - "title": "Retrieve and save job results", - "url": "/docs/guides/save-jobs" - }, - { - "title": "Monitor or cancel a job", - "url": "/docs/guides/monitor-job" - }, - { - "title": "Fair-share scheduler", - "url": "/docs/guides/fair-share-scheduler" - }, - { - "title": "Get backend information with Qiskit", - "url": "/docs/guides/get-qpu-information" - } - ] - }, - { - "title": "Manage noise", - "children": [ - { - "title": "Section overview", - "url": "/docs/guides/summary-noise" - }, - { - "title": "Tools to manage noise", - "url": "/docs/guides/tools-manage-noise" - }, - { - "title": "Noise learning", - "url": "/docs/guides/noise-learning" - }, - { - "title": "Directed execution model (beta)", - "url": "/docs/guides/directed-execution-model" - }, - { - "title": "Error mitigation and suppression techniques", - "url": "/docs/guides/error-mitigation-and-suppression-techniques" - }, - { - "title": "Configure error mitigation", - "url": "/docs/guides/configure-error-mitigation" - }, - { - "title": "Configure error suppression", - "url": "/docs/guides/configure-error-suppression" - }, - { - "title": "Sample-based quantum diagonalization (SQD)", - "children":[ + "title": "Configure error mitigation", + "url": "/docs/guides/configure-error-mitigation" + }, + { + "title": "Configure error suppression", + "url": "/docs/guides/configure-error-suppression" + }, + { + "title": "Sample-based quantum diagonalization (SQD)", + "children":[ + { + "title": "Sample-based quantum diagonalization (SQD) overview", + "url": "/docs/guides/qiskit-addons-sqd" + }, + { + "title": "Get started with SQD", + "url": "/docs/guides/qiskit-addons-sqd-get-started" + }, + { + "title": "SQD (HPC-ready)", + "url": "https://qiskit.github.io/qiskit-addon-sqd-hpc/" + } + ] + }, { - "title": "Sample-based quantum diagonalization (SQD) overview", - "url": "/docs/guides/qiskit-addons-sqd" + "title": "Mthree (M3)", + "url": "https://qiskit.github.io/qiskit-addon-mthree/" }, { - "title": "Get started with SQD", - "url": "/docs/guides/qiskit-addons-sqd-get-started" + "title": "Propagated noise absorption (PNA)", + "url": "https://qiskit.github.io/qiskit-addon-pna/" }, { - "title": "SQD (HPC-ready)", - "url": "https://qiskit.github.io/qiskit-addon-sqd-hpc/" + "title": "Shaded lightcones (SLC)", + "url": "https://qiskit.github.io/qiskit-addon-slc/" } ] }, { - "title": "Mthree (M3)", - "url": "https://qiskit.github.io/qiskit-addon-mthree/" - }, - { - "title": "Propagated noise absorption (PNA)", - "url": "https://qiskit.github.io/qiskit-addon-pna/" - }, - { - "title": "Shaded lightcones (SLC)", - "url": "https://qiskit.github.io/qiskit-addon-slc/" - } - ] - }, - { - "title": "Integrations", - "children": [ - { - "title": "Section overview", - "url": "/docs/guides/summary-integrations" - }, - { - "title": "Create a provider", - "url": "/docs/guides/create-a-provider" + "title": "Integrations", + "children": [ + { + "title": "Section overview", + "url": "/docs/guides/summary-integrations" + }, + { + "title": "Create a provider", + "url": "/docs/guides/create-a-provider" + } + ] } - ] + ], + "collapsible": false }, { "title": "IBM Quantum services", diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index aa02077af5a..35581bf9d40 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -1,12 +1,12 @@ --- -title: Tools index +title: Tools and features index description: Find resources relevant to your work, organized by task. in_page_toc_min_heading_level: 2 in_page_toc_max_heading_level: 2 --- -# Tools index +# Tools and features index ## Map problem to circuits From 004353ef579f4076c1a30201a595c7f041395fcc Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 20:39:48 -0500 Subject: [PATCH 49/82] update summary files --- docs/guides/_toc.json | 10 +--------- docs/guides/summary-execute.mdx | 7 +++++-- docs/guides/summary-integrations.mdx | 4 ---- docs/guides/summary-map.mdx | 6 ++++-- docs/guides/summary-noise.mdx | 4 ---- docs/guides/summary-optimize.mdx | 6 ++++-- docs/guides/summary-prepare.mdx | 6 ++++-- docs/guides/tools-manage-noise.mdx | 4 ++-- qiskit_bot.yaml | 8 -------- 9 files changed, 20 insertions(+), 35 deletions(-) delete mode 100644 docs/guides/summary-integrations.mdx delete mode 100644 docs/guides/summary-noise.mdx diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 49c34bcd666..4071176016e 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -489,11 +489,7 @@ "title": "Manage noise", "children": [ { - "title": "Section overview", - "url": "/docs/guides/summary-noise" - }, - { - "title": "Tools to manage noise", + "title": "Introduction", "url": "/docs/guides/tools-manage-noise" }, { @@ -550,10 +546,6 @@ { "title": "Integrations", "children": [ - { - "title": "Section overview", - "url": "/docs/guides/summary-integrations" - }, { "title": "Create a provider", "url": "/docs/guides/create-a-provider" diff --git a/docs/guides/summary-execute.mdx b/docs/guides/summary-execute.mdx index bb375007673..2896f6e005c 100644 --- a/docs/guides/summary-execute.mdx +++ b/docs/guides/summary-execute.mdx @@ -1,4 +1,7 @@ --- -title: Execute on hardware +title: Introduction to execution tools description: ---- \ No newline at end of file +--- + +# Introduction to execution tools + diff --git a/docs/guides/summary-integrations.mdx b/docs/guides/summary-integrations.mdx deleted file mode 100644 index 407fda96ef5..00000000000 --- a/docs/guides/summary-integrations.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Integrations -description: ---- \ No newline at end of file diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx index 140286d7428..af219216b8f 100644 --- a/docs/guides/summary-map.mdx +++ b/docs/guides/summary-map.mdx @@ -1,4 +1,6 @@ --- -title: Map problem to circuits +title: Introduction to mapping tools description: ---- \ No newline at end of file +--- + +# Introduction to mapping tools \ No newline at end of file diff --git a/docs/guides/summary-noise.mdx b/docs/guides/summary-noise.mdx deleted file mode 100644 index 114b6205b27..00000000000 --- a/docs/guides/summary-noise.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Manage noise -description: ---- \ No newline at end of file diff --git a/docs/guides/summary-optimize.mdx b/docs/guides/summary-optimize.mdx index 6d13a8a4049..65af4430855 100644 --- a/docs/guides/summary-optimize.mdx +++ b/docs/guides/summary-optimize.mdx @@ -1,4 +1,6 @@ --- -title: Optimize circuits +title: Introduction to optimization tools description: ---- \ No newline at end of file +--- + +# Introduction to optimization tools diff --git a/docs/guides/summary-prepare.mdx b/docs/guides/summary-prepare.mdx index 14656c23a01..e8d113703fa 100644 --- a/docs/guides/summary-prepare.mdx +++ b/docs/guides/summary-prepare.mdx @@ -1,4 +1,6 @@ --- -title: Prepare workloads +title: Introduction to preparation tools description: ---- \ No newline at end of file +--- + +# Introduction to preparation tools \ No newline at end of file diff --git a/docs/guides/tools-manage-noise.mdx b/docs/guides/tools-manage-noise.mdx index 72d79b8dab8..5086d41bdf4 100644 --- a/docs/guides/tools-manage-noise.mdx +++ b/docs/guides/tools-manage-noise.mdx @@ -1,8 +1,8 @@ --- -title: Tools to manage noise +title: Introduction to noise management tools description: Discover tools that help manage noise through techniques such as error mitigation and suppression, and reducing circuit depth. --- -# Tools to manage noise +# Introduction to noise management tools ## General noise management techniques diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index 75a605ae454..471ca90178c 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -438,10 +438,6 @@ notifications: - "@abbycross" - "@beckykd" - "@kaelynj" - "docs/guides/summary-noise": - - "@abbycross" - - "@beckykd" - - "@kaelynj" "docs/guides/summary-execute": - "@abbycross" - "@beckykd" @@ -454,10 +450,6 @@ notifications: - "@abbycross" - "@beckykd" - "@kaelynj" - "docs/guides/summary-integrations": - - "@abbycross" - - "@beckykd" - - "@kaelynj" "docs/guides/intro-to-patterns": - "@abbycross" - "@beckykd" From 87c36239c96d1ff78ed097740f60604927546716 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 21:35:18 -0500 Subject: [PATCH 50/82] draft for mapping summary --- docs/guides/_toc.json | 8 ++++---- docs/guides/summary-execute.mdx | 1 - docs/guides/summary-map.mdx | 11 ++++++++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 4071176016e..7f7d64d4816 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -89,7 +89,7 @@ "title": "Map problem to circuits", "children": [ { - "title": "Section overview", + "title": "Introduction", "url": "/docs/guides/summary-map" }, { @@ -171,7 +171,7 @@ "title": "Prepare workloads", "children":[ { - "title": "Section overview", + "title": "Introduction", "url": "/docs/guides/summary-prepare" }, { @@ -200,7 +200,7 @@ "title": "Optimize circuits", "children":[ { - "title": "Section overview", + "title": "Introduction", "url": "/docs/guides/summary-optimize" }, { @@ -394,7 +394,7 @@ "title": "Execute on hardware", "children": [ { - "title": "Section overview", + "title": "Introduction", "url": "/docs/guides/summary-execute" }, { diff --git a/docs/guides/summary-execute.mdx b/docs/guides/summary-execute.mdx index 2896f6e005c..f4a742111aa 100644 --- a/docs/guides/summary-execute.mdx +++ b/docs/guides/summary-execute.mdx @@ -4,4 +4,3 @@ description: --- # Introduction to execution tools - diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx index af219216b8f..5ca6f81b762 100644 --- a/docs/guides/summary-map.mdx +++ b/docs/guides/summary-map.mdx @@ -3,4 +3,13 @@ title: Introduction to mapping tools description: --- -# Introduction to mapping tools \ No newline at end of file +# Introduction to mapping tools + +Mapping tools assist with mapping a classical problem to circuits and operators, for execution on a quantum computer. + +In applications such as chemistry and quantum simulation, mapping generally involves constructing a quantum circuit representing the Hamiltonian you are attempting to solve. For certain problems, it might also be desirable to specify the mapping ofthe problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the outset if the structure of the problem lends itself to optimization earlier. + +It is also worth considering at this point what the outcome of the particular algorithm will be in preparation for the later execute step - for example, if the desired outcome involves +inferring correlation functions using Hadamard tests, you might prepare to use Sampler; if it involves specifying observables, you would use Estimator. + +The output map is normally a collection of circuits or quantum operators. \ No newline at end of file From 2d74821553746bcdd6135e3b39fa7217944d96fe Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 21:49:24 -0500 Subject: [PATCH 51/82] placeholder optimize --- docs/guides/summary-map.mdx | 2 +- docs/guides/summary-optimize.mdx | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx index 5ca6f81b762..c0ac1f04b87 100644 --- a/docs/guides/summary-map.mdx +++ b/docs/guides/summary-map.mdx @@ -1,6 +1,6 @@ --- title: Introduction to mapping tools -description: +description: Take a classical problem and map it to run on a quantum computer. --- # Introduction to mapping tools diff --git a/docs/guides/summary-optimize.mdx b/docs/guides/summary-optimize.mdx index 65af4430855..21f6604cdf5 100644 --- a/docs/guides/summary-optimize.mdx +++ b/docs/guides/summary-optimize.mdx @@ -1,6 +1,10 @@ --- title: Introduction to optimization tools -description: +description: Introduction to the documentation section on tools for optimizing abstract circuits and operators so they can run on quantum hardware. --- # Introduction to optimization tools + +Optimization tools help to maximize the likelihood of success in the execution of your circuits. Optimizations can include mapping the route and layout of the circuit to physical qubit hardware, converting to the basis gates of the hardware, and reducing the number of operations. + +During this step, abstract circuits must be transpiled to Instruction Set Architecture (ISA) circuits. An ISA circuit is one that consists only of gates understood by the target hardware (basis gates), and any multi-qubit gates needed to obey any connectivity constraints (coupling map). From af9a4c9ccde1831502c6a0d7f5ee2bc6fa10174a Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Thu, 4 Dec 2025 21:54:22 -0500 Subject: [PATCH 52/82] draft for execution intro --- docs/guides/summary-execute.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/guides/summary-execute.mdx b/docs/guides/summary-execute.mdx index f4a742111aa..f0427e0f83d 100644 --- a/docs/guides/summary-execute.mdx +++ b/docs/guides/summary-execute.mdx @@ -1,6 +1,10 @@ --- title: Introduction to execution tools -description: +description: Run circuits on hardware and return output from a quantum computer. --- # Introduction to execution tools + +Execution tools assist with running your circuits on hardware. The ISA circuits produced during transpilation can be executed using either a Sampler or Estimator primitive from Qiskit Runtime, initialized locally on your computer or from a cluster or other heterogeneous compute environment. These can be executed in a batch, which allows parallel transpilation for classical computational efficiency - or a session, which allows iterative tasks to be implemented efficiently without queuing delays. Note: Open Plan users cannot submit session jobs. + +Depending on whether you are using the Sampler or Estimator primitive, the outcome of this step will be different. If using Sampler, the output will be per-shot measurements in the form of bitstrings. If using Estimator, the output will be expectation values of observables corresponding to physical quantities or cost functions. \ No newline at end of file From dca3c78bab365197d9b26fc35120aede6a32aef7 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 10:29:36 -0500 Subject: [PATCH 53/82] Bring prepare task to optimize --- docs/guides/_toc.json | 54 +++++++++++++++------------------ docs/guides/summary-prepare.mdx | 6 ---- qiskit_bot.yaml | 4 --- 3 files changed, 25 insertions(+), 39 deletions(-) delete mode 100644 docs/guides/summary-prepare.mdx diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 7f7d64d4816..040a8d9291d 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -167,35 +167,6 @@ } ] }, - { - "title": "Prepare workloads", - "children":[ - { - "title": "Introduction", - "url": "/docs/guides/summary-prepare" - }, - { - "title": "Workload usage", - "url": "/docs/guides/estimate-job-run-time" - }, - { - "title": "Minimize job run time", - "url": "/docs/guides/minimize-time" - }, - { - "title": "Maximum execution time", - "url": "/docs/guides/max-execution-time" - }, - { - "title": "Job limits", - "url": "/docs/guides/job-limits" - }, - { - "title": "Qubit initialization", - "url": "/docs/guides/repetition-rate-execution" - } - ] - }, { "title": "Optimize circuits", "children":[ @@ -240,6 +211,31 @@ } ] }, + { + "title": "Manage workload execution", + "children":[ + { + "title": "Workload usage", + "url": "/docs/guides/estimate-job-run-time" + }, + { + "title": "Minimize job run time", + "url": "/docs/guides/minimize-time" + }, + { + "title": "Maximum execution time", + "url": "/docs/guides/max-execution-time" + }, + { + "title": "Job limits", + "url": "/docs/guides/job-limits" + }, + { + "title": "Qubit initialization", + "url": "/docs/guides/repetition-rate-execution" + } + ] + }, { "title": "Qiskit Transpiler Service", "children": [ diff --git a/docs/guides/summary-prepare.mdx b/docs/guides/summary-prepare.mdx deleted file mode 100644 index e8d113703fa..00000000000 --- a/docs/guides/summary-prepare.mdx +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Introduction to preparation tools -description: ---- - -# Introduction to preparation tools \ No newline at end of file diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index 471ca90178c..ea8f56715a4 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -446,10 +446,6 @@ notifications: - "@abbycross" - "@beckykd" - "@kaelynj" - "docs/guides/summary-prepare": - - "@abbycross" - - "@beckykd" - - "@kaelynj" "docs/guides/intro-to-patterns": - "@abbycross" - "@beckykd" From 250dcc718c606a0006a341581d17bfb0b83198ab Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 10:37:08 -0500 Subject: [PATCH 54/82] Rename to Task overview --- docs/guides/_toc.json | 12 ++++++------ docs/guides/debugging-tools.mdx | 4 ++-- docs/guides/summary-execute.mdx | 4 ++-- ...ols-manage-noise.mdx => summary-manage-noise.mdx} | 4 ++-- docs/guides/summary-map.mdx | 4 ++-- docs/guides/summary-optimize.mdx | 4 ++-- qiskit_bot.yaml | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) rename docs/guides/{tools-manage-noise.mdx => summary-manage-noise.mdx} (98%) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 040a8d9291d..c95e1b30ad2 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -89,7 +89,7 @@ "title": "Map problem to circuits", "children": [ { - "title": "Introduction", + "title": "Task overview", "url": "/docs/guides/summary-map" }, { @@ -171,7 +171,7 @@ "title": "Optimize circuits", "children":[ { - "title": "Introduction", + "title": "Task overview", "url": "/docs/guides/summary-optimize" }, { @@ -336,7 +336,7 @@ "title": "Debug", "children": [ { - "title": "Introduction to debugging tools", + "title": "Task overview", "url": "/docs/guides/debugging-tools" }, { @@ -390,7 +390,7 @@ "title": "Execute on hardware", "children": [ { - "title": "Introduction", + "title": "Task overview", "url": "/docs/guides/summary-execute" }, { @@ -485,8 +485,8 @@ "title": "Manage noise", "children": [ { - "title": "Introduction", - "url": "/docs/guides/tools-manage-noise" + "title": "Task overview", + "url": "/docs/guides/summary-manage-noise" }, { "title": "Noise learning", diff --git a/docs/guides/debugging-tools.mdx b/docs/guides/debugging-tools.mdx index 384cb371a8e..b53c0d33131 100644 --- a/docs/guides/debugging-tools.mdx +++ b/docs/guides/debugging-tools.mdx @@ -1,8 +1,8 @@ --- -title: Introduction to debugging tools +title: Overview to debugging tools description: Introduction to testing and debugging quantum circuits in Qiskit. --- -# Introduction to debugging tools +# Overview to debugging tools You can test your quantum programs by running them on simulated devices and exploring their performance under realistic device noise models. This allows you to debug them before sending them to a quantum processing unit (QPU). diff --git a/docs/guides/summary-execute.mdx b/docs/guides/summary-execute.mdx index f0427e0f83d..c51d01c1f89 100644 --- a/docs/guides/summary-execute.mdx +++ b/docs/guides/summary-execute.mdx @@ -1,9 +1,9 @@ --- -title: Introduction to execution tools +title: Overview to execution tools description: Run circuits on hardware and return output from a quantum computer. --- -# Introduction to execution tools +# Overview to execution tools Execution tools assist with running your circuits on hardware. The ISA circuits produced during transpilation can be executed using either a Sampler or Estimator primitive from Qiskit Runtime, initialized locally on your computer or from a cluster or other heterogeneous compute environment. These can be executed in a batch, which allows parallel transpilation for classical computational efficiency - or a session, which allows iterative tasks to be implemented efficiently without queuing delays. Note: Open Plan users cannot submit session jobs. diff --git a/docs/guides/tools-manage-noise.mdx b/docs/guides/summary-manage-noise.mdx similarity index 98% rename from docs/guides/tools-manage-noise.mdx rename to docs/guides/summary-manage-noise.mdx index 5086d41bdf4..499ebd2a086 100644 --- a/docs/guides/tools-manage-noise.mdx +++ b/docs/guides/summary-manage-noise.mdx @@ -1,8 +1,8 @@ --- -title: Introduction to noise management tools +title: Overview to noise management tools description: Discover tools that help manage noise through techniques such as error mitigation and suppression, and reducing circuit depth. --- -# Introduction to noise management tools +# Overview to noise management tools ## General noise management techniques diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx index c0ac1f04b87..4f2c1812c86 100644 --- a/docs/guides/summary-map.mdx +++ b/docs/guides/summary-map.mdx @@ -1,9 +1,9 @@ --- -title: Introduction to mapping tools +title: Overview to mapping tools description: Take a classical problem and map it to run on a quantum computer. --- -# Introduction to mapping tools +# Overview to mapping tools Mapping tools assist with mapping a classical problem to circuits and operators, for execution on a quantum computer. diff --git a/docs/guides/summary-optimize.mdx b/docs/guides/summary-optimize.mdx index 21f6604cdf5..5611a4cdec6 100644 --- a/docs/guides/summary-optimize.mdx +++ b/docs/guides/summary-optimize.mdx @@ -1,9 +1,9 @@ --- -title: Introduction to optimization tools +title: Overview to optimization tools description: Introduction to the documentation section on tools for optimizing abstract circuits and operators so they can run on quantum hardware. --- -# Introduction to optimization tools +# Overview to optimization tools Optimization tools help to maximize the likelihood of success in the execution of your circuits. Optimizations can include mapping the route and layout of the circuit to physical qubit hardware, converting to the basis gates of the hardware, and reducing the number of operations. diff --git a/qiskit_bot.yaml b/qiskit_bot.yaml index ea8f56715a4..7557a9bff1e 100644 --- a/qiskit_bot.yaml +++ b/qiskit_bot.yaml @@ -430,7 +430,7 @@ notifications: - "@abbycross" "docs/guides/noise-learning": - "@kaelynj" - "docs/guides/tools-manage-noise": + "docs/guides/summary-manage-noise": - "@abbycross" - "@beckykd" - "@kaelynj" From 1c1f78c79196660b988aa9e3c7a5730a31d51a29 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 10:52:08 -0500 Subject: [PATCH 55/82] add cards --- docs/guides/index.mdx | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index eb270a2be46..62a71c6b071 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -31,6 +31,58 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more ## Tools by task + + + + + + + + + + + + + + + + ### Map problem to circuits - [AQC-Tensor](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits From 87bdcfbb2eaffdd15fb3e4c20f2bf5631755b1ed Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 11:24:18 -0500 Subject: [PATCH 56/82] move links to overview pgs --- docs/guides/index.mdx | 55 -------------------------------- docs/guides/summary-execute.mdx | 8 ++++- docs/guides/summary-map.mdx | 10 +++++- docs/guides/summary-optimize.mdx | 7 ++++ 4 files changed, 23 insertions(+), 57 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index 62a71c6b071..037a8f2511b 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -81,61 +81,6 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more /> - - -### Map problem to circuits - -- [AQC-Tensor](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits -- [Qiskit circuit library](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK standard library of gates and circuit instructions -- [Optimization mapper](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators -- [Quantum optimization best practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads -- [Device benchmarking](/docs/guides/tool-index#device-benchmarking) - -### Prepare and optimize workloads - -- [Transpiler](/docs/guides/tool-index#transpiler) - Translate circuit instructions to execute on quantum hardware, with options for efficient layout and routing -- [Dynamic circuits](/docs/guides/tool-index#dynamic-circuits) - Perform certain tasks, such as long-range entanglement and state preparation, at constant depth -- [Dynamical decoupling](/docs/guides/tool-index#dynamical-decoupling) - Reduce decoherence errors on idle qubits -- [Operator backpropagation](/docs/guides/tool-index#operator-backpropagation) - Reduce circuit depth by trimming operations at the cost of increased measurements - -### Debug - -- [Noisy estimator analyzer tool](/docs/guides/tool-index#noisy-estimator-analyzer-tool) - Gauge the expected performance of quantum workloads -- [Local testing mode](/docs/guides/tool-index#local-testing-mode) - Simulate smaller or Cliffordized circuits to assess performance - - -### Execute on hardware - -- [Estimator and Sampler primitives](/docs/guides/tool-index#tool-index-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support -- [Execution modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution -- [Executor primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on the input samplex directive - -### Manage noise - -- [Samplomatic](/docs/guides/tool-index#samplomatic) - Fine-tune error mitigation in specific circuit regions -- [NoiseLearner](/docs/guides/tool-index#noiselearner) - Learn and return the sparse Pauli-Lindblad noise model, which can be used for error mitigation methods like PEA, PEC, and PNA -- [Pauli twirling](/docs/guides/tool-index#pauli-twirling) - Convert coherent noise to better characterized stochastic noise -- [Matrix-free measurement mitigation](/docs/guides/tool-index#matrix-free-measurement-mitigation) - Reduce measurement errors -- [Probabilistic error cancellation](/docs/guides/tool-index#tool-index-pec) - Mitigate errors by statistically canceling noise, resulting in an unbiased expectation value at the expense of greater overhead -- [Zero-noise extrapolation](/docs/guides/tool-index#zero-noise-extrapolation-zne) - Mitigate errors by amplifying noise and extrapolating corrected expectation values -- [Twirled readout error extinction](/docs/guides/tool-index#twirled-readout-error-extinction-trex) - Use twirling to reduce measurement error -- [Propagated noise absorption](/docs/guides/tool-index#propagated-noise-absorption) - Characterize and propagate the effects of noise into an observable -- [Shaded lightcones](/docs/guides/tool-index#shaded-lightcones) - Reduce the overhead of PEC error mitigation - -### Post-process results - -- [Sample-based quantum diagonalization](/docs/guides/tool-index#sample-based-quantum-diagonalization) - Post-process samples to refine results in simulation workloads -- [Multi-product formulas](/docs/guides/tool-index#multi-product-formulas) - Refine expectation values in workloads simulating time evolution -- [Measurement post-selection](/docs/guides/tool-index#measurement-post-selection) - Refine samples by post-selecting known "bad" bitstrings - -### Qiskit Functions - -- [Algorithmiq Tensor-Network Error Mitigation Function](/docs/guides/tool-index#algorithmiq-tensor-network-error-mitigation-function) -- [Q-CTRL Performance Management Function](/docs/guides/tool-index#q-ctrl-performance-management-function) -- [QEDMA Qiskit Function QESEM](/docs/guides/tool-index#qedma-qiskit-function-qesem) -- [Q-CTRL Optimization Solver](/docs/guides/tool-index#q-ctrl-optimization-solver) - - ## Support Date: Fri, 5 Dec 2025 11:31:51 -0500 Subject: [PATCH 57/82] spelling --- docs/guides/summary-map.mdx | 2 +- docs/guides/tool-index.mdx | 4 ++-- scripts/config/cspell/dictionaries/qiskit.txt | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx index 27e36dfc3b7..6ede53ae1bf 100644 --- a/docs/guides/summary-map.mdx +++ b/docs/guides/summary-map.mdx @@ -7,7 +7,7 @@ description: Take a classical problem and map it to run on a quantum computer. Mapping tools assist with mapping a classical problem to circuits and operators, for execution on a quantum computer. -In applications such as chemistry and quantum simulation, mapping generally involves constructing a quantum circuit representing the Hamiltonian you are attempting to solve. For certain problems, it might also be desirable to specify the mapping ofthe problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the outset if the structure of the problem lends itself to optimization earlier. +In applications such as chemistry and quantum simulation, mapping generally involves constructing a quantum circuit representing the Hamiltonian you are attempting to solve. For certain problems, it might also be desirable to specify the mapping of the problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the outset if the structure of the problem lends itself to optimization earlier. It is also worth considering at this point what the outcome of the particular algorithm will be in preparation for the later execute step - for example, if the desired outcome involves inferring correlation functions using Hadamard tests, you might prepare to use Sampler; if it involves specifying observables, you would use Estimator. diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 35581bf9d40..9716249e0ee 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -72,7 +72,7 @@ To get started building quantum workloads to solve optimization problems, refer ### Device benchmarking
-Qiskit device benchmarking is a respository for code to run various device-level benchmarks through Qiskit. It is not intended to define a benchmark standard, but instead provides code examples to replicate benchmarking metrics that have been reported in literature or elsewhere. +Qiskit device benchmarking is a repository for code to run various device-level benchmarks through Qiskit. It is not intended to define a benchmark standard, but instead provides code examples to replicate benchmarking metrics that have been reported in literature or elsewhere.
*Relevant links:* @@ -443,7 +443,7 @@ Relevant docs links: ### QEDMA Qiskit Function QESEM
-The QESEM Qiskit Functioon by QEDMA uses a suite of proprietary error mitigation techniques to improve the results of your workload. These techniques include gate optimization, noise-aware transpilation, error suppression, and unbiased error mitigation. +The QESEM Qiskit Function by QEDMA uses a suite of proprietary error mitigation techniques to improve the results of your workload. These techniques include gate optimization, noise-aware transpilation, error suppression, and unbiased error mitigation.
**Relevant resources** diff --git a/scripts/config/cspell/dictionaries/qiskit.txt b/scripts/config/cspell/dictionaries/qiskit.txt index 98f6c2e3f08..519ec8f778d 100644 --- a/scripts/config/cspell/dictionaries/qiskit.txt +++ b/scripts/config/cspell/dictionaries/qiskit.txt @@ -241,6 +241,7 @@ litellm lnot lqiskit mapomatic +Markovian mathbb mathbf mathcal From 2c42cb0b86cb6901f047b5461e17cd2ccbdb03c1 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 11:47:45 -0500 Subject: [PATCH 58/82] Rmv post-process results --- docs/guides/tool-index.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 9716249e0ee..aece12ba35d 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -366,8 +366,6 @@ The shaded lightcones (SLC) Qiskit addon uses Pauli propagation to reduce the nu - [SLC documentation page](https://qiskit.github.io/qiskit-addon-slc/) - [`qiskit-addon-slc` GitHub repo](https://github.ibm.com/ibm-q-research/qiskit-addon-slc) -## Post-process results - ### Sample-based quantum diagonalization
From b0c0ed135bac92b33e775984ade37adb5cbf0172 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 12:01:05 -0500 Subject: [PATCH 59/82] remove patterns index check --- .github/workflows/main.yml | 2 - check | 1 - docs/guides/summary-manage-noise.mdx | 2 + mdx-guide.md | 1 - package.json | 3 +- scripts/js/commands/checkPatternsIndex.ts | 262 ---------------------- 6 files changed, 3 insertions(+), 268 deletions(-) delete mode 100644 scripts/js/commands/checkPatternsIndex.ts diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 56abf959df6..f27306639b8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -38,8 +38,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 diff --git a/check b/check index b3206237f99..5af531065db 100755 --- a/check +++ b/check @@ -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"], diff --git a/docs/guides/summary-manage-noise.mdx b/docs/guides/summary-manage-noise.mdx index 499ebd2a086..9d46f677ee4 100644 --- a/docs/guides/summary-manage-noise.mdx +++ b/docs/guides/summary-manage-noise.mdx @@ -4,6 +4,8 @@ description: Discover tools that help manage noise through techniques such as er --- # Overview to noise management tools +When executing quantum workloads, there are multiple ways to reduce the impact of noise. The open-source Qiskit addons provide error mitigation and suppression techniques that integrate directly into your development workflow, while Qiskit Runtime applies advanced error mitigation strategies automatically when jobs are submitted for execution. This page indexes all available tools and features across both options to help choose the right approach to manage noise when building quantum workloads. + ## General noise management techniques ### AQC-Tensor diff --git a/mdx-guide.md b/mdx-guide.md index 7d886af550b..c3a831338a7 100644 --- a/mdx-guide.md +++ b/mdx-guide.md @@ -19,7 +19,6 @@ If your file will have non-trivial code in it, please create a Jupyter notebook Add the file to these places: -- The appropriate "index" page in the Development workflow section, such as `guides/map-problem-to-circuits` AND the Tools section in the `_toc.json` file. Or, in the rare case that it doesn't belong on any of these pages, list it in `scripts/js/commands/checkPatternsIndex.ts` in the ALLOWLIST_MISSING_FROM_INDEX or the ALLOWLIST_MISSING_FROM_TOC section. For example, `"/guides/qiskit-code-assistant"`. - qiskit_bot.yaml. Everyone listed under the file name is notified any time the file is updated. If someone wants to be listed as an owner but does not want to receive notifications, put their ID in single quotes. For example, - "`@NoNotifications`" - The folder's `_toc.json`, such as `guides/_toc.json`. The `title` will show up in the left side bar. Note that the `url` leaves off the file extension. If you want a "New" pill to appear next to the page in the side bar, add `"isNew": true` and `"isNewDate:"YYYY-MM-DD"`with the page's publish date to that page's entry. > [!NOTE] diff --git a/package.json b/package.json index c643050778c..6abdf4e6424 100644 --- a/package.json +++ b/package.json @@ -15,14 +15,13 @@ "fmt": "prettier --write .", "test": "playwright test", "typecheck": "tsc", - "check": "npm run check:patterns-index && npm run check:qiskit-bot && npm run check:markdown && npm run check:orphan-pages && npm run check:spelling && npm run check:internal-links", + "check": "npm run check:qiskit-bot && npm run check:markdown && npm run check:orphan-pages && npm run check:spelling && npm run check:internal-links", "check:markdown": "tsx scripts/js/commands/checkMarkdown.ts", "check:spelling": "tsx scripts/js/commands/checkSpelling.ts", "check:fmt": "prettier --check .", "check:internal-links": "tsx scripts/js/commands/checkInternalLinks.ts", "check:external-links": "tsx scripts/js/commands/checkExternalLinks.ts", "check:pages-render": "tsx scripts/js/commands/checkPagesRender.ts", - "check:patterns-index": "tsx scripts/js/commands/checkPatternsIndex.ts", "check:orphan-pages": "tsx scripts/js/commands/checkOrphanPages.ts", "check:qiskit-bot": "tsx scripts/js/commands/checkQiskitBotFiles.ts", "check:stale-images": "tsx scripts/js/commands/checkStaleImages.ts", diff --git a/scripts/js/commands/checkPatternsIndex.ts b/scripts/js/commands/checkPatternsIndex.ts deleted file mode 100644 index 38253454cc6..00000000000 --- a/scripts/js/commands/checkPatternsIndex.ts +++ /dev/null @@ -1,262 +0,0 @@ -// This code is a Qiskit project. -// -// (C) Copyright IBM 2024. -// -// This code is licensed under the Apache License, Version 2.0. You may -// obtain a copy of this license in the LICENSE file in the root directory -// of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. -// -// Any modifications or derivative works of this code must retain this -// copyright notice, and modified files need to carry a notice indicating -// that they have been altered from the originals. - -import { readFile } from "fs/promises"; - -import type { TocEntry } from "../lib/api/generateToc.js"; -import { readJsonFile } from "../lib/fs"; - -// URLs that show up in the left ToC under the `Tools` section, but are not in -// any of the INDEX_PAGES. -const ALLOWLIST_MISSING_FROM_INDEX: Set = new Set([ - "/docs/guides/qiskit-code-assistant", - "/docs/guides/qiskit-code-assistant-jupyterlab", - "/docs/guides/qiskit-code-assistant-vscode", - "/docs/guides/qiskit-code-assistant-local", - "/docs/guides/addons", - "/docs/guides/overview-qiskit-sdk", - "/docs/guides/function-template-hamiltonian-simulation", - "/docs/guides/qiskit-addons-utils", - "/docs/guides/qiskit-code-assistant-openai-api", - "/docs/guides/manage-cost", - "/docs/guides/execution-modes-faq", - "/docs/guides/faq", - "/docs/guides/execution-modes-faq", - "/docs/guides/open-source", -]); - -// URLs that show up in the INDEX_PAGES, but are not in the left ToC under -// the `Tools` section. -// -// Note that `checkOrphanPages.tsx` will validate these -// pages do show up somewhere in the ToC, they only might be in a different -// section than `Tools.` -const ALLOWLIST_MISSING_FROM_TOC: Set = new Set([ - "/docs/guides/q-ctrl-optimization-solver", - "/docs/guides/kipu-optimization", - "/docs/guides/multiverse-computing-singularity", - "/docs/guides/global-data-quantum-optimizer", - "/docs/guides/colibritd-pde", - "/docs/guides/qunova-chemistry", - "/docs/guides/manage-cost", - "/docs/guides/instances", - "/docs/guides/access-instances-platform-apis", - "/docs/guides/cloud-setup", - "/docs/guides/initialize-account", - "/docs/guides/save-credentials", - "/docs/guides/cloud-setup-untrusted", - "/docs/guides/cloud-setup-invited", - "/docs/guides/cloud-setup-rest-api", - "/docs/guides/execution-modes-faq", -]); - -// URLs that show up in the INDEX_PAGES >1 time. -const ALLOWLIST_DUPLICATE_ENTRIES: Set = new Set([]); - -const INDEX_PAGE_URLS: Set = new Set([ - "/docs/guides/map-problem-to-circuits", - "/docs/guides/optimize-for-hardware", - "/docs/guides/execute-on-hardware", - "/docs/guides/post-process-results", - "/docs/guides/intro-to-patterns", -]); - -const INDEX_PAGE_FILES = Array.from(INDEX_PAGE_URLS).map( - // We remove the initial `/` to make the path relative - (page) => `${page.substring(1)}.mdx`, -); -const TOC_PATH = "docs/guides/_toc.json"; - -async function getIndexEntries(indexPath: string): Promise { - const rawIndex = await readFile(indexPath, "utf-8"); - const result: string[] = []; - // The index page has several unordered lists starting with *, each with links to other pages. - // We want to get every slug from those lists. Note that we don't care which list the slugs show - // up in - we only care if the slug shows up at all anywhere. - for (const line of rawIndex.split("\n")) { - if (!line.trimStart().startsWith("* ")) { - continue; - } - - const slug = extractPageSlug(line); - if (slug) { - result.push(slug); - } - } - - return result; -} - -function extractPageSlug(text: string): string | undefined { - const re = /\((.*)\)/gm; - // Ex: '* [Circuit library](./circuit-library)'. - const match = re.exec(text); - if (!match) { - // Nested sections don't have any link - return undefined; - } - const pageSlug = match[1]; - if (pageSlug.startsWith("http") || pageSlug.startsWith("/")) { - return pageSlug; - } - const page = pageSlug.split("/").pop(); - return `/docs/guides/${page}`; -} - -function getTocSectionPageNames(sectionNode: TocEntry): string[] { - let results = []; - if (sectionNode.url) { - results.push(sectionNode.url); - } - - if (sectionNode.children) { - for (const child of sectionNode.children) { - results.push(...getTocSectionPageNames(child)); - } - } - - return results; -} - -async function getToolsTocEntriesToCheck(): Promise { - const toc = await readJsonFile(TOC_PATH); - const toolsNode = toc.children.find( - (child: TocEntry) => child.title == "Tools", - ); - const toolsPages = getTocSectionPageNames(toolsNode); - return toolsPages.filter((page) => !ALLOWLIST_MISSING_FROM_INDEX.has(page)); -} - -async function deduplicateEntries( - filePath: string, - entries: string[], -): Promise<[Set, string[]]> { - const deduplicatedPages: Set = new Set(); - const errors: string[] = []; - - for (const entry of entries) { - if ( - deduplicatedPages.has(entry) && - !ALLOWLIST_DUPLICATE_ENTRIES.has(entry) - ) { - errors.push(`❌ ${filePath}: The entry ${entry} is duplicated`); - } else { - deduplicatedPages.add(entry); - } - } - - return [deduplicatedPages, errors]; -} - -function getExtraIndexPagesErrors( - indexPage: string, - indexEntries: Set, - toolsEntries: Set, -): string[] { - return [...indexEntries] - .filter( - (page) => - !toolsEntries.has(page) && - !ALLOWLIST_MISSING_FROM_TOC.has(page) && - !INDEX_PAGE_URLS.has(page), - ) - .map( - (page) => - `❌ ${indexPage}: The entry ${page} doesn't appear in the \`Tools\` menu.`, - ); -} - -function getExtraToolsEntriesErrors( - remainingToolsEntries: Set, -): string[] { - return [...remainingToolsEntries].map( - (page) => `❌ The entry ${page} is not present on any index page`, - ); -} - -function maybePrintErrorsAndFail( - duplicatesErrors: string[], - extraIndexEntriesErrors: string[], - extraToolsEntriesErrors: string[], -): void { - let allGood = true; - - if (duplicatesErrors.length > 0) { - duplicatesErrors.forEach((error) => console.error(error)); - console.error( - `\nRemove all duplicated entries on the indices and in the Tools menu, which is set in docs/guides/_toc.json.`, - ); - console.error("--------\n"); - allGood = false; - } - - if (extraIndexEntriesErrors.length > 0) { - extraIndexEntriesErrors.forEach((error) => console.error(error)); - console.error( - `\nMake sure all pages have an entry in the Tools menu, which is set in docs/guides/_toc.json.`, - ); - console.error("--------\n"); - allGood = false; - } - - if (extraToolsEntriesErrors.length > 0) { - extraToolsEntriesErrors.forEach((error) => console.error(error)); - console.error( - "\nAdd the entries in one of the following index pages, or add the URL to the `IGNORED_URLS` list at the beginning of `/scripts/js/commands/checkPatternsIndex.tsx` if it's not used in Workflow:", - ); - INDEX_PAGE_FILES.forEach((index) => console.error(`\t➡️ ${index}`)); - allGood = false; - } - - if (!allGood) { - process.exit(1); - } -} - -async function main() { - const toolsAllEntries = await getToolsTocEntriesToCheck(); - let [toolsEntries, duplicatesErrors] = await deduplicateEntries( - TOC_PATH, - toolsAllEntries, - ); - - let extraIndexEntriesErrors: string[] = []; - for (const indexPage of INDEX_PAGE_FILES) { - const indexAllEntries = await getIndexEntries(indexPage); - let [indexEntries, indexDuplicatedErrors] = await deduplicateEntries( - indexPage, - indexAllEntries, - ); - duplicatesErrors.push(...indexDuplicatedErrors); - - extraIndexEntriesErrors.push( - ...getExtraIndexPagesErrors(indexPage, indexEntries, toolsEntries), - ); - - toolsEntries.forEach((page) => { - if (indexEntries.has(page)) { - toolsEntries.delete(page); - } - }); - } - - const extraToolsEntriesErrors = getExtraToolsEntriesErrors(toolsEntries); - - maybePrintErrorsAndFail( - duplicatesErrors, - extraIndexEntriesErrors, - extraToolsEntriesErrors, - ); - console.log("\n✅ No missing or duplicated pages were found\n"); -} - -main().then(() => process.exit()); From a730cb4a1fd7c51674c076ca2cc56fb29c8e08f2 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 12:05:12 -0500 Subject: [PATCH 60/82] Functions descript --- docs/guides/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index 037a8f2511b..c9686ede1a3 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -74,7 +74,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more Date: Fri, 5 Dec 2025 12:17:25 -0500 Subject: [PATCH 61/82] rmv unused images --- ...298055b0-d979-4527-af10-8fe3f211d9de-1.svg | 1 - ...300f3be9-d358-441b-b860-689ce2583f45-1.svg | 1 - ...3d503e04-806f-4cc5-af79-9a335856d735-1.svg | 1 - ...493ddc1a-62f6-44c9-ae52-51c24a505ec8-1.svg | 1 - ...5e83aa2b-a0f8-43b3-a8d5-4569c7b06c61-0.svg | 1 - ...61ebd003-c9e3-48ca-9df3-b1c676bbd94a-0.svg | 1 - ...77762b02-af9d-4bd7-b2f5-71938e20b356-1.svg | 1 - ...7b6f5f69-9e27-42fb-a37f-b62d76d0da40-0.svg | 1 - ...90c68fb2-6ed5-41f3-a4f8-f73e92367c4c-0.svg | 1 - ...a47b526c-957b-40f5-a556-302e936a4694-0.svg | 1 - ...b28bb363-5b77-471e-9ec7-79e9c9394096-1.svg | 1 - ...c08405d1-302d-41fa-a6a4-58becd557541-1.svg | 1 - ...dbf45d14-a643-4616-bbe1-7ff83f2cfc70-1.svg | 1 - ...edb9c3d3-7ef6-4226-a58e-5406bed352a7-1.svg | 1 - .../docs/images/qiskit-patterns/execute.svg | 69 ------------------- .../images/qiskit-patterns/map-problem.svg | 69 ------------------- .../docs/images/qiskit-patterns/optimize.svg | 69 ------------------- .../qiskit-patterns/post-process-results.svg | 69 ------------------- 18 files changed, 290 deletions(-) delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/298055b0-d979-4527-af10-8fe3f211d9de-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/300f3be9-d358-441b-b860-689ce2583f45-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/3d503e04-806f-4cc5-af79-9a335856d735-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/493ddc1a-62f6-44c9-ae52-51c24a505ec8-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/5e83aa2b-a0f8-43b3-a8d5-4569c7b06c61-0.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/61ebd003-c9e3-48ca-9df3-b1c676bbd94a-0.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/77762b02-af9d-4bd7-b2f5-71938e20b356-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/7b6f5f69-9e27-42fb-a37f-b62d76d0da40-0.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/90c68fb2-6ed5-41f3-a4f8-f73e92367c4c-0.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/a47b526c-957b-40f5-a556-302e936a4694-0.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/b28bb363-5b77-471e-9ec7-79e9c9394096-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/c08405d1-302d-41fa-a6a4-58becd557541-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/dbf45d14-a643-4616-bbe1-7ff83f2cfc70-1.svg delete mode 100644 public/docs/images/guides/pulse/extracted-outputs/edb9c3d3-7ef6-4226-a58e-5406bed352a7-1.svg delete mode 100644 public/docs/images/qiskit-patterns/execute.svg delete mode 100644 public/docs/images/qiskit-patterns/map-problem.svg delete mode 100644 public/docs/images/qiskit-patterns/optimize.svg delete mode 100644 public/docs/images/qiskit-patterns/post-process-results.svg diff --git a/public/docs/images/guides/pulse/extracted-outputs/298055b0-d979-4527-af10-8fe3f211d9de-1.svg b/public/docs/images/guides/pulse/extracted-outputs/298055b0-d979-4527-af10-8fe3f211d9de-1.svg deleted file mode 100644 index 407f7a959ba..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/298055b0-d979-4527-af10-8fe3f211d9de-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/300f3be9-d358-441b-b860-689ce2583f45-1.svg b/public/docs/images/guides/pulse/extracted-outputs/300f3be9-d358-441b-b860-689ce2583f45-1.svg deleted file mode 100644 index 6d208fe207e..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/300f3be9-d358-441b-b860-689ce2583f45-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/3d503e04-806f-4cc5-af79-9a335856d735-1.svg b/public/docs/images/guides/pulse/extracted-outputs/3d503e04-806f-4cc5-af79-9a335856d735-1.svg deleted file mode 100644 index d139019dc99..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/3d503e04-806f-4cc5-af79-9a335856d735-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/493ddc1a-62f6-44c9-ae52-51c24a505ec8-1.svg b/public/docs/images/guides/pulse/extracted-outputs/493ddc1a-62f6-44c9-ae52-51c24a505ec8-1.svg deleted file mode 100644 index b71420d5ef5..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/493ddc1a-62f6-44c9-ae52-51c24a505ec8-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/5e83aa2b-a0f8-43b3-a8d5-4569c7b06c61-0.svg b/public/docs/images/guides/pulse/extracted-outputs/5e83aa2b-a0f8-43b3-a8d5-4569c7b06c61-0.svg deleted file mode 100644 index 48a651183d4..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/5e83aa2b-a0f8-43b3-a8d5-4569c7b06c61-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/61ebd003-c9e3-48ca-9df3-b1c676bbd94a-0.svg b/public/docs/images/guides/pulse/extracted-outputs/61ebd003-c9e3-48ca-9df3-b1c676bbd94a-0.svg deleted file mode 100644 index aa261107dca..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/61ebd003-c9e3-48ca-9df3-b1c676bbd94a-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/77762b02-af9d-4bd7-b2f5-71938e20b356-1.svg b/public/docs/images/guides/pulse/extracted-outputs/77762b02-af9d-4bd7-b2f5-71938e20b356-1.svg deleted file mode 100644 index 6d3c8d49603..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/77762b02-af9d-4bd7-b2f5-71938e20b356-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/7b6f5f69-9e27-42fb-a37f-b62d76d0da40-0.svg b/public/docs/images/guides/pulse/extracted-outputs/7b6f5f69-9e27-42fb-a37f-b62d76d0da40-0.svg deleted file mode 100644 index 424c8c3240b..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/7b6f5f69-9e27-42fb-a37f-b62d76d0da40-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/90c68fb2-6ed5-41f3-a4f8-f73e92367c4c-0.svg b/public/docs/images/guides/pulse/extracted-outputs/90c68fb2-6ed5-41f3-a4f8-f73e92367c4c-0.svg deleted file mode 100644 index 9ed08281a48..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/90c68fb2-6ed5-41f3-a4f8-f73e92367c4c-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/a47b526c-957b-40f5-a556-302e936a4694-0.svg b/public/docs/images/guides/pulse/extracted-outputs/a47b526c-957b-40f5-a556-302e936a4694-0.svg deleted file mode 100644 index e26117158b3..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/a47b526c-957b-40f5-a556-302e936a4694-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/b28bb363-5b77-471e-9ec7-79e9c9394096-1.svg b/public/docs/images/guides/pulse/extracted-outputs/b28bb363-5b77-471e-9ec7-79e9c9394096-1.svg deleted file mode 100644 index 9028ba9d710..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/b28bb363-5b77-471e-9ec7-79e9c9394096-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/c08405d1-302d-41fa-a6a4-58becd557541-1.svg b/public/docs/images/guides/pulse/extracted-outputs/c08405d1-302d-41fa-a6a4-58becd557541-1.svg deleted file mode 100644 index 83d4ae9e239..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/c08405d1-302d-41fa-a6a4-58becd557541-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/dbf45d14-a643-4616-bbe1-7ff83f2cfc70-1.svg b/public/docs/images/guides/pulse/extracted-outputs/dbf45d14-a643-4616-bbe1-7ff83f2cfc70-1.svg deleted file mode 100644 index 7a8f32cd685..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/dbf45d14-a643-4616-bbe1-7ff83f2cfc70-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/guides/pulse/extracted-outputs/edb9c3d3-7ef6-4226-a58e-5406bed352a7-1.svg b/public/docs/images/guides/pulse/extracted-outputs/edb9c3d3-7ef6-4226-a58e-5406bed352a7-1.svg deleted file mode 100644 index 2da8f87db25..00000000000 --- a/public/docs/images/guides/pulse/extracted-outputs/edb9c3d3-7ef6-4226-a58e-5406bed352a7-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/docs/images/qiskit-patterns/execute.svg b/public/docs/images/qiskit-patterns/execute.svg deleted file mode 100644 index ad1cce0246e..00000000000 --- a/public/docs/images/qiskit-patterns/execute.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/docs/images/qiskit-patterns/map-problem.svg b/public/docs/images/qiskit-patterns/map-problem.svg deleted file mode 100644 index dec4d6be3e4..00000000000 --- a/public/docs/images/qiskit-patterns/map-problem.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/docs/images/qiskit-patterns/optimize.svg b/public/docs/images/qiskit-patterns/optimize.svg deleted file mode 100644 index 0d2335be8a6..00000000000 --- a/public/docs/images/qiskit-patterns/optimize.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/docs/images/qiskit-patterns/post-process-results.svg b/public/docs/images/qiskit-patterns/post-process-results.svg deleted file mode 100644 index 5faf47efbcc..00000000000 --- a/public/docs/images/qiskit-patterns/post-process-results.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 57539e09159e3c4741654d7290556e7a97bdbc4e Mon Sep 17 00:00:00 2001 From: Arnau Casau I Playa Date: Fri, 5 Dec 2025 18:37:56 +0100 Subject: [PATCH 62/82] Ignore pulse link --- scripts/js/lib/links/ignores.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/js/lib/links/ignores.ts b/scripts/js/lib/links/ignores.ts index c05e74b1358..35f5daff66f 100644 --- a/scripts/js/lib/links/ignores.ts +++ b/scripts/js/lib/links/ignores.ts @@ -174,6 +174,11 @@ const ALWAYS_IGNORED_URLS__SHOULD_FIX: string[] = [ "https://www.cs.bham.ac.uk/~xin/papers/published_tec_sep00_constraint.pdf", "https://docs.q-ctrl.com/fire-opal/discover/hardware-providers/how-to-authenticate-with-ibm-credentials", "https://www.globaldataquantum.com/en/quantum-portfolio-optimizer/#form", + + // The pulse guide was removed in https://github.com/Qiskit/documentation/pull/4251 and should be fixed + // in the Qiskit latest, dev, and some historical versions. In the meantime, the app will redirect the + // page to pulse-migration so the links are not broken. + "/docs/guides/pulse", ]; export const ALWAYS_IGNORED_URLS = new Set([ From 796c750454a28e4deb294b5025d59fb21f057438 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Fri, 5 Dec 2025 16:28:37 -0500 Subject: [PATCH 63/82] table for Jessie --- docs/guides/summary-manage-noise.mdx | 60 ++++++++++------------------ 1 file changed, 20 insertions(+), 40 deletions(-) diff --git a/docs/guides/summary-manage-noise.mdx b/docs/guides/summary-manage-noise.mdx index 9d46f677ee4..3f3e93e6896 100644 --- a/docs/guides/summary-manage-noise.mdx +++ b/docs/guides/summary-manage-noise.mdx @@ -7,52 +7,32 @@ description: Discover tools that help manage noise through techniques such as er When executing quantum workloads, there are multiple ways to reduce the impact of noise. The open-source Qiskit addons provide error mitigation and suppression techniques that integrate directly into your development workflow, while Qiskit Runtime applies advanced error mitigation strategies automatically when jobs are submitted for execution. This page indexes all available tools and features across both options to help choose the right approach to manage noise when building quantum workloads. ## General noise management techniques - -### AQC-Tensor -The [AQC-Tensor](/docs/guides/qiskit-addons-aqc) addon enables users to compile the initial portion of a circuit into a nearly equivalent approximation of that circuit, but with much fewer layers. [Get started with AQC-Tensor.](/docs/guides/qiskit-addons-aqc-get-started) - -### Directed execution model (beta) -The [directed execution model](/docs/guides/directed-execution-model), currently in beta release, provides the ingredients to capture design intents on the client side, and shifts the costly generation of circuit variants to the server side, so that you can fine-tune error mitigation and other techniques without sacrificing performance. - -### Dynamical decoupling -[Dynamical decoupling](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) inserts pulse sequences on idling qubits to try to mitigate coherence errors caused by unwanted interactions between qubits during circuit execution. Enable this technique by setting [`DynamicalDecouplingOptions`](/docs/api/qiskit-ibm-runtime/options-dynamical-decoupling-options) to `True`. - -### Pauli twirling -[Pauli twirling](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling) is a noise tailoring technique that transforms any quantum channel into a Pauli channel. It is often combined with other error mitigation techniques that work well with Pauli noise. Enable this technique in the Qiskit Runtime options by setting `enable_gates` and `enable_measure` to `True` in the [twirling options.](/docs/api/qiskit-ibm-runtime/options-twirling-options) +| Tool | How to enable | +| --- | --- | +| [**AQC-Tensor Qiskit addon**](https://qiskit.github.io/qiskit-addon-aqc-tensor/)
  • Enables users to compile the initial portion of a circuit into a nearly equivalent approximation of that circuit, but with much fewer layers.
| | +| [**Directed execution model (beta)**](/docs/guides/directed-execution-model)
  • Provides the ingredients to capture design intents on the client side, and shifts the costly generation of circuit variants to the server side, so that you can fine-tune error mitigation and other techniques without sacrificing performance.
| | +| [**Dynamical decoupling**](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling)
  • Inserts pulse sequences on idling qubits to try to mitigate coherence errors caused by unwanted interactions between qubits during circuit execution.
| Set [`DynamicalDecouplingOptions`](/docs/api/qiskit-ibm-runtime/options-dynamical-decoupling-options) to `True`| +| [**Pauli twirling**](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling)
  • Noise tailoring technique that transforms any quantum channel into a Pauli channel. It is often combined with other error mitigation techniques that work well with Pauli noise.
| In Qiskit Runtime options, set `enable_gates` and `enable_measure` to `True` in the [twirling options](/docs/api/qiskit-ibm-runtime/options-twirling-options) | ## Error mitigation for expectation values -### Operator backpropagation -The [Operator backpropagation (OBP)](/docs/guides/qiskit-addons-obp) addon uses a method based on Clifford perturbation theory to reduce circuit depth by trimming operations from its end at the cost of more operator measurements. [Get started with OBP.](/docs/guides/qiskit-addons-obp-get-started) - -### Probabilistic error amplification -[Probabilistic error amplification (PEA)](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) is a sophisticated ZNE technique that involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification. To enable PEA, enable ZNE by setting `zne_mitigation` to `True` and set `zne.amplifier` to `pea` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. - -### Probabilistic error cancellation -[Probabilistic error cancellation (PEC)](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec) returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. To enable PEC, set `pec_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. - -### Propagated noise absorption -[Propagated noise absorption (PNA)](https://qiskit.github.io/qiskit-addon-pna/) is a technique for mitigating errors in observable expectation values by “absorbing” the inverses of the learned noise channels into the observable using [Pauli propagation.](https://qiskit.github.io/pauli-prop/) Each Pauli noise generator in the noise model is classically propagated to the end of the circuit and applied to the observable, resulting in a new observable that when measured on a QPU, mitigates the learned gate noise. - -### Shaded lightcones -The [Shaded lightcones (SLC)](https://qiskit.github.io/qiskit-addon-slc/) uses Pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. This new Qiskit addon is most useful for reducing the sampling overhead for running PEC-based workloads. - -### Twirled readout error extinction -[Twirled readout error extinction (TREX)](/docs/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex) mitigates the effect of measurement errors for the estimation of Pauli observable expectation values. Enable TREX by setting `measure_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. - -### Zero-noise extrapolation -[Zero-noise extrapolation (ZNE)](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) is an error mitigation technique that first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. To enable ZNE, set `zne_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator. +| Tool | How to enable | +| --- | --- | +| [**Operator backpropagation (OBP) Qiskit addon**](https://qiskit.github.io/qiskit-addon-obp/)
  • Uses a method based on Clifford perturbation theory to reduce circuit depth by trimming operations from its end at the cost of more operator measurements.
| +|[**Probabilistic error amplification (PEA)**](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea)
  • ZNE technique that involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification.
|Set `zne_mitigation` to `True`; set `zne.amplifier` to `pea` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator| +| [**Probabilistic error cancellation (PEC)**](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec)
  • Returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination.
|Set `pec_mitigation` to `True` in Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator | +|[**Propagated noise absorption (PNA)**](https://qiskit.github.io/qiskit-addon-pna/)
  • Technique for mitigating errors in observable expectation values by "absorbing" the inverses of the learned noise channels into the observable using [Pauli propagation.](https://qiskit.github.io/pauli-prop/) Each Pauli noise generator in the noise model is classically propagated to the end of the circuit and applied to the observable, resulting in a new observable that when measured on a QPU, mitigates the learned gate noise
| | +|[**Shaded lightcones (SLC)**](https://qiskit.github.io/qiskit-addon-slc/)
  • Uses Pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. Useful for reducing the sampling overhead for running PEC-based workloads.
|| +|[**Twirled readout error extinction (TREX)**](/docs/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex)
  • Mitigates the effect of measurement errors for the estimation of Pauli observable expectation values.
|Set `measure_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator| +|[**Zero-noise extrapolation (ZNE)**](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne)
  • Error mitigation technique that first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit.
| Set `zne_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator| ## Error mitigation for sampling results -### Mthree -The [mthree (M3)](https://qiskit.github.io/qiskit-addon-mthree/) addon is a package for scalable quantum measurement error mitigation that need not explicitly form the assignment matrix, or its inverse, as is thus a matrix-free measurement mitigation routine. - -### Sample-based quantum diagonalization -The [sample-based quantum diagonalization (SQD)](https://github.com/Qiskit/qiskit-addon-sqd) addon implements a technique for finding eigenvalues and eigenvectors of quantum operators, such as a quantum system Hamiltonian, using quantum and distributed classical computing together. - -### Sample-based quantum diagonalization (HPC-ready) -The [SQD (HPC-ready)](https://qiskit.github.io/qiskit-addon-sqd-hpc/) addon is an HPC-ready implementation of the [Qiskit addon for SQD.](https://github.com/Qiskit/qiskit-addon-sqd) [Get started with SQD.](https://qiskit.github.io/documentation/pr-4251/docs/guides/qiskit-addons-sqd-get-started) +| Tool | How to enable | +| --- | --- | +|[**mthree (M3) Qiskit addon**](https://qiskit.github.io/qiskit-addon-mthree/)
  • Package for scalable quantum measurement error mitigation that need not explicitly form the assignment matrix, or its inverse, and is thus a matrix-free measurement mitigation routine.
| | +|[**Sample-based quantum diagonalization (SQD) Qiskit addon**](https://qiskit.github.io/qiskit-addon-sqd/)
  • Implements a technique for finding eigenvalues and eigenvectors of quantum operators, such as a quantum system Hamiltonian, using quantum and distributed classical computing together.
| | +|[**Sample-based quantum diagonalization (HPC-ready) Qiskit addon**](https://qiskit.github.io/qiskit-addon-sqd-hpc/)
  • HPC-ready implementation of the [Qiskit addon for SQD.](https://qiskit.github.io/qiskit-addon-sqd/)
| | ## Next steps From f9d9337e34ae0ba96b9fa594df86f0f72d4aa79d Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 8 Dec 2025 10:33:53 -0500 Subject: [PATCH 64/82] Apply suggestions from code review Co-authored-by: Kaelyn Ferris <43348706+kaelynj@users.noreply.github.com> --- docs/guides/summary-execute.mdx | 2 +- docs/guides/summary-map.mdx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/summary-execute.mdx b/docs/guides/summary-execute.mdx index 8131bd6cb22..ce232db7c08 100644 --- a/docs/guides/summary-execute.mdx +++ b/docs/guides/summary-execute.mdx @@ -5,7 +5,7 @@ description: Run circuits on hardware and return output from a quantum computer. # Overview to execution tools -Execution tools assist with running your circuits on hardware. The ISA circuits produced during transpilation can be executed using either a Sampler or Estimator primitive from Qiskit Runtime, initialized locally on your computer or from a cluster or other heterogeneous compute environment. These can be executed in a batch, which allows parallel transpilation for classical computational efficiency - or a session, which allows iterative tasks to be implemented efficiently without queuing delays. Note: Open Plan users cannot submit session jobs. +Execution tools assist with running your circuits on hardware. The ISA circuits produced during transpilation can be executed using either a Sampler or Estimator primitive from Qiskit Runtime, initialized locally on your computer, from a cluster, other heterogeneous compute environment. These can be executed in a batch, which allows parallel transpilation for classical computational efficiency - or a session, which allows iterative tasks to be implemented efficiently without queuing delays. Note: Open Plan users cannot submit session jobs. Depending on whether you are using the Sampler or Estimator primitive, the outcome of this step will be different. If using Sampler, the output will be per-shot measurements in the form of bitstrings. If using Estimator, the output will be expectation values of observables corresponding to physical quantities or cost functions. diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx index 6ede53ae1bf..957f47ce084 100644 --- a/docs/guides/summary-map.mdx +++ b/docs/guides/summary-map.mdx @@ -7,12 +7,12 @@ description: Take a classical problem and map it to run on a quantum computer. Mapping tools assist with mapping a classical problem to circuits and operators, for execution on a quantum computer. -In applications such as chemistry and quantum simulation, mapping generally involves constructing a quantum circuit representing the Hamiltonian you are attempting to solve. For certain problems, it might also be desirable to specify the mapping of the problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the outset if the structure of the problem lends itself to optimization earlier. +In applications such as chemistry and quantum simulation, mapping generally involves constructing a quantum circuit representing the Hamiltonian you are attempting to solve. For certain problems, it might also be desirable to map the problem onto qubits in the heavy-hex (or gross) lattice of IBM® hardware from the outset if the structure of the problem lends itself to optimization earlier. -It is also worth considering at this point what the outcome of the particular algorithm will be in preparation for the later execute step - for example, if the desired outcome involves +It is also worth considering at this point what the outcome of the particular algorithm will be in preparation for the later execute step - for example, if the desired outcome involves inferring correlation functions using Hadamard tests, you might prepare to use the Sampler primitive, whereas specifying observables would use the Estimator primitive and might provide many more error mitigation options. inferring correlation functions using Hadamard tests, you might prepare to use Sampler; if it involves specifying observables, you would use Estimator. -The output map is normally a collection of circuits or quantum operators. +The output of this step in a Qiskit pattern is normally a collection of circuits or quantum operators and is almost exclusively done within the Qiskit SDK. The pages within this section explain many of the features for circuit building, incorporating dynamic circuits with feedforward and control flow, and specifying operators and observables, as well as explaining the OpenQASM language standard. ## Relevant resources From 32936ff61a070986cd6f654ef0191bf8f792ffec Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 8 Dec 2025 10:36:26 -0500 Subject: [PATCH 65/82] Apply suggestions from code review Co-authored-by: Kaelyn Ferris <43348706+kaelynj@users.noreply.github.com> --- docs/guides/tool-index.mdx | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index aece12ba35d..6c57cece5ff 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -69,16 +69,6 @@ To get started building quantum workloads to solve optimization problems, refer - [GitHub repository for quantum optimization](https://github.com/qiskit-community/qopt-best-practices) - [QAOA training pipeline](https://github.com/qiskit-community/qaoa_training_pipeline) -### Device benchmarking - -
-Qiskit device benchmarking is a repository for code to run various device-level benchmarks through Qiskit. It is not intended to define a benchmark standard, but instead provides code examples to replicate benchmarking metrics that have been reported in literature or elsewhere. -
- -*Relevant links:* - -- [Qiskit device benchmarking repository](https://github.com/qiskit-community/qiskit-device-benchmarking) -- [Benchmarking notebooks](https://github.com/qiskit-community/qiskit-device-benchmarking/blob/main/notebooks/README.md) ## Prepare and optimize workloads @@ -156,7 +146,7 @@ The noisy estimator analyzer tool (NEAT) analyzes and predicts the performance o - [NEAT API reference page](/docs/api/qiskit-ibm-runtime/debug-tools-neat) -### Local testing mode +### Qiskit Runtime local testing mode
Simulate smaller or Cliffordized circuits to assess performance @@ -202,10 +192,10 @@ Explore the different execution modes - scheduling strategies for execution - wh - [Overview of job, batch, and session modes](/docs/guides/execution-modes) - [How to choose the right execution mode](/docs/guides/choose-execution-mode) -### Executor primitive +### Directed execution model
-Generate and execute circuit variants based on the input samplex directive +Generate and execute circuit variants based on directives defined with Samplomatic Executor allows you to fine-tune error mitigation and other techniques without sacrificing performance, by providing the ingredients to capture design intents on the client-side, and shifting the costly generation of circuit variants to the server-side. With Executor, users will gain a clearer and more composable model for execution workflows, making it easier to experiment with new techniques, reproduce results, and share methods.
@@ -294,6 +284,20 @@ This error mitigation technique returns an unbiased estimate of the expectation Mitigate errors by amplifying noise and extrapolating corrected expectation values This error mitigation technique first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. Since this can be done in multiple ways, a number of noise amplification and extrapolation techniques are available. + +#### Gate folding-based ZNE +Gate folding is a noise amplification process that replaces two-qubit gates with equivalent sequences of two-qubit gates and their inverses. This approach is straightforward and simple to use, but can be imperfect. + +#### Probabilistic error amplification + +Probabilistic error amplification (PEA) is a more sophisticated means of amplifying errors for ZNE. It involves running preliminary experiments to learn a twirled noise model of the circuit, and then uses this model to perform a more accurate error amplification. + + +**Relevant resources** + +- [PEA overview](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) +- [API reference for `LayerNoiseLearningOptions`](/docs/api/qiskit-ibm-runtime/options-layer-noise-learning-options) +- [API reference for `NoiseLearner`](/docs/api/qiskit-ibm-runtime/noise-learner-noise-learner)
**Relevant resources** @@ -301,7 +305,6 @@ This error mitigation technique first computes the expectation value at differen - [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) - [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) - [Error mitigation feature compatibility](/docs/guides/runtime-options-overview#feature-compatibility) -- [ArXiv white paper on best practices for digital ZNE](https://arxiv.org/abs/2307.05203) ### Gate folding-based ZNE @@ -419,6 +422,7 @@ The noise models produced by `NoiseLearner` might not be accurate for Heron back ### Algorithmiq Tensor-Network Error Mitigation Function
+ Qiskit Function for error mitigation based on tensor-network methods Algorithmiq's Tensor-network Error Mitigation (TEM) method is a hybrid quantum-classical algorithm designed for automating and performing noise mitigation. It accomplishes this by constructing a tensor network representing an approximate inverse of the noise affecting a circuit to obtain unbiased estimates of an observable. TEM is a novel error mitigation method based on post-processing with tensor networks, and it provides unbiased error mitigation with the lowest possible shot overhead on the quantum hardware, minimizing the runtime and hence the costs of experiments. It requires exponentially less shots than probabilistic error cancellation (PEC) and significantly less shots than zero noise extrapolation (ZNE).
From b08da55c5ee687a0633b5ddf7e8ececf47c889b5 Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 8 Dec 2025 10:38:38 -0500 Subject: [PATCH 66/82] rmv details twistie --- docs/guides/tool-index.mdx | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 6c57cece5ff..1a41bffac85 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -432,9 +432,7 @@ Algorithmiq's Tensor-network Error Mitigation (TEM) method is a hybrid quantum-c ### Q-CTRL Performance Management Function -
This Qiskit Function uses AI-powered error suppression and mitigation techniques, and is agnostic to the type of workload being executed. -
Relevant docs links: @@ -444,9 +442,7 @@ Relevant docs links: ### QEDMA Qiskit Function QESEM -
The QESEM Qiskit Function by QEDMA uses a suite of proprietary error mitigation techniques to improve the results of your workload. These techniques include gate optimization, noise-aware transpilation, error suppression, and unbiased error mitigation. -
**Relevant resources** @@ -455,9 +451,7 @@ The QESEM Qiskit Function by QEDMA uses a suite of proprietary error mitigation ### Iskay Quantum Optimizer -
This Qiskit Function by Kipu Quantum solves unconstrained binary optimization problems with the QUBO (Quadratic Unconstrained Binary Optimization) formulation and higher-order (HUBO) optimization problems. -
**Relevant resources** @@ -466,9 +460,7 @@ This Qiskit Function by Kipu Quantum solves unconstrained binary optimization pr ### Q-CTRL Optimization Solver -
This Qiskit Function by Q-CTRL is designed to solve utility-scale optimization problems. It takes in a high-level problem definition, and executes an entire workflow to optimize the problem, without manual configuration. -
**Relevant resources** From 94dba3786395a9edb738a4e036180284e2857b3a Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 8 Dec 2025 10:42:08 -0500 Subject: [PATCH 67/82] grammar --- docs/guides/summary-manage-noise.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/summary-manage-noise.mdx b/docs/guides/summary-manage-noise.mdx index 3f3e93e6896..1faf857ba03 100644 --- a/docs/guides/summary-manage-noise.mdx +++ b/docs/guides/summary-manage-noise.mdx @@ -9,7 +9,7 @@ When executing quantum workloads, there are multiple ways to reduce the impact o ## General noise management techniques | Tool | How to enable | | --- | --- | -| [**AQC-Tensor Qiskit addon**](https://qiskit.github.io/qiskit-addon-aqc-tensor/)
  • Enables users to compile the initial portion of a circuit into a nearly equivalent approximation of that circuit, but with much fewer layers.
| | +| [**AQC-Tensor Qiskit addon**](https://qiskit.github.io/qiskit-addon-aqc-tensor/)
  • Enables users to compile the initial portion of a circuit into a nearly equivalent approximation of that circuit, but with fewer layers.
| | | [**Directed execution model (beta)**](/docs/guides/directed-execution-model)
  • Provides the ingredients to capture design intents on the client side, and shifts the costly generation of circuit variants to the server side, so that you can fine-tune error mitigation and other techniques without sacrificing performance.
| | | [**Dynamical decoupling**](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling)
  • Inserts pulse sequences on idling qubits to try to mitigate coherence errors caused by unwanted interactions between qubits during circuit execution.
| Set [`DynamicalDecouplingOptions`](/docs/api/qiskit-ibm-runtime/options-dynamical-decoupling-options) to `True`| | [**Pauli twirling**](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling)
  • Noise tailoring technique that transforms any quantum channel into a Pauli channel. It is often combined with other error mitigation techniques that work well with Pauli noise.
| In Qiskit Runtime options, set `enable_gates` and `enable_measure` to `True` in the [twirling options](/docs/api/qiskit-ibm-runtime/options-twirling-options) | From 97bbede146ed4998e68ebfa298cb4782d13a83a7 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Mon, 8 Dec 2025 10:46:31 -0500 Subject: [PATCH 68/82] combine relevant resources --- docs/guides/tool-index.mdx | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 1a41bffac85..7909fe256d4 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -292,12 +292,6 @@ Gate folding is a noise amplification process that replaces two-qubit gates with Probabilistic error amplification (PEA) is a more sophisticated means of amplifying errors for ZNE. It involves running preliminary experiments to learn a twirled noise model of the circuit, and then uses this model to perform a more accurate error amplification. - -**Relevant resources** - -- [PEA overview](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) -- [API reference for `LayerNoiseLearningOptions`](/docs/api/qiskit-ibm-runtime/options-layer-noise-learning-options) -- [API reference for `NoiseLearner`](/docs/api/qiskit-ibm-runtime/noise-learner-noise-learner)
**Relevant resources** @@ -305,29 +299,11 @@ Probabilistic error amplification (PEA) is a more sophisticated means of amplify - [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) - [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) - [Error mitigation feature compatibility](/docs/guides/runtime-options-overview#feature-compatibility) - -### Gate folding-based ZNE - -
-Gate folding is a noise amplification process that replaces two-qubit gates with equivalent sequences of two-qubit gates and their inverses. This approach is straightforward and simple to use, but can be imperfect. -
- -**Relevant resources** - -- [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) -- [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) - -### Probabilistic error amplification - -
-Probabilistic error amplification (PEA) is a more sophisticated means of amplifying errors for ZNE. It involves running preliminary experiments to learn a twirled noise model of the circuit, and then uses this model to perform a more accurate error amplification. -
- -**Relevant resources** - - [PEA overview](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) - [API reference for `LayerNoiseLearningOptions`](/docs/api/qiskit-ibm-runtime/options-layer-noise-learning-options) - [API reference for `NoiseLearner`](/docs/api/qiskit-ibm-runtime/noise-learner-noise-learner) +- [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) +- [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) ### Twirled readout error extinction (TREX) From f1f69e7d56eb08c97423b138ec93aceda8d6a40a Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Mon, 8 Dec 2025 10:50:42 -0500 Subject: [PATCH 69/82] fix broken links from recent edits --- docs/guides/summary-execute.mdx | 2 +- docs/guides/summary-map.mdx | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/guides/summary-execute.mdx b/docs/guides/summary-execute.mdx index ce232db7c08..a88787417eb 100644 --- a/docs/guides/summary-execute.mdx +++ b/docs/guides/summary-execute.mdx @@ -13,4 +13,4 @@ Depending on whether you are using the Sampler or Estimator primitive, the outco - [Estimator and Sampler primitives](/docs/guides/tool-index#tool-index-primitives) - Handles hardware execution and returns samples or expectation values, with some built-in error suppression/mitigation support - [Execution modes](/docs/guides/tool-index#execution-modes) - Efficiently schedule workload execution -- [Executor primitive](/docs/guides/tool-index#executor-primitive) - Generate and execute circuit variants based on the input samplex directive \ No newline at end of file +- [Directed execution model](/docs/guides/tool-index#directed-execution-model) - Generate and execute circuit variants based on directives defined with Samplomatic \ No newline at end of file diff --git a/docs/guides/summary-map.mdx b/docs/guides/summary-map.mdx index 957f47ce084..285342a0a63 100644 --- a/docs/guides/summary-map.mdx +++ b/docs/guides/summary-map.mdx @@ -19,5 +19,4 @@ The output of this step in a Qiskit pattern is normally a collection of circuits - [AQC-Tensor](/docs/guides/tool-index#aqc-tensor) - A Qiskit addon for building time evolution circuits - [Qiskit circuit library](/docs/guides/tool-index#qiskit-circuit-library) - The Qiskit SDK standard library of gates and circuit instructions - [Optimization mapper](/docs/guides/tool-index#optimization-mapper) - A Qiskit addon for mapping optimization problems to circuits and operators -- [Quantum optimization best practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads -- [Device benchmarking](/docs/guides/tool-index#device-benchmarking) +- [Quantum optimization best practices](/docs/guides/tool-index#quantum-optimization-best-practices) - A collection of guidelines to run quantum optimization workloads \ No newline at end of file From 1a61b861cff6f92122fc7697d737baf4648db4ab Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Mon, 8 Dec 2025 10:52:45 -0500 Subject: [PATCH 70/82] rmv details for consistency --- docs/guides/tool-index.mdx | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 7909fe256d4..9bdb5ce46ba 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -397,10 +397,7 @@ The noise models produced by `NoiseLearner` might not be accurate for Heron back ### Algorithmiq Tensor-Network Error Mitigation Function -
- Qiskit Function for error mitigation based on tensor-network methods Algorithmiq's Tensor-network Error Mitigation (TEM) method is a hybrid quantum-classical algorithm designed for automating and performing noise mitigation. It accomplishes this by constructing a tensor network representing an approximate inverse of the noise affecting a circuit to obtain unbiased estimates of an observable. TEM is a novel error mitigation method based on post-processing with tensor networks, and it provides unbiased error mitigation with the lowest possible shot overhead on the quantum hardware, minimizing the runtime and hence the costs of experiments. It requires exponentially less shots than probabilistic error cancellation (PEC) and significantly less shots than zero noise extrapolation (ZNE). -
**Relevant resources** From 7aa4749af313621820a9c8dd7bccc7b603a4ca0c Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 8 Dec 2025 11:18:50 -0500 Subject: [PATCH 71/82] add cspell ignore --- docs/guides/tool-index.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 9bdb5ce46ba..4c2a12b2d9f 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -6,6 +6,8 @@ in_page_toc_max_heading_level: 2 --- +{/* cspell:ignore HUBO */} + # Tools and features index ## Map problem to circuits From 7dc89b768e3db3e769e5fd914464316dd2f3c6d8 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Mon, 8 Dec 2025 17:02:41 -0500 Subject: [PATCH 72/82] Move Manage workload execution to Execute --- docs/guides/_toc.json | 51 ++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index c95e1b30ad2..0bace9153ae 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -211,31 +211,6 @@ } ] }, - { - "title": "Manage workload execution", - "children":[ - { - "title": "Workload usage", - "url": "/docs/guides/estimate-job-run-time" - }, - { - "title": "Minimize job run time", - "url": "/docs/guides/minimize-time" - }, - { - "title": "Maximum execution time", - "url": "/docs/guides/max-execution-time" - }, - { - "title": "Job limits", - "url": "/docs/guides/job-limits" - }, - { - "title": "Qubit initialization", - "url": "/docs/guides/repetition-rate-execution" - } - ] - }, { "title": "Qiskit Transpiler Service", "children": [ @@ -393,6 +368,32 @@ "title": "Task overview", "url": "/docs/guides/summary-execute" }, + + { + "title": "Manage workload execution", + "children":[ + { + "title": "Workload usage", + "url": "/docs/guides/estimate-job-run-time" + }, + { + "title": "Minimize job run time", + "url": "/docs/guides/minimize-time" + }, + { + "title": "Maximum execution time", + "url": "/docs/guides/max-execution-time" + }, + { + "title": "Job limits", + "url": "/docs/guides/job-limits" + }, + { + "title": "Qubit initialization", + "url": "/docs/guides/repetition-rate-execution" + } + ] + }, { "title": "Primitives", "children": [ From 8bc3508c1366f6ac6bc8fcdd7aa1c31b76ea9fea Mon Sep 17 00:00:00 2001 From: abbycross Date: Mon, 8 Dec 2025 17:59:25 -0500 Subject: [PATCH 73/82] Apply suggestions from code review Co-authored-by: Kaelyn Ferris <43348706+kaelynj@users.noreply.github.com> --- docs/guides/index.mdx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index c9686ede1a3..c581fbeffa4 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -34,26 +34,26 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more Date: Tue, 9 Dec 2025 10:12:07 -0500 Subject: [PATCH 74/82] broken link --- docs/guides/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index c581fbeffa4..05966e7c415 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -35,7 +35,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more From 1c3bfb18c36322159e8c921cfc250ef6f44e6c35 Mon Sep 17 00:00:00 2001 From: abbycross Date: Tue, 9 Dec 2025 13:41:37 -0500 Subject: [PATCH 75/82] Update docs/guides/index.mdx Co-authored-by: Kaelyn Ferris <43348706+kaelynj@users.noreply.github.com> --- docs/guides/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index 05966e7c415..fc6a95a665e 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -58,7 +58,7 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more Date: Tue, 9 Dec 2025 13:56:05 -0500 Subject: [PATCH 76/82] reorg the manage-noise tables --- docs/guides/summary-manage-noise.mdx | 41 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/docs/guides/summary-manage-noise.mdx b/docs/guides/summary-manage-noise.mdx index 1faf857ba03..387c28db3a7 100644 --- a/docs/guides/summary-manage-noise.mdx +++ b/docs/guides/summary-manage-noise.mdx @@ -7,32 +7,33 @@ description: Discover tools that help manage noise through techniques such as er When executing quantum workloads, there are multiple ways to reduce the impact of noise. The open-source Qiskit addons provide error mitigation and suppression techniques that integrate directly into your development workflow, while Qiskit Runtime applies advanced error mitigation strategies automatically when jobs are submitted for execution. This page indexes all available tools and features across both options to help choose the right approach to manage noise when building quantum workloads. ## General noise management techniques -| Tool | How to enable | -| --- | --- | -| [**AQC-Tensor Qiskit addon**](https://qiskit.github.io/qiskit-addon-aqc-tensor/)
  • Enables users to compile the initial portion of a circuit into a nearly equivalent approximation of that circuit, but with fewer layers.
| | -| [**Directed execution model (beta)**](/docs/guides/directed-execution-model)
  • Provides the ingredients to capture design intents on the client side, and shifts the costly generation of circuit variants to the server side, so that you can fine-tune error mitigation and other techniques without sacrificing performance.
| | -| [**Dynamical decoupling**](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling)
  • Inserts pulse sequences on idling qubits to try to mitigate coherence errors caused by unwanted interactions between qubits during circuit execution.
| Set [`DynamicalDecouplingOptions`](/docs/api/qiskit-ibm-runtime/options-dynamical-decoupling-options) to `True`| -| [**Pauli twirling**](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling)
  • Noise tailoring technique that transforms any quantum channel into a Pauli channel. It is often combined with other error mitigation techniques that work well with Pauli noise.
| In Qiskit Runtime options, set `enable_gates` and `enable_measure` to `True` in the [twirling options](/docs/api/qiskit-ibm-runtime/options-twirling-options) | +| | +| --- | +| [**Directed execution model (beta)**](/docs/guides/directed-execution-model)

Provides the ingredients to capture design intents on the client side, and shifts the costly generation of circuit variants to the server side, so that you can fine-tune error mitigation and other techniques without sacrificing performance.| +| [**Dynamical decoupling**](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling)

Inserts pulse sequences on idling qubits to try to mitigate coherence errors caused by unwanted interactions between qubits during circuit execution.| +| [**Pauli twirling**](/docs/guides/error-mitigation-and-suppression-techniques#pauli-twirling)

Noise tailoring technique that transforms any quantum channel into a Pauli channel. It is often combined with other error mitigation techniques that work well with Pauli noise.| +| [**AQC-Tensor Qiskit addon**](https://qiskit.github.io/qiskit-addon-aqc-tensor/)

Enables users to compile the initial portion of a circuit into a nearly equivalent approximation of that circuit, but with fewer layers. | ## Error mitigation for expectation values -| Tool | How to enable | -| --- | --- | -| [**Operator backpropagation (OBP) Qiskit addon**](https://qiskit.github.io/qiskit-addon-obp/)
  • Uses a method based on Clifford perturbation theory to reduce circuit depth by trimming operations from its end at the cost of more operator measurements.
| -|[**Probabilistic error amplification (PEA)**](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea)
  • ZNE technique that involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification.
|Set `zne_mitigation` to `True`; set `zne.amplifier` to `pea` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator| -| [**Probabilistic error cancellation (PEC)**](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec)
  • Returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination.
|Set `pec_mitigation` to `True` in Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator | -|[**Propagated noise absorption (PNA)**](https://qiskit.github.io/qiskit-addon-pna/)
  • Technique for mitigating errors in observable expectation values by "absorbing" the inverses of the learned noise channels into the observable using [Pauli propagation.](https://qiskit.github.io/pauli-prop/) Each Pauli noise generator in the noise model is classically propagated to the end of the circuit and applied to the observable, resulting in a new observable that when measured on a QPU, mitigates the learned gate noise
| | -|[**Shaded lightcones (SLC)**](https://qiskit.github.io/qiskit-addon-slc/)
  • Uses Pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. Useful for reducing the sampling overhead for running PEC-based workloads.
|| -|[**Twirled readout error extinction (TREX)**](/docs/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex)
  • Mitigates the effect of measurement errors for the estimation of Pauli observable expectation values.
|Set `measure_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator| -|[**Zero-noise extrapolation (ZNE)**](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne)
  • Error mitigation technique that first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit.
| Set `zne_mitigation` to `True` in the Qiskit Runtime [resilience options](/docs/api/qiskit-ibm-runtime/options-resilience-options-v2) for Estimator| +| | +| --- | +|[**Twirled readout error extinction (TREX)**](/docs/guides/error-mitigation-and-suppression-techniques#twirled-readout-error-extinction-trex)

Mitigates the effect of measurement errors for the estimation of Pauli observable expectation values. | +|[**Probabilistic error amplification (PEA)**](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea)

ZNE technique that involves running preliminary experiments to learn a twirled noise model of the circuit and then uses this model to perform a more accurate error amplification. | +| [**Probabilistic error cancellation (PEC)**](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-cancellation-pec)

Returns an unbiased estimate of the expectation value, at the expense of greater overhead than other techniques such as ZNE. It reproduces the output of the ideal circuit by executing different noisy circuit instances drawn from a random ensemble defined by the linear combination. | +|[**Shaded lightcones (SLC)**](https://qiskit.github.io/qiskit-addon-slc/)

Uses Pauli propagation to reduce the number of error terms accounted for in a noise model according to the specifics of the target observable. Useful for reducing the sampling overhead for running PEC-based workloads.| +| [**Operator backpropagation (OBP) Qiskit addon**](https://qiskit.github.io/qiskit-addon-obp/)

Uses a method based on Clifford perturbation theory to reduce circuit depth by trimming operations from its end at the cost of more operator measurements.| +|[**Propagated noise absorption (PNA)**](https://qiskit.github.io/qiskit-addon-pna/)

Technique for mitigating errors in observable expectation values by "absorbing" the inverses of the learned noise channels into the observable using [Pauli propagation.](https://qiskit.github.io/pauli-prop/) Each Pauli noise generator in the noise model is classically propagated to the end of the circuit and applied to the observable, resulting in a new observable that when measured on a QPU, mitigates the learned gate noise| +|[**Zero-noise extrapolation (ZNE)**](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne)

Error mitigation technique that first computes the expectation value at different noise levels, then estimates the ideal result by extrapolating the noisy expectation value results to the zero-noise limit. | + ## Error mitigation for sampling results -| Tool | How to enable | -| --- | --- | -|[**mthree (M3) Qiskit addon**](https://qiskit.github.io/qiskit-addon-mthree/)
  • Package for scalable quantum measurement error mitigation that need not explicitly form the assignment matrix, or its inverse, and is thus a matrix-free measurement mitigation routine.
| | -|[**Sample-based quantum diagonalization (SQD) Qiskit addon**](https://qiskit.github.io/qiskit-addon-sqd/)
  • Implements a technique for finding eigenvalues and eigenvectors of quantum operators, such as a quantum system Hamiltonian, using quantum and distributed classical computing together.
| | -|[**Sample-based quantum diagonalization (HPC-ready) Qiskit addon**](https://qiskit.github.io/qiskit-addon-sqd-hpc/)
  • HPC-ready implementation of the [Qiskit addon for SQD.](https://qiskit.github.io/qiskit-addon-sqd/)
| | +| | +| --- | +|[**Sample-based quantum diagonalization (SQD) Qiskit addon**](https://qiskit.github.io/qiskit-addon-sqd/)

Implements a technique for finding eigenvalues and eigenvectors of quantum operators, such as a quantum system Hamiltonian, using quantum and distributed classical computing together.| +|[**Sample-based quantum diagonalization (HPC-ready) Qiskit addon**](https://qiskit.github.io/qiskit-addon-sqd-hpc/)

HPC-ready implementation of the [Qiskit addon for SQD.](https://qiskit.github.io/qiskit-addon-sqd/)| +|[**mthree (M3) Qiskit addon**](https://qiskit.github.io/qiskit-addon-mthree/)

Package for scalable quantum measurement error mitigation that need not explicitly form the assignment matrix, or its inverse, and is thus a matrix-free measurement mitigation routine.| ## Next steps From 9f89f903d17b81ea4b314fe15d304f7f3c591c68 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 9 Dec 2025 14:49:04 -0500 Subject: [PATCH 77/82] move composer --- docs/guides/_toc.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index c81aafa7868..c79d9a0b37b 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -42,10 +42,6 @@ } ] }, - { - "title": "IBM Quantum Composer", - "url": "/docs/guides/composer" - }, { "title": "Latest updates", "url": "/docs/guides/latest-updates" @@ -788,6 +784,10 @@ { "title": "Port code to Qiskit Serverless", "url": "/docs/guides/serverless-port-code" + }, + { + "title": "IBM Quantum Composer", + "url": "/docs/guides/composer" } ] } From 05960ad13a33823709d4a00222305f6d8d66a5d9 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 9 Dec 2025 14:50:12 -0500 Subject: [PATCH 78/82] move HW out of tutorials altogether --- docs/tutorials/index.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/tutorials/index.mdx b/docs/tutorials/index.mdx index 64814d8e4b9..a526da977c9 100644 --- a/docs/tutorials/index.mdx +++ b/docs/tutorials/index.mdx @@ -13,9 +13,8 @@ Use these tutorials to learn how to apply Qiskit to common quantum computing use ## Get started -These tutorials are for beginners who are ready to explore running quantum algorithms on a quantum computer. +This section is for beginners who are ready to explore running quantum algorithms on a quantum computer. -* [Hello world](/docs/guides/hello-world) * [CHSH inequality](/docs/tutorials/chsh-inequality) ## Explore workflows toward advantage From c6fbd0b6eaa28444faedd1c28643276e002c633c Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 9 Dec 2025 14:50:52 -0500 Subject: [PATCH 79/82] change name for About Qiskit tools --- docs/guides/_toc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index c79d9a0b37b..64d4608191a 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -47,7 +47,7 @@ "url": "/docs/guides/latest-updates" }, { - "title": "About Qiskit tools", + "title": "Qiskit stack architecture", "children": [ { "title": "Qiskit SDK", From c80186e94130477b21d8e6832052d803de85e2ec Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 9 Dec 2025 14:58:29 -0500 Subject: [PATCH 80/82] Reorg support section --- docs/guides/_toc.json | 116 ++++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 56 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 64d4608191a..0e6055f20b2 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -831,18 +831,73 @@ ] }, { - "title": "Support and FAQ", + "title": "Open-source resources", "children": [ { - "title": "Support", - "url": "/docs/guides/support" + "title": "Introduction", + "url": "/docs/guides/open-source" + }, + { + "title": "Code of conduct", + "url": "/docs/guides/code-of-conduct" + }, + { + "title": "Contributor license agreements", + "children": [ + { + "title": "Individual contributor", + "url": "/docs/open-source/qiskit-cla.pdf" + }, + { + "title": "Corporate contributor", + "url": "/docs/open-source/qiskit-corporate-cla.pdf" + } + ] + }, + { + "title": "Qiskit SDK", + "children": [ + { + "title": "Version strategy", + "url": "/docs/guides/qiskit-sdk-version-strategy" + }, + { + "title": "Contributor guide", + "url": "https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md" + }, + { + "title": "Maintainer guide", + "url": "https://github.com/Qiskit/qiskit/blob/main/MAINTAINING.md" + } + ] }, { - "title": "Frequently-asked questions", - "url": "/docs/guides/faq" + "title": "Qiskit ecosystem", + "url": "https://www.ibm.com/quantum/ecosystem" } ] }, + { + "title": "Logging", + "url": "/docs/guides/logging" + } + ] + }, + { + "title": "Support and FAQ", + "children": [ + { + "title": "Support", + "url": "/docs/guides/support" + }, + { + "title": "Error code registry", + "url": "/docs/errors" + }, + { + "title": "Frequently-asked questions", + "url": "/docs/guides/faq" + }, { "title": "Migration guides", "children": [ @@ -894,57 +949,6 @@ } ] }, - { - "title": "Open-source resources", - "children": [ - { - "title": "Introduction", - "url": "/docs/guides/open-source" - }, - { - "title": "Code of conduct", - "url": "/docs/guides/code-of-conduct" - }, - { - "title": "Contributor license agreements", - "children": [ - { - "title": "Individual contributor", - "url": "/docs/open-source/qiskit-cla.pdf" - }, - { - "title": "Corporate contributor", - "url": "/docs/open-source/qiskit-corporate-cla.pdf" - } - ] - }, - { - "title": "Qiskit SDK", - "children": [ - { - "title": "Version strategy", - "url": "/docs/guides/qiskit-sdk-version-strategy" - }, - { - "title": "Contributor guide", - "url": "https://github.com/Qiskit/qiskit/blob/main/CONTRIBUTING.md" - }, - { - "title": "Maintainer guide", - "url": "https://github.com/Qiskit/qiskit/blob/main/MAINTAINING.md" - } - ] - }, - { - "title": "Qiskit ecosystem", - "url": "https://www.ibm.com/quantum/ecosystem" - } - ] - }, - { - "title": "Logging", - "url": "/docs/guides/logging" - }, { "title": "Security and compliance", "collapsed": true, From 142c0425e2f2fe43325ff5561bd6d1d8a8369da4 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 9 Dec 2025 15:07:53 -0500 Subject: [PATCH 81/82] Add composer card --- docs/guides/_toc.json | 8 ++++---- docs/guides/index.mdx | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/guides/_toc.json b/docs/guides/_toc.json index 0e6055f20b2..eeaaeda960a 100644 --- a/docs/guides/_toc.json +++ b/docs/guides/_toc.json @@ -784,12 +784,12 @@ { "title": "Port code to Qiskit Serverless", "url": "/docs/guides/serverless-port-code" - }, - { - "title": "IBM Quantum Composer", - "url": "/docs/guides/composer" } ] + }, + { + "title": "IBM Quantum Composer", + "url": "/docs/guides/composer" } ], "collapsible": false diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index fc6a95a665e..47ae42ca4c1 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -27,6 +27,14 @@ description: Find resources to use Qiskit, Qiskit Runtime, IBM Quantum, and more analyticsName="Overview page: Tutorials" linkText="Browse tutorials" /> + +
## Tools by task From f3e96c8cf578651ad4e0a4c51a08de7f99489a09 Mon Sep 17 00:00:00 2001 From: ABBY CROSS Date: Tue, 9 Dec 2025 15:40:19 -0500 Subject: [PATCH 82/82] Move DD to Noise section --- docs/guides/tool-index.mdx | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/docs/guides/tool-index.mdx b/docs/guides/tool-index.mdx index 4c2a12b2d9f..0c4ec2fafba 100644 --- a/docs/guides/tool-index.mdx +++ b/docs/guides/tool-index.mdx @@ -103,21 +103,6 @@ Dynamic circuits are powerful tools for measuring qubits in the middle of a quan - [Classical feed-forward and control flow](/docs/guides/classical-feedforward-and-control-flow) (This is the primary way to integrate dynamic circuits into your workloads) - [Tutorial on using dynamic circuits to generate long-range entanglement](/docs/tutorials/long-range-entanglement) -### Dynamical decoupling - -
-Reduce decoherence errors on idle qubits - -Dynamical decoupling (DD) is a technique for suppressing errors due to qubit decoherence. It is primarily useful in regions within a quantum circuit in which one or more qubits site idle while other instructions are being executed. Both Sampler and Estimator primitives have built-in support for applying DD. Alternatively, you can use the [`PadDynamicalDecoupling`](/docs/api/qiskit/qiskit.transpiler.passes.PadDynamicalDecoupling) transpiler pass in Qiskit, or build your own using the new stretch instruction. -
- -**Relevant resources** - -- [Overview of DD](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) -- [Introduction to primitive options](/docs/guides/runtime-options-overview) -- [Create a pass manager for dynamical decoupling](/docs/guides/dynamical-decoupling-pass-manager) -- [Deferred timing resolution using stretch](/docs/guides/stretch) (Especially useful for applying DD in a dynamic circuit) - ### Operator backpropagation
@@ -304,8 +289,6 @@ Probabilistic error amplification (PEA) is a more sophisticated means of amplify - [PEA overview](/docs/guides/error-mitigation-and-suppression-techniques#probabilistic-error-amplification-pea) - [API reference for `LayerNoiseLearningOptions`](/docs/api/qiskit-ibm-runtime/options-layer-noise-learning-options) - [API reference for `NoiseLearner`](/docs/api/qiskit-ibm-runtime/noise-learner-noise-learner) -- [Qiskit Runtime primitive options for ZNE](/docs/api/qiskit-ibm-runtime/options-zne-options) -- [Introduction to ZNE](/docs/guides/error-mitigation-and-suppression-techniques#zero-noise-extrapolation-zne) ### Twirled readout error extinction (TREX) @@ -347,6 +330,21 @@ The shaded lightcones (SLC) Qiskit addon uses Pauli propagation to reduce the nu - [SLC documentation page](https://qiskit.github.io/qiskit-addon-slc/) - [`qiskit-addon-slc` GitHub repo](https://github.ibm.com/ibm-q-research/qiskit-addon-slc) +### Dynamical decoupling + +
+Reduce decoherence errors on idle qubits + +Dynamical decoupling (DD) is a technique for suppressing errors due to qubit decoherence. It is primarily useful in regions within a quantum circuit in which one or more qubits site idle while other instructions are being executed. Both Sampler and Estimator primitives have built-in support for applying DD. Alternatively, you can use the [`PadDynamicalDecoupling`](/docs/api/qiskit/qiskit.transpiler.passes.PadDynamicalDecoupling) transpiler pass in Qiskit, or build your own using the new stretch instruction. +
+ +**Relevant resources** + +- [Overview of DD](/docs/guides/error-mitigation-and-suppression-techniques#dynamical-decoupling) +- [Introduction to primitive options](/docs/guides/runtime-options-overview) +- [Create a pass manager for dynamical decoupling](/docs/guides/dynamical-decoupling-pass-manager) +- [Deferred timing resolution using stretch](/docs/guides/stretch) (Especially useful for applying DD in a dynamic circuit) + ### Sample-based quantum diagonalization