面向GPU 集群的动态资源调度方法
2023-06-07傅懋钟胡海洋李忠金
傅懋钟 胡海洋 李忠金,2
1 (杭州电子科技大学计算机学院 杭州 310018)
2 (浙江省北大信息技术高等研究院智能软件技术与应用研究中心 杭州 311215)
深度学习(deep learning,DL)技术已被广泛应用于众多业务场景,研发人员根据业务场景的目标特征构建深度神经网络(deep neural network,DNN)模型,并在特定数据集上反复训练,直至模型精度维持在一个预期的水平,从而达到在业务场景中对目标行为进行预测的目的.随着业务场景的复杂程度提高,需要结构更加复杂且层数更多的DNN 模型来获得更高的精度.同时,数据集的规模也在不断地增长,导致训练一个DNN 模型需要很长时间.因此,通过构建分布式深度学习(distributed deep learning,DDL)任务,在GPU 集群上对DNN 模型进行训练,从而加快训练的过程[1],受到了工业界和学术界的广泛关注.主流的机器学习框架,如PyTorch[2],TensorFlow[3],都对DDL 提供了完整的技术支持.
不同于大型公司或企业所部署的高性能计算中心[4-5]这类高度专业化的平台,考虑到GPU 设备的成本和组建难度,众多中小型企业、研究所和高校通常会采购GPU 服务器组建一个小规模的GPU 集群来处理多个用户的DDL 任务,如图1 所示.GPU 集群的计算资源有限,且各GPU 服务器的算力、内部通信方式等处于异构性质,如何对其进行高效的资源调度具有重要意义.

Fig.1 Application scenarios of GPU cluster图1 GPU 集群的应用场景
现有的集群调度器,例如Yarn[6],Mesos[7],Kubernetes[8],在对DDL 任务调度时表现出资源分配不当、运行效率不高的问题,从而无法满足用户需求.例如,在某实验室使用Yarn 进行资源管理的GPU 集群[9]中,同一机架和……
