Skip to content

experiments

Specifies calibration and characterisation tasks on qubits and couplings.

Schema

YAML
qubit: List[task | subflow] | None
coupling: List[task | subflow] | None

Properties

Property Type Description References
qubit List[task | subflow] | None List of tasks targeting qubits. task, subflow
coupling List[task | subflow] | None List of tasks targeting couplings. task, subflow

Examples

Experiments without nested subflows

The most basic example of specifying experiments is by using only tasks. Suppose you want to define a flow consisting of:

  • three single-qubit experiments:
    • Ramsey, defined in notebook ramsey.ipynb
    • T1, defined in notebook t1.ipynb
    • DRAG calibration, defined in notebook drag.ipynb
  • one qubit-qubit experiment:

Furthermore, suppose that coupling experiments should only begin when the qubit experiments are completed successfully. This flow would be implemented by the following experiments object:

qubit:
  - name: ramsey
  - name: t1
  - name: drag
coupling:
  - name: crosstalk
    dependencies:
      - drag

Experiments with nested subflows

To define subflows, simply use a subflow object instead of a task. For instance, if you wanted to group the first two tasks from the previous example (i.e. ramsey and t1), you can achieve that by using the following:

qubit:
  - name: my-grouping
    tasks:
      - name: ramsey
      - name: t1
  - name: drag
coupling:
  - name: crosstalk
    dependencies:
      - drag

As you can see, the element my-grouping is no longer a task, but rather a subflow. This comes in handy when you want to define groupings of tasks that should be retried at the same time by combining it with the subflow.retry property, or for grouping execution conditions for related tasks via subflow.conditions.

You can read more about subflows in the Further workflow customisation user guide.