compilation#
Compiler for the quantify_scheduler.
Module Contents#
Functions#
Determine the absolute timing of a schedule based on the timing constraints. |
|
Determine the absolute timing of a schedule based on the timing constraints. |
|
|
|
|
Validate a configuration using a schema. |
Attributes#
- _determine_absolute_timing(schedule: quantify_scheduler.schedules.schedule.Schedule, time_unit: Literal['physical', 'ideal', None] = 'physical', config: quantify_scheduler.backends.graph_compilation.CompilationConfig | None = None) quantify_scheduler.schedules.schedule.Schedule [source]#
- _determine_absolute_timing(schedule: quantify_scheduler.operations.operation.Operation, time_unit: Literal['physical', 'ideal', None] = 'physical', config: quantify_scheduler.backends.graph_compilation.CompilationConfig | None = None) quantify_scheduler.operations.operation.Operation | quantify_scheduler.schedules.schedule.Schedule
Determine the absolute timing of a schedule based on the timing constraints.
This function determines absolute timings for every operation in the
schedulables
. It does this by:iterating over all and elements in the
schedulables
.determining the absolute time of the reference operation - reference point
"ref_pt"
of the reference operation defaults to"end"
in case it is not set (i.e., isNone
).determining the start of the operation based on the
rel_time
andduration
of operations - reference point"ref_pt_new"
of the added operation defaults to"start"
in case it is not set.
- Parameters:
schedule – The schedule for which to determine timings.
config – Compilation config for
QuantifyCompiler
.time_unit – Whether to use physical units to determine the absolute time or ideal time. When
time_unit == "physical"
the duration attribute is used. Whentime_unit == "ideal"
the duration attribute is ignored and treated as if it is1
. Whentime_unit == None
it will revert to"physical"
.
- Returns:
The modified
schedule
where the absolute time for each operation has been determined.- Raises:
NotImplementedError – If the scheduling strategy is not “asap”
- _determine_absolute_timing_schedule(schedule: quantify_scheduler.schedules.schedule.Schedule, time_unit: Literal['physical', 'ideal', None], config: quantify_scheduler.backends.graph_compilation.CompilationConfig | None) quantify_scheduler.schedules.schedule.Schedule [source]#
- determine_absolute_timing(schedule: quantify_scheduler.schedules.schedule.Schedule, time_unit: Literal['physical', 'ideal', None] = 'physical', config: quantify_scheduler.backends.graph_compilation.CompilationConfig | None = None) quantify_scheduler.schedules.schedule.Schedule [source]#
Determine the absolute timing of a schedule based on the timing constraints.
- _get_start_time(schedule: quantify_scheduler.schedules.schedule.Schedule, t_constr: dict[str, str | float], curr_op: quantify_scheduler.operations.operation.Operation | quantify_scheduler.schedules.schedule.Schedule, time_unit: Literal['physical', 'ideal', None]) float [source]#