CN116204327B - 分布式系统通信调度方法及分布式机器学习系统 - Google Patents

分布式系统通信调度方法及分布式机器学习系统 Download PDF

Info

Publication number
CN116204327B
CN116204327B CN202310499055.0A CN202310499055A CN116204327B CN 116204327 B CN116204327 B CN 116204327B CN 202310499055 A CN202310499055 A CN 202310499055A CN 116204327 B CN116204327 B CN 116204327B
Authority
CN
China
Prior art keywords
communication
task
computing
computing resources
tasks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310499055.0A
Other languages
English (en)
Other versions
CN116204327A (zh
Inventor
周禹
安仲奇
关宇
董建波
翟恩南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310499055.0A priority Critical patent/CN116204327B/zh
Publication of CN116204327A publication Critical patent/CN116204327A/zh
Application granted granted Critical
Publication of CN116204327B publication Critical patent/CN116204327B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开涉及一种分布式系统通信调度方法及分布式机器学习系统。分布式系统包括通过通信链路网络连接的多个计算资源。多个计算资源被分配以执行任务。分配给同一项任务的计算资源通过通信链路网络实现数据同步。获取任务涉及的计算资源信息和通信信息。以及基于任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略。调度策略是以优化多个计算资源的总体资源利用效率为目标确定的。由此,使得分布式系统能够在计算资源的计算和通信之间实现更好的配合,对计算资源的利用更合理有效,从而提升了整个分布式系统的性能。

Description

分布式系统通信调度方法及分布式机器学习系统
技术领域
本公开涉及分布式计算领域,特别涉及分布式系统通信调度方法和分布式机器学习系统。
背景技术
近年来,分布式系统得到了广泛的应用。一种重要的应用是分布式机器学习(DML,DistributedMachine Learning)系统。
分布式机器学习系统利用分布在多个服务器中的算力资源(中央处理器CPU或图形处理器GPU)协同完成机器学习模型的训练或推理。分布式机器学习系统能够有效地提高性能,并支持更大规模的训练数据和更大的模型,是当前工业界关注的重点。目前的多种深度学习训练框架都以支持分布式机器学习为核心功能。
分布式机器学习系统主要支持两种并行模式。
第一种是模型并行模式。模型并行模式将一个机器学习模型切分成为若干部分,然后将不同部分运行与不同GPU中。模型并行模式主要适用于模型较大的场景。
第二种是数据并行模式。数据并行模式将整体训练数据切分成了多个子集,然后将不同数据子集输入到不同GPU中进行训练。
对于一些模型本身相对较小,但是训练数据集非常大的场景,数据并行模型更加适用。
分布式机器学习系统的执行过程主要包含两个步骤。
第一步是计算,负责结合训练数据计算模型参数。
第二步是通信,负责加载训练数据,以及在不同计算节点之间同步模型参数。
通信和计算的性能对于DML系统都很重要。
在分布式系统中,一个非常重要的问题在于,如何在计算和通信之间协调对计算资源的使用。
发明内容
本公开要解决的一个技术问题是提供一种分布式系统通信调度方案,在例如用于分布式机器学习系统进行模型训练时,能够在计算资源的计算和通信之间实现更好的配合,使得分布式系统对计算资源的利用更合理有效,提升整个分布式系统的性能。
根据本公开的第一个方面,提供了一种分布式系统通信调度方法,其中,分布式系统包括通过通信链路网络连接的多个计算资源,多个计算资源被分配以执行任务,分配给同一项任务的计算资源通过通信链路网络实现数据同步,该方法包括:获取任务涉及的计算资源信息和通信信息;以及基于任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略,其中,调度策略是以优化多个计算资源的总体资源利用效率为目标确定的。
可选地,总体资源利用效率是基于多个计算资源的计算时间占比估计的。
可选地,总体资源利用效率是基于多个计算资源的计算时间相对于通信时间的比例估计的。
可选地,调度策略受各条通信链路的带宽和各项任务在各条通信链路上的通信带宽需求的约束。
可选地,确定多项任务相关的通信的调度策略的步骤包括:基于任务涉及的计算资源信息和通信信息以及各条通信链路上的通信需求信息,确定任务的通信优先级;以及基于通信优先级确定调度策略,其中,在各条通信链路上,优先执行与具有较高优先级的任务相关的通信。
可选地,确定任务的通信优先级的步骤包括:基于任务涉及的计算资源信息和通信信息,确定各任务相对于其所使用的通信链路的任务链路权重;以及对于尚未分配通信优先级的待分配任务,为所有通信链路中待分配任务相关通信总负载最大的通信链路上,任务链路权重最低的任务分配尚未分配的最低通信优先级。
可选地,任务链路权重与该任务所使用的计算资源数量正相关。
可选地,任务链路权重与该任务的计算资源计算时间负相关。
可选地,任务链路权重与该任务在该通信链路上的计算资源通信时间负相关。
可选地,分布式系统为分布式机器学习系统。
可选地,计算资源为图形处理器。
可选地,分布式系统包括多个通过网络交换机互联的计算服务器,所述计算服务器包括多个通过机内交换机互联的中央处理器和多个图形处理器。
可选地,为一项任务分配多个计算资源。
可选地,每个计算资源专用于一项任务。
可选地,进行通信时,一条通信链路在各个时刻专用于一项任务的通信。
可选地,任务是机器学习模型的训练任务,训练样本集分为多个训练样本子集,分配给同一项任务的多个计算资源分别使用一个训练样本子集对机器学习模型进行训练,并通过通信链路网络进行通信以实现通过训练得到的模型参数的同步。
根据本公开的第二个方面,提供了一种分布式机器学习模型训练方法,包括:为机器学习模型训练任务分配计算资源;将机器学习模型的训练样本集划分为多个训练样本子集,分别提供给为机器学习模型训练任务分配的多个计算资源;多个计算资源分别使用训练样本子集对机器学习模型进行训练,得到经过训练的模型参数;基于机器学习模型训练任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略,其中,调度策略是以优化多个计算资源的总体资源利用效率为目标确定的;分配给机器学习模型训练任务的计算资源,根据调度策略,通过通信链路网络进行通信,以实现模型参数的同步。
根据本公开的第三个方面,提供了一种分布式机器学习系统,包括:通过通信链路网络连接的多个计算资源,多个计算资源被分配以执行机器学习模型的训练任务,分配给同一项任务的计算资源通过通信链路网络进行通信以实现通过训练得到的模型参数的同步;以及通信调度系统,基于任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略,其中,调度策略是以优化多个计算资源的总体资源利用效率为目标确定的。
可选地,该分布式机器学习系统还包括多个通过网络交换机互联的图形处理服务器,所述图形处理服务器包括多个通过内部交换机互联的中央处理器和多个图形处理器,所述多个计算资源包括所述多个图形处理服务器上的多个图形处理器。
可选地,所述图形处理器包括第一模型计算模块和第一通信代理模块,所述中央处理器还包括第二模型计算模块、第二通信代理模块以及通信调度模块,所述通信调度系统包括所述多个图形处理服务器上的中央处理器的通信调度模块,第一模型计算模块和第二模型计算模块用于执行所分配的训练任务的计算,第一通信代理模块和第二通信代理模块获取任务涉及的计算资源信息和通信信息,注册到中央处理器的通信调度模块,所述通信调度系统包括的多个通信调度模块共同生成调度策略,所述通信代理模块从通信调度模块接收调度策略,并基于调度策略执行相应的通信以实现模型参数的同步。
可选地,所述通信调度系统通过如上述第一方面的方法确定所述调度策略。
根据本公开的第四个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面的方法。
根据本公开的第五个方面,提供了一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一方面所述的方法。
根据本公开的第六个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。
由此,本公开在本领域首次提出以全局计算资源如GPU的总体资源利用效率为优化目标来确定通信调度策略,使得分布式系统能够在计算资源如GPU的计算和通信之间实现更好的配合,对计算资源的利用更合理有效,提升整个分布式系统的性能。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了由例如云服务提供商搭建的分布式机器学习系统。
图2示意性地示出了GPU服务器的内部结构。
图3示意性地示出了本公开的分布式系统架构图。
图4示意性地示出了本公开的任务相关通信调度流程。
图5是根据本公开的分布式机器学习模型训练方法的示意性流程图。
图6是根据本公开的分布式系统通信调度方法的示意性流程图。
图7是根据本公开实施例确定调度策略的方法的示意性流程图。
图8是根据本公开实施例确定任务的通信优先级的方法的示意性流程图。
图9示出了根据本发明一实施例可用于实现上述方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本公开的技术方案主要关注数据并行模式下的分布式机器学习系统相关问题。应当理解,在一些场景下,也可以适用于模型并行模式下的分布式机器学习系统。
图1示出了由例如云服务提供商搭建的分布式机器学习系统(DML集群),可以用于向客户提供算力资源。
在本公开的上下文中,“分布式机器学习系统”、“DML系统”、“DML集群”表示相同的含义。
另外,在本公开的上下文中,“算力资源”可以包括CPU和GPU。
而作为本公开重点考虑的对象,“计算资源”,考虑到目前GPU的成本高于CPU的成本,可以仅包括GPU。但是应当明白,在一些场景下,本公开的计算资源也可以同时包括CPU。
DML集群可以由多台GPU服务器以及通信链路网络组成。
各GPU服务器通过多台网络交换机(机间交换机)互联,GPU服务器之间往往可以有多条可用通信链路路径。
图2示意性地示出了GPU服务器的内部结构。
CPU、GPU以及网卡通过机内交换机,例如PCIe(高速串行扩展总线)交换机,相连,组成机内网络。
不同DML集群方案可能有不同的机内网络以及机间网络。图1和图2仅展示了目前常见的方案,但本公开所支持的方案不受机内网络和机间网络限制。
如前文所述,在分布式机器学习系统中,分配给各个机器学习模型训练任务的计算资源一方面执行计算,使用训练样本子集对机器学习模型进行训练,得到经过训练的模型参数,另一方面进行通信,加载训练样本子集数据,并在各个计算资源之间通过通信实现模型参数的同步。
在通信过程中,模型参数的同步占据了极高的比重,对于整体系统通信性能影响非常明显。本公开主要关注DML通信中模型参数同步部分。
一般地,模型参数同步操作需要在每一轮次的训练完成之后进行。
模型同步的方式有很多种。
例如,对于各个模型参数,可以分别选取所有计算资源经过训练得到的相应参数的最大值,也可以取相应参数的平均值,作为要同步到所有计算资源的模型参数。
各个计算资源之间可以直接进行通信以实现模型参数的同步。或者,各个计算资源也可以通过统一或分散的模型参数同步模块,从分配给同一个训练任务的多个计算资源分别获取模型参数,确定要同步到各个计算资源的模型参数值,然后将所确定的模型参数值在发送给各个计算资源。
另一方面,一个DML集群会同时部署多个DML任务。这些DML任务将部署在不同的GPU或CPU之中,但是他们的参数同步通信过程会竞争机内网络的带宽资源以及网络的带宽资源。这会造成两类冲突问题:机内网络冲突以及机间网络冲突。
上述两类冲突问题,实质上都是通信网络冲突,会造成通信时间增加,从而造成DML任务完成时间增长。
而在通信过程中,计算资源如GPU往往处于空等状态,因此上述两类通信网络冲突问题也会造成计算资源如GPU空等状态时间变成,降低计算资源如GPU的利用效率。
而GPU利用效率以及DML任务完成时间,特别是GPU利用效率,是DML集群的重要性能指标。
基于上述考虑,本公开提出了一种解决机内和/或机间网络冲突造成的任务完成时间增长和GPU利用效率降低的问题的分布式机器学习方案。
更具体地,本公开提出了一种分布式机器学习(DML)通信调度方案。该DML通信调度方案可以实施于分布式机器学习系统服务器的软件层中,主要解决多任务场景下的通信冲突问题,例如可以包括机内网络冲突以及机间网络冲突问题。
该方案主要涉及两个方面。
一方面,提出了一种以全局GPU总体资源利用效率为核心目标的优化模型。该优化模型是一种面向分布式机器学习多任务场景下的GPU资源利用效率模型。该模型能够用于衡量DML集群中存在多个DML任务时,总体的GPU资源利用效率。
另一方面,提出了一种启发式通信调度算法,以实现该优化模型。该算法基于GPU资源利用效率模型以及实时收集的DML任务信息,对整个DML集群内的DML任务的通信顺序进行调度。
图3示意性地示出了本公开的分布式系统架构图。
在该分布式系统架构包括多个GPU服务器。如图1所示,多个GPU服务器可以通过多台网络交换机互联。GPU服务器之间往往可以有多条可用通信链路路径。
各个GPU服务器可以包括CPU和一个或多个GPU(图中每个GPU服务器中只示出了一个GPU,但是应当理解GPU数量不限于一个)。
GPU和CPU中都包括模型计算模块,可以分别称为“第一模型计算模块”和“第二模型计算模块”,用于进行模型训练任务的计算工作,得到训练得到的模型参数。
GPU和CPU都包括通信代理模块,可以分别称为“第一通信代理模块”和“第二通信代理模块”,用于进行与其所在CPU或GPU涉及的通信工作。无论是集成于GPU上的第一通信代理模块还是集成于CPU上的第二通信代理模块,在模型训练任务期间,都可以与其它进程(或其它GPU或CPU)进行通信。
另外,CPU还可以包括通信调度模块。多个GPU服务器的通信调度模块可以共同生成调度策略,以进行通信调度。
通信代理模块从通信调度模块接收调度策略,并基于调度策略执行相应的通信以实现模型参数的同步。
在分配给计算资源的训练任务发起新的通信请求时,通信代理模块可以获取任务相关信息,如任务涉及的计算资源信息如GPU编号和通信信息如通信消息大小,并注册到通信调度模块。
通信调度模块可以是一个守护进程,运行于集群中的每台GPU服务器的CPU上。
通信调度模块可以收集来自通信代理模块的任务信息以及通信链路网络信息。以上信息在群集中的所有通信调度模块之间同步,用于分配通信优先级。
通信调度模块基于任务涉及的计算资源信息和通信信息,确定与DML系统当前执行的多项训练任务相关的通信的调度策略。这里,调度策略是以优化所述多个计算资源的总体资源利用效率为目标确定的。下文中将详细描述调度策略的规划生成。
通信代理模块从通信调度模块收到调度结果后,通信代理模块通过在基于调度策略确定的开始时间开始通信或将流引导到指定的通信链路来控制通信。
图4示意性地示出了本公开的任务相关通信调度流程。
首先,在步骤S410,新任务启动时,相关GPU或CPU的通信代理模块会收集任务相关信息,包括分配给该任务使用的GPU的数量、通信消息大小以及参与通信的GPU节点或CPU节点等。
通信代理模块可以向通信调度模块注册新任务,并上报上述信息。
在步骤S420,通信调度模块可以基于所有任务的信息计算任务通信的优先级。
在步骤S430,任务通过通信代理模块发起通信请求,并将通信请求发送给通信调度模块。
在步骤S440,通信调度模块根据当前的通信状态输出调度策略,即如果存在高优先级的任务正在通信且与当前任务占用相同的链路,那么当前任务需要等待高优先级任务完成通信后继续通信。否则,当前任务可以直接通信。下文中将进一步详细描述根据调度策略的规划生成。
然后,在步骤S450,通信代理模块接收来自通信调度模块的策略,并根据策略执行通信请求,即开始通信或等待。
上面参考图4从单个任务的执行角度描述了根据本公开的通信调度流程。
下面从整个DML系统的角度描述根据本公开的分布式机器学习模型训练方法。
图5是根据本公开的分布式机器学习模型训练方法的示意性流程图。
在步骤S510,为机器学习模型训练任务分配计算资源。例如,可以在系统初始启动时,为所有计划在该DML系统上进行训练的机器学习模型训练任务分配计算资源。或者,也可以在有新的机器学习模型训练任务时,为其分配DML系统中的可用计算资源。可以为每个任务分配一个或多个计算资源。
在步骤S520,对于各机器学习模型训练任务,将相应的训练样本集划分为多个训练样本子集,分别提供给为机器学习模型训练任务分配的多个计算资源。每个计算资源可以接收一个训练样本子集。
在步骤S530,多个计算资源分别使用训练样本子集对(为其分配的)机器学习模型进行训练,得到经过训练的模型参数。
在步骤S540,可以基于机器学习模型训练任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略。调度策略是以优化DML系统多个计算资源的总体资源利用效率为目标确定的。下文中将进一步详细描述调度策略的规划生成。
在步骤S550,分配给机器学习模型训练任务的计算资源,根据调度策略,通过通信链路网络进行通信,以实现模型参数的同步。
下面,参考图6进一步详细描述根据本公开的分布式系统(例如分布式机器学习系统)的通信调度方法,特别是调度策略的规划生成。
如前文所述,本公开的分布式系统包括通过通信链路网络连接的多个计算资源,多个计算资源被分配以执行任务,分配给同一项任务的计算资源通过通信链路网络实现数据同步。在分布式机器学习系统的情况下,任务可以是机器学习模型训练任务。
图6是根据本公开的分布式系统通信调度方法的示意性流程图。
在步骤S610,获取任务涉及的计算资源信息和通信信息。
例如,可以由前文描述的通信代理模块收集相关信息,并提供给通信调度模块。
在步骤S620,例如可以由前文描述的通信调度模块,基于任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略。
与现有各种分布式系统的调度策略不同,本公开的调度策略是以优化所述多个计算资源的总体资源利用效率为目标确定的。
在本公开的优化方案中,总体资源利用效率可以是基于分布式系统中的多个计算资源的计算时间占比估计的。
或者,总体资源利用效率也可以是基于所述多个计算资源的计算时间相对于通信时间的比例估计的。
考虑到计算资源,特别是GPU的成本较高,如前文所述,使分布式系统中的多个计算资源的更高比例的时间用于计算,而不是在通信过程中等待,能够提高计算资源的总体资源利用效率,从而提升整个分布式系统的效率,提升用户体验。
这样的调度策略可以以多任务场景下的计算资源(如GPU)利用效率模型来表示。
假设集群中有J项任务。每项任务都是由多个GPU或CPU共同完成。每个CPU或GPU上运行一个工作机(Worker)。
在每次通信期间,工作机rGbps的速度向其对等工作机(执行同一项任务的工作机)发送带有/>字节的消息。
分别用和/>表示第i轮通信(或第i轮迭代)中任务j的计算时间和通信时间。
在机器学习模型训练任务的场景下,一般而言,可以观察到在每次迭代中几乎相同,并且可以用/>替换。
另一方面,可以使用来表示训练任务执行的总计K次迭代的平均通信时间,即
本公开将计算资源利用效率定义为总训练时间(总的任务执行时间)中计算时间所占的平均比例。如上文所述,这是因为计算时间占较大比例表明计算资源如GPU的资源利用效率较高。
因此,任务j的每个工作机的计算资源(如GPU)利用效率可以表示为。假设任务j在/>个GPU上运行。任务j的计算资源(如GPU)利用效率为/>
为了最大限度地提高多任务计算资源(如GPU)的资源利用效率,本公开所提出的计算资源(如GPU)资源利用效率模型的优化目标可以用如下等式表示:
这里,总体资源利用效率可以是基于分布式系统中的多个计算资源的计算时间占比估计的。
多项任务可以在训练期间竞争机内网络和机间网络的通信资源。因此,调度策略可以受各条通信链路的带宽和各项任务在各条通信链路上的通信带宽需求的约束。
具体说来,上述优化目标可以在以下约束条件下解决。
首先,对于每个机内链路(PCIe链路)l,分配给所有J个任务j的带宽总和应小于该机内(PCIe)通信链路l的带宽容量b l
其中,x表示时间或时间序列。
其次,对于每个网络链路l,分配给该网络通信链路的任务吞吐量总和应小于该网络通信链路l的带宽容量b
同上,x表示时间或时间序列。
最后,任务通信应该能够在内完成:
同上,x表示时间或时间序列。
本公开的资源利用效率模型的目标优化函数充分考量了机内网络的限制以及机间网络的限制,这在业界属于首次提出。
应当理解,在本公开的技术方案中,对于机内(PCIe)通信链路和网络通信链路,可以采用相同的策略进行调度处理。
为了降低问题的复杂性,可以简化目标函数。
例如,通过将前述优化目标函数式(1)泰勒展开。考虑到通信时间往往小于计算时间,可以进一步去除了泰勒展开式中的高阶项,并得到下式以表示优化目标函数:
这样,总体资源利用效率也可以基于多个计算资源的计算时间相对于通信时间的比例估计。
通过借助于泰勒展开进一步简化目标优化函数,可以为下文将描述的启发式算法提供参考。
下面,进一步描述本公开为实现前述优化模型而可以采用的启发式通信调度算法。
启发式算法是基于直观或者经验构造的算法,在可接受的开销(时间和空间)内给出待解决组合优化问题的一个可行解。
在本公开的方案中,可以为一项任务分配多个计算资源如GPU。
可以为每项任务分配严格的通信优先级。进行通信时,任务将相应地独占通信连接。换言之,一条通信链路在各个时刻可以专用于一项任务的通信。在各条通信链路上,在具有高通信优先级的任务的通信全部完成之后,再开始进行较低优先级任务的通信。
本公开提出了计算资源如GPU的资源利用效率优先的优先级分配原则,即占用更多计算资源如GPU的任务应分配更高的优先级。
由于数据并行模式的机器学习模型训练中的同步通信模式,如何为多项任务分配优先级仍较为困难。
每项任务都有多个(部署在CPU或GPU上的)工作机在运行时交换参数(即,同步模型参数)。只有当所有参数都已更新完成时,所有工作机才能开始下一轮次计算和通信。
为了解决这一问题,本公开提出采用启发式通信调度算法,其核心思想是任务的优先级应等于该任务在所有路径上所有通信流的最低优先级。
这样做,可以确保同一任务的所有流不晚于该任务最慢的通信流完成。
图7是根据本公开实施例确定调度策略的方法的示意性流程图。
如图7所示,在步骤S710,可以基于任务涉及的计算资源信息和通信信息,以及各条通信链路上的通信需求信息,确定任务的通信优先级。
图8是根据本公开实施例确定任务的通信优先级的方法的示意性流程图。
如图8所示,在步骤S712,可以基于任务涉及的计算资源信息和通信信息,确定各任务相对于其所使用的通信链路的任务链路权重。
在实施例中,任务链路权重可以与该任务j所使用的计算资源数量g j 正相关。
如果一项任务j使用的计算资源如GPU的数量g j 较大,为其赋予相对较高的权重可以提升整个分布式系统上所有计算资源如GPU的资源利用效率。因此,可以设置任务链路权重与任务使用的计算资源数量正相关。
在实施例中,任务链路权重与该任务j的计算资源计算时间c j 负相关。
如果一项任务j在每一轮次中的计算时间c j 较长,那么一定量的延迟等待时间对任务j的计算时间占比的相对影响较小。相反,如果一项任务j在每一轮次中的计算时间c j 较短,那么一定量的延迟等待时间对该任务j的计算时间占比的相对影响较大。因此,可以设置任务链路权重与任务的计算资源计算时间负相关。
在实施例中,任务链路权重与该任务在该通信链路上的计算资源通信时间负相关。
如果一项任务j的计算资源通信时间较长,那么通信时间的进一步延长对于该任务的计算资源的计算时间占比的影响也较小。因此,可以设置任务链路权重与任务的计算资源通信时间负相关。
在实施例中,可以如下设置任务链路权重。
同一任务可以具有不同大小的多个流,且在不同的链路(机内通信链路和/或机间网络通信链路)上传输。每项任务j在每个涉及的通信链路l上都应该具有唯一的权重
这里,可以使用相对通信密度,即通信时间任务j在通信链路l上的通信时间除以每次迭代中的通信时间/>和任务j的计算资源的计算时间c j 之和,作为链路l上任务j的任务链路通信比重/>
将任务j消耗的计算资源如GPU数量g j 除以计算时间c j 作为任务级别常量权重
然后,可以以表示链路l上任务j的任务链路权重/>
可见,该任务链路权重与该任务j所使用的计算资源数量g j 正相关,该任务j的计算资源计算时间c j 负相关,与该任务j在该通信链路l上的计算资源通信时间/>负相关。
这样,在步骤S714,对于尚未分配通信优先级的待分配任务,可以为所有通信链路中待分配任务相关通信总负载(待分配总负载)最大的通信链路上,任务链路权重最低的任务分配尚未分配的最低通信优先级。
这里,链路l的待分配总负载
表示为该链路l上所有尚未分配通信优先级的任务j的任务链路通信比重的总和/>
在每轮通信中,选择待分配任务相关通信总负载最高(瓶颈最大)的链路l p ,并在该链路l p 上进行通信的所有任务j)中,找到任务链路权重/>最低的任务j=α
将当前可分配的最低优先级分配给该任务α
这样,正如前面提到的,任务的优先级等于其在各通信链路中所有通信流的最低优先级。
然后,从待分配优先级的任务集CJ中排除该任务α,并相应地更新剩余任务j的任务级别常量权重以及当前链路l的待分配任务相关通信总负载/>
其中,“”表示将右侧值赋予左侧,即对/>、/>、/>进行更新。
然后,在步骤S716,判断是否还有未分配通信优先级的任务。
如果还有,则返回步骤S714,继续分配优先级。
如果都已经分配了通信优先级,则返回图7进入步骤S720。
在步骤S720,可以基于通信优先级确定调度策略,其中,在各条通信链路上,优先执行与具有较高优先级的任务相关的通信。
本公开所提出的分布式系统通信调度方案可以解决网络冲突(机内网络冲突和/或机间网络冲突)。
通过使用启发式算法,以计算资源如GPU的总体资源利用效率为优化目标,能够整体地优化多项任务的计算资源如GPU的资源利用效率,而非仅优化单项任务的资源利用效率。
同时,该启发式算法以计算资源如GPU的资源利用效率为任务权重来执行优先级分配策略,能够有针对性地优化GPU资源利用效率,而非通信开销。
经过实验测试,在多任务场景下,本公开所涉及的通信调度方案能够带来10%以上的端到端训练性能提升,以及能够降低超过30%的通信开销。
本公开在本领域首次提出面向DML集群内多任务的通信调度系统。
本公开针对当前工作无法衡量多任务GPU资源利用效率的问题,本公开结合DML任务的特点,基于通信时间和计算时间,首次提出了多任务场景下的GPU资源利用效率模型,并在该模型的基础上提出了通信调度的目标优化函数,在本领域首次提出以全局GPU资源利用效率为优化目标,为DML集群通信调度提供了一种新的优化目标。
另外,针对当前算法无法优化GPU资源利用效率的问题,本公开基于多任务场景下的GPU资源利用效率模型,首次提出了启发式通信调度算法,在本领域首次提出能够优化全局GPU资源利用效率的通信调度算法。该算法能够高效地为每项任务分配通信优先级,并且有效地协同优化整体GPU资源利用效率。
上文中以分布式机器学习系统的通信调度为例,进行了描述。应当理解,本公开的技术方案也可以适用于其它分布式系统的通信调度。分布式系统上运行多个任务,为每个任务分配计算资源来执行相应任务,执行同一项任务的计算资源可以通过通信链路网络来进行通信以实现数据传输或同步。在这样的分布式系统上,就可以用本公开提出的分布式系统通信调度方法来确定调度策略,以对通信链路上的通信进行调度,以在计算资源的计算和通信之间寻求更加合理的平衡,提升计算资源的总体资源利用效率。
图9示出了根据本发明一实施例可用于实现上述方法的计算设备的结构示意图。
参见图9,计算设备900包括存储器910和处理器920。
处理器920可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器920可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器920可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable GateArrays)。
存储器910可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器920或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器910可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器910可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器910上存储有可执行代码,当可执行代码被处理器920处理时,可以使处理器920执行上文述及的方法。
上文中已经参考附图详细描述了根据本发明的分布式系统通信调度方法及分布式机器学习系统。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (13)

1.一种分布式系统通信调度方法,其中,所述分布式系统包括通过通信链路网络连接的多个计算资源,所述多个计算资源被分配以执行任务,分配给同一项任务的计算资源通过通信链路网络实现数据同步,该方法包括:
获取任务涉及的计算资源信息和通信信息;以及
基于任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略,其中,所述调度策略是以优化所述多个计算资源的总体资源利用效率为目标确定的,
其中,
所述总体资源利用效率是基于所述多个计算资源中各计算资源的计算时间相对于该计算资源的计算时间与通信时间之和的占比估计的;或者
所述总体资源利用效率是基于所述多个计算资源的计算时间相对于通信时间的比例估计的。
2.根据权利要求1所述的方法,其中,
所述调度策略受各条通信链路的带宽和各项任务在各条通信链路上的通信带宽需求的约束。
3.根据权利要求1所述的方法,其中,所述确定与多项任务相关的通信的调度策略的步骤包括:
基于任务涉及的计算资源信息和通信信息以及各条通信链路上的通信需求信息,确定任务的通信优先级;以及
基于所述通信优先级确定所述调度策略,其中,在各条通信链路上,优先执行与具有较高优先级的任务相关的通信。
4.根据权利要求3所述的方法,其中,所述确定任务的通信优先级的步骤包括:
基于任务涉及的计算资源信息和通信信息,确定各任务相对于其所使用的通信链路的任务链路权重;以及
对于尚未分配通信优先级的待分配任务,为所有通信链路中待分配任务相关通信总负载最大的通信链路上,任务链路权重最低的任务分配尚未分配的最低通信优先级。
5.根据权利要求4所述的方法,其中,
所述任务链路权重与该任务所使用的计算资源数量正相关;
所述任务链路权重与该任务的计算资源计算时间负相关;
所述任务链路权重与该任务在该通信链路上的计算资源通信时间负相关。
6.根据权利要求1所述的方法,其中,
所述分布式系统为分布式机器学习系统;
所述计算资源为图形处理器;
所述分布式系统包括多个通过网络交换机互联的计算服务器,所述计算服务器包括多个通过机内交换机互联的中央处理器和多个图形处理器;
为一项任务分配多个计算资源;
每个计算资源专用于一项任务;
进行通信时,一条通信链路在各个时刻专用于一项任务的通信;
所述任务是机器学习模型的训练任务,训练样本集分为多个训练样本子集,分配给同一项任务的多个计算资源分别使用一个训练样本子集对机器学习模型进行训练,并通过通信链路网络进行通信以实现通过训练得到的模型参数的同步。
7.一种分布式机器学习模型训练方法,包括:
为机器学习模型训练任务分配计算资源;
将机器学习模型的训练样本集划分为多个训练样本子集,分别提供给为机器学习模型训练任务分配的多个计算资源;
所述多个计算资源分别使用训练样本子集对机器学习模型进行训练,得到经过训练的模型参数;
基于机器学习模型训练任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略,其中,所述调度策略是以优化所述多个计算资源的总体资源利用效率为目标确定的;
分配给机器学习模型训练任务的计算资源,根据所述调度策略,通过通信链路网络进行通信,以实现模型参数的同步,
其中,
所述总体资源利用效率是基于所述多个计算资源中各计算资源的计算时间相对于该计算资源的计算时间与通信时间之和的占比估计的;或者
所述总体资源利用效率是基于所述多个计算资源的计算时间相对于通信时间的比例估计的。
8.一种分布式机器学习系统,包括:
通过通信链路网络连接的多个计算资源,所述多个计算资源被分配以执行机器学习模型的训练任务,分配给同一项任务的计算资源通过通信链路网络进行通信以实现通过训练得到的模型参数的同步;以及
通信调度系统,基于任务涉及的计算资源信息和通信信息,确定与多项任务相关的通信的调度策略,其中,所述调度策略是以优化所述多个计算资源的总体资源利用效率为目标确定的,
其中,
所述总体资源利用效率是基于所述多个计算资源中各计算资源的计算时间相对于该计算资源的计算时间与通信时间之和的占比估计的;或者
所述总体资源利用效率是基于所述多个计算资源的计算时间相对于通信时间的比例估计的。
9.根据权利要求8所述的分布式机器学习系统,包括:
多个通过网络交换机互联的图形处理服务器,所述图形处理服务器包括多个通过内部交换机互联的中央处理器和多个图形处理器,所述多个计算资源包括所述多个图形处理服务器上的多个图形处理器。
10.根据权利要求9所述的分布式机器学习系统,其中,
所述图形处理器包括第一模型计算模块和第一通信代理模块,
所述中央处理器还包括第二模型计算模块、第二通信代理模块以及通信调度模块,
所述通信调度系统包括所述多个图形处理服务器上的中央处理器的通信调度模块,
第一模型计算模块和第二模型计算模块用于执行所分配的训练任务的计算,
第一通信代理模块和第二通信代理模块获取任务涉及的计算资源信息和通信信息,注册到中央处理器的通信调度模块,
所述通信调度系统包括的多个通信调度模块共同生成调度策略,
所述通信代理模块从通信调度模块接收调度策略,并基于调度策略执行相应的通信以实现模型参数的同步。
11.根据权利要求8至10中任何一项所述的分布式机器学习系统,其中,
所述通信调度系统通过根据权利要求1至6中任何一项所述的方法确定所述调度策略。
12.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。
13.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。
CN202310499055.0A 2023-05-06 2023-05-06 分布式系统通信调度方法及分布式机器学习系统 Active CN116204327B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310499055.0A CN116204327B (zh) 2023-05-06 2023-05-06 分布式系统通信调度方法及分布式机器学习系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310499055.0A CN116204327B (zh) 2023-05-06 2023-05-06 分布式系统通信调度方法及分布式机器学习系统

Publications (2)

Publication Number Publication Date
CN116204327A CN116204327A (zh) 2023-06-02
CN116204327B true CN116204327B (zh) 2023-08-01

Family

ID=86511568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310499055.0A Active CN116204327B (zh) 2023-05-06 2023-05-06 分布式系统通信调度方法及分布式机器学习系统

Country Status (1)

Country Link
CN (1) CN116204327B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117596605B (zh) * 2024-01-18 2024-04-12 北京交通大学 一种面向智能应用的确定性网络架构及其工作方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111079921A (zh) * 2019-11-29 2020-04-28 杭州电子科技大学舟山同博海洋电子信息研究院有限公司 一种基于异构分布式系统的高效神经网络训练调度方法
CN114281521A (zh) * 2021-11-21 2022-04-05 苏州浪潮智能科技有限公司 优化深度学习异构资源通信效率方法、系统、设备及介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103945548B (zh) * 2014-04-29 2018-12-14 西安电子科技大学 一种c-ran网络中的资源分配系统及任务/业务调度方法
CN105743802B (zh) * 2014-12-08 2020-02-14 中兴通讯股份有限公司 一种实现业务协同调度的方法及计算单板
CN105120482B (zh) * 2015-09-14 2018-10-02 哈尔滨工业大学 一种基于资源利用率的时延优先调度方法
US11023803B2 (en) * 2017-04-10 2021-06-01 Intel Corporation Abstraction library to enable scalable distributed machine learning
CN110262845B (zh) * 2019-04-30 2021-05-07 北京邮电大学 区块链使能的分布式计算任务卸载方法及系统
CN114443262A (zh) * 2020-11-03 2022-05-06 阿里巴巴集团控股有限公司 计算资源管理方法、装置、设备及系统
CN113094181A (zh) * 2021-05-06 2021-07-09 苏州联电能源发展有限公司 面向边缘设备的多任务联邦学习方法及装置
CN113835866B (zh) * 2021-10-09 2024-02-20 南方电网数字电网研究院有限公司 多线程任务调度优化方法
CN114637608B (zh) * 2022-05-17 2022-09-16 之江实验室 一种计算任务分配和更新方法、终端及网络设备
CN114996001A (zh) * 2022-05-23 2022-09-02 杭州电子科技大学 一种分布式机器学习任务gpu资源调度分配方法及系统
CN115248728B (zh) * 2022-09-21 2023-02-03 之江实验室 面向智能计算的分布式训练任务调度方法、系统和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111079921A (zh) * 2019-11-29 2020-04-28 杭州电子科技大学舟山同博海洋电子信息研究院有限公司 一种基于异构分布式系统的高效神经网络训练调度方法
CN114281521A (zh) * 2021-11-21 2022-04-05 苏州浪潮智能科技有限公司 优化深度学习异构资源通信效率方法、系统、设备及介质

Also Published As

Publication number Publication date
CN116204327A (zh) 2023-06-02

Similar Documents

Publication Publication Date Title
CN110619595B (zh) 一种基于多fpga加速器互联的图计算优化方法
US11265369B2 (en) Methods and systems for intelligent distribution of workloads to multi-access edge compute nodes on a communication network
CN110058924B (zh) 一种多目标优化的容器调度方法
US20130212594A1 (en) Method of optimizing performance of hierarchical multi-core processor and multi-core processor system for performing the method
US8635626B2 (en) Memory-aware scheduling for NUMA architectures
JP2015011716A (ja) グリッドコンピューティングシステムの遊休リソースによるタスク実行
CN116204327B (zh) 分布式系统通信调度方法及分布式机器学习系统
US9141436B2 (en) Apparatus and method for partition scheduling for a processor with cores
CN108900626B (zh) 一种云环境下数据存储方法、装置及系统
Arslan et al. Locality and network-aware reduce task scheduling for data-intensive applications
Bahreini et al. VECMAN: A framework for energy-aware resource management in vehicular edge computing systems
TWI786564B (zh) 任務調度方法和裝置、儲存媒體及計算機設備
EP3989067A1 (en) Data processing method and apparatus for dynamic runtime selection of a kernel candidate implementing a layer of a neural network
CN106998340B (zh) 一种板卡资源的负载均衡方法及装置
CN117251275B (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
Rajasekaran et al. {CASSINI}:{Network-Aware} Job Scheduling in Machine Learning Clusters
CN105094944A (zh) 一种虚拟机迁移方法及装置
CN116483547A (zh) 资源调度方法、装置、计算机设备和存储介质
CN108833532B (zh) 基于物联网的服务处理方法、装置和系统
Du et al. An Improved Ant Colony Algorithm for New energy Industry Resource Allocation in Cloud Environment
CN108228323B (zh) 基于数据本地性的Hadoop任务调度方法及装置
Lai et al. Task scheduling with multicore edge computing in dense small cell networks
WO2017018978A1 (en) Scheduling jobs in a computing cluster
Alsadie Resource management strategies in fog computing environment-a comprehensive review
Midya et al. An adaptive resource placement policy by optimizing live VM migration for ITS applications in vehicular cloud network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant