standard_stages#
Full path: iqm.cpc.compiler.standard_stages
Standard compilation stages, their constituent compiler passes, and functions for implementing them.
There are 6 standard compilation stages:
Circuit-to-circuit.
Circuit-to-timebox.
Timebox-to-timebox.
Timebox-to-schedule.
Schedule-to-schedule.
Schedule-to-playlist.
Breakdown of compiler passes of each stage:
1. Circuit-to-circuit#
Map the logical QPU components to physical QPU components. Provided mapping is used, if any. Otherwise, identity mapping is used.
Choose implementations for circuit operations based on the calibration set.
Add additional terminal measurements and/or convert the terminal measurements to the measure_fidelity QuantumOp.
2. Circuit-to-timebox#
Resolve the circuits to timeboxes using
ScheduleBuilder.circuit_to_timebox().
3. Timebox-to-timebox#
Merge any MultiplexedProbeTimeBoxes inside each TimeBox using
TimeBox.composite().Add the heralding measurement timebox to all circuits if
HeraldingModein circuit execution options requires it.Add a reset timebox to all circuits.
4. Timebox-to-schedule#
Resolve the timeboxes to schedules using
ScheduleBuilder.resolve_timebox().
5. Schedule-to-schedule#
Apply dynamical decoupling sequences to the schedule if requested.
Apply resonator-related phase corrections if MOVE gates are used.
Remove non-functional instructions from schedules using
ScheduleBuilder._finish_schedule().
6. Schedule-to-playlist#
Build the playlist from the schedules using
ScheduleBuilder.build_playlist().
Module Attributes
Buffer that allows the readout resonator and qubit state to stabilize after a probe pulse, in s. |
Functions
|
Insert dynamical decoupling sequences into the schedules, if dynamical decoupling is enabled. |
|
Apply calibrated phase corrections if MOVE gates are used. |
|
Build the playlist from the schedules and merge the contexts for individual sweep spots. |
|
Remove non-functional instructions from schedules. |
|
Create MQE-style RunDefinition. |
|
Maps the logical component names in a sequence of instructions to the corresponding physical component names. |
|
Merge any MultiplexedProbeTimeBoxes inside a TimeBox representing a circuit. |
|
Add the heralding measurement TimeBox to all circuits (locus: active components that can be measured). |
|
Add a reset timebox to all circuits for all active components. |
|
Resolve the circuits to timeboxes. |
|
Resolve the timeboxes to schedules. |
|
Add additional terminal measurements to the circuit and modify measurement instruction arguments. |
|
Validate circuits and aggerate metrics data from them. |
|
Validate the settings for circuit execution options (only some combinations make sense). |