algorithms module
This module contains the scheduling algorithms used in the scheduling API.
It provides implementations for both Least Deadline First (LDF) and Earliest Deadline First (EDF) scheduling strategies, applicable in single-core and multi-core processor environments. Functions within are designed to be called with specific application and platform data structures.
Functions: - ldf_singlecore: Schedules tasks on a single-core processor using LDF. - edf_singlecore: Schedules tasks on a single-core processor using EDF. - rms_singlecore: Schedules tasks on a single-core processor using RMS. - ll_singlecore: Schedules tasks on a single-core processor using LL. - ldf_multicore: Schedules tasks on multiple cores using LDF. - edf_multicore: Schedules tasks on multiple cores using EDF.
- algorithms.edf_multinode_no_delay(application_data, platform_data)[source]
Schedule jobs on a distributed system with multiple compute nodes using the Earliest Deadline First (EDF) strategy. This function processes application data to schedule jobs based on the earliest deadlines.
Todo
Implement Earliest Deadline First(EDF) algorithm to schedule jobs on multiple nodes in a distributed system.
- Parameters:
application_data (dict) – Job data including dependencies represented by messages between jobs.
platform_data (dict) – Contains information about the platform, nodes and their types, the links between the nodes and the associated link delay.
- Returns:
- Contains the scheduled job details, each entry detailing the node assigned, start and end times,
and the job’s deadline.
- Return type:
list of dict
- algorithms.edf_single_node(application_data)[source]
Schedule jobs on single node using the Earliest Deadline First (EDF) strategy.
This function processes application data to schedule jobs based on the earliest deadlines. It builds a dependency graph and schedules accordingly, ensuring that jobs with no predecessors are scheduled first, and subsequent jobs are scheduled based on the minimum deadline of available nodes.
Todo
Implement Earliest Deadline First Scheduling (EDF) algorithm for single compute node.
- Parameters:
application_data (dict) – Job data including dependencies represented by messages between jobs.
- Returns:
- Contains the scheduled job details, each entry detailing the node assigned, start and end times,
and the job’s deadline.
- Return type:
list of dict
- algorithms.ldf_multinode_no_delay(application_data, platform_data)[source]
Schedule jobs on a distributed system with multiple compute nodes using the Latest Deadline First(LDF) strategy. This function schedules jobs based on their periods and deadlines, with the shortest period job being scheduled first.
Todo
Implement Latest Deadline First(LDF) algorithm to schedule jobs on multiple nodes in a distributed system.
- Parameters:
application_data (dict) – Job data including dependencies represented by messages between jobs.
platform_data (dict) – Contains information about the platform, nodes and their types, the links between the nodes and the associated link delay.
- Returns:
- Contains the scheduled job details, each entry detailing the node assigned, start and end times,
and the job’s deadline.
- Return type:
list of dict
- algorithms.ldf_single_node(application_data)[source]
Schedule jobs on a single node using the Latest Deadline First (LDF) strategy.
This function schedules jobs based on their latest deadlines after sorting them and considering dependencies through a directed graph representation.
Todo
Implement Latest Dealine First Scheduling (LDF) algorithm for single compute node.
- Parameters:
application_data (dict) – Contains jobs and messages that indicate dependencies among jobs.
- Returns:
- Scheduling results with each job’s details, including execution time, node assignment,
and start/end times relative to other jobs.
- Return type:
list of dict
- algorithms.ll_multinode_no_delay(application_data, platform_data)[source]
Schedule jobs on a distributed system with multiple compute nodes using the Least Laxity (LL) strategy. This function schedules jobs based on their laxity, with the job having the least laxity being scheduled first.
Todo
Implement Least Laxity (LL) algorithm to schedule jobs on multiple node in a distributed system.
- Parameters:
application_data (dict) – Job data including dependencies represented by messages between jobs.
- Returns:
- Contains the scheduled job details, each entry detailing the node assigned, start and end times,
and the job’s deadline.
- Return type:
list of dict