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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/guides/_toc.json
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,10 @@
"title": "Noise learning",
"url": "/docs/guides/noise-learning"
},
{
"title": "Executor primitive (beta)",
"url": "/docs/guides/executor"
},
{
"title": "Introduction to options",
"url": "/docs/guides/runtime-options-overview"
Expand Down
4 changes: 4 additions & 0 deletions docs/guides/configure-error-mitigation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
]
},
"source": [
"<Admonition type=\"note\" title=\"New primitive, now in beta release\">\n",
"The beta release of a new lower-level primitive, called Executor, is now available. The Executor primitive provides more flexibility when customizing your error mitigation workflow. See the [Executor primitive](/docs/guides/executor) guide for more information.\n",
"</Admonition>\n",
"\n",
"<details>\n",
"<summary><b>Package versions</b></summary>\n",
"\n",
Expand Down
4 changes: 4 additions & 0 deletions docs/guides/configure-error-suppression.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
]
},
"source": [
"<Admonition type=\"note\" title=\"New primitive, now in beta release\">\n",
"The beta release of a new lower-level primitive, called Executor, is now available. The Executor primitive provides more flexibility when customizing your error mitigation workflow. See the [Executor primitive](/docs/guides/executor) guide for more information.\n",
"</Admonition>\n",
"\n",
"<details>\n",
"<summary><b>Package versions</b></summary>\n",
"\n",
Expand Down
4 changes: 4 additions & 0 deletions docs/guides/error-mitigation-and-suppression-techniques.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@
]
},
"source": [
"<Admonition type=\"note\" title=\"New primitive, now in beta release\">\n",
"The beta release of a new lower-level primitive, called Executor, is now available. The Executor primitive provides more flexibility when customizing your error mitigation workflow. See the [Executor primitive](/docs/guides/executor) guide for more information.\n",
"</Admonition>\n",
"\n",
"<details>\n",
"<summary><b>Package versions</b></summary>\n",
"\n",
Expand Down
1 change: 1 addition & 0 deletions docs/guides/execute-on-hardware.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ expectation values of observables corresponding to physical quantities or cost f
* [Primitives examples](./primitives-examples)
* [Primitives with REST API](./primitives-rest-api)
* [Noise learning helper](./noise-learning)
* [Executor primitive (beta)](/docs/guides/executor)

### Configure runtime options
* [Overview](./runtime-options-overview)
Expand Down
35 changes: 35 additions & 0 deletions docs/guides/executor.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title: Executor primitive (beta)
description: Executor is a lower-level primitive that provides more flexibility when customizing your error mitigation workflow.

---

# Executor primitive (beta)

<Admonition type="note" title="Beta release">
The Executor primitive is currently in beta and might not be stable. You are invited to test it and provide feedback. (((how?)))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an open beta, so anyone can access it. They just need to install the preview branch.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jyu00 I mean, how do they provide feedback?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah sorry I misunderstood this. I thought it's asking how do they get invited 😄.

The best way to provide feedback is probably to open issues in samplomatic or qiskit-ibm-runtime repo.

</Admonition>

The Executor primitive is designed for quantum information scientists to run utility-scale experiments. Executor provides finer control over advanced techniques by shifting the generation of circuit variants to the server side, saving network costs and making the process explicit and customizable. With Executor, users can fine-tune error mitigation and other techniques to find the right balance of speed and quality in their utility-scale workloads.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments on this paragraph:

  • Technically Executor just does the execution (hence the name). Circuit construction with annotation happens with samplomatic.
  • We should mention how Executor provides this finer control... e.g. by giving users tools to specify intents

This is what I came up with but probably can use some fine tuning:

The Executor primitive and its supporting tools are designed for quantum information scientists to run utility-scale experiments that require more control and flexibility. 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.


The Executor primitive benefits users who want to improve the reliability of computations on noisy quantum hardware, and are interested in capabilities such as noise learning, twirling, and expectation value calculations. 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.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does "the reliability of computations on noisy quantum hardware" mean?

Regardless, I think the previous paragraph covers the benefit of using Executor. Perhaps this one can be simplified to

In this initial release, Executor support focuses mostly on Pauli-twirling, noise model learning and injection, and basis changes. More support will continue to be rolled out in the near future.


## Workflow

Important words to define:
- box
- annotation
- samplex
- dressing


## NoiseLearnerV3

## Next steps

<Admonition type="tip" title="Recommendations">
- Visit the Samplomatic documentation for [API references](https://qiskit.github.io/samplomatic/api/index.html) and guides, which include examples of the following:
- [Dressed boxes](https://qiskit.github.io/samplomatic/guides/dressed_boxes.html)
- [Transpiling with `generate_boxing_pass_manager()`](https://qiskit.github.io/samplomatic/guides/transpiler.html)
- [Working with samplex inputs and outputs](https://qiskit.github.io/samplomatic/guides/samplex_io.html)
</Admonition>
3 changes: 3 additions & 0 deletions docs/guides/get-started-with-primitives.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
"source": [
"# Get started with primitives\n",
"\n",
"<Admonition type=\"note\" title=\"New primitive, now in beta release\">\n",
"The beta release of a new lower-level primitive, called Executor, is now available. The Executor primitive provides more flexibility when customizing your error mitigation workflow. See the [Executor primitive](/docs/guides/executor) guide for more information.\n",
"</Admonition>\n",
"\n",
"<Admonition type=\"note\">\n",
"While this documentation uses the primitives from Qiskit Runtime, which allow you to use IBM&reg; backends, the primitives can be run on any provider by using the [backend primitives](#backend) instead. Additionally, you can use the *reference* primitives to run on a local statevector simulator. See [Exact simulation with Qiskit primitives](/docs/guides/simulate-with-qiskit-sdk-primitives) for details.\n",
Expand Down
4 changes: 4 additions & 0 deletions docs/guides/primitive-input-output.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
]
},
"source": [
"<Admonition type=\"note\" title=\"New primitive, now in beta release\">\n",
"The beta release of a new lower-level primitive, called Executor, is now available. The Executor primitive provides more flexibility when customizing your error mitigation workflow. See the [Executor primitive](/docs/guides/executor) guide for more information.\n",
"</Admonition>\n",
"\n",
"<details>\n",
"<summary><b>Package versions</b></summary>\n",
"\n",
Expand Down
4 changes: 4 additions & 0 deletions docs/guides/primitives-examples.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
]
},
"source": [
"<Admonition type=\"note\" title=\"New primitive, now in beta release\">\n",
"The beta release of a new lower-level primitive, called Executor, is now available. The Executor primitive provides more flexibility when customizing your error mitigation workflow. See the [Executor primitive](/docs/guides/executor) guide for more information.\n",
"</Admonition>\n",
"\n",
"<details>\n",
"<summary><b>Package versions</b></summary>\n",
"\n",
Expand Down
4 changes: 4 additions & 0 deletions docs/guides/primitives.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
"id": "3ac7f2c2-1541-49f1-9f8f-4c0a8e3a149a",
"metadata": {},
"source": [
"<Admonition type=\"note\" title=\"New primitive, now in beta release\">\n",
"The beta release of a new lower-level primitive, called Executor, is now available. The Executor primitive provides more flexibility when customizing your error mitigation workflow. See the [Executor primitive](/docs/guides/executor) guide for more information.\n",
"</Admonition>\n",
"\n",
"<span id=\"qpu-access-patterns\"></span>\n",
"## Why did Qiskit introduce primitives?\n",
"\n",
Expand Down
4 changes: 4 additions & 0 deletions qiskit_bot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@ notifications:
"docs/guides/execute-on-hardware":
- "@abbycross"
- "`@lerongil`"
"docs/guides/executor":
- "abbycross"
- "@jyu00"
- "@beckykd"
"docs/guides/fair-share-scheduler":
- "`@lerongil`"
- "@jyu00"
Expand Down
2 changes: 2 additions & 0 deletions scripts/config/cspell/dictionaries/qiskit.txt
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,8 @@ rpath
rtol
rustc
rustworkx
samplex
samplomatic
satisfiability
saveas
sched
Expand Down