scheduler

scheduler#

Full path: iqm.pulse.scheduler

Tools for composing instruction schedules in time.

Under the idealized, noiseless, crosstalk-less computational model, the scheduling algorithms should preserve the effect of the schedules on the computational subspace, i.e. executing Schedule A immediately followed by B should be equivalent to executing the composed schedule A+B.

The composing is always done so that in A+B all the channels of B start their execution simultaneously, and remain in sync. Nothing instructions can be added as spacers between the channels of A and B as necessary to make this happen.

Typically the scheduling algorithms also try to minimize the total duration of the composed schedule.

Module Attributes

NONSOLID

Instructions that can be converted to Wait after scheduling.

BLOCKING

Nonsolid Instructions that nevertheless block.

Functions

extend_hard_boundary(schedule, ...)

Merge two Schedules together such that the timebox boundary is respected.

extend_hard_boundary_in_seconds(schedule, ...)

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

extend_schedule(A, B, channels, *[, TOL])

Extend a Schedule with another Schedule.

extend_schedule_new(A, B, channels, *[, TOL])

Extend a Schedule with another Schedule.

Classes

SegmentPointer

Tool for working with Segments.

Inheritance

Inheritance diagram of iqm.pulse.scheduler