Rubick: Exploiting Job Reconfigurability for Deep Learning Cluster Scheduling
<|reference_start|>Rubick: Exploiting Job Reconfigurability for Deep Learning Cluster Scheduling: The era of large deep learning models has given rise to advanced training strategies such as 3D parallelism and the ZeRO series. These strategies enable various (re-)configurable execution plans for a training job, which exhibit remarkably different requirements of multiple resource types. Existing cluster scheduling systems, however, treat such reconfigurable training jobs as black boxes: they rely on users to choose execution plans statically, and then make resource allocations without awareness of the chosen plans and their resource requirements. This approach results in mismatches between execution plans and resources, making both training performance and cluster utilization far from optimal.   We introduce Rubick, a cluster scheduling system for deep learning training that exploits the reconfigurability to improve job performance and cluster efficiency. Rubick incorporates the job execution planning as a new dimension in cluster scheduling, by continuously reconfiguring jobs' execution plans and tuning multi-resource allocations across jobs jointly. Such a co-optimization is navigated by a performance model that understands the diverse resource requirements and performance characteristics of different jobs and execution plans. Rubick exploits such a model to make performance-aware scheduling decisions to maximize cluster throughput while providing performance guarantees to individual jobs. Evaluations on a 64-GPU high-performance training cluster show that Rubick improves average job completion time and makespan by up to 3.2x and 1.4x, respectively, compared against state-of-the-art systems.<|reference_end|>
@article{zhang2024rubick:,
    title={Rubick: Exploiting Job Reconfigurability for Deep Learning Cluster
  Scheduling},
    author={Xinyi Zhang, Hanyu Zhao, Wencong Xiao, Xianyan Jia, Fei Xu, Yong Li,
  Wei Lin, Fangming Liu},
    journal={arXiv preprint arXiv:2408.08586},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.08586},
    primaryClass={cs.DC}
}