Pollux: Co-adaptive Cluster Scheduling for Goodput-Optimized Deep Learning
arXiv:2008.12260
Abstract
Pollux improves scheduling performance in deep learning (DL) clusters by adaptively co-optimizing inter-dependent factors both at the per-job level and at the cluster-wide level. Most existing schedulers expect users to specify the number of resources for each job, often leading to inefficient resource use. Some recent schedulers choose job resources for users, but do so without awareness of how DL training can be re-optimized to better utilize the provided resources. Pollux simultaneously considers both aspects. By monitoring the status of each job during training, Pollux models how their goodput (a novel metric we introduce that combines system throughput with statistical efficiency) would change by adding or removing resources. Leveraging these information, Pollux dynamically (re-)assigns resources to improve cluster-wide goodput, while respecting fairness and continually optimizing each DL job to better utilize those resources. In experiments with real DL jobs and with trace-driven simulations, Pollux reduces average job completion times by 37-50% relative to state-of-the-art DL schedulers, even when they are provided with ideal resource and training configurations for every job. Pollux promotes fairness among DL jobs competing for resources based on a more meaningful measure of useful job progress, and reveals a new opportunity for reducing DL cost in cloud environments. Pollux is implemented and publicly available as part of an open-source project at https://github.com/petuum/adaptdl.
References in corpus (23)
- PyTorch: An Imperative Style, High-Performance Deep Learning Library
- Decoupled Weight Decay Regularization
- Practical Bayesian Optimization of Machine Learning Algorithms
- Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
- pymoo: Multi-objective Optimization in Python
- Deep Speech 2: End-to-End Speech Recognition in English and Mandarin
- MXNet: A Flexible and Efficient Machine Learning Library for Heterogeneous Distributed Systems
- One weird trick for parallelizing convolutional neural networks
- Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism
- SQuAD: 100,000+ Questions for Machine Comprehension of Text
- Don't Decay the Learning Rate, Increase the Batch Size
- Training Deep Nets with Sublinear Memory Cost
- Horovod: fast and easy distributed deep learning in TensorFlow
- Revisiting Small Batch Training for Deep Neural Networks
- AdaGrad stepsizes: Sharp convergence over nonconvex landscapes
- Measuring the Effects of Data Parallelism on Neural Network Training
- An Empirical Model of Large-Batch Training
- AdaBatch: Adaptive Batch Sizes for Training Deep Neural Networks
- Tuning Hyperparameters without Grad Students: Scalable and Robust Bayesian Optimisation with Dragonfly
- On the Computational Inefficiency of Large Batch Sizes for Stochastic Gradient Descent
- Coupling Adaptive Batch Sizes with Learning Rates
- Large-Batch Training for LSTM and Beyond
- ProBO: Versatile Bayesian Optimization Using Any Probabilistic Programming Language