How to execute calibration protocols in Qibocal?#

In Qibocal we adopt a declarative programming paradigm, i.e. the user should specify directly what he wants to do without caring about the underlying implementation.

This paradigm is implemented in Qibocal in the form of runcards. A runcard is essentially a set of instructions that are specified in a file.

Down below we present how to write a runcard to execute calibration protocols using qq.

backend: <qibo backend>

platform: <qibolab platform name>

targets: <list of targets where all protocols will be executed.>

    - id: <first protocol id>
      operation: <first qibocal protocol>
        arg1: ...
        arg2: ...

    - id: <second protocol id>
      operation: <second qibocal protocol>
        arg1: ...
        arg2: ...
Here is a description of the global parameters to be specified:
  • backend: Qibo backend, if not provided Qibolab will be used.

  • platform: QPU where the experiments will be executed. Possible choices

    for TII users are available in this repository. For non-TII users it is possible a setup a custom platform using Qibolab.

  • targets: list of QubitId for a specific platform. It can also be a list of QubitPairId

    in the case of protocols for qubit pairs, or a list[list[QubitId]] for protocols targeting groups of qubits.

Under actions are listed the protocols that will be executed sequentially.

For each protocol the user needs to specify the following:
  • id: custom id chosen by the user.

  • operation: protocol available in Qibocal. See calibration_routines for a complete list of the protocols available.

  • parameters: input parameters.