iqm.pulse.scheduler.extend_hard_boundary_in_seconds

iqm.pulse.scheduler.extend_hard_boundary_in_seconds#

iqm.pulse.scheduler.extend_hard_boundary_in_seconds(schedule, child_schedule, child_components, neighborhood_components, component_durations, is_alap, channel_properties)#

The same as extend_hard_boundary, but the scheduling is done in seconds.

Used when the probe channel sampling rate differs from the other channels’ rate. The incoming schedules measure Instruction durations in samples, but component_durations is in seconds.

Parameters:
  • schedule (Schedule) – Schedule that should be extended with child_schedule. Modified in place.

  • child_schedule (Schedule) – Child schedule to be added.

  • child_components (set[str]) – Components (qubits, couplers, computational_resonators) that have at least one channel in child_schedule.

  • neighborhood_components (set[str]) – Components neighboring the child_components that should additionally be blocked in the scheduling.

  • component_durations (dict[str, float]) – Blocked durations for each component in schedule. These act as the earliest starting points for new segment added to any of the channels of a given component, but will also block the component even if it has no occupied channels in the schedule yet or ever (e.g. a computational resonator). The durations are in seconds. Modified in place.

  • is_alap (bool) – Whether the scheduling strategy is ALAP (As Late As Possible).

  • channel_properties (dict[str, ChannelProperties]) – Mapping from channel name to its properties (e.g. the sample rates and granularities).

Return type:

None