Dominant Resource Fairness: Fair Allocation of Multiple Resource Types

Authors: Ali Ghodsi, Matei Zaharia, Benjamin Hindman, Andy Konwinski, Scott Shenker, Ion Stoica
Venue:   NSDI 2011

This work presents a very computationally efficient scheduling algorithm in the context of data centers. The problem is presented as fair resource allocation, but the goal is accomplished through choosing which task to schedule (and how many of each). This done by assigning each task with a resource vector of it's requirements, and a corresponding vector of available resources. The algorithm considers each job's allocation via it's dominant resource. For example, if a job uses 1 CPU and 1 GB of memory, but there are 4 CPUs and 8GB of memory, it would be dominated by it's CPU usage (1/4 > 1/8). Tasks are continually scheduled such that the job with the lowest dominant resource share will be given priority. The algorithm takes O(log(n)) for n tasks. The work presents 4 main properties, and was well as 4 other "nice to have". I'll briefly cover some of what I believe are particularly important.

1. Strategy-proofness: It's impossible to claim you need more of a resource and achieve a greater share of resources. This will actually only result in less efficiency, as you'll be using a greater share of resources.

2. Pareto Efficiency: It's not possible to increase the allocation of a user without decreasing the allocation of another user(s). This means the system is effectively maximally occupied.

3. Population/Resource Monotonicity: Essentially, we can't decrease a job's resources because another job has completed a task, or the system's available resources have increased.

4. Sharing Incentive: The algorithm will outperform a blind (1/n) partitioning scheme of all resources.

Max-min Fairness:

This paper is very well cited (900+ as of writing), and has lot of other interesting work that has in turn cited it. Overall, a very good read and direction for future reading.

Comments

Popular posts from this blog

Fundamental Latency Trade-offs in Architecting DRAM Caches (Alloy Cache)

ZCOMP: Reducing DNN Cross-Layer Memory Footprint Using Vector Extensions

AutoFDO: Automatic Feedback-Directed Optimization for Warehouse-Scale Applications