CN117827389A - 任务调度方法及相关装置 - Google Patents

任务调度方法及相关装置 Download PDF

Info

Publication number
CN117827389A
CN117827389A CN202211202525.4A CN202211202525A CN117827389A CN 117827389 A CN117827389 A CN 117827389A CN 202211202525 A CN202211202525 A CN 202211202525A CN 117827389 A CN117827389 A CN 117827389A
Authority
CN
China
Prior art keywords
task
target
tasks
time
computing resources
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.)
Pending
Application number
CN202211202525.4A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211202525.4A priority Critical patent/CN117827389A/zh
Publication of CN117827389A publication Critical patent/CN117827389A/zh
Pending legal-status Critical Current

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及人工智能领域,具体公开了一种任务调度方法和相关装置,该方法包括:获取多个目标任务及多个目标任务中每个目标的数据量:若目标任务T的类型与历史任务的类型均不相同时,根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务的多个时间与资源组合,其中,目标任务T的多个时间与资源组合中的每个时间与资源组合包括目标任务T的预测耗时和预测计算资源;目标任务T为所述多个目标任务中的一个;根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源。采用此方法可以在业务初期样本数量少的情况下可以通过仿真预测得到精度高的任务的耗时及对应的计算资源。

Description

任务调度方法及相关装置
技术领域
本申请涉及人工智能技术领域,尤其涉及一种任务调度方法及相关装置。
背景技术
随着5G的商用普及,随之而来的网络吞吐率的不断攀升,通信运营商对于大规模原始通信相关数据分析的应用越来越多。这些数据包含了日常工作中采集的各种网元产生的原始数据。数据分析相关的业务系统通过话务分析、信令分析、参数分析等手段,找出影响网络质量的原因,辅助网优工程师进行各种优化调整,同时还支持针对实际情况对网络建设进行规划,辅助提升网规网优工程师的工作效率,提升网络质量和用户的上网体验。
网规网优作业平台如图1a所示,通过数据采集模块从核心网、无线基站或者网管设备获取原始数据,业务领域服务模块将网络核查、评估、路测等业务操作转换为Spark任务,并提交给作业资源调度系统,作业资源调度系统根据任务的资源使用情况与业务需要统一调配Spark/Hadoop公共资源。这里的大数据框架Spark/hadoop是个分布式计算框架,具有改进的数据流处理的批处理框架,同时基于内存计算及处理优化,保证了集群计算的效率。
从网规网优作业平台架构来看,如何平衡众多业务领域的作业任务并充分利用硬件资源进行计算已成为业界难题,例如Spark/hadoop计算资源的高利用率亦成为平台处理数据能力的核心竞争力。
如图1b所示,相关技术通过任务资源消耗改变任务资源参数、任务排布顺序提升Spark/hadoop大数据引擎资源利用率。
作业资源调度系统通过Spark/hadoop大数据引擎接口收集历史所有spark任务的资源消耗参数d(例如vcore、内存)与任务执行时间t并构建数据集,使用聚类算法结合数据集进行聚类,再使用深度神经网络对每类数据拟合一个任务执行时间与资源消耗的关系模型F(d,t)。用户提交计算任务后,首先使用训练好的模型F(d,t),计算得到任务执行时间与资源消耗的多个组合[d,t];再使用强化学习建模求解总任务时间最短的任务排布,也就是训练排布模型:定义最终目标(待排布的所有任务总消耗时间最小)、状态集(任务执行顺序与任务总消耗时间)、动作集(任务执行时间与资源消耗的组合[d,t]);在训练过程中随机执行动作集中的动作,并把任务执行时间结果记录到Q表中,持续进行迭代训练,直至排布模型收敛,也就是排布模型输出的任务执行顺序对应的任务总消耗时间收敛。最后基于训练好的排布模型确定出任务总消耗时间最小的任务执行顺序及对应的任务资源消耗信息,并将任务总消耗时间最小的任务执行顺序及对应的任务资源消耗信息提交Spark/hadoop大数据引擎,以进行任务的处理。
对于上述方式,需要训练模型F(d,t),但是在初期训练模型F(d,t)所需的样本数量较少,训练出来的模型F(d,t)的鲁棒性差,模型精度不稳定,最终导致资源与耗时算法结果不准确。
发明内容
本申请提供一种任务调度方法及相关装置,可以在业务初期样本数量少的情况下可以通过仿真预测得到精度高的任务的耗时及对应的计算资源。
第一方面,本申请提供一种任务调度方法,包括:
获取多个目标任务及多个目标任务中每个目标的数据量;对多个目标任务中的每个目标任务执行如下操作,以得到多个目标任务中每个目标任务的多个时间与资源组合,每个目标任务的多个时间与资源组合中的每个组合包括该目标任务的预测计算资源和预测耗时:若目标任务T的类型与历史任务的类型均不相同时,根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务的多个时间与资源组合,其中,目标任务T的多个时间与资源组合中的每个时间与资源组合包括目标任务T的预测耗时和预测计算资源;目标任务T为所述多个目标任务中的一个;根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源。
在本领域中,确定执行任务所需计算资源一般是通过预测模型实现的,在业务交付初期,由于训练预测模型所需的训练样本数量不够,导致训练得到的预测模型的鲁棒性差,精度不稳定。目标任务的类型与历史任务的类型不相同表示当前处于业务交付初期,通过仿真预测的方式可以在训练样本数量少的情况下,可以精准的预测执行任务所需的计算资源。通过运筹优化方法可以快速得到多个任务的执行顺序及所需的计算资源,适用于敏捷交付场景。
结合第一方面,在一个可能的实现方式中,根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务T的多个时间与计算资源组合,包括:
对目标任务T进行拆分,以得到多个task及目标任务的有向无环图(directedacyclic graph,DAG);根据多个task及目标任务T的数据量确定多个task中每个task的数据量;根据所述多个task中每个task的数据量及多个参考计算资源进行预测,以得到每个task的多个预测耗时,多个参考计算资源与多个预测耗时对应;根据目标任务T的DAG及多个task的同一参考计算资源对应的预测耗时确定目标任务T的多个预测耗时;根据目标任务T的数据量及多个参考计算资源中的每个参考计算资源进行预测,以得到多个预测计算资源,多个预测计算资源与多个参考计算资源对应,其中,目标任务T的多个时间与计算资源的组合中的每个时间与计算资源的组合包括一个参考计算资源对应的预测计算资源和目标任务T的预测耗时。
通过将目标任务T拆分成多个task,然后以task为粒度,预测多个task的耗时及计算资源,然后基于目标任务T的DAG(可以用于指示目标任务T的task的执行顺序)及多个task的耗时及计算资源预测目标任务T的耗时及对应的计算资源,在业务交付初期,训练样本数量不足的情况下,采用此方式可以精准预测任务的耗时及对应的计算资源。
结合第一方面,在一个可能的实现方式中,目标任务T的多个时间与计算资源组合是通过将目标任务T及目标任务T的数据量输入到仿真预测模型中进行处理得到的。
结合第一方面,在一个可能的实现方式中,本申请的方法还包括:
从训练设备中获取仿真预测模型,或者构建仿真预测模型;
其中,构建仿真预测模型包括:
获取历史任务的数据量、多个task中每个task的数据量、耗时及计算资源;根据多个task的数据量、耗时及计算资源进行拟合,以得到task的耗时预测模型;根据历史任务的数据量及多个task的计算资源构建任务的计算资源预测模型;其中,仿真预测模型包括task的耗时预测模型及任务的计算资源预测模型。
采用上述方式,可以在少量样本数据的情况下得到精度高的仿真预测模型。
结合第一方面,在一个可能的实现方式中,本申请的方法还包括:
若目标任务T的类型与历史任务的类型相同时,将目标任务T的数据量与多个预设计算资源中每个预设计算资源输入到任务耗时预测模型中进行处理,以得到多个预测耗时,多个预测耗时与多个预设计算资源对应;多个时间与计算资源的组合中每个组合包括预测耗时和预测计算资源,预测计算资源为同一组合中预测耗时对应的预设计算资源。
目标任务T的类型与历史任务的类型相同表示当前处于业务交付后期,在业务交付后期,训练样本数量多,可以基于这些数据训练得到精度高的任务耗时预测模型,并使用该任务耗时预测模型预测得到精度高的耗时及对应的计算资源。
结合第一方面,在一个可能的实现方式中,本申请的方法还包括:
从训练设备中获取任务耗时预测模型,或者训练得到任务耗时预测模型;
其中,训练得到任务耗时预测模型,包括:
获取多个训练样本,多个训练样本中每个训练样本包括一个历史任务的计算资源、数据量及耗时;根据多个训练样本及初始模型进行多次训练,以得到任务耗时预测模型;在进行第i次训练时,将第i个训练样本中的历史任务Ji的计算资源及数据量输入到模型Mi中进行处理,以得到历史任务Ji的预测耗时,根据第i个训练样本中的耗时及历史任务Ji的预测耗时计算损失值,根据损失值调整模型Mi中的参数,以得到模型Mi+1;当i=1时,模型Mi为初始模型;最后一次训练得到的模型Mi+1为任务耗时预测模型。
结合第一方面,在一个可能的实现方式中,根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源,包括:
获取多个排布顺序,该多个排布顺序中的每个排布顺序用于指示多个目标任务的排布顺序;基于多个目标任务中每个目标任务的多个时间与计算组合确定多个总计算资源,不同总计算资源是多个目标任务的多个时间与计算组合中同一参考计算资源对应的预测计算资源确定的;在给定的多个总计算资源中每个总计算资源的前提下,基于多个排布顺序中每个排布顺序及多个目标任务的多个时间与资源组合中预测耗时进行决策,以得到多个总预测耗时,多个总预测耗时与多个排布顺序及多个总计算资源对应;将多个总预测耗时中最小总预测耗时对应的排布顺序及总计算资源确定为多个目标任务的排布顺序及目标计算资源。
通过运筹优化算法可以在短时内甚至实时求解得到最佳的任务的排布顺序及执行任务所需的计算资源,适用于网规网优等敏捷交付场景。
结合第一方面,在一个可能的实现方式中,在给定的多个总计算资源中每个总计算资源的前提下,基于多个排布顺序中每个排布顺序及多个目标任务的多个时间与资源组合中预测耗时进行决策时,决策过程满足预设约束条件,
其中,预设约束条件包括:
多个目标任务均被执行;
多个目标任务被执行的顺序满足预设执行顺序;
执行多个目标任务过程中所需的计算资源部不超过执行器的计算资源。
通过根据用户需求设定约束条件,在使用运筹优化算法进行求解时,可以得到满足用户需求的任务的排布顺序及执行任务所需的计算资源。
第二方面,本申请实施例提供一种任务调度装置,包括:
获取单元,用于获取多个目标任务及多个目标任务中每个目标的数据量;
处理单元,用于对多个目标任务中的每个目标任务执行如下操作,以得到多个目标任务中每个目标任务的多个时间与资源组合,每个目标任务的多个时间与资源组合中的每个组合包括该目标任务的预测计算资源和预测耗时:若目标任务T的类型与历史任务的类型均不相同时,根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务的多个时间与资源组合,其中,目标任务T的多个时间与资源组合中的每个时间与资源组合包括目标任务T的预测耗时和预测计算资源;目标任务T为多个目标任务中的一个;根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源。
结合第一方面,在一个可能的实现方式中,在根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务T的多个时间与计算资源组合的方面,处理单元具体用于:
对目标任务T进行拆分,以得到多个task及目标任务的DAG;根据多个task及目标任务T的数据量确定多个task中每个task的数据量;根据多个task中每个task的数据量及多个参考计算资源进行预测,以得到每个task的多个预测耗时,多个参考计算资源与多个预测耗时对应;根据目标任务T的DAG及多个task的同一参考计算资源对应的预测耗时确定目标任务T的多个预测耗时;根据目标任务T的数据量及多个参考计算资源中的每个参考计算资源进行预测,以得到多个预测计算资源,多个预测计算资源与多个参考计算资源对应,其中,目标任务T的多个时间与计算资源的组合中的每个时间与计算资源的组合包括一个参考计算资源对应的预测计算资源和目标任务T的预测耗时。
结合第一方面,在一个可能的实现方式中,目标任务T的多个时间与计算资源组合是通过将目标任务T及目标任务T的数据量输入到仿真预测模型中进行处理得到的。
结合第一方面,在一个可能的实现方式中,获取单元还用于:从训练设备中获取仿真预测模型,或者,
任务调度装置还包括:
构建单元,用于构建仿真预测模型;
其中,构建单元具体用于:
获取历史任务的数据量及历史任务的DAG、多个task中每个task的数据量、耗时及计算资源;根据多个task的数据量、耗时及计算资源进行拟合,以得到task的耗时预测模型;根据历史任务的数据量及多个task的计算资源构建任务的计算资源预测模型;其中,仿真预测模型包括task的耗时预测模型及任务的计算资源预测模型。
结合第一方面,在一个可能的实现方式中,处理单元还用于:
若目标任务T的类型与历史任务的类型相同时,将目标任务T的数据量与多个预设计算资源中每个预设计算资源输入到任务耗时预测模型中进行处理,以得到多个预测耗时,多个预测耗时与多个预设计算资源对应;多个时间与计算资源的组合中每个组合包括预测耗时和预测计算资源,预测计算资源为同一组合中预测耗时对应的预设计算资源。
目标任务T的类型与历史任务的类型相同表示
结合第一方面,在一个可能的实现方式中,获取单元还用于:从训练设备中获取任务耗时预测模型,或者,
任务调度装置还包括:
训练单元,用于训练得到任务耗时预测模型;
其中,训练单元具体用于:
获取多个训练样本,多个训练样本中每个训练样本包括一个历史任务的计算资源、数据量及耗时;根据多个训练样本及初始模型进行多次训练,以得到任务耗时预测模型;在进行第i次训练时,将第i个训练样本中的历史任务Ji的计算资源及数据量输入到模型Mi中进行处理,以得到历史任务Ji的预测耗时,根据第i个训练样本中的耗时及历史任务Ji的预测耗时计算损失值,根据损失值调整模型Mi中的参数,以得到模型Mi+1;当i=1时,模型Mi为初始模型;最后一次训练得到的模型Mi+1为任务耗时预测模型。
结合第一方面,在一个可能的实现方式中,在根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源的方面,处理单元具体用于:
获取多个排布顺序,该多个排布顺序中的每个排布顺序用于指示多个目标任务的排布顺序;基于多个目标任务中每个目标任务的多个时间与计算组合确定多个总计算资源,不同总计算资源是多个目标任务的多个时间与计算组合中同一参考计算资源对应的预测计算资源确定的;在给定的多个总计算资源中每个总计算资源的前提下,基于多个排布顺序中每个排布顺序及多个目标任务的多个时间与资源组合中预测耗时进行决策,以得到多个总预测耗时,多个总预测耗时与多个排布顺序及多个总计算资源对应;将多个总预测耗时中最小总预测耗时对应的排布顺序及总计算资源确定为多个目标任务的排布顺序及目标计算资源。
结合第一方面,在一个可能的实现方式中,在给定的多个总计算资源中每个总计算资源的前提下,基于多个排布顺序中每个排布顺序及多个目标任务的多个时间与资源组合中预测耗时进行决策时,决策过程满足预设约束条件,
其中,预设约束条件包括:
多个目标任务均被执行;
多个目标任务被执行的顺序满足预设执行顺序;
执行多个目标任务过程中所需的计算资源部不超过执行器的计算资源。
第三方面,本申请提供一种任务调度装置,包括处理器和存储器。存储器用于存储程序代码。处理器用于调用存储于存储器的程序代码,以执行第一方面或第一方面的任一种可能的实施方式提供的方法。
第四方面,本申请提供了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面任一种可能的实施方式提供的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一种可能的实施方式提供的方法。
可以理解地,上述提供的第二方面所述的装置、第三方面所述的装置、第四方面所述的计算机存储介质或者第五方面所述的计算机程序产品均用于执行第一方面中任一所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1a为本申请实施例提供的一种系统架构示意图;
图1b为本申请实施例提供的一种系统架构示意图;
图2a为本申请实施例提供的一种系统架构示意图;
图2b为本申请实施例提供的一种任务调度方法的流程示意图;
图3a为一种任务的DAG示意图;
图3b为本申请实施例提供的一种仿真预测模型确定流程示意图;
图3c为本申请实施提到的一种任务耗时预测模型训练流程示意图;
图3d为本申请实施例提供的另一种系统架构示意图;
图3e为本申请实施例提供的另一种任务调度方法流程示意图;
图4为本申请实施例提供的一种任务调度装置的结构示意图;
图5为本申请实施例提供的另一种任务调度装置的结构示意图。
具体实施方式
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
下面结合附图对本申请的实施例进行描述。
参见图2a,图2a为本申请实施例提供的一种系统架构示意图,如图2a所示,该系统包括业务应用系统,作业管理系统,数据采集系统,核心网、网管及spark/hadoop。
其中,业务应用系统用于承载用户页面、网规网优领域服务(比如网络核查、优化、路测的);实时获取到用户或者系统提交的网规网优任务,并输出任务执行信息到作业管理系统。该任务执行信息包括多个目标任务及每个目标任务的数量。
数据采集系统,用于通过探针采集运营商设备(比如核心网、网管)的原始数据,也就是执行目标任务所需的数据。
核心网,用于提供网元配置。
网管,用于提供核心网告警、话单等原始数据。
作业管理系统,用于接收数据采集系统获取到的原始数据、实时接收从业务应用系统提供的任务执行信息;通过仿真预测及运筹求解得到多个目标任务的排布顺序及执行多个目标任务所需的目标计算资源;将多个目标任务、执行多个目标任务所需的数据、排布顺序及目标计算资源下发到spark/hadoop,以使sprak/hadoop在目标计算资源下按照排布顺序所指示的顺序执行多个目标任务。
sprak/hadoop是一种大数据处理引擎,具备大数据任务的管理能力及处理能力,并支持定义算子处理逻辑;接收作业管理系统下发的多个目标任务、排布顺序及目标计算资源,并在目标计算资源下按照排布顺序所指示的顺序执行多个目标任务。
在此需要指出的是,本申请中的计算资源包括vcore、内存及进程实例数。vcore是spark中定义的cpu虚拟核。
下面具体介绍本申请的实现流程。
参见图2b,图2b为本申请实施例提供的一种任务调度方法的流程示意图。如图2b所示,该方法包括:
S201、任务调度装置获取多个目标任务以及该多个目标任务中每个目标任务的数据量。
其中,目标任务可以为不同业务的任务,例如网络优化任务、网络规划任务、网络核查任务、路测任务等。
其中,任务调度装置用于实现图2a中的作业管理系统的功能。
在得到多个目标任务后,任务调度装置对多个目标任务中的每个任务进行解析,以得到每个目标任务的参数。例如,网络规划任务和网络优化任务的参数包括小区数量、工参站点数、花点大小等。
任务调度装置将每个目标任务的参数与历史任务的参数进行比较,若目标任务的参数的类型与任一历史任务的参数的类型相同,则确定该目标任务的类型与历史任务的类型相同,该目标任务也可以称为旧任务。若目标任务的参数类型与所有历史任务的参数类型均不相同,则确定目标任务的类型与历史任务的类型不相同。
S202、若目标任务T为新任务,则任务调度装置根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务T的多个时间与资源组合。
其中,目标任务T的多个时间与资源组合中每个时间与资源组合包括目标任务T的预测耗时和预测计算资源;目标任务T为多个目标任务中的一个。
应理解,本申请中,task的耗时为执行该task所需的时间,task的计算资源为执行该task所需的计算资源。任务的耗时为执行该任务所需的时间,任务的计算资源为执行该任务所需的计算资源。
在一个可能的实施例中,当目标任务T为新任务时,任务调度装置对目标任务T进行拆分,以得到多个task及目标任务的DAG。在一个示例中,任务调度装置将目标任务T输入到拆分模型中进行处理,以得到目标任务T的多个task及DAG。在一个可选的示例中,任务调度装置在获取目标任务T时,可以直接从spark/Hadoop数据处理引擎中获取目标任务T的多个task及DAG。
任务调度装置根据目标任务T及目标任务T的数据量确定多个task中每个task的数据量;根据多个task中每个task的数据量、及多个参考计算资源中的进行预测,以得到每个task的多个预测耗时。每个task的多个预测耗时与多个参考计算资源对应。
在此需要指出的是,一个任务包括多个task,该多个task可以构成该任务的DAG,DAG包括至少一个task链,一个task链的执行时间包含准备时间、相邻两个task之间的执行时间间隔及该task链上所有task的执行时间。任务的执行时间为该任务的至少一个task链的执行时间中最长的时间。图3a示意出了一个任务的DAG。如图3a所示,一个任务包括6个task,分别为task1、task2、task3、task4、task5和task6。该6个task构成两个task链,一个task链包括task1、task4、task5和task6,该task链的执行时间t1=Tp+T1+T14+T4+T45+T5+T56+T6。其中,Tp为准备时间,T1、T4、T5和T6分别为task1、task4、task5和task6的执行时间;T14为task1与task4之间的执行时间间隔,T45为task4与task5之间的执行时间间隔,T56为task5与task6之间的执行时间间隔。另一个task链包括task2、task3和task6,该task链的执行时间包括t2=Tp+T2+T23+T3+T36+T5+T6。其中,T2、T3和T6分别为task2、task3和task6的执行时间;T23为task2与task3之间的执行时间间隔,T36为task3与task6之间的执行时间间隔。若t1大于t2,则该任务的执行时间为t1;若t2大于t1,则该任务的执行时间为t2。
在一个示例中,任务调度装置将多个task中每个task的数据量、及参考计算资源输入到task耗时预测模型中进行预测,以得到每个task的预测耗时。参考计算资源有多个,因此按照上述方式,对于一个task可得到多个预测耗时,该多个预测耗时与多个参考计算资源对应。其中,task耗时预测模型可表示为:z=fi(y,resouce),y为task的数量,resource为参考计算资源,fi是基于历史任务的多个task的数据量、计算资源及耗时进行拟合得到的函数。
在得到目标任务T中每个task的多个预测耗时后,任务调度装置根据目标任务T的DAG及多个task的同一参考计算资源对应的预测耗时确定目标任务T的多个预测耗时,目标任务T的多个预测耗时与多个参考计算资源对应。应理解,目标任务T的预测耗时与目标任务T的多个task的预测耗时相关,每个task的预测耗时有多个,分别与多个参考计算资源对应,因此目标任务T的多个预测耗时与多个参考计算资源对应。
任务调度装置根据目标任务T的数据量及参考计算资源进行预测,以得到预测计算资源。一个预测计算资源和一个预测耗时构成一个时间与计算资源的组合。参考计算资源有多个,任务调度装置通过改变参考计算资源,然后按照上述方式进行计算,可得到多个不同的预测计算资源和多个预测耗时,进而得到目标任务T的多个时间与资源组合。
在此需要指出的是,目标任务T的多个预测耗时与多个参考计算资源对应,目标任务T的多个预测计算资源与多个参考计算资源对应,目标任务T的多个时间与资源组合中每个时间与资源组合包括目标任务T的一个预测耗时及一个预测计算资源,该一个预测耗时及一个预测计算资源与同一个参考计算资源对应。
在一个可能的实施例中,任务调度装置获取仿真预测模型,可以是训练装置训练得到仿真预测模型后从训练装置中获取,也可以任务调度装置自己训练得到仿真预测模型。
训练装置从历史日志中获取历史任务的执行信息,通过对历史任务的执行信息继续分析,可以得到执行历史任务的多个算子中每个算子的执行起始时间、每个算子的数据量及每个算子的计算资源。训练装置根据执行历史任务的多个算子的执行起始时间可以确定该多个算子的执行顺序及多个算子中每个算子的耗时。训练装置根据多个算子的执行顺序确定历史任务的有向无环图DAG。历史任务的DAG用于表征执行历史任务的多个算子的执行顺序。
一个任务包括至少一个stage,一个stage包括至少一个task,一个task通过一个算子来执行。训练装置通过历史任务的DAG将历史任务拆分成至少一个stage,并将每个stage拆分成至少一个task,以得到多个task。
按照该方式,可以得到多个历史任务的task,训练装置根据多个历史任务及多个历史任务的task进行训练,以得到拆分模型。其中,拆分模型是基于神经网络实现的。
历史任务包括的多个task分别与执行历史任务的多个算子对应。训练装置根据多个算子的耗时、计算资源和数据量可以得到对应的多个task的耗时、计算资源和数据量。训练装置还可以通过spark资源管理接口获取多个task中每个task的数据量及对应的计算资源。训练装置根据多个task中每个task的数据量、耗时及计算资源拟合构建task耗时预测模型fi,z=fi(y,resource)。其中,z为task的耗时,y为task数据量,resource为单一task的计算资源。
训练装置根据获取的历史任务的计算资源、历史任务的数据量,历史任务包括的多个task分别对应的计算资源确定任务计算资源预测模型usage=g(datasize,resource)。可选的,训练装置可以通过随机森林算法,根据历史任务的计算资源、历史任务的数据量,历史任务包括的多个task分别对应的计算资源确定任务计算资源预测模型。
应理解,仿真预测模型包括task耗时预测模型和任务计算资源预测模型。可选的,仿真预测模型还包括拆分模型。
应理解,任务调度装置可以按照上述训练装置所执行的动作训练得到仿真预测模型。
在另一个可能的实施例中,如图3b所示,任务调度装置基于少量历史任务的执行数据获取历史任务的DAG,并基于历史任务的DAG将该历史任务分解成多个task,从历史任务的执行数据中获取多个task的执行耗时、计算资源及数据量,根据多个task的执行耗时、计算资源及数据量确定task的计算资源与耗时之间的关系,即上述task耗时预测模型fi。任务调度装置根据历史任务的多个task的计算资源,数据量及历史任务的计算资源确定历史任务的计算资源与单个task的计算资源及数据量之间的关系,即上述任务计算资源预测模型。任务调度装置最后输出仿真参数,即上述task耗时预测模型和任务计算资源预测模型。
在一个可能的实施例中,当目标任务T的类型与历史任务的类型相同时,任务调度装置将多个参考计算资源中的每个参考计算资源及目标任务T的数据量输入到任务耗时预测模型中进行处理,以得到目标任务T的多个预测耗时,其中,多个预测耗时与多个参考计算资源对应。多个时间与资源组合中的每个时间与资源组合包括一个预测耗时及其对应的参考计算资源。也就是说,在实施例中,时间与资源组合中的预测计算资源为参考计算资源。
在一个可能的实施例中,任务调度装置获取任务耗时预测模型,可以是训练装置训练得到任务耗时预测模型后从训练装置中获取,也可以任务调度装置自己训练得到任务耗时预测模型。
在一个示例中,训练任务耗时预测模型的过程如图3c所示,包括:获取历史任务的计算资源、数据量及执行时长,基于机器学习算法对历史任务的计算资源、数据量及执行时长进行训练,以得到任务耗时预测模型。在使用任务耗时预测模型过程中,根据当前任务的计算资源、数据量及执行时长在线更新任务耗时预测模型,以提高任务耗时预测模型的精度。
具体训练过程如下:
获取多个训练样本,可选的,训练样本是从Spark/Hadoop资源管理中的历史任务记录中获取的。其中,每个训练样本包括自变量和因变量。自变量作为模型的输入,自变量为能够影响任务因变量的变量,因变量为模型的输出,被自变量影响的变量。自变量包括执行一个历史任务的计算资源和历史任务的数据量;因变量包括历史任务的执行时长及任务执行的成功率;对于不同的历史任务,训练样本的输入数据还包括额外的数据,比如对于网络优化任务,训练样本的自变量还包括最大站点测量报告(measurement report,MR)条数,因变量还包括任务执行成功率,如下表1所示。
表1
参数 类型 获取途径
计算资源大小 自变量 Spark/Hadoop资源管理中的历史任务记录
历史任务数据量大小 自变量 Spark/Hadoop资源管理中的历史任务记录
最大站点MR条数 自变量 Spark/Hadoop资源管理中的历史任务记录
任务执行时长 因变量 Spark/Hadoop资源管理中的历史任务记录
任务执行成功率 因变量 Spark/Hadoop资源管理中的历史任务记录
根据上述自变量和因变量从Spark/Hadoop资源管理中的历史任务记录中采集历史任务数据,按照固定的格式存储样本库。样本库的类型多样,其目的为保存大量的数据,并保证断电后数据不丢失可恢复,可以是.csv格式的表格文件或者数据库,例如mysql、gauss。在一个示例中,本实施例中使用到的样本库为csv表格文件。
在训练时,训练装置从样本库中获取多个训练样本,根据多个训练样本进行对初始模型进行多次训练,以得到上述任务耗时预测模型。在进行第i次训练时,训练装置将多个训练样本中的第i个训练样本的历史任务Ji的计算资源及数据量输入到模型Mi中进行处理,以得到历史任务Ji的预测耗时,根据第i个训练样本中的耗时及历史任务Ji的预测耗时计算损失值,根据所述损失值调整所述模型Mi中的参数,以得到模型Mi+1;当i=1时,模型Mi为初始模型;最后一次训练得到的模型Mi+1为任务耗时预测模型。
对于不同任务,为了提供模型的预测精度,在训练时会引入额外的参数,比如网络优化任务,第i个训练样本还包括最大站点MR条数和历史任务Ji的执行成功率。在进行第i次训练时,训练装置将第i个训练样本的历史任务Ji的计算资源、数据量及最大站点MR条数输入到模型Mi中进行处理,以得到历史任务Ji的预测耗时和执行成功率,根据第i个训练样本中的耗时、历史任务Ji的预测耗时及执行成功率计算损失值,根据所述损失值调整所述模型Mi中的参数,以得到模型Mi+1
在此需要指出的是,训练停止条件包括训练次数达到预设次数或者损失值收敛。
在一个可能的实施例中,训练装置周期性任务耗时预测模型,
可选的,初始模型为随机森林模型。
S203、任务调度装置根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源。
在一个可能的实施例中,任务调度装置获取多个排布顺序,该多个排布顺序中的每个排布顺序用于指示多个目标任务的排布顺序,该排布顺序可以看成由多个目标任务构成的DAG。任务调度装置基于多个目标任务中每个目标任务的多个时间与计算组合确定多个总计算资源,不同总计算资源是多个目标任务的多个时间与计算组合中同一参考计算资源对应的预测计算资源确定的;在给定的多个总计算资源中每个总计算资源的前提下,基于多个排布顺序中每个排布顺序及多个目标任务的多个时间与资源组合中预测耗时进行决策,以得到多个总预测耗时,多个总预测耗时与多个排布顺序及多个总计算资源对应;将多个总预测耗时中最小总预测耗时对应的排布顺序及总计算资源确定为多个目标任务的排布顺序及目标计算资源。
具体的,任务调度装置在运筹优化时,需要设定多个目标任务的总计算资源,并且在多个目标任务的总计算资源及排布顺序下,基于多个目标任务的总计算资源及多个目标任务中每个目标任务的预测耗时预测多个目标任务的总耗时,以得到多个目标任务的总预测耗时。在此过程中,设定了多个目标任务的排布顺序、总计算资源及多个目标任务中每个目标任务的预测耗时。一个排布顺序、多个目标任务的一个总计算资源及多个目标任务各自任务的一个预测耗时构成一个预测组合。由前述可知,多个目标任务的一个总计算资源是基于多个目标任务的同一参考计算对应的预测计算资源计算得到的,同一预测组合中,计算多个目标任务的总计算资源所依据的多个目标任务的预测计算资源对应的参考计算资源与多个目标任务的预测耗时对应的参考计算资源是相同的。需要指出的是,对于一个目标任务,同一参考计算资源对应的预测耗时及预测计算资源构成一个时间与资源组合。
按照上述逻辑,基于多个排布顺序、多个目标任务的总计算资源及多个目标任务中每个目标任务的多个预测耗时得到多个预测组合。
运筹优化的目的是从多个预测组合中确定出多个目标任务的排布顺序及目标计算资源。任务调度装置根据多个预测组合中每个预测组合中的信息预测多个目标任务的多个预测总耗时,该多个预测总耗时与多个预测组合对应;任务调度装置将多个预测总耗时中最小预测总耗时对应的预测组合中的排布顺序及总计算资源分别确定为多个目标任务的排布顺序及目标计算资源。
在一个示例中,根据一个预测组合中信息预测多个目标任务的执行总耗时具体方式包括:将多个目标任务按照排布顺序提交至一个或多个执行模型中。提交到一个执行模块的任务数量最大值为执行模块的并发数。并发数为执行模块为最多可以同时运行的任务数量。执行模块的并发数是基于总计算资源确定的。该执行模块可以为常驻spark应用。执行模块在获取目标任务后,按照并发数执行获取到的目标任务,以得到预测总耗时。预测总耗时为多个目标任务运行所需的时间,即从执行第一个提交的目标任务开始运行到最后一个提交的任务运行结束这段时间的时长。在此需要指出是,总预测耗时不是多个目标任务的预测耗时的叠加,由于多个目标任务在执行过程中,存在目标任务并行执行的情况。
在执行模块执行多个目标任务时,还需要满足一些约束条件。例如,约束条件包括:
多个目标任务均被执行;
多个目标任务被执行的顺序满足预测执行顺序;
执行所述多个目标任务过程中所需的计算资源部不超过执行器的计算资源。
在此需要指出的是,对于不同的业务,约束条件可以不相同。
其中,预测执行顺序符合上述排布顺序所指示的执行顺序。比如排布指示的执行顺序为:任务A->任务B->任务C->任务D,对于任务A和任务C,预测执行顺序指示任务A在任务C之前执行,或者对于任务A和任务D,预测执行顺序指示任务A在任务D之前执行。
在一个可能的实施例中,任务调度装置在确定多个目标任务的排布顺序及目标计算资源后,任务调度装置将多个目标任务的排布顺序及目标计算资源传输至执行器,执行器根据目标计算资源确定并发数及实例数。其中,目标计算资源越大,并发数及实例数越大。任务调度装置将排布顺序、并发数及实例数发送执行模块,以便执行器执行目标任务。
可选的,任务调度装置与执行器可以是同一个设备,也可以是不同的设备。
可以看出,在本申请的方案中,在业务初期时,对于新的任务,采用仿真预测模型可以精准预测执行任务所需计算资源及耗时,避免了使用鲁棒性弱的任务耗时预测模型,也不需要很长的训练时间。在业务初期,训练任务耗时预测模型的样本数量较少,在训练样本少情况下训练出来的任务耗时预测模型鲁棒性弱,由于仿真预测模型中的task耗时预测模型和任务计算资源预测模型本质为线性函数,因此基于少量的样本就可以确定task耗时预测模型和任务计算资源预测模型,适用于业务交付初期的场景。通过运筹优化方法可以快速得到多个任务的执行顺序及所需的计算资源,适用于敏捷交付场景。
在一个具体的实施例中,如图3d所示的系统架构包括作业管理系统及spark.hadoop大数据处理引擎,其中,spark/hadood大数据处理引擎包括模型更新模块、spark资源管理模块及计算算子,作业管理系统包括模型推理模块和基于运筹优化的任务排布模块,
模型更新模块在训练模型时启用,定时通过spark资源管理模块提取到历史任务的数据量、计算资源及耗时,根据历史任务的参数、计算资源及耗时训练得到任务耗时预测模型;根据历史任务的数据量、计算资源、耗时及历史任务的DAG构建仿真预测模型,具体过程可参见S202的相关描述,在此不再叙述。
计算算子,用于接收任务排布模块发送的任务参数,基于任务参数执行任务。
模型推理装置,用于接收业务应用系统下发的任务执行信息,该任务执行信息包括多个任务及每个任务的数据量;如图3e所示,模型推理装置识别多个任务中中每个任务是否为新任务,具体是根据判断每个任务的参数类型是否与历史任务的参数类型相同;若不相同,则确定该任务为新任务,基于仿真预测模型得到该任务的多个计算资源与耗时组合;若相同,则基于任务耗时预测模型得到该任务的多个计算资源与耗时组合,具体过程可参见S202的相关描述,在此不再叙述。
任务排布模块接收到模型推理模块传输的多个计算资源与耗时组合,根据运筹优化算法及多个计算资源与耗时组合中确定目标计算资源及多个任务的排布顺序具体过程参见S203的相关描述,在此不再叙述,然后调用Spark/hadoop大数据引擎的原生接口向计算算子下发任务参数,即将目标计算资源及多个任务的排布顺序发送至计算算子,以使计算算子按照目标计算资源及多个任务的排布顺序执行多个任务。
参照图4所示,为本申请实施例提供的一种任务调度装置的结构示意图。如图4所示,该任务调度装置400包括:
获取单元401,用于获取多个目标任务及多个目标任务中每个目标的数据量;
处理单元402,用于对多个目标任务中的每个目标任务执行如下操作,以得到多个目标任务中每个目标任务的多个时间与资源组合,每个目标任务的多个时间与资源组合中的每个组合包括该目标任务的预测计算资源和预测耗时:若目标任务T的类型与历史任务的类型均不相同时,根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务的多个时间与资源组合,其中,目标任务T的多个时间与资源组合中的每个时间与资源组合包括目标任务T的预测耗时和预测计算资源;目标任务T为多个目标任务中的一个;根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源。
结合第一方面,在一个可能的实现方式中,在根据目标任务T及目标任务T的数据量进行仿真预测,以得到目标任务T的多个时间与计算资源组合的方面,处理单元402具体用于:
对目标任务T进行拆分,以得到多个task及目标任务的DAG;根据多个task及目标任务T的数据量确定多个task中每个task的数据量;根据多个task中每个task的数据量及多个参考计算资源进行预测,以得到每个task的多个预测耗时,多个参考计算资源与多个预测耗时对应;根据目标任务T的DAG及多个task的同一参考计算资源对应的预测耗时确定目标任务T的多个预测耗时;根据目标任务T的数据量及多个参考计算资源中的每个参考计算资源进行预测,以得到多个预测计算资源,多个预测计算资源与多个参考计算资源对应,其中,目标任务T的多个时间与计算资源的组合中的每个时间与计算资源的组合包括一个参考计算资源对应的预测计算资源和目标任务T的预测耗时。
结合第一方面,在一个可能的实现方式中,目标任务T的多个时间与计算资源组合是通过将目标任务T及目标任务T的数据量输入到仿真预测模型中进行处理得到的。
结合第一方面,在一个可能的实现方式中,获取单元401还用于:从训练设备中获取仿真预测模型,或者,
任务调度装置400还包括:
构建单元403,用于构建仿真预测模型;
其中,构建单元403具体用于:
获取历史任务的数据量及历史任务的DAG、多个task中每个task的数据量、耗时及计算资源;根据多个task的数据量、耗时及计算资源进行拟合,以得到task的耗时预测模型;根据历史任务的数据量及多个task的计算资源构建任务的计算资源预测模型;其中,仿真预测模型包括task的耗时预测模型及任务的计算资源预测模型。
结合第一方面,在一个可能的实现方式中,处理单元402还用于:
若目标任务T的类型与历史任务的类型相同时,将目标任务T的数据量与多个预设计算资源中每个预设计算资源输入到任务耗时预测模型中进行处理,以得到多个预测耗时,多个预测耗时与多个预设计算资源对应;多个时间与计算资源的组合中每个组合包括预测耗时和预测计算资源,预测计算资源为同一组合中预测耗时对应的预设计算资源。
目标任务T的类型与历史任务的类型相同表示
结合第一方面,在一个可能的实现方式中,获取单元401还用于:从训练设备中获取任务耗时预测模型,或者,
任务调度装置400还包括:
训练单元404,用于训练得到任务耗时预测模型;
其中,训练单元404具体用于:
获取多个训练样本,多个训练样本中每个训练样本包括一个历史任务的计算资源、数据量及耗时;根据多个训练样本及初始模型进行多次训练,以得到任务耗时预测模型;在进行第i次训练时,将第i个训练样本中的历史任务Ji的计算资源及数据量输入到模型Mi中进行处理,以得到历史任务Ji的预测耗时,根据第i个训练样本中的耗时及历史任务Ji的预测耗时计算损失值,根据损失值调整模型Mi中的参数,以得到模型Mi+1;当i=1时,模型Mi为初始模型;最后一次训练得到的模型Mi+1为任务耗时预测模型。
结合第一方面,在一个可能的实现方式中,在根据运筹优化方法对多个目标任务的多个时间与资源组合进行处理,以得到多个目标任务的排布顺序及目标计算资源的方面,处理单元402具体用于:
获取多个排布顺序,该多个排布顺序中的每个排布顺序用于指示多个目标任务的排布顺序;基于多个目标任务中每个目标任务的多个时间与计算组合确定多个总计算资源,不同总计算资源是多个目标任务的多个时间与计算组合中同一参考计算资源对应的预测计算资源确定的;在给定的多个总计算资源中每个总计算资源的前提下,基于多个排布顺序中每个排布顺序及多个目标任务的多个时间与资源组合中预测耗时进行决策,以得到多个总预测耗时,多个总预测耗时与多个排布顺序及多个总计算资源对应;将多个总预测耗时中最小总预测耗时对应的排布顺序及总计算资源确定为多个目标任务的排布顺序及目标计算资源。
结合第一方面,在一个可能的实现方式中,在给定的多个总计算资源中每个总计算资源的前提下,基于多个排布顺序中每个排布顺序及多个目标任务的多个时间与资源组合中预测耗时进行决策时,决策过程满足预设约束条件,
其中,预设约束条件包括:
多个目标任务均被执行;
多个目标任务被执行的顺序满足预设执行顺序;
执行多个目标任务过程中所需的计算资源部不超过执行器的计算资源。
值得指出的是,其中,任务调度装置的具体功能实现方式可以参见上述任务调度方法的描述,比如获取单元401用于执行S201的相关内容,处理单元402、构建单元403和训练单元404用于执行S202-S203的相关内容,这里不再进行赘述。装置中的各个单元或模块可以分别或全部合并为一个或若干个另外的单元或模块来构成,或者其中的某个(些)单元或模块还可以再拆分为功能上更小的多个单元或模块来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元或模块是基于逻辑功能划分的,在实际应用中,一个单元(或模块)的功能也可以由多个单元(或模块)来实现,或者多个单元(或模块)的功能由一个单元(或模块)实现。
基于上述方法实施例以及装置实施例的描述,请参见图5,本发明实施例还提供的一种任务调度装置500的结构示意图。图5所示的任务调度装置500(该装置500具体可以是一种计算机设备)包括存储器501、处理器502、通信接口503以及总线504。其中,存储器501、处理器502、通信接口503通过总线504实现彼此之间的通信连接。
存储器501可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。
存储器501可以存储程序,当存储器501中存储的程序被处理器502执行时,处理器502和通信接口503用于执行本申请实施例的任务调度方法的各个步骤。
处理器502可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的任务调度装置400中的单元所需执行的功能,或者执行本申请方法实施例的任务调度方法。
处理器502还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的任务调度方法的各个步骤可以通过处理器502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器502还可以是通用处理器、数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器501,处理器502读取存储器501中的信息,结合其硬件完成本申请实施例的网络风险关联评估装置中包括的单元所需执行的功能,或者执行本申请方法实施例的任务调度方法。
通信接口503使用例如但不限于收发器一类的收发装置,来实现装置500与其他设备或通信网络之间的通信。例如,可以通过通信接口503获取数据。
总线504可包括在装置500各个部件(例如,存储器501、处理器502、通信接口503)之间传送信息的通路。
应注意,尽管图5所示的装置500仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置500还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置500还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置500也可仅仅包括实现本申请实施例所必须的器件,而不必包括图5中所示的全部器件。
本申请实施例还提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以实现所述的任务调度方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行所述的任务调度方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,基于通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应步骤过程的具体描述,在此不再赘述。
应理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种任务调度方法,其特征在于,包括:
获取多个目标任务及所述多个目标任务中每个目标的数据量;
对所述多个目标任务中的每个目标任务执行如下操作,以得到所述多个目标任务中每个目标任务的多个时间与资源组合,所述每个目标任务的多个时间与资源组合中的每个组合包括该目标任务的预测计算资源和预测耗时:
若目标任务T的类型与历史任务的类型均不相同时,根据所述目标任务T及所述目标任务T的数据量进行仿真预测,以得到所述目标任务的多个时间与资源组合,其中,所述目标任务T的多个时间与资源组合中的每个时间与资源组合包括所述目标任务T的预测耗时和预测计算资源;所述目标任务T为所述多个目标任务中的一个;
根据运筹优化方法对所述多个目标任务的多个时间与资源组合进行处理,以得到所述多个目标任务的排布顺序及目标计算资源。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标任务T及所述目标任务T的数据量进行仿真预测,以得到所述目标任务T的多个时间与计算资源组合,包括:
对所述目标任务T进行拆分,以得到多个task及所述目标任务的有向无环图DAG;
根据所述多个task及所述目标任务T的数据量确定所述多个task中每个task的数据量;
根据所述多个task中每个task的数据量及多个参考计算资源进行预测,以得到所述每个task的多个预测耗时,所述多个参考计算资源与所述多个预测耗时对应;
根据所述目标任务T的DAG及所述多个task的同一参考计算资源对应的预测耗时确定目标任务T的多个预测耗时;
根据所述目标任务T的数据量及多个参考计算资源中的每个参考计算资源进行预测,以得到多个预测计算资源,所述多个预测计算资源与所述多个参考计算资源对应,
其中,所述目标任务T的多个时间与计算资源的组合中的每个时间与计算资源的组合包括一个参考计算资源对应的预测计算资源和所述目标任务T的预测耗时。
3.根据权利要求2所述的方法,其特征在于,所述目标任务T的多个时间与计算资源组合是通过将所述目标任务T及所述目标任务T的数据量输入到仿真预测模型中进行处理得到的。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
从训练设备中获取所述仿真预测模型,或者构建所述仿真预测模型;
其中,所述构建所述仿真预测模型包括:
获取历史任务的数据量、多个task中每个task的数据量、耗时及计算资源;
根据多个task的数据量、耗时及计算资源进行拟合,以得到task的耗时预测模型;
根据所述历史任务的数据量及所述多个task的计算资源构建任务的计算资源预测模型;
其中,仿真预测模型包括task的耗时预测模型及任务的计算资源预测模型。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
若所述目标任务T的类型与所述历史任务的类型相同时,将所述目标任务T的数据量与多个预设计算资源中每个预设计算资源输入到任务耗时预测模型中进行处理,以得到多个所述预测耗时,所述多个预测耗时与所述多个预设计算资源对应;
所述多个时间与计算资源的组合中每个组合包括预测耗时和预测计算资源,所述预测计算资源为同一所述组合中预测耗时对应的预设计算资源。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
从训练设备中获取所述任务耗时预测模型,或者训练得到所述任务耗时预测模型;
其中,训练得到所述任务耗时预测模型,包括:
获取多个训练样本,所述多个训练样本中每个训练样本包括一个历史任务的计算资源、数据量及耗时;
根据所述多个训练样本及初始模型进行多次训练,以得到所述任务耗时预测模型;在进行第i次训练时,将第i个训练样本中的历史任务Ji的计算资源及数据量输入到模型Mi中进行处理,以得到所述历史任务Ji的预测耗时,根据第i个训练样本中的耗时及所述历史任务Ji的预测耗时计算损失值,根据所述损失值调整所述模型Mi中的参数,以得到模型Mi+1;当i=1时,模型Mi为初始模型;最后一次训练得到的模型Mi+1为所述任务耗时预测模型。
7.根据权利要求2-6任一项所述的方法,其特征在于,所述根据运筹优化方法对所述多个目标任务的多个时间与资源组合进行处理,以得到所述多个目标任务的排布顺序及目标计算资源,包括:
获取多个排布顺序,所述多个排布顺序中的每个排布顺序用于指示所述多个目标任务的排布顺序;
基于所述多个目标任务中每个目标任务的多个时间与计算组合确定所述多个总计算资源,不同所述总计算资源是多个目标任务的多个时间与计算组合中同一所述参考计算资源对应的预测计算资源确定的;
在给定的所述多个总计算资源中每个总计算资源的前提下,基于所述多个排布顺序中每个排布顺序及所述多个目标任务的多个时间与资源组合中预测耗时进行决策,以得到多个总预测耗时,所述多个总预测耗时与所述多个排布顺序及多个总计算资源对应;
将所述多个总预测耗时中最小总预测耗时对应的排布顺序及总计算资源确定为所述多个目标任务的排布顺序及目标计算资源。
8.根据权利要求7所述的方法,其特征在于,在给定的所述多个总计算资源中每个总计算资源的前提下,基于所述多个排布顺序中每个排布顺序及所述多个目标任务的多个时间与资源组合中预测耗时进行决策时,决策过程满足预设约束条件,
其中,所述预设约束条件包括:
所述多个目标任务均被执行;
所述多个目标任务被执行的顺序满足预设执行顺序;
执行所述多个目标任务过程中所需的计算资源部不超过执行器的计算资源。
9.一种任务调度装置,其特征在于,包括:
获取单元,用于获取多个目标任务及所述多个目标任务中每个目标的数据量;
处理单元,用于对所述多个目标任务中的每个目标任务执行如下操作,以得到所述多个目标任务中每个目标任务的多个时间与资源组合,所述每个目标任务的多个时间与资源组合中的每个组合包括该目标任务的预测计算资源和预测耗时:
若目标任务T的类型与历史任务的类型均不相同时,根据所述目标任务T及所述目标任务T的数据量进行仿真预测,以得到所述目标任务的多个时间与资源组合,其中,所述目标任务T的多个时间与资源组合中的每个时间与资源组合包括所述目标任务T的预测耗时和预测计算资源;所述目标任务T为所述多个目标任务中的一个;
根据运筹优化方法对所述多个目标任务的多个时间与资源组合进行处理,以得到所述多个目标任务的排布顺序及目标计算资源。
10.根据权利要求9所述的任务调度装置,其特征在于,在所述根据所述目标任务T及所述目标任务T的数据量进行仿真预测,以得到所述目标任务T的多个时间与计算资源组合的方面,所述处理单元具体用于:
对所述目标任务T进行拆分,以得到多个task及所述目标任务的有向无环图DAG;
根据所述多个task及所述目标任务T的数据量确定所述多个task中每个task的数据量;
根据所述多个task中每个task的数据量及多个参考计算资源进行预测,以得到所述每个task的多个预测耗时,所述多个参考计算资源与所述多个预测耗时对应;
根据所述目标任务T的DAG及所述多个task的同一参考计算资源对应的预测耗时确定目标任务T的多个预测耗时;
根据所述目标任务T的数据量及多个参考计算资源中的每个参考计算资源进行预测,以得到多个预测计算资源,所述多个预测计算资源与所述多个参考计算资源对应,
其中,所述目标任务T的多个时间与计算资源的组合中的每个时间与计算资源的组合包括一个参考计算资源对应的预测计算资源和所述目标任务T的预测耗时。
11.根据权利要求10所述的任务调度装置,其特征在于,所述目标任务T的多个时间与计算资源组合是通过将所述目标任务T及所述目标任务T的数据量输入到仿真预测模型中进行处理得到的。
12.根据权利要求11所述的任务调度装置,其特征在于,所述获取单元还用于:从训练设备中获取所述仿真预测模型,或者,
所述任务调度装置,还包括:
构建单元,用于构建所述仿真预测模型;
所述构建单元具体用于:
获取历史任务的数据量、多个task中每个task的数据量、耗时及计算资源;
根据多个task的数据量、耗时及计算资源进行拟合,以得到task的耗时预测模型;
根据所述历史任务的数据量及所述多个task的计算资源构建任务的计算资源预测模型;
其中,仿真预测模型包括task的耗时预测模型及任务的计算资源预测模型。
13.根据权利要求9-12任一项所述的任务调度装置,其特征在于,所述处理单元还用于:
若所述目标任务T的类型与所述历史任务的类型相同时,将所述目标任务T的数据量与多个预设计算资源中每个预设计算资源输入到任务耗时预测模型中进行处理,以得到多个所述预测耗时,所述多个预测耗时与所述多个预设计算资源对应;
所述多个时间与计算资源的组合中每个组合包括预测耗时和预测计算资源,所述预测计算资源为同一所述组合中预测耗时对应的预设计算资源。
14.根据权利要求13所述的任务调度装置,其特征在于,所述获取单元还用于:从训练设备中获取所述任务耗时预测模型,或者,
所述任务调度装置还包括:
训练单元,用于训练得到所述任务耗时预测模型;
所述训练单元具体用于:
获取多个训练样本,所述多个训练样本中每个训练样本包括一个历史任务的计算资源、数据量及耗时;
根据所述多个训练样本及初始模型进行多次训练,以得到所述任务耗时预测模型;在进行第i次训练时,将第i个训练样本中的历史任务Ji的计算资源及数据量输入到模型Mi中进行处理,以得到所述历史任务Ji的预测耗时,根据第i个训练样本中的耗时及所述历史任务Ji的预测耗时计算损失值,根据所述损失值调整所述模型Mi中的参数,以得到模型Mi+1;当i=1时,模型Mi为初始模型;最后一次训练得到的模型Mi+1为所述任务耗时预测模型。
15.根据权利要求10-14任一项所述的任务调度装置,其特征在于,在所述根据运筹优化方法对所述多个目标任务的多个时间与资源组合进行处理,以得到所述多个目标任务的排布顺序及目标计算资源的方面,所述处理单元具体用于:
获取多个排布顺序,所述多个排布顺序中的每个排布顺序用于指示所述多个目标任务的排布顺序;
基于所述多个目标任务中每个目标任务的多个时间与计算组合确定所述多个总计算资源,不同所述总计算资源是多个目标任务的多个时间与计算组合中同一所述参考计算资源对应的预测计算资源确定的;
在给定的所述多个总计算资源中每个总计算资源的前提下,基于所述多个排布顺序中每个排布顺序及所述多个目标任务的多个时间与资源组合中预测耗时进行决策,以得到多个总预测耗时,所述多个总预测耗时与所述多个排布顺序及多个总计算资源对应;
将所述多个总预测耗时中最小总预测耗时对应的排布顺序及总计算资源确定为所述多个目标任务的排布顺序及目标计算资源。
16.根据权利要求15所述的任务调度装置,其特征在于,在给定的所述多个总计算资源中每个总计算资源的前提下,基于所述多个排布顺序中每个排布顺序及所述多个目标任务的多个时间与资源组合中预测耗时进行决策时,决策过程满足预设约束条件,
其中,所述预设约束条件包括:
所述多个目标任务均被执行;
所述多个目标任务被执行的顺序满足预设执行顺序;
执行所述多个目标任务过程中所需的计算资源部不超过执行器的计算资源。
17.一种任务调度装置,其特征在于,包括处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于执行所述程序代码,以实现权利要求1至8任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至8任一项所述的方法。
CN202211202525.4A 2022-09-29 2022-09-29 任务调度方法及相关装置 Pending CN117827389A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211202525.4A CN117827389A (zh) 2022-09-29 2022-09-29 任务调度方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211202525.4A CN117827389A (zh) 2022-09-29 2022-09-29 任务调度方法及相关装置

Publications (1)

Publication Number Publication Date
CN117827389A true CN117827389A (zh) 2024-04-05

Family

ID=90512000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211202525.4A Pending CN117827389A (zh) 2022-09-29 2022-09-29 任务调度方法及相关装置

Country Status (1)

Country Link
CN (1) CN117827389A (zh)

Similar Documents

Publication Publication Date Title
CN110852421B (zh) 模型生成方法和装置
US9798575B2 (en) Techniques to manage virtual classes for statistical tests
CN110851342A (zh) 故障预测方法、装置、计算设备以及计算机可读存储介质
Almeida et al. Smart at what cost? characterising mobile deep neural networks in the wild
Tuli et al. MCDS: AI augmented workflow scheduling in mobile edge cloud computing systems
CN111143039B (zh) 一种虚拟机的调度方法、装置及计算机存储介质
CN112700131B (zh) 基于人工智能的ab测试方法、装置、计算机设备及介质
CN110879776A (zh) 一种测试用例的生成方法和装置
CN114895773A (zh) 异构多核处理器的能耗优化方法、系统、装置及存储介质
CN112783747B (zh) 一种应用程序的执行时间预测方法及装置
Morichetta et al. Demystifying deep learning in predictive monitoring for cloud-native SLOs
CN110413482B (zh) 检测方法和装置
WO2024065776A1 (en) Method for data processing, apparatus for data processing, electronic device, and storage medium
CN114520773B (zh) 一种服务请求的响应方法、装置、服务器及存储介质
CN117827389A (zh) 任务调度方法及相关装置
CN114676272A (zh) 多媒体资源的信息处理方法、装置、设备及存储介质
CN111522644B (zh) 基于历史运行数据预测并行程序运行时间的方法
CN114021833A (zh) 一种线损预测方法、系统、存储介质及计算设备
CN113762972A (zh) 数据存储控制方法及装置、电子设备、存储介质
Chatziprimou et al. Surrogate-assisted online optimisation of cloud iaas configurations
CN112764957A (zh) 应用故障定界方法及装置
CN112529207A (zh) 模型优化方法、装置、存储介质及设备
CN113361701A (zh) 神经网络模型的量化方法和装置
CN112906723A (zh) 一种特征选择的方法和装置
CN112836770B (zh) Kpi异常定位分析方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication