camsas / firmament

The Firmament cluster scheduling platform
Apache License 2.0
415 stars 79 forks source link

Make cluster aggregator node into a cost-model-dependent EC #23

Closed ms705 closed 9 years ago

ms705 commented 9 years ago

This PR amends our notion of the cluster aggregator ("don't care"/"X") node in the flow graph. Since some of the cost models we use do not have a cluster aggregator node, it seems prudent not to hard-code its existence into the flow graph code.

Instead, cost models can now themselves create a cluster aggregator node by simply producing an equivalence class of which all tasks and all machines (or racks, or cores, or resources in general) are members. This PR also updates the majority of cost models to work with this new notion (done: trivial, random, WhareMap and Octopus cost models; to do: SJF, Quincy, CoCo and simulated Quincy).

I will keep updating this PR over the next few days, but I'm pushing it out already so that review of the (substantial) changes can begin.