Qibocal provides calibration protocols using Qibo and Qibolab.
Qibocal key features:
-
Declarative inputs using runcard.
-
Generation of a report.
Qibocal documentation is available here.
Note
Qibocal main
contains some breaking changes compared to 0.1
versions.
A small guide to make the transition as smooth as possible can be found here
.
The package can be installed by source:
git clone https://github.com/qiboteam/qibocal.git
cd qibocal
pip install .
For development make sure to install the package using poetry
and to install the pre-commit hooks:
git clone https://github.com/qiboteam/qibocal.git
cd qibocal
poetry install
pre-commit install
Here is an example on how to run a Rabi experiment in Qibocal.
from qibocal import create_calibration_platform
from qibocal.protocols import rabi_amplitude
# create platform
platform = create_calibration_platform("qubit")
# define qubits where the protocols will be executed
targets = [0]
# define protocol parameters
params = rabi_amplitude.parameters_type.load(dict(
min_amp=0.01,
max_amp=0.2,
step_amp=0.02,
nshots=2000,
pulse_length=40,
))
# acquire
platform.connect()
data, acquisition_time = rabi_amplitude.acquisition(
params=params,
platform=platform,
targets=targets
)
platform.disconnect()
# post-processing
results, fit_time = rabi_amplitude.fit(data=data)
# visualize the results
plots, table = rabi_amplitude.report(data=data, results=results, target=target[0])
plots[0].show()
The table is written in HTML and can be visualized in Python with
from IPython import display
display.HTML(table)
The same experiment can also be run using the following yaml file
platform: qubit
targets: [0]
actions:
- id: rabi
operation: rabi_amplitude
parameters:
min_amp: 0.01
max_amp: 0.2
step_amp: 0.02
nshots: 2000
pulse_length: 40
To run the protocol Qibocal uses the qq run
command
qq run <runcard> -o <output_folder>
if <output_folder>
is specified, the results will be saved in it, otherwise qq
will automatically create a default folder containing the current date and the username.
In order to upload the report to a centralized server, send to the server administrators your public ssh key (from the machine(s) you are planning to upload the report) and then use the qq upload <output_folder>
command. This program will upload your report to the server and generate an unique URL.
Contributions, issues and feature requests are welcome!
Feel free to check
If you use the package please refer to the documentation for citation instructions
A non-exhaustive list of possible protocols to be implemented in Qibocal is collected here.