面向CPU-GPU集群的分布式机器学习资源调度框架研究
2021-07-12朱紫钰汤小春赵全
西北工业大学学报 2021年3期
朱紫钰, 汤小春, 赵全
(西北工业大学 计算机学院, 陕西 西安 710072)
分布式机器学习[1-3]在数据挖掘、医学影像、股票市场分析、计算机视觉、市场分析等领域被大规模使用。但是训练机器学习模型通常需要大量的时间和计算资源。随着数据中心开始大规模使用GPU设备,CPU-GPU混合的异构资源集群已经成为一种通用基础设施[4-5]。企业界为了提高分布式机器学习的效率,也逐渐将这类应用移植到异构集群平台上运行。但是,CPU-GPU集群上面临的一个基本挑战是如何高效地调度分布式机器学习作业中的任务。特别是当GPU计算资源较为珍贵时,如何最大程度地利用CPU-GPU计算资源进行模型训练已成为异构集群上面临的基本挑战。

分布式机器学习初期,由于硬件限制,主要采用CPU集群来进行,针对一批训练数据,计算框架把数据分成很多个片段,然后根据集群节点上CPU的数量,将每一个片段作为一个单独的任务分配到计算节点的不同CPU上,进行局部梯度计算。当所有的任务完成计算后,参数服务器收集各个任务的梯度误差进行汇总,然后发送新的参数用于下一次迭代。由于数据分片大小相同,CPU性能相同,所以每个任务在CPU上的执行时间大致相同,这能够保证每一次迭代的同步。
近几年来,随着GPU硬件设施的广泛应用,分布式机器学习开始使用GPU计算资源。在分布式机器学习的训练过程中,一部分任务可能运行在GPU上,一部分任务可能运行在CPU上。GPU用于单纯的梯度计算,CPU用于初始化、节点之间通信、数据加载、主机内存到设备内存之间拷贝以及启动GPU的kernel函数等。……
登录APP查看全文
