scheduler

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.

Full path: iqm.pulse.scheduler

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