CN116089021B - 面向深度学习的大规模负载混部调度方法、装置及介质 - Google Patents

面向深度学习的大规模负载混部调度方法、装置及介质 Download PDF

Info

Publication number
CN116089021B
CN116089021B CN202310369688.XA CN202310369688A CN116089021B CN 116089021 B CN116089021 B CN 116089021B CN 202310369688 A CN202310369688 A CN 202310369688A CN 116089021 B CN116089021 B CN 116089021B
Authority
CN
China
Prior art keywords
load
scheduling
shared
online
task queue
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
CN202310369688.XA
Other languages
English (en)
Other versions
CN116089021A (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.)
Peking University
Original Assignee
Peking University
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 Peking University filed Critical Peking University
Priority to CN202310369688.XA priority Critical patent/CN116089021B/zh
Publication of CN116089021A publication Critical patent/CN116089021A/zh
Application granted granted Critical
Publication of CN116089021B publication Critical patent/CN116089021B/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种面向深度学习的大规模负载混部调度方法、装置及介质,涉及集群调度技术领域,包括:获取任务队列;获取第一特征、第二特征,并基于所述第一特征获取共享配置;将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案。本申请通过引入在线负载对应的第一特征获取共享配置,保证了生成的第一时间节点下的最优调度方案可以不影响在线负载的延迟限制;同时生成的调度二部图中将最大权值的调度方案作为最优调度方案,保证了离线负载的执行效率。

Description

面向深度学习的大规模负载混部调度方法、装置及介质
技术领域
本申请实施例涉及集群调度技术领域,具体而言,涉及一种面向深度学习的大规模负载混部调度方法、装置及介质。
背景技术
深度学习已被广泛应用于智能应用和服务中,如智能推荐、自动驾驶、图像识别和机器翻译等。其中,深度学习负载包括有严格服务延迟限制的在线负载以及没有服务延迟限制的离线负载。企业通常为深度学习负载搭建大规模图形处理器集群,并为在线负载提供专用集群,然而在线负载的集群利用率较低,导致了集群资源的浪费。
现有技术中,通过调度系统生成针对于离线负载和在线负载共享集群的调度方案来提升集群资源的利用率。然而,现有技术可能减慢在线负载执行效率,无法提高资源利用率,或难以进行大规模落地部署。设计面向大规模共享集群的调度系统的挑战包括:一方面,调度系统的首要目标是保证在线负载的性能,而共享集群的方式难以保证在线负载的执行效率;另一方面,不同的调度方案会对共享的负载的执行效率产生较大影响,配置合理的调度方案较为复杂耗时;此外,对于调度大规模集群的调度系统,共享组合的数量为负载数量的指数级别,给高效调度带来极大挑战。因此,如何在保证在线负载性能的前提下,提升离线负载的执行效率,成为本领域技术人员当前亟待解决的技术问题。
发明内容
本申请实施例在于提供一种面向深度学习的大规模负载混部调度方法、装置及介质,旨在解决如何在保证在线负载性能的前提下,提升离线负载的执行效率的问题。
本申请实施例第一方面提供一种面向深度学习的大规模负载混部调度方法,包括:
获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载;
获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息;
将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;
基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;
基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案。
在一种可选的实施方式中,所述第一特征,按照如下方式获取:
获取每个在线负载在间隔时间段的负载信息,所述间隔时间段为所述第一时间节点与上一时间节点之间的时间段;
将所述每个在线负载在间隔时间段的负载信息,作为所述任务队列中每个在线负载的负载信息;
将所述任务队列中所有在线负载的负载信息组合为所述第一特征。
在一种可选的实施方式中,所述第二特征按照如下方式获取:
获取第二负载信息,所述第二负载信息为已获取的负载信息;
获取所述任务队列中的目标离线负载,所述目标离线负载为未获取负载信息的离线负载;
对所述目标离线负载进行预设次数的预执行操作,获取预执行后的目标离线负载的负载信息,作为第一负载信息;
将所述第一负载信息与所述第二负载信息组合为所述第二特征。
在一种可选的实施方式中,基于所述第一特征获取共享配置,包括:
基于所述任务队列,获取多个共享负载对,所述共享负载对包括所述任务队列中任意一个在线负载以及任务队列中任意一个离线负载;
基于所述第一特征中在线负载的负载信息,获取每个共享负载对中在线负载的在线计算单元比例;
基于所述在线计算单元比例,计算第一剩余比例,将所述第一剩余比例作为所述每个共享负载对的共享子配置;
将所有共享负载对的共享子配置组合为所述共享配置。
在一种可选的实施方式中,在获取每个共享负载对中在线负载的在线计算单元比例之后,所述方法还包括:
以离散标准比例更新所述在线计算单元比例,所述离散标准比例为大于或等于所述在线计算单元比例的最小预设离散值;
基于所述离散标准比例,计算第二剩余比例,将所述第二剩余比例作为所述每个共享负载对的共享子配置;
将所有共享负载对的共享子配置组合为所述共享配置。
在一种可选的实施方式中,所述速度预测模型的训练过程如下:
获取包含多个训练共享负载对的训练数据集,每个训练共享负载对包括任意一个在线负载与任意一个常用离线负载;
在每一次训练时,将所述训练共享负载对输入初始速度预测模型,获取吞吐量预测值;
基于所述吞吐量预测值与吞吐量真值的损失,对所述初始速度预测模型的参数进行优化;
基于所述训练数据集,对所述初始速度预测模型进行训练,得到所述速度预测模型。
在一种可选的实施方式中,所述共享吞吐量数据包括对应于每个离线负载的共享归一化吞吐量,基于所述共享吞吐量数据以及所述任务队列,获取调度二部图,包括:
以所述任务队列中的在线负载作为第一端点,所述任务队列中的离线负载作为第二端点,构建初始二部图;
将所述初始二部图中的每个第一端点与每个第二端点相连,构建多条调度边,每条调度边对应一个共享负载对;
将所述每条调度边对应的共享负载对中离线负载的共享归一化吞吐量,作为所述每条调度边的边权;
基于所述调度边和所述每条调度边的边权,构建所述调度二部图。
在一种可选的实施方式中,基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案,包括:
基于所述调度二部图,获取至少一个候选调度方案,每个候选调度方案的所述第一端点以及所述第二端点均不重合;
基于库恩-曼克尔斯算法计算所述调度二部图的最大权值,所述最大权值为所述候选调度方案的最大边权和;
将对应所述最大权值的候选调度方案,作为所述第一时间节点的最优调度方案。
本申请实施例第二方面提供一种面向深度学习的大规模负载混部调度装置,包括:
队列获取模块,用于获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载;
特征获取模块,用于获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息;
速度预测模块,用于将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;
二部图获取模块,用于基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;
调度生成模块,用于基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案。
在一种可选的实施方式中,所述特征获取模块,包括:
间隔负载信息获取子模块,用于获取每个在线负载在间隔时间段的负载信息,所述间隔时间段为所述第一时间节点与上一时间节点之间的时间段;
在线负载信息获取子模块,用于将所述每个在线负载在间隔时间段的负载信息,作为所述任务队列中每个在线负载的负载信息;
第一特征获取子模块,用于将所述任务队列中所有在线负载的负载信息组合为所述第一特征。
在一种可选的实施方式中,所述特征获取模块还包括:
第二负载信息获取子模块,用于获取第二负载信息,所述第二负载信息为已获取的负载信息;
目标离线负载获取子模块,用于获取所述任务队列中的目标离线负载,所述目标离线负载为未获取负载信息的离线负载;
预执行子模块,用于对所述目标离线负载进行预设次数的预执行操作,获取预执行后的目标离线负载的负载信息,作为第一负载信息;
第二特征获取子模块,用于将所述第一负载信息与所述第二负载信息组合为所述第二特征。
在一种可选的实施方式中,所述特征获取模块还包括:
共享负载对获取子模块,用于基于所述任务队列,获取多个共享负载对,所述共享负载对包括所述任务队列中任意一个在线负载以及任务队列中任意一个离线负载;
在线计算单元比例获取子模块,用于基于所述第一特征中在线负载的负载信息,获取每个共享负载对中在线负载的在线计算单元比例;
第一剩余比例获取子模块,用于基于所述在线计算单元比例,计算第一剩余比例,将所述第一剩余比例作为所述每个共享负载对的共享子配置;
第一共享配置获取子模块,用于将所有共享负载对的共享子配置组合为所述共享配置。
在一种可选的实施方式中,所述特征获取模块还包括:
离散子模块,用于以离散标准比例更新所述在线计算单元比例,所述离散标准比例为大于或等于所述在线计算单元比例的最小预设离散值;
第二剩余比例获取子模块,用于基于所述离散标准比例,计算第二剩余比例,将所述第二剩余比例作为所述每个共享负载对的共享子配置;
第二共享配置获取子模块,用于将所有共享负载对的共享子配置组合为所述共享配置。
在一种可选的实施方式中,所述速度预测模块,包括:
训练集获取子模块,用于获取包含多个训练共享负载对的训练数据集,每个训练共享负载对包括任意一个在线负载与任意一个常用离线负载;
训练子模块,用于在每一次训练时,将所述训练共享负载对输入初始速度预测模型,获取吞吐量预测值;
优化子模块,用于基于所述吞吐量预测值与吞吐量真值的损失,对所述初始速度预测模型的参数进行优化;
速度预测模型获取子模块,用于基于所述训练数据集,对所述初始速度预测模型进行训练,得到所述速度预测模型。
在一种可选的实施方式中,所述二部图获取模块,包括:
初始二部图获取子模块,用于以所述任务队列中的在线负载作为第一端点,所述任务队列中的离线负载作为第二端点,构建初始二部图;
调度边构建子模块,用于将所述初始二部图中的每个第一端点与每个第二端点相连,构建多条调度边,每条调度边对应一个共享负载对;
边权子模块,用于将所述每条调度边对应的共享负载对中离线负载的共享归一化吞吐量,作为所述每条调度边的边权;
二部图构建子模块,用于基于所述调度边和所述每条调度边的边权,构建所述调度二部图。
在一种可选的实施方式中,所述调度生成模块,包括:
候选调度方案获取子模块,用于基于所述调度二部图,获取至少一个候选调度方案,每个候选调度方案的所述第一端点以及所述第二端点均不重合;
最大权值获取子模块,用于基于库恩-曼克尔斯算法计算所述调度二部图的最大权值,所述最大权值为所述候选调度方案的最大边权和;
调度生成子模块,用于将对应所述最大权值的候选调度方案,作为所述第一时间节点的最优调度方案。
本申请实施例第三方面提供一种非瞬态计算机存储介质,所述非瞬态计算机存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面中任一所述的面向深度学习的大规模负载混部调度方法。
有益效果:
本申请实施例提供一种面向深度学习的大规模负载混部调度方法、装置及介质,包括:获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载;获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息;将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案。本申请实施例通过引入在线负载对应的第一特征获取在线负载与离线负载的混部的共享配置,保证了生成的第一时间节点下的最优调度方案可以保证不影响在线负载的延迟限制;同时生成的调度二部图中将最大权值的调度方案作为最优调度方案,保证了离线负载的执行效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的一种面向深度学习的大规模负载混部调度方法流程图;
图2是本申请一实施例提出的一种共享吞吐量获取示意图;
图3是本申请一实施例提出的一种调度二部图示例图;
图4是本申请一实施例提出的一种面向深度学习的大规模负载混部调度系统示意图;
图5是本申请一实施例提出的一种面向深度学习的大规模负载混部调度装置示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,通过调度系统生成针对于离线负载和在线负载共享集群的调度方案来提升集群资源的利用率。然而,一方面,调度系统的首要目标是保证在线负载的性能,而共享集群的方式难以保证在线负载的执行效率;另一方面,不同的调度方案会对共享的负载的执行效率产生较大影响,配置合理的调度方案较为复杂耗时;此外,对于调度大规模集群的调度系统,共享组合的数量为负载数量的指数级别,给高效调度带来极大挑战。
有鉴于此,本申请实施例提出一种面向深度学习的大规模负载混部调度方法,图1示出了一种面向深度学习的大规模负载混部调度方法流程图,如图1所示,包括如下步骤:
S101、获取任务队列。
获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载。
S102、获取第一特征、第二特征,并基于所述第一特征获取共享配置。
获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息。
S103、将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据。
S104、基于所述共享吞吐量数据以及所述任务队列,获取调度二部图。
S105、基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案。
本申请实施例中,所述任务队列为在第一时间节点下在执行器中正在执行的在线负载以及离线负载的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载。其中,所述调度方案会周期性的在每个时间节点生成对应于该时间节点的调度方案,以对每个时间节点下的任务队列中的负载进行针对集群资源的调度,其中,相邻的时间节点在生成周期中间隔相同长度的间隔时间段,第一时间节点为生成周期中的目标时间节点。需要说明的是,生成周期中的每个时间节点之间的间隔时间段的长度可根据实际情况确定,本申请在此不作限制。
本申请实施例中,负载为用户提交的用于进行深度学习的任务,负载中包含任务参数、网络架构、损失函数、训练数据集等多种用于执行该深度学习任务的相关信息,其中,所述负载包括在线负载和离线负载,其中,所述在线负载为任务队列中需要提供实时服务,因此在线负载具有严格的服务延迟限制,与之相对的,所述离线负载为没有严格的服务延迟限制的负载。由于在线负载和离线负载同时存在于任务队列中,在线负载的实时性要求导致了在生成调度方案时,需要优先保证在线负载的服务性能。
本申请实施例中,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息,所述共享配置为在线负载和离线负载的占有的集群计算单元比例。具体而言,所述第一特征为任务队列中在线负载的资源使用情况以及速度信息,所述第二特征为任务队列中的离线负载的资源使用情况以及速度信息,其中,负载的资源使用情况为图形处理器(Graphics Processing Unit,GPU)集群资源的使用信息,负载的速度信息为执行器中的GPU集群资源单独执行对应负载时的单独执行速度。本申请实施例通过第一特征表征在线负载的负载信息,通过第二特征表征离线负载的负载信息,通过共享配置表征在线负载和离线负载共享GPU集群资源时GPU计算单元的比例,将第一特征、第二特征和共享配置作为一组共享集群资源的调度方案的先验信息进行速度预测,从而获取最优的共享调度方案。
本申请实施例中,所述速度预测模型用于基于第一特征、第二特征以及第一特征对应的在线负载和第二特征对应的离线负载的共享配置,输出该共享配置下的共享吞吐量数据,所述共享吞吐量数据包含至少一个离线负载的共享归一化吞吐量,所述共享归一化吞吐量为离线负载与在线负载按照共享配置分配GPU计算单元并执行训练任务时,该离线负载所对应的共享后执行吞吐量与单独执行该离线负载时的单独执行吞吐量的比值。
由于任务队列中可能包含多个离线负载与多个在线负载,因此每个在线负载与每个离线负载都会对应一个共享配置,针对任务队列中众多在线负载与离线负载选取最合适的共享配置来生成最优调度方案时,会根据在线负载、离线负载以及共享配置的不同而产生巨量的组合可能性,本申请实施例通过调度二部图直观、迅速的表征所有的可能性。具体而言,所述调度二部图用点表征任务队列中的所有在线负载和所有离线负载,将每个在线负载与离线负载之间的连线作为边表征该在线负载与该离线负载按照其共享配置得到的共享归一化吞吐量,即可通过该调度二部图将任务队列中所有在线负载与所有离线负载之间的按照共享配置组合的可能性体现。本申请实施例中,将所述调度二部图中的每一组在线负载不重合,同时离线负载也不重合的边的集合作为一个可行的候选调度方案。所述调度二部图对应的每个候选调度方案均具有整体吞吐量,所述最大权值为所有候选调度方案的整体吞吐量的最大值。
为了使本领域技术人员更好的理解本申请的技术方案,接下来对本申请提供的一种面向深度学习的大规模负载混部调度方法进行详细阐述:
具体实施步骤S101时,在第一时间节点的时刻,获取当前执行器中正在执行的在线负载以及离线负载的负载队列。如果在第一时间节点有新加入的离线负载,将该在第一时间节点下新加入的离线负载划入所述任务队列。其中,在第一时间节点下新加入所述负载队列中的离线负载以及在第一时间节点与上一时间节点之间的间隔时间段内加入所述负载队列中的离线负载没有对应的GPU集群资源,在上一时间节点下已存在于所述负载队列中的在线负载和离线负载在上一个时间节点基于上一时间节点生成的最优调度方案分配了GPU集群资源。因此,在第一时间节点需要再次对任务队列中的所有负载进行新的集群资源调度。
具体实施步骤S102时,分别获取第一特征和第二特征,其中,所述第一特征为包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息。在一种可选的实施方式中,所述第一特征按照如下方式获取:首先获取每个在线负载在间隔时间段的负载信息,所述间隔时间段为所述第一时间节点与上一时间节点之间的时间段,由于相邻的两个时间节点之间的间隔时间段中,在线负载的资源使用情况波动较小,因此间隔时间段内在线负载的负载信息可以等价为第一时间节点下的在线负载的负载信息,将所述每个在线负载在间隔时间段的负载信息,作为所述任务队列中每个在线负载的负载信息,其中,所述在线负载的负载信息包括以下至少一项:GPU利用率、GPU计算单元利用率、GPU计算单元占有率、显存使用率、在线负载单独执行吞吐量。在得到任务队列中每个在线负载在第一时间节点下的负载信息后,将所述任务队列中所有在线负载的负载信息组合为所述第一特征。
在一种可选的实施方式中,所述第二特征按照如下方式获取:首先获取已存储的离线负载的负载信息,由于在生成周期的每个时间节点生成对应的调度方案时,会将在每个时间节点下获取的离线负载的负载信息进行存储,因此在第一时间节点下获取第二特征时,所述第二特征包括已获取的离线负载的负载信息以及未获取的离线负载的负载信息,在先前时间节点已存储的离线负载若仍在该第一时间节点的任务队列中,则这部分的离线负载的负载信息可以直接从数据库中获取,作为第二负载信息。
随后,将第二负载信息对应的离线负载从任务队列中取出,获取任务队列中其他的离线负载,作为目标离线负载,这些目标离线负载无法直接读取在先前时间节点存储的负载信息,需要在第一时间节点进行获取。具体而言,对目标离线负载,按照每个目标离线负载的任务参数、网络架构、损失函数、训练数据集等多种用于执行该深度学习任务的相关信息,对每个目标离线负载进行预设次数的预执行操作,获取预执行后的每个目标离线负载的负载信息,作为第一负载信息,所述目标离线负载的负载信息包括以下至少一项:GPU利用率、GPU计算单元利用率、GPU计算单元占有率、显存使用率、离线负载单独执行吞吐量。最后,将所述第一负载信息与所述第二负载信息组合为所述第二特征。示例性地,将所述目标离线负载按照其携带的任务参数、网络架构、损失函数、训练数据集等信息进行几十次的迭代,并通过NVIDIA DCGM(英伟达数据中心GPU管理器)和NVIDIA NVML(英伟达数据库)工具获取在迭代过程中每个目标离线负载的负载信息。需要说明的是,上述示例只是为了使本领域技术人员可以更好的理解本申请的方案提供的一种可选实施方式,关于预执行操作的负载信息获取方式以及预设次数可根据实际情况确定,本申请在此不作限制。
在一种可选的实施方式中,在获取所述第一特征之后,所述第一特征为任务队列中所有在线负载单独执行时的负载信息,所述第二特征为任务队列中所有离线负载单独执行时的负载信息,由于单独执行时负载的集群资源利用率较低,造成集群资源的浪费,因此本申请实施例通过将离线负载和在线负载对应的集群资源进行共享,并基于本申请的方案生成最优调度方案,提升任务队列中负载的执行效率。因此,在生成最优调度方案之前,需要基于第一特征和第二特征生成共享集群资源时的共享配置,将第一特征引入共享配置的生成过程,使基于共享配置生成最优调度方案时可以满足在线负载的延迟限制。
具体而言,基于所述任务队列,将任务队列中每个离线负载与每个在线负载进行配对,获取多个共享负载对,所述共享负载对包括所述任务队列中任意一个在线负载以及任务队列中任意一个离线负载。随后,对于每个共享负载对,将全部的GPU计算单元比例看作100%,以该共享负载对中的在线负载在第一特征中对应的负载信息中的GPU计算单元占有率,作为该在线负载的在线计算单元比例x%,计算剩余的计算单元比例,作为第一剩余比例(100-x)%作为分配给该共享负载对中离线负载的计算单元比例。以所述第一剩余比例用于表征该共享负载对的计算单元分配情况,将所述第一剩余比例作为该共享负载对的共享子配置;在得到任务队列对应的所有共享负载对的共享子配置之后,将所有共享负载对的共享子配置组合为所述共享配置。
由于该第一剩余比例为离线负载可分配的计算单元比例上限,因此通过将全部的GPU计算单元完全分配给两种负载,避免了共享负载对内负载的资源争抢。具体而言,一方面,在线计算单元比例x%作为分配基准,该在线计算单元比例与间隔时间段的在线负载的负载信息,可以满足在线负载的延迟限制;另一方面,离线负载对应的计算单元比例为可分配的计算单元最大值,因此可以提升离线负载的执行效率。
在一种可选的实施方式中,在获取在线计算单元比例x%之后,由于所有共享负载对的在线计算单元比例x%可能构成0到100%的连续值,因此导致所有共享负载对对应的共享子配置组成的共享配置的连续值空间过大,基于该共享配置获取最优调度方案时会极大的提升计算成本、降低调度方案的生成效率。因此,本申请实施例对在线计算单元比例进行离散处理,降低所有共享负载对中共享子配置的连续性,提高计算效率和准确率。
具体而言,以离散标准比例更新所述在线计算单元比例,所述离散标准比例为大于或等于所述在线计算单元比例的最小预设离散值,示例性地,最小预设离散值为整十倍的比例(例如10%、20%、30%等),当所述在线计算单元比例x%=52%时,则离散标准比例为大于或等于52%的最小预设离散值60%;当所述在线计算单元比例x%=89%时,则离散标准比例为大于或等于89%的最小预设离散值90%。随后,用每个共享负载对中在线负载的所述离散标准比例y%更新所述在线计算单元比例,并基于所述离散标准比例y%(更新的在线计算单元比例)计算第二剩余比例(100-y)%,将所述第二剩余比例(100-y)%作为分配给该共享负载对中离线负载的计算单元比例,并将第二剩余比例作为所述每个共享负载对的共享子配置。最后,将任务队列对应的所有共享负载对的共享子配置组合为所述共享配置。由于离散标准比例为离散值,因此共享配置中的共享子配置也为离散值,可以降低所有共享负载对中共享子配置的连续性,提高计算效率和准确率。
具体实施步骤S103时,将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据。由于每个离线负载会与任务队列中的所有在线负载组成具有不同共享子配置的共享负载对,因此同一离线负载对应的不同共享负载对在按照共享子配置分别执行时的效率差距很大,而同一离线负载对应的共享负载对数量庞大,在生成调度方案时无法直接对所有共享负载对进行速度测试,因此需要通过速度预测模型进行速度预测。
在一种可选的实施方式中,所述速度预测模型为采用四个全链接层的多层感知机模型,所述速度预测模型的隐含层尺寸为64x64。所述速度预测模型按照如下流程进行训练:获取包含多个训练共享负载对的训练数据集,每个训练共享负载对对应一个吞吐量真值,每个训练共享负载对包括任意一个在线负载与任意一个常用离线负载;在每一次训练时,将所述训练共享负载对输入初始速度预测模型,通过PyTorch深度学习框架的动量随机梯度下降优化器对初始速度预测模型进行有监督训练,获取吞吐量预测值;基于所述吞吐量预测值与吞吐量真值的损失,对所述初始速度预测模型的参数进行优化,完成对所述初始速度预测模型的一次训练。随后,基于所述训练数据集,按照上述训练流程对所述初始速度预测模型进行多次迭代训练直至收敛,得到所述速度预测模型。
在获取所述速度预测模型之后,将所述第一特征、第二特征以及共享配置作为输入所述速度预测模型中,得到共享吞吐量数据。图2示出了一种共享吞吐量获取示意图,如图2所示,具体而言,将每个共享负载对中在线负载对应的第一特征中的负载信息、每个共享负载对中离线负载对应的第二特征中的负载信息以及每个共享负载对的共享子配置作为一组输入数据,将输入数据正则化至-1至1的实数区间,随后输入速度预测模型中,输出每个共享负载对中离线负载的共享吞吐量,对共享吞吐量进行归一化处理,计算所述每个共享负载对中离线负载的共享吞吐量与每个共享负载对中离线负载的单独执行吞吐量的比值,作为所述每个共享负载对中离线负载的共享归一化吞吐量,最后将所有共享负载对中离线负载的共享归一化吞吐量组合为所述共享吞吐量数据。
具体实施步骤S104时,本申请实施例通过构建调度二部图的方式表征所有候选调度方案,其中,候选调度方案为任务队列中所有在线负载和离线负载的组成的混部(多个共享负载对)按照共享配置分配集群资源的可选方案。由于任务队列中通常有成千上万的离线负载和在线负载,因此任务队列对应的共享负载对数量庞大,而一个候选调度方案包含许多共享负载对,且属于该候选调度方案的所有共享负载对中的在线负载和离线负载均不能重复,这就导致候选调度方案的数量庞大,直接进行枚举容易出现同一个负载出现在多个共享负载对中的调度错误,这都会降低从候选调度方案中确定最优调度方案的效率和准确率。
有鉴于此,在一种可选的实施方式中,本申请实施例通过调度二部图表征所有候选调度方案,基于所述共享吞吐量数据以及所述任务队列,构建调度二部图。具体而言,首先以所述任务队列中的在线负载作为第一端点,所述任务队列中的离线负载作为第二端点,构建初始二部图,初始二部图中包含两列端点,第一列中的第一端点表征所述任务队列中的所有在线负载,第二列中的第二端点表征所述任务队列中的所有离线负载。随后,将所述初始二部图中的每个第一端点与每个第二端点相连,构建多条调度边,每条调度边的两个端点分别对应一个在线负载和一个离线负载,即每条调度边对应一个共享负载对。
因为候选调度方案中每条调度边的离线负载(第二端点)不同,因此离线负载单独执行时的单独执行吞吐量相差较大,直接通过每条调度边的不同离线负载的共享吞吐量简单相加无法公平、合理的反应每个候选调度方案的整体执行情况,因此选取归一化处理后的离线负载的共享归一化吞吐量来衡量每个候选调度方案的执行性能。如上步骤S103的内容可知,每个共享负载对的在线负载和离线负载以及其共享子配置输入速度预测模型得到对应的共享归一化吞吐量,将所述每条调度边对应的共享负载对中离线负载的共享归一化吞吐量,作为所述每条调度边的边权。至此获得了对应所有共享负载对的调度边,将所述调度边及其边权与初始二部图组合为所述调度二部图。
示例性地,图3示出了一种调度二部图示例图,如图3所示,左侧一列的点为第一端点,对应任务队列中三个在线负载v1、v2、v3,右侧一侧的点为第二端点,对应任务队列中的三个离线负载u1、u2、u3。将每个第一端点与每个第二端点相连,构建9条调度边(v1,u1)、(v1,u2)、(v1,u3)、(v2,u1)、(v2,u2)、(v2,u3)、(v3,u1)、(v3,u2)、(v3,u3),每条调度边对应一个共享负载对。将每条调度边按照共享负载对中离线负载的共享归一化吞吐量赋予边权,得到所述调度二部图。需要说明的是,上述示例只是为了使本领域技术人员更好的理解本申请实施例的方案提出的一种可选的方式,具体的第一端点和第二端点的数量可根据任务队列中的实际情况确定,本申请在此不作限制。
具体实施步骤S105时,首先基于得到的调度二部图获取所有候选调度方案,每个候选调度方案包含许多共享负载对,且属于该候选调度方案的所有共享负载对中的在线负载和离线负载均不能重复。具体而言,在所述调度二部图中,获取一组调度边集合,该组调度边集合中所有的调度边的第一端点以及第二端点均不重合,且该组调度边集合中所有调度边的第一端点覆盖所述调度二部图的第一列,该组调度边集合中所有调度边的第二端点覆盖所述调度二部图的第二列,将满足上述条件的一组调度边集合作为一个候选方案。以图3为例,【(v1,u2)、(v2,u3)、(v3,u1)】为一个满足条件的候选调度方案(如图3中实线调度边),【(v1,u1)、(v2,u2)、(v3,u3)】为一个满足条件的候选调度方案,【(v1,u1)、(v2,u3)、(v3,u2)】也为一个满足条件的候选调度方案,除此之外,图2的调度二部图中还包含其他候选调度方案,此处不再列出。
在获取所述调度二部图对应的所有候选调度方案之后,选取归一化处理后的离线负载的共享归一化吞吐量来衡量每个候选调度方案的执行性能,可以减小未归一化时离线负载单独执行时的单独执行吞吐量相差较大造成的候选调度方案的客观数据差异,有效体现候选调度方案本身的执行性能差距。对每个候选调度方案中每个候选调度方案中每条调度边的边权进行求和,得到每个候选调度方案的边权和,通过所述边权和衡量所述候选调度方案的执行性能。
在一种可选的实施方式中,获取所有候选调度方案中具有最大边权和的候选调度方案。虽然通过调度二部图可以更加提升候选调度方案的获取效率,但是由于候选调度方案数量仍然较大,而每个候选调度方案又具有大量的调度边,因此通过直接计算的方式获取所有候选调度方案的边权和,并获取其中具有最大边权和的候选调度方案的计算成本仍然很大。因此,本申请实施例通过库恩-曼克尔斯算法(Kuhn-Munkres算法)计算所述调度二部图的最大权值。将所述调度二部图的第一端点和第二端点以及共享负载对的共享归一化吞吐量输入所述库恩-曼克尔斯算法,可以在数秒内快速输出所述调度二部图的最大权值,所述最大权值为所述候选调度方案的最大边权和。最后,将对应所述最大权值的候选调度方案,作为所述第一时间节点的最优调度方案,将该最优调度方案作为该第一时间节点的调度方案对任务队列中所有负载对应的集群资源进行重新调度。
在一种可选的实施方式中,本申请实施例实时获取任务队列中每个离线负载以及每个在线负载的负载信息以及执行信息。在监控到当前负载信息超过警戒阈值时,说明按照当前调度方案继续执行任务队列中的负载任务会使在线负载突破延迟限制,为了保证任务队列中在线负载的负载延迟,将任务队列中的离线负载暂停。
本申请实施例提供一种面向深度学习的大规模负载混部调度方法,包括:获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载;获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息;将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案。本申请实施例通过引入在线负载对应的第一特征获取在线负载与离线负载的混部的共享配置,保证了生成的第一时间节点下的最优调度方案可以保证不影响在线负载的延迟限制;同时生成的调度二部图中将最大权值的调度方案作为最优调度方案,保证了离线负载的执行效率。
基于同一发明构思,本申请实施例公开一种面向深度学习的大规模负载混部调度系统,图4示出了一种面向深度学习的大规模负载混部调度系统示意图,如图4所示,所述系统包括在线负载管理器、离线负载管理器、执行器和集群资源。
在线负载管理器,用于将任务队列中的每种在线负载分配到执行器中的在线容器中,执行器中的在线容器长久启动该在线负载的服务端,以便立刻执行接收到的服务请求,保证在线负载的延迟限制。此外,在线负载管理器负责接收用户提交的在线负载服务请求并发送给执行器。
离线负载管理器,用于将用户提交的离线负载置入任务队列,并基于本申请实施例面向深度学习的大规模负载混部调度方法,周期性的在每个时间节点生成对应于该时间节点的最优调度方案。其中,如图4所示,离线负载管理器包括负载分析单元、速度预测单元以及调度单元,所述负载分析单元用于对未获取负载信息的离线负载进行预执行操作,以获取离线负载的负载信息;所述速度预测单元用于基于第一特征、第二特征以及共享配置,获取共享吞吐量数据;所述调度单元用于基于共享吞吐量数据以及任务队列,获取最优调度方案。
执行器,用于按照离线负载管理器生成的最优调度方案分配集群资源,并在在线容器中执行在线负载,在离线容器中执行离线负载。此外,所述执行器还用于监控执行中的在线负载以及离线负载的负载信息(集群资源使用情况)以及负载执行情况。其中,如图4所示,执行器包括在线容器、离线容器以及监控器,此外执行器还包含共享技术单元(例如多进程服务技术MPS等集群资源共享调度技术)对GPU集群资源进行共享调度。
集群资源,包括用于系统内任务队列中的在线负载以及离线负载搭建大规模图形处理器(下简称GPU)集群,通过GPU集群资源中的计算单元,执行任务队列中的负载任务。
示例性地,本申请实施例构建包含在线负载管理器、离线负载管理器以及执行器的面向深度学习的大规模负载混部调度系统。其中,所述执行器包括Docker在线容器、Docker离线容器和执行器,Docker在线容器和Docker离线容器按照所述最优控制方案控制每个离线负载的GPU计算单元比例;执行器通过NVIDIA DCGM(英伟达数据中心GPU管理器)和NVIDIA NVML(英伟达数据库)工具获取每个在线负载和离线负载的负载信息。需要说明的是,上述示例只是为了使本领域技术人员更好的理解本申请的方案提供的一种可行的实施例,专业人员可不通过创造性劳动应用其他系统,作为本专利的面向深度学习的大规模负载混部调度系统。
基于同一发明构思,本申请实施例公开一种面向深度学习的大规模负载混部调度装置,图5示出了一种面向深度学习的大规模负载混部调度装置,如图5所示,所述装置包括:
队列获取模块,用于获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载;
特征获取模块,用于获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息;
速度预测模块,用于将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;
二部图获取模块,用于基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;
调度生成模块,用于基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案。
在一种可选的实施方式中,所述特征获取模块,包括:
间隔负载信息获取子模块,用于获取每个在线负载在间隔时间段的负载信息,所述间隔时间段为所述第一时间节点与上一时间节点之间的时间段;
在线负载信息获取子模块,用于将所述每个在线负载在间隔时间段的负载信息,作为所述任务队列中每个在线负载的负载信息;
第一特征获取子模块,用于将所述任务队列中所有在线负载的负载信息组合为所述第一特征。
在一种可选的实施方式中,所述特征获取模块还包括:
第二负载信息获取子模块,用于获取第二负载信息,所述第二负载信息为已获取的负载信息;
目标离线负载获取子模块,用于获取所述任务队列中的目标离线负载,所述目标离线负载为未获取负载信息的离线负载;
预执行子模块,用于对所述目标离线负载进行预设次数的预执行操作,获取预执行后的目标离线负载的负载信息,作为第一负载信息;
第二特征获取子模块,用于将所述第一负载信息与所述第二负载信息组合为所述第二特征。
在一种可选的实施方式中,所述特征获取模块还包括:
共享负载对获取子模块,用于基于所述任务队列,获取多个共享负载对,所述共享负载对包括所述任务队列中任意一个在线负载以及任务队列中任意一个离线负载;
在线计算单元比例获取子模块,用于基于所述第一特征中在线负载的负载信息,获取每个共享负载对中在线负载的在线计算单元比例;
第一剩余比例获取子模块,用于基于所述在线计算单元比例,计算第一剩余比例,将所述第一剩余比例作为所述每个共享负载对的共享子配置;
第一共享配置获取子模块,用于将所有共享负载对的共享子配置组合为所述共享配置。
在一种可选的实施方式中,所述特征获取模块还包括:
离散子模块,用于以离散标准比例更新所述在线计算单元比例,所述离散标准比例为大于或等于所述在线计算单元比例的最小预设离散值;
第二剩余比例获取子模块,用于基于所述离散标准比例,计算第二剩余比例,将所述第二剩余比例作为所述每个共享负载对的共享子配置;
第二共享配置获取子模块,用于将所有共享负载对的共享子配置组合为所述共享配置。
在一种可选的实施方式中,所述速度预测模块,包括:
训练集获取子模块,用于获取包含多个训练共享负载对的训练数据集,每个训练共享负载对包括任意一个在线负载与任意一个常用离线负载;
训练子模块,用于在每一次训练时,将所述训练共享负载对输入初始速度预测模型,获取吞吐量预测值;
优化子模块,用于基于所述吞吐量预测值与吞吐量真值的损失,对所述初始速度预测模型的参数进行优化;
速度预测模型获取子模块,用于基于所述训练数据集,对所述初始速度预测模型进行训练,得到所述速度预测模型。
在一种可选的实施方式中,所述二部图获取模块,包括:
初始二部图获取子模块,用于以所述任务队列中的在线负载作为第一端点,所述任务队列中的离线负载作为第二端点,构建初始二部图;
调度边构建子模块,用于将所述初始二部图中的每个第一端点与每个第二端点相连,构建多条调度边,每条调度边对应一个共享负载对;
边权子模块,用于将所述每条调度边对应的共享负载对中离线负载的共享归一化吞吐量,作为所述每条调度边的边权;
二部图构建子模块,用于基于所述调度边和所述每条调度边的边权,构建所述调度二部图。
在一种可选的实施方式中,所述调度生成模块,包括:
候选调度方案获取子模块,用于基于所述调度二部图,获取至少一个候选调度方案,每个候选调度方案的所述第一端点以及所述第二端点均不重合;
最大权值获取子模块,用于基于库恩-曼克尔斯算法计算所述调度二部图的最大权值,所述最大权值为所述候选调度方案的最大边权和;
调度生成子模块,用于将对应所述最大权值的候选调度方案,作为所述第一时间节点的最优调度方案。
基于同一发明构思,本申请实施例公开一种计算机可读存储介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现本申请实施例公开的一种面向深度学习的大规模负载混部调度方法中的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、装置、电子设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种面向深度学习的大规模负载混部调度方法、装置及介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (4)

1.一种面向深度学习的大规模负载混部调度方法,其特征在于,包括:
获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载;
获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息;
将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;
基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;
基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案;
其中,所述第一特征,按照如下方式获取:
获取每个在线负载在间隔时间段的负载信息,所述间隔时间段为所述第一时间节点与上一时间节点之间的时间段;
将所述每个在线负载在间隔时间段的负载信息,作为所述任务队列中每个在线负载的负载信息;
将所述任务队列中所有在线负载的负载信息组合为所述第一特征;
所述第二特征,按照如下方式获取:
获取第二负载信息,所述第二负载信息为已获取的负载信息;
获取所述任务队列中的目标离线负载,所述目标离线负载为未获取负载信息的离线负载;
对所述目标离线负载进行预设次数的预执行操作,获取预执行后的目标离线负载的负载信息,作为第一负载信息;
将所述第一负载信息与所述第二负载信息组合为所述第二特征;
所述基于所述第一特征获取共享配置,包括:
基于所述任务队列,获取多个共享负载对,所述共享负载对包括所述任务队列中任意一个在线负载以及任务队列中任意一个离线负载;
基于所述第一特征中在线负载的负载信息,获取每个共享负载对中在线负载的在线计算单元比例;
基于所述在线计算单元比例,计算第一剩余比例,将所述第一剩余比例作为所述每个共享负载对的共享子配置;
将所有共享负载对的共享子配置组合为所述共享配置;
所述速度预测模型的训练过程如下:
获取包含多个训练共享负载对的训练数据集,每个训练共享负载对包括任意一个在线负载与任意一个常用离线负载;
在每一次训练时,将所述训练共享负载对输入初始速度预测模型,获取吞吐量预测值;
基于所述吞吐量预测值与吞吐量真值的损失,对所述初始速度预测模型的参数进行优化;
基于所述训练数据集,对所述初始速度预测模型进行训练,得到所述速度预测模型;
所述共享吞吐量数据包括对应于每个离线负载的共享归一化吞吐量,所述基于所述共享吞吐量数据以及所述任务队列,获取调度二部图,包括:
以所述任务队列中的在线负载作为第一端点,所述任务队列中的离线负载作为第二端点,构建初始二部图;
将所述初始二部图中的每个第一端点与每个第二端点相连,构建多条调度边,每条调度边对应一个共享负载对;
将所述每条调度边对应的共享负载对中离线负载的共享归一化吞吐量,作为所述每条调度边的边权;
基于所述调度边和所述每条调度边的边权,构建所述调度二部图;
所述基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案,包括:
基于所述调度二部图,获取至少一个候选调度方案,每个候选调度方案的所述第一端点以及所述第二端点均不重合;
基于库恩-曼克尔斯算法计算所述调度二部图的最大权值,所述最大权值为所述候选调度方案的最大边权和;
将对应所述最大权值的候选调度方案,作为所述第一时间节点的最优调度方案。
2.根据权利要求1所述的面向深度学习的大规模负载混部调度方法,其特征在于,在获取每个共享负载对中在线负载的在线计算单元比例之后,所述方法还包括:
以离散标准比例更新所述在线计算单元比例,所述离散标准比例为大于或等于所述在线计算单元比例的最小预设离散值;
基于所述离散标准比例,计算第二剩余比例,将所述第二剩余比例作为所述每个共享负载对的共享子配置;
将所有共享负载对的共享子配置组合为所述共享配置。
3.一种面向深度学习的大规模负载混部调度装置,其特征在于,包括:
队列获取模块,用于获取任务队列,所述任务队列为第一时间节点的负载队列,所述任务队列包括至少一个在线负载与至少一个离线负载;
特征获取模块,用于获取第一特征、第二特征,并基于所述第一特征获取共享配置,所述第一特征包括所述任务队列中每个在线负载的负载信息,所述第二特征包括所述任务队列中每个离线负载的负载信息;
速度预测模块,用于将所述第一特征、所述第二特征以及所述共享配置输入速度预测模型,获取共享吞吐量数据;
二部图获取模块,用于基于所述共享吞吐量数据以及所述任务队列,获取调度二部图;
调度生成模块,用于基于所述调度二部图的最大权值,确定所述第一时间节点的最优调度方案;
其中,所述特征获取模块,包括:
间隔负载信息获取子模块,用于获取每个在线负载在间隔时间段的负载信息,所述间隔时间段为所述第一时间节点与上一时间节点之间的时间段;
在线负载信息获取子模块,用于将所述每个在线负载在间隔时间段的负载信息,作为所述任务队列中每个在线负载的负载信息;
第一特征获取子模块,用于将所述任务队列中所有在线负载的负载信息组合为所述第一特征;
第二负载信息获取子模块,用于获取第二负载信息,所述第二负载信息为已获取的负载信息;
目标离线负载获取子模块,用于获取所述任务队列中的目标离线负载,所述目标离线负载为未获取负载信息的离线负载;
预执行子模块,用于对所述目标离线负载进行预设次数的预执行操作,获取预执行后的目标离线负载的负载信息,作为第一负载信息;
第二特征获取子模块,用于将所述第一负载信息与所述第二负载信息组合为所述第二特征;
共享负载对获取子模块,用于基于所述任务队列,获取多个共享负载对,所述共享负载对包括所述任务队列中任意一个在线负载以及任务队列中任意一个离线负载;
在线计算单元比例获取子模块,用于基于所述第一特征中在线负载的负载信息,获取每个共享负载对中在线负载的在线计算单元比例;
第一剩余比例获取子模块,用于基于所述在线计算单元比例,计算第一剩余比例,将所述第一剩余比例作为所述每个共享负载对的共享子配置;
第一共享配置获取子模块,用于将所有共享负载对的共享子配置组合为所述共享配置;
所述速度预测模块,包括:
训练集获取子模块,用于获取包含多个训练共享负载对的训练数据集,每个训练共享负载对包括任意一个在线负载与任意一个常用离线负载;
训练子模块,用于在每一次训练时,将所述训练共享负载对输入初始速度预测模型,获取吞吐量预测值;
优化子模块,用于基于所述吞吐量预测值与吞吐量真值的损失,对所述初始速度预测模型的参数进行优化;
速度预测模型获取子模块,用于基于所述训练数据集,对所述初始速度预测模型进行训练,得到所述速度预测模型;
所述二部图获取模块,包括:
初始二部图获取子模块,用于以所述任务队列中的在线负载作为第一端点,所述任务队列中的离线负载作为第二端点,构建初始二部图;
调度边构建子模块,用于将所述初始二部图中的每个第一端点与每个第二端点相连,构建多条调度边,每条调度边对应一个共享负载对;
边权子模块,用于将所述每条调度边对应的共享负载对中离线负载的共享归一化吞吐量,作为所述每条调度边的边权;
二部图构建子模块,用于基于所述调度边和所述每条调度边的边权,构建所述调度二部图;
所述调度生成模块,包括:
候选调度方案获取子模块,用于基于所述调度二部图,获取至少一个候选调度方案,每个候选调度方案的所述第一端点以及所述第二端点均不重合;
最大权值获取子模块,用于基于库恩-曼克尔斯算法计算所述调度二部图的最大权值,所述最大权值为所述候选调度方案的最大边权和;
调度生成子模块,用于将对应所述最大权值的候选调度方案,作为所述第一时间节点的最优调度方案。
4.一种非瞬态计算机存储介质,所述非瞬态计算机存储介质中存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1或2所述的面向深度学习的大规模负载混部调度方法中的步骤。
CN202310369688.XA 2023-04-10 2023-04-10 面向深度学习的大规模负载混部调度方法、装置及介质 Active CN116089021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310369688.XA CN116089021B (zh) 2023-04-10 2023-04-10 面向深度学习的大规模负载混部调度方法、装置及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310369688.XA CN116089021B (zh) 2023-04-10 2023-04-10 面向深度学习的大规模负载混部调度方法、装置及介质

Publications (2)

Publication Number Publication Date
CN116089021A CN116089021A (zh) 2023-05-09
CN116089021B true CN116089021B (zh) 2023-07-21

Family

ID=86204904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310369688.XA Active CN116089021B (zh) 2023-04-10 2023-04-10 面向深度学习的大规模负载混部调度方法、装置及介质

Country Status (1)

Country Link
CN (1) CN116089021B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229152B2 (en) * 2016-06-27 2019-03-12 International Business Machines Corporation Automatically restoring data replication consistency without service interruption during parallel apply
CN111737078B (zh) * 2020-05-12 2021-11-23 华南理工大学 基于负载类型的自适应云服务器能耗测算方法、系统及设备
CN114168419A (zh) * 2021-12-09 2022-03-11 同济大学 负载预测方法、系统、设备及计算机可读存储介质
CN115509758A (zh) * 2022-07-29 2022-12-23 天翼云科技有限公司 一种针对混部负载的干扰量化方法和系统
CN115756772A (zh) * 2022-11-01 2023-03-07 天津大学 面向边缘云混合作业的动态编排与任务调度方法及系统

Also Published As

Publication number Publication date
CN116089021A (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
US11989647B2 (en) Self-learning scheduler for application orchestration on shared compute cluster
Han et al. Tailored learning-based scheduling for kubernetes-oriented edge-cloud system
Nezami et al. Decentralized edge-to-cloud load balancing: Service placement for the Internet of Things
Ponz‐Tienda et al. A parallel branch and bound algorithm for the resource leveling problem with minimal lags
CN113037877B (zh) 云边端架构下时空数据及资源调度的优化方法
Zhu et al. A deep-reinforcement-learning-based optimization approach for real-time scheduling in cloud manufacturing
CN108270805B (zh) 用于数据处理的资源分配方法及装置
García-Galán et al. Rules discovery in fuzzy classifier systems with PSO for scheduling in grid computational infrastructures
CN112685153A (zh) 微服务调度方法、装置以及电子设备
Branke et al. Evolutionary search for difficult problem instances to support the design of job shop dispatching rules
CN104166903A (zh) 基于工序划分的任务规划方法及系统
Tang et al. Nanily: A qos-aware scheduling for dnn inference workload in clouds
CN116263701A (zh) 算力网络任务调度方法、装置、计算机设备及存储介质
CN108132840A (zh) 一种分布式系统中的资源调度方法及装置
CN105786626B (zh) 基于K划分的Storm平台线程分配方法
Cao et al. A deep reinforcement learning approach to multi-component job scheduling in edge computing
CN114968531A (zh) 基于多适应度遗传优化的量子云混合任务调度方法及装置
CN116089021B (zh) 面向深度学习的大规模负载混部调度方法、装置及介质
CN117687356A (zh) 生产调度方法、终端设备及计算机可读存储介质
CN115129481B (zh) 一种计算资源分配方法、装置及电子设备
CN106936905A (zh) 基于openstack的Nova组件虚拟机的调度方法及其调度系统
Prado et al. On providing quality of service in grid computing through multi-objective swarm-based knowledge acquisition in fuzzy schedulers
CN114035919A (zh) 基于配电网分层分布特征的任务调度系统及方法
Tuli et al. Optimizing the Performance of Fog Computing Environments Using AI and Co-Simulation
CN114327925A (zh) 一种电力数据实时计算调度优化方法及系统

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