b_asic.scheduler

scheduler

class b_asic.scheduler.ALAPScheduler(input_times: dict[GraphID, int] | None = None, output_delta_times: dict[GraphID, int] | None = None)

Bases: Scheduler

Scheduler that implements the as-late-as-possible (ALAP) algorithm.

apply_scheduling(schedule: Schedule) None

Applies the scheduling algorithm on the given Schedule.

Parameters:
scheduleSchedule

Schedule to apply the scheduling algorithm on.

class b_asic.scheduler.ASAPScheduler(input_times: dict[GraphID, int] | None = None, output_delta_times: dict[GraphID, int] | None = None)

Bases: Scheduler

Scheduler that implements the as-soon-as-possible (ASAP) algorithm.

apply_scheduling(schedule: Schedule) None

Applies the scheduling algorithm on the given Schedule.

Parameters:
scheduleSchedule

Schedule to apply the scheduling algorithm on.

class b_asic.scheduler.ListScheduler(sort_order: tuple[tuple[int, bool], ...], max_resources: dict[TypeName, int] | None = None, max_concurrent_reads: int | None = None, max_concurrent_writes: int | None = None, input_times: dict[GraphID, int] | None = None, output_delta_times: dict[GraphID, int] | None = None)

Bases: Scheduler

List-based scheduler that schedules the operations while complying to the given constraints.

Parameters:
sort_ordertuple[tuple[int, bool]]

Specifies which columns in the priority table to sort on and in which order, where True is ascending order.

max_resourcesdict[TypeName, int] | None, optional

Max resources available to realize the schedule, by default None

max_concurrent_readsint | None, optional

Max number of conccurent reads, by default None

max_concurrent_writesint | None, optional

Max number of conccurent writes, by default None

input_timesdict[GraphID, int] | None, optional

Specified input times, by default None

output_delta_timesdict[GraphID, int] | None, optional

Specified output delta times, by default None

apply_scheduling(schedule: Schedule) None

Applies the scheduling algorithm on the given Schedule.

Parameters:
scheduleSchedule

Schedule to apply the scheduling algorithm on.

class b_asic.scheduler.RecursiveListScheduler(sort_order: tuple[tuple[int, bool], ...], max_resources: dict[TypeName, int] | None = None, input_times: dict[GraphID, int] | None = None, output_delta_times: dict[GraphID, int] | None = None)

Bases: ListScheduler

apply_scheduling(schedule: Schedule) None

Applies the scheduling algorithm on the given Schedule.

Parameters:
scheduleSchedule

Schedule to apply the scheduling algorithm on.

class b_asic.scheduler.Scheduler(input_times: dict[GraphID, int] | None = None, output_delta_times: dict[GraphID, int] | None = None)

Bases: ABC

abstract apply_scheduling(schedule: Schedule) None

Applies the scheduling algorithm on the given Schedule.

Parameters:
scheduleSchedule

Schedule to apply the scheduling algorithm on.