Optimal Resource Allocation for Elastic and Inelastic Jobs
Benjamin Berg, Mor Harchol-Balter, Benjamin Moseley, Weina Wang, and, Justin Whitehouse

TL;DR
This paper studies how to optimally allocate servers in data centers to elastic and inelastic jobs to minimize response time, revealing that prioritizing inelastic jobs is optimal when they are generally larger, with analysis of both policies.
Contribution
It introduces and analyzes the Inelastic-First policy for resource allocation in heterogeneous workloads, providing the first mean response time analysis for both Elastic-First and Inelastic-First policies.
Findings
Inelastic-First policy is optimal when elastic jobs are smaller on average.
Elastic-First can outperform Inelastic-First in certain cases.
The paper provides a novel sample path argument and Markov chain analysis for response times.
Abstract
Modern data centers are tasked with processing heterogeneous workloads consisting of various classes of jobs. These classes differ in their arrival rates, size distributions, and job parallelizability. With respect to paralellizability, some jobs are elastic, meaning they can parallelize linearly across many servers. Other jobs are inelastic, meaning they can only run on a single server. Although job classes can differ drastically, they are typically forced to share a single cluster. When sharing a cluster among heterogeneous jobs, one must decide how to allocate servers to each job at every moment in time. In this paper, we design and analyze allocation policies which aim to minimize the mean response time across jobs, where a job's response time is the time from when it arrives until it completes. We model this problem in a stochastic setting where each job may be elastic or…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
