Energy and Performance-Aware Task Scheduling
Overview
I implemented the scheduling approach described in Energy and Performance-Aware Task Scheduling in a Mobile Cloud Computing Environment as a C++ prototype. Tasks and cores are modeled as structured objects; recursive priority follows the critical path, with migration between local cores and remote cloud capacity and hard caps on completion time while pushing energy down.
Implementation
- Task Initialization: Tasks carry execution times, dependencies, and weights used by the scheduler.
- Priority Calculation: Recursive scoring along the critical path drives ordering.
- Energy and Time Metrics: Aggregate core and cloud energy against a fixed deadline budget.
- Dynamic Scheduling: Tasks move between local cores and the cloud as the heuristic searches for lower energy.
The executable runs bundled examples, renders before and after schedules, and highlights energy deltas.
Results
- Up to about 81% reduction in total energy on reported scenarios, with only a small increase in wall-clock time.
- Supports dense dependency graphs with on the order of 20 tasks in testing.
- Schedules are produced in microseconds on the benchmark hardware, suitable for interactive experimentation.
Artifacts live under Project 2 in the Algorithms repository, including the reference paper, the project report, and source code.