qiboteam / qibocal

Quantum calibration, characterization and validation module for Qibo.
https://qibo.science
Apache License 2.0
30 stars 7 forks source link

Separate non-acquiring execution #911

Closed alecandido closed 2 months ago

alecandido commented 3 months ago

With runcards, the execution order was fixed by it, so it was sufficient to read the runcard again to repeat the same steps.

flowchart LR
acquisition --> run["Executor.run(runcard: Runcard)"]
auto --> run
fit --> run
report --> run

This is not going to work with scripts, since the execution could be determined by the tasks' output, which might be different according to the ExecutionMode.

This is why we need to support a different entry point:

flowchart LR
acquisition --> run["run(...)"]
auto --> run
fit --> process["process(output: Output)"]
report --> process

where an existing output is post-processed, fitting the results or producing reports.

Nothing prevents to have scripts that are just fitting, but it's their responsibility to parse the Output, if they want to. But if one just wants to fit the existing output, all and only the routines that have acquired in a different run, Qibocal should be able to provide a simpler and self-managed entry-point.