How to execute a single protocol 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 essentally
a set of instructions that are specified in a file.
Down below we present how to write a runcard to execute a single protocol using qq.
backend: <qibo backend>
platform: <qibolab platform name>
qubits: <list of qubit ids where all the protocols will be performed.>
actions:
- id: <protocol id>
priority: 0
operation: <qibocal protocol>
parameters:
arg1: ...
arg2: ...
- Here is a description of the global parameters to be specified:
backend
:Qibo
backend, if not providedQibolab
will be used.platform
: QPU where the experiments will be executed. Possible choicesfor TII users are available in this repository. For non-TII users it is possible a setup a custom platform using Qibolab.
qubits
: list of qubit names for a specific platform. It can also be a list of qubit pairsin the case of protocols for qubit pairs.
Under actions
are listed the protocols that will be executed.
- For each protocol the user needs to specify the following:
id
: custom id chosen by the user.priority
: protocol priority in increasing order. The protocols with lower priority will be executed first.Always start from a node with priority 0.
operation
: protocol available inQibocal
. See qibocal.protocols package for a complete list of the protocols available.parameters
: input parameters.