Address task scheduling in a data center as combinatorial optimization problems.
Use level-by-level scheduling algorithms to deal with precedence constraints.
Use a simple system partitioning and processor allocation scheme.
Use two heuristic algorithms for scheduling independent tasks in the same level.
Adopt a two-level energy/time/power allocation scheme.