Energy and Performance-Aware Task Scheduling

Northeastern University, CS 5800 Algorithms ยท Fall 2023

C++ Optimization Algorithms
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.

Task scheduling visualization

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.

Energy scheduling comparison chart