CN115061794A - 调度任务及训练神经网络模型的方法、装置、终端和介质 - Google Patents

调度任务及训练神经网络模型的方法、装置、终端和介质 Download PDF

Info

Publication number
CN115061794A
CN115061794A CN202210669734.3A CN202210669734A CN115061794A CN 115061794 A CN115061794 A CN 115061794A CN 202210669734 A CN202210669734 A CN 202210669734A CN 115061794 A CN115061794 A CN 115061794A
Authority
CN
China
Prior art keywords
task
time
constructed
construction
sub
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
CN202210669734.3A
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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN202210669734.3A priority Critical patent/CN115061794A/zh
Publication of CN115061794A publication Critical patent/CN115061794A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种调度任务及训练神经网络模型的方法、装置、终端和介质。该调度任务的方法包括:判断主任务中的待构建子任务的队列是否变化,若是,则执行以下步骤;基于耗时预测神经网络模型获得主任务中的各个正在构建子任务和各个待构建子任务的构建剩余耗时,并取其中最大者作为主任务的构建剩余耗时;判断主任务的构建剩余耗时是否满足耗时要求,若否,则调整主任务中的待构建子任务的排队顺序。如此,在从服务器资源有限的情况下,可以动态调整每一个主任务中的待构建子任务的排队顺序,以合理利用有限的从服务器资源,并保证各个主任务快速、准时地交付。

Description

调度任务及训练神经网络模型的方法、装置、终端和介质
技术领域
本发明涉及调度任务的技术领域,尤其涉及一种调度任务及训练神经网络模型的方法、装置、终端和介质。
背景技术
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,其旨在提供一个开放易用的软件平台,用于监控持续重复的工作,使软件的持续集成变成可能。
Jenkins服务器主要分为主服务器(master服务器)和从服务器(slave服务器)两种,其中,主服务器主要用于构建任务的分配,从服务器主要用于构建任务的执行。
通常,在项目构建时,每个项目中均包含多个工程需要构建,而且这些工程可能集中触发且需要并发进行构建。由此,当Jenkins用于项目构建时,就需要部署几十、甚至上百台从服务器。如果从服务器资源充足,可以同时构建这些工程,而且构建时间最长的那个工程的耗时就是整个项目构建的耗时。但是,从服务器不可能无限部署,否则会造成资源浪费,利用率低等问题。
为了保证项目构建能快速、准时地交付,通常希望采用一定的调度策略以合理利用这些有限的从服务器资源。然而,传统的资源调度策略通常都是静态的,也就是说,在构建任务启动后,其对应的优先级、从服务器类型等也就基本确定了,各工程构建的先后次序也固定了。如果有更高优先级的任务插队、或原排队任务出列、或其他影响构建时间延长的情况出现,就无法保证能快速、准时地完成构建任务。
发明内容
本发明实施例解决的技术问题是如何合理利用用以构建项目的从服务器资源,以保证项目构建能够快速、准时地交付。
为解决上述技术问题,本发明实施例提供一种调度任务及训练神经网络模型的方法、装置、终端和介质。
本发明实施例提供的一种调度任务的方法,包括:S110,判断主任务中的待构建子任务的队列是否变化,若是,则执行以下步骤,其中,变化包括待构建子任务中有子任务入列和/或有子任务出列;S120,基于耗时预测神经网络模型获得主任务中的各个正在构建子任务和各个待构建子任务的构建剩余耗时,并取其中最大者作为主任务的构建剩余耗时;S130,判断主任务的构建剩余耗时是否满足耗时要求,若否,则调整主任务中的待构建子任务的排队顺序。
可选地,基于耗时预测神经网络模型获得主任务中的各个正在构建子任务的构建剩余耗时包括:通过耗时预测神经网络模型分别预测主任务中的各个正在构建子任务的构建预测耗时;获取主任务中的各个正在构建子任务的已构建耗时;分别取主任务中的各个正在构建子任务的构建预测耗时与各自已构建耗时的差值作为主任务中的各个正在构建子任务的构建剩余耗时。
可选地,基于耗时预测神经网络模型获得主任务中的各个待构建子任务的构建剩余耗时包括:通过耗时预测神经网络模型分别预测主任务中的各个待构建子任务的构建预测耗时;获取适于构建主任务中的各个待构建子任务的从服务器中的各个正在构建子任务的任务释放耗时;分别取主任务中的各个待构建子任务的构建预测耗时与相应的任务释放耗时的和作为主任务中的各个待构建子任务的构建剩余耗时。
可选地,步骤S130包括:判断主任务的构建剩余耗时是否小于或等于主任务的构建可用耗时,若否,则判断主任务中的每一个待构建子任务的排队级别是否达到最高级别,如果没有达到最高级别,则提高主任务中相应的待构建子任务的排队级别,并返回步骤S120;其中,主任务的可用耗时为主任务的期望完成时间与当前时间之间的差值。
可选地,如果达到最高级别,则中止比该主任务的排队级别低的主任务中的正在构建子任务。
可选地,提高相应的待构建子任务的排队级别包括:提高没有达到最高级别的待构建子任务中构建剩余耗时最大的待构建子任务的排队级别;和/或提高没有达到最高级别的待构建子任务中构建剩余耗时大于主任务的构建可用耗时的待构建子任务的排队级别;和/或提高所有没有达到最高级别的待构建子任务的排队级别。
本发明实施例还提供一种调度任务的装置,包括:判断模块,其适于判断主任务中的待构建子任务的队列是否变化、以及主任务的构建剩余耗时是否满足耗时要求,其中,变化包括待构建子任务中有子任务入列和/或有子任务出列;计算模块,其适于在队列有变化时基于耗时预测神经网络模型获得主任务中的各个正在构建子任务和各个待构建子任务的构建剩余耗时,并取其中最大者作为主任务的构建剩余耗时;调整模块,其适于获取主任务的耗时要求,并在主任务的构建剩余耗时不满足耗时要求时调整主任务中的待构建子任务的排队顺序。
可选地,计算模块包括:预测单元,其适于通过耗时预测神经网络模型分别预测主任务中的各个正在构建子任务、以及各个待构建子任务的构建预测耗时;获取单元,其适于获取主任务中的各个正在构建子任务的已构建耗时、以及适于构建主任务中的各个待构建子任务的从服务器中的各个正在构建子任务的任务释放耗时;计算单元,其适于分别取主任务中的各个正在构建子任务的构建预测耗时与各自已构建耗时的差值作为主任务中的各个正在构建子任务的构建剩余耗时、分别取主任务中的各个待构建子任务的构建预测耗时与相应的任务释放耗时的和作为主任务中的各个待构建子任务的构建剩余耗时、以及取主任务的各个正在构建子任务和各个待构建子任务中构建剩余耗时最大者的构建剩余耗时作为主任务的构建剩余耗时。
可选地,判断模块包括:第一判断单元,其适于获取主任务中的待构建子任务的队列,并判断队列是否变化,其中,所述变化包括所述待构建子任务中有子任务入列和/或有子任务出列;第二判断单元,其适于判断主任务的构建剩余耗时是否小于或等于主任务的构建可用耗时,其中,主任务的可用耗时为主任务的期望完成时间与当前时间之间的差值;第三判断单元,其适于在主任务的构建剩余耗时小于或等于主任务的构建可用耗时判断主任务中的每一个待构建子任务的排队级别是否达到最高级别。
可选地,调整模块适于在主任务中有待构建子任务的排队级别没有达到最高级别时提高相应的待构建子任务的排队级别。
可选地,调整模块适于在主任务中每一个待构建子任务的排队级别均达到最高级别时中止比该主任务的排队级别低的主任务中的正在构建子任务。
本发明实施例还提供一种调度任务的终端,包括:主服务器,用以向从服务器分配主任务中的待构建子任务;从服务器,用以接收主服务器分配的待构建子任务并对其执行构建;其中,主服务器包括第一存储器和第一处理器,第一存储器上存储有可在第一处理器上运行的第一计算机指令,第一处理器运行第一计算机指令时执行本发明实施例提供的调度任务的方法的步骤。
本发明实施例还提供一种第一存储介质,其上存储有第一计算机指令,第一计算机指令运行时执行本发明实施例提供的调度任务的方法的步骤。
本发明实施例还提供一种训练耗时预测神经网络模型的方法,包括:S410,获取各个主任务中的每一个子任务的配置参数以及用以构建相应的子任务的从服务器的性能参数,其中,配置参数和性能参数均包括与相应的子任务的构建耗时相关的特征向量;S420,基于配置参数和性能参数构建训练样本集;S430,利用训练样本集,以相应的子任务的构建耗时作为目标,对预置的神经网络进行训练,并得到耗时预测神经网络模型。
可选地,特征向量包括包含于配置参数中的各个子任务中需要构建的文件的文件名称。
可选地,特征向量包括包含于配置参数中的各个子任务的子任务名。
可选地,特征向量包括包含于配置参数中并与相应的子任务所对应的主任务的主任务名。
可选地,特征向量包括包含于性能参数中的构建相应的子任务的从服务器的类型及其正在构建子任务时的并行进程数。
可选地,预置的神经网络包括基于注意力机制的长短期记忆人工神经网络。
本发明实施例还提供一种训练耗时预测神经网络模型的装置,包括:获取模块,其适于获取各个主任务中的每一个子任务的配置参数、用以构建相应的子任务的从服务器的性能参数以及预置的神经网络,其中,配置参数和性能参数均包括与相应的子任务的构建耗时相关的特征向量;构建模块,其适于基于配置参数和性能参数构建训练样本集;训练模块,其适于利用训练样本集,以相应的子任务的构建耗时作为目标,对预置的神经网络进行训练,并得到耗时预测神经网络模型。
本发明实施例还提供一种训练耗时预测神经网络模型的终端,包括第二存储器和第二处理器,第二存储器上存储有可在第二处理器上运行的第二计算机指令,第二处理器运行第二计算机指令时执行本发明实施例提供的训练耗时预测神经网络模型的方法的步骤。
本发明实施例还提供一种第二存储介质,其上存储有第二计算机指令,第二计算机指令运行时执行本发明实施例提供的训练耗时预测神经网络模型的方法的步骤。
与现有技术相比,本发明实施例的技术方案具有有益效果。例如,在从服务器资源有限的情况下,可以动态调整每一个主任务中的待构建子任务的排队顺序,以合理利用有限的从服务器资源,并保证各个主任务快速、准时地交付。
附图说明
图1是本发明实施例中调度任务的方法的流程示意图;
图2是本发明实施例中调度任务的装置的原理示意图;
图3是本发明实施例中调度任务的终端的原理示意图;
图4是本发明实施例中训练耗时预测神经网络模型的方法的流程示意图;
图5是本发明实施例中训练耗时预测神经网络模型的装置的原理示意图;
图6是本发明实施例中训练耗时预测神经网络模型的终端的原理示意图。
具体实施方式
为使本发明实施例的目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例进行详细说明。
图1是本发明实施例中调度任务的方法的流程示意图。
如图1所示,本发明实施例提供的调度任务的方法100可以包括:
S110,判断主任务中的待构建子任务的队列是否变化,若是,则执行以下步骤;
S120,基于耗时预测神经网络模型获得主任务中的各个正在构建子任务和各个待构建子任务的构建剩余耗时,并取其中最大者作为主任务的构建剩余耗时;
S130,判断主任务的构建剩余耗时是否满足耗时要求,若否,则执行步骤S140;
S140,调整主任务中的待构建子任务的排队顺序。
在本发明实施例中,进行项目构建时,每个项目的构建任务均可以称为一个主任务,每个主任务中均包括多个需要构建的工程,每个需要构建的工程均可以称为一个子任务。
在具体实施中,可以配置一台主服务器和多台从服务器,其中,主服务器用以向各台从服务器分配子任务,从服务器用以接收主服务器分配的子任务并对其进行构建。从服务器的类型可以包括物理服务器和虚拟服务器。其中,物理服务器对子任务的构建性能优于虚拟服务器。例如,对于同一子任务,使用物理服务器进行构建所花费的耗时可能要小于使用虚拟服务器构建所花费的耗时,在同时具有空闲的物理服务器和虚拟服务器时,可以优先使用物理服务器对子任务进行构建。
在本发明实施例中,可以同时触发多个主任务的构建,且多个主任务中的各个子任务可以并发进行构建。但是,由于从服务器资源不能无限配置,因此,每一台从服务器在进行项目构建时可以并发运行多个线程以同时对多个子任务进行构建。
在对同时触发的多个主任务进行构建之前,可以先将各个主任务及其子任务按照一定的级别进行排队,并使得每一个子任务分别按照其排队级别进行构建。
具体而言,可以预先设定主任务和子任务的排队级别。例如,可以将主任务的排队级别设定为VIP级别和非VIP级别,而将子任务的排队级别从高到低依次设定为一级、二级、三级、四级、五级、六级、七级、八级、九级、十级,级别较高的子任务较先开始进行构建。
在各个主任务构建之前,可以根据每一个主任务及其子任务的具体构建需求确定该主任务及其子任务的排队级别。例如,某一主任务相对于其他主任务来说比较重要,则该主任务可以在进行构建之前被确定为VIP级别,被确定为VIP级别的主任务可以优先使用物理服务器进行构建。又例如,某一主任务包括多个子任务,且每一个子任务的期望完成的时间均不同,则每一个子任务可以分别根据其期望完成时间确定排队级别。
在具体实施中,各个主任务中的每一个子任务可以根据其自身的排队级别进行构建,即,多个主任务同时构建时,各个主任务的子任务可以并发构建,而无需等待级别较高的主任务中所有子任务构建完成后再进行其他主任务中的子任务的构建。
在步骤S110的具体实施中,主任务的构建已经触发,且适于构建该主任务中的各个子任务的从服务器的资源有限,该主任务包括一个或多个正在构建子任务以及一个或多个待构建子任务。其中,正在构建子任务表示已通过从服务器开始进行构建的子任务,待构建子任务表示尚未通过从服务器开始构建且正在排队等待构建的子任务。
在本发明实施例中,多个可以表示大于或等于二个。
在步骤S110的具体实施中,主任务中的待构建子任务的队列的变化可以包括该主任务中的待构建子任务中有子任务入列和/或有子任务出列。其中,有子任务入列加入表示该主任务中有新的子任务加入并在排队等待构建,有子任务出列表示该主任务中的待构建子任务中有子任务已被分配至相应的从服务器开始进行构建或该主任务中的待构建子任务中有子任务的构建任务被取消。
具体而言,新的子任务既可以是不同于该主任务中原有子任务的、新增加的子任务,也可以是该主任务中原有的、由于构建被中止而需要重新加入构建的子任务。其中,构建被中止可以是由从服务器的运行故障、或其他排队级别较高的主任务的优先构建等原因而触发的。
在步骤S120的具体实施中,可以基于耗时预测神经网络模型获得该主任务中的各个正在构建子任务和各个待构建子任务的构建剩余耗时,并取其中最大者作为该主任务的构建剩余耗时。
在本发明实施例中,该主任务中的各个子任务可以并发进行构建。由此,该主任务的构建剩余耗时就由其各个子任务中构建剩余耗时最大的子任务决定,即,主任务的构建剩余耗时取其各个正在构建子任务和各个待构建子任务中构建剩余耗时最大的子任务的构建剩余耗时。
在具体实施中,基于耗时预测神经网络模型获得主任务中的各个正在构建子任务的构建剩余耗时可以包括:
S121,通过耗时预测神经网络模型分别预测主任务中的各个正在构建子任务的构建预测耗时;
S122,获取该主任务中的各个正在构建子任务的已构建耗时;
S123,分别取该主任务中的各个正在构建子任务的构建预测耗时与各自已构建耗时的差值作为该主任务中的各个正在构建子任务的构建剩余耗时。
在步骤S121的具体实施中,该主任务中的正在构建子任务可以有一个或多个,每一个正在构建子任务均可以通过耗时预测神经网络模型预测出其进行构建所需要花费的总耗时,即构建预测耗时。其中,通过耗时预测神经网络模型预测正在构建子任务的构建预测耗时的实现方式将在本文的后续部分进行说明。
在步骤S122的具体实施中,该主任务中的各个正在构建子任务的已构建耗时可以分别通过当前时间与相应的正在构建子任务的开始构建时间之间的差值获取。
在步骤S123的具体实施中,可以分别取该主任务中的各个正在构建子任务的构建预测耗时(即,每一个正在构建子任务进行构建时所需要花费的总耗时)与各自已构建耗时的差值作为该主任务中的各个正在构建子任务的构建剩余耗时。
在本发明实施例中,每一个正在构建子任务均具有相应的构建预测耗时、已构建耗时和构建剩余耗时。
在具体实施中,基于耗时预测神经网络模型获得主任务中的各个待构建子任务的构建剩余耗时可以包括:
S124,通过耗时预测神经网络模型分别预测主任务中的各个待构建子任务的构建预测耗时;
S125,获取适于构建该主任务中的各个待构建子任务的从服务器中的各个正在构建子任务的任务释放耗时;
S126,分别取该主任务中的各个待构建子任务的构建预测耗时与相应的任务释放耗时的和作为该主任务中的各个待构建子任务的构建剩余耗时。
在步骤S124的具体实施中,主任务中的待构建子任务可以有一个或多个,每一个待构建子任务均可以通过耗时预测神经网络模型预测出其进行构建所需要花费的总耗时,即构建预测耗时。其中,通过耗时预测神经网络模型预测待构建子任务的构建预测耗时的实现方式将在本文的后续部分进行说明。
在步骤S125的具体实施中,从服务器中的各个正在构建子任务,既可以包括该主任务中的子任务,也可以包括其他主任务中的子任务,从服务器中的各个正在构建子任务的任务释放耗时分别是相应的正在构建子任务的剩余构建耗时。
在步骤S126的具体实施中,该主任务中的每一个待构建子任务的构建剩余耗时分别为自当前时间开始至相应的待构建子任务完成构建时止的耗时。
在本发明实施例中,主任务中的待构建子任务需要等待适于构建这些子任务的从服务器释放其正在构建子任务之后才能进行构建(由于,从服务器资源有限,需要等待一个正在构建子任务完成构建后才能进行下一个子任务的构建)。由此,主任务中的各个待构建子任务的构建剩余耗时可以分别取该主任务中的各个待构建子任务的构建预测耗时(即,每一个待构建子任务进行构建时所需要花费的总耗时)与相应的任务释放耗时的和作为各个待构建子任务的构建剩余耗时。
例如,该主任务的待构建子任务的队列中包括位于该队列第一个的第一待构建子任务,适于构建该第一待构建子任务的从服务器的正在构建子任务中包括构建剩余耗时最短的第一正在构建子任务,那么,该从服务器适于在第一正在构建子任务完成构建后开始对第一待构建子任务进行构建。由此,第一待构建子任务的剩余构建时间为该第一正在构建子任务的剩余构建时间与第一待构建子任务的构建预测耗时(即,该第一待构建子任务进行构建时所需要花费的总耗时)的和。
在本发明实施例中,每一个待构建子任务均具有相应的构建预测耗时、任务释放耗时和构建剩余耗时。
在步骤S130的具体实施中,判断主任务的构建剩余耗时是否满足耗时要求可以包括:
S131,判断主任务的构建剩余耗时是否小于或等于该主任务的构建可用耗时。
在步骤S131的具体实施中,主任务的构建可用耗时可以为该主任务的期望完成时间与当前时间之间的差值。
在步骤S140的具体实施中,调整该主任务中的待构建子任务的排队顺序可以包括:
S141,判断该主任务中每一个待构建子任务的排队级别是否达到最高级别,如果没有达到最高级别,则提高该主任务中相应的待构建子任务的排队级别,并返回步骤S120。
在步骤S141的具体实施中,如果该主任务中有待构建子任务的排队级别没有达到最高级别,则提高相应的待构建子任务的排队级别。当该主任务中有待构建子任务的排队级别提高时,该主任务中的待构建子任务的队列再次发生变化,此时可以返回执行步骤S120。
在具体实施中,提高相应的待构建子任务的排队级别可以包括:提高没有达到最高级别的待构建子任务中构建剩余耗时最大的待构建子任务的排队级别;和/或提高没有达到最高级别的待构建子任务中构建剩余耗时大于主任务的构建可用耗时的待构建子任务的排队级别;和/或提高所有没有达到最高级别的待构建子任务的排队级别。例如,可以将相应的待构建子任务的排队级别提高一级或多级。
在步骤S141的具体实施中,当主任务中每一个待构建子任务的排队级别均达到最高级别时,还可以包括:
S142,中止比该主任务的级别低的主任务中的正在构建子任务。
在步骤S142的具体实施中,虽然,主任务中每一个待构建子任务的排队级别均已达到最高级别,但是,该主任务的构建剩余耗时不满足耗时要求,此时,可以中止比该主任务的级别低的其他主任务中的正在构建子任务以释放从服务器资源,从而使该主任务中的待构建子任务中的一个或多个可以开始执行构建。例如,当该主任务为VIP级别时,可以中止非VIP级别的主任务中的正在构建子任务。
在具体实施中,被中止的其他主任务中的正在构建子任务可以重新加入相应的主任务的待构建子任务的队列并等待排队构建。
本发明实施例还提供一种调度任务的装置。
图2是本发明实施例中调度任务的装置的原理示意图。
如图2所示,本发明实施例提供的调度任务的装置200可以包括判断模块210、与判断模块210连接的计算模块220、以及与计算模块220连接的调整模块230。
具体而言,判断模块210适于判断主任务中的待构建子任务的队列是否变化、以及主任务的构建剩余耗时是否满足耗时要求,其中,变化包括待构建子任务中有子任务入列和/或有子任务出列。
在具体实施中,判断模块210可以包括第一判断单元、第二判断单元、以及与第二判断单元连接的第三判断单元。具体而言,第一判断单元适于从主服务器获取主任务中的待构建子任务的队列,并判断该队列是否变化。第二判断单元适于判断主任务的构建剩余耗时是否小于或等于主任务的构建可用耗时,其中,主任务的可用耗时为主任务的期望完成时间与当前时间之间的差值。第三判断单元适于在主任务的构建剩余耗时小于或等于主任务的构建可用耗时判断主任务中每一个待构建子任务的排队级别是否达到最高级别。
具体而言,计算模块220适于在主任务中的待构建子任务的队列有变化时基于耗时预测神经网络模型获得主任务中的各个正在构建子任务和各个待构建子任务的构建剩余耗时,并取其中最大者作为主任务的构建剩余耗时。
在具体实施中,计算模块220可以包括预测单元、获取单元、以及分别与预测单元和获取单元连接的计算单元。具体而言,预测单元适于通过耗时预测神经网络模型分别预测主任务中的各个正在构建子任务、以及各个待构建子任务的构建预测耗时。获取单元适于获取主任务中的各个正在构建子任务的已构建耗时、以及适于构建主任务中的各个待构建子任务的从服务器中的各个正在构建子任务的任务释放耗时。计算单元适于分别取主任务中的各个正在构建子任务的构建预测耗时与各自已构建耗时的差值作为主任务中的各个正在构建子任务的构建剩余耗时、分别取主任务中的各个待构建子任务的构建预测耗时与相应的任务释放耗时的和作为主任务中的各个待构建子任务的构建剩余耗时、以及取主任务的各个正在构建子任务和各个待构建子任务中构建剩余耗时最大者的构建剩余耗时作为主任务的构建剩余耗时。
具体而言,调整模块230适于在主任务的构建剩余耗时不满足耗时要求时调整主任务中的待构建子任务的排队顺序。
在具体实施中,调整模块230适于在主任务中有待构建子任务的排队级别没有达到最高级别时提高相应的待构建子任务的排队顺序至最高级别。具体而言,调整模块230适于提高没有达到最高级别的待构建子任务中构建剩余耗时最大的待构建子任务的排队级别;和/或提高没有达到最高级别的待构建子任务中构建剩余耗时大于主任务的构建可用耗时的待构建子任务的排队级别;和/或提高所有没有达到最高级别的待构建子任务的排队级别。例如,调整模块230可以将相应的待构建子任务的排队级别提高一级或多级。
在具体实施中,调整模块230还适于在主任务中每一个待构建子任务的排队级别均达到最高级别时中止比该主任务的排队级别低的其他主任务中的正在构建子任务。
在具体实施中,该调度任务的装置200还可以包括分别与判断模块210、计算模块220连接的时钟,其适于采集主任务构建过程中的当前时间。
本发明实施例还提供一种调度任务的终端。
图3是本发明实施例中调度任务的终端的原理示意图。
如图3所示,本发明实施例提供的调度任务的终端300可以包括主服务器310、以及与主服务器310连接的从服务器器320。
具体而言,主服务器310用以向从服务器320分配主任务中的待构建子任务。从服务器320。用以接收主服务器310分配的待构建子任务并对其执行构建。
在具体实施中,主服务器310可以包括第一存储器和第一处理器。其中,第一存储器上存储有可在第一处理器上运行的第一计算机指令,第一处理器运行第一计算机指令时执行本发明实施例提供的调度任务的方法100的步骤。
在具体实施中,从服务器320设置有多个,以对主任务中的多个子任务进行并发构建。但是,从服务器320不能无限设置,通常从服务器320的数量小于所有需要构建的子任务的数量。如此,可以节省资源,降低运行成本。
在具体实施中,该调度任务的终端300还可以包括时钟,其适于采集主任务构建过程中的当前时间。
本发明实施例还提供一种第一存储介质,其上存储有第一计算机指令,第一计算机指令运行时执行本发明实施例提供的调度任务的方法的步骤。
本发明实施例还提供一种训练耗时预测神经网络模型的方法。
图4是本发明实施例中训练耗时预测神经网络模型的方法的流程示意图。
如图4所示,本发明实施例提供的训练耗时预测神经网络模型的方法400可以包括:
S410,获取各个主任务中的每一个子任务的配置参数以及用以构建相应的子任务的从服务器的性能参数,其中,配置参数和性能参数均包括与相应的子任务的构建耗时相关的特征向量;
S420,基于配置参数和性能参数构建训练样本集;
S430,利用训练样本集,以相应的子任务的构建耗时作为目标,对预置的神经网络进行训练,并得到耗时预测神经网络模型。
在本发明实施例中,进行项目构建时,每个项目的构建任务均可以称为一个主任务,每个主任务中均包括多个需要构建的工程,每个需要构建的工程均可以称为一个子任务。
在具体实施中,可以将每个子任务划分为多个需要构建的文件。例如,在安卓平台下,一个子任务可以包括idh、rls_image_idh、ota、fullcode_pac等文件,如果这些文件的构建需求均为“TRUE”,则表示这些文件均需要进行构建。每个文件的构建均需要花费一定的时间。具体而言,每个文件的构建时间至少可以与该文件的文件名称相关。每一个文件的文件名称决定了其类型、内容及数据等信息。不同文件名称的文件,其构建时间是不同的,不同主任务中的同一文件名称的文件,其构建时间也是不同的,这与文件的代码编译时间、或打包到该文件中的数据有关。
在步骤S410的具体实施中,首先,可以构建包含有主任务的历史构建数据的数据库,然后,从该数据库获取各个主任务中的每一个子任务的配置参数以及用以构建相应的子任务的从服务器的性能参数。
其中,主任务的历史构建数据可以包括主任务中的每一个子任务的历史配置参数以及用以构建相应的子任务的从服务器的历史性能参数,且历史配置参数和历史性能参数均包括与相应的子任务的构建耗时相关的特征向量。
在具体实施中,各个主任务中的每一个子任务的配置参数可以包括该子任务中需要构建的各个文件的文件名称。
在具体实施中,各个主任务中的每一个子任务的配置参数还可以包括该子任务的子任务名。每一个子任务的子任务名至少与其包括的各个需要构建的文件的文件名称相关。
在具体实施中,各个主任务中的每一个子任务的配置参数还可以包括与该子任务对应的主任务的主任务名。每一个主任务的主任务名至少与其包括的各个子任务的子任务名相关。
在本发明实施例中,主任务中的各个子任务中的文件只要构建,就会影响该主任务的构建总耗时以及构建剩余耗时。
在步骤S410的具体实施中,用以构建相应的子任务的从服务器的性能参数可以包括从服务器的类型及其正在构建该子任务时的并行进程数。
具体而言,从服务器的类型可以包括物理服务器和虚拟服务器。其中,物理服务器对子任务的构建性能优于虚拟服务器。例如,对于同一子任务,使用物理服务器构建所花费的耗时要小于使用虚拟服务器构建所花费的耗时。在同时具有空闲的物理服务器和虚拟服务器时,可以优先使用物理服务器对子任务进行构建。
在使用从服务器对某一子任务进行构建时,该从服务器中所有正在构建子任务的数量,即,该从服务器中并行进程数,对该子任务的构建耗时也有影响。例如,在使用从服务器对某一子任务进行构建时,该从服务器中的并行进程数越多,其构建该子任务的耗时就会越长。
在本发明实施例中,各个主任务中的每一个子任务的配置参数以及用以构建相应的子任务的从服务器的性能参数均包括有与相应的子任务的构建耗时相关的特征向量。
具体而言,特征向量可以包括包含于配置参数中的各个子任务中需要构建的文件的文件名称、以及包含于性能参数中的构建相应的子任务的从服务器的类型及其正在构建子任务时的并行进程数。
进一步地,特征向量还可以包括包含于配置参数中的各个子任务的子任务名。
更进一步地,特征向量还可以包括包含于配置参数中并与相应的子任务所对应的主任务的主任务名。
在步骤S420的具体实施中,可以基于包含有与相应的子任务的构建耗时相关的特征向量的配置参数和性能参数构建训练样本集,以用于神经网络的训练。
在步骤S430的具体实施中,可以利用上述训练样本集,以相应的子任务的构建耗时(即,构建整个子任务所需要的耗时)作为目标,对预置的神经网络进行训练,并得到耗时预测神经网络模型。
在具体实施中,预置的神经网络可以包括基于注意力机制的长短期记忆人工神经网络(Long Short-Term Memory,LSTM)。在对长短期记忆人工神经网络进行训练时,采用本领域常规技术手段进行。
在本发明实施例中,当通过耗时预测神经网络模型预测正在构建子任务或待构建子任务的构建预测耗时,可以通过如下步骤实现:
获取该正在构建子任务或待构建子任务的配置参数以及用以构建相应的子任务的从服务器的性能参数;
从上述配置参数和性能参数中提取与该正在构建子任务或待构建子任务的构建耗时相关的特征向量;
将相关的特征向量输入耗时预测神经网络模型中,并得到该正在构建子任务或待构建子任务的构建预测耗时。
本发明实施例还提供一种训练耗时预测神经网络模型的装置。
图5是本发明实施例中训练耗时预测神经网络模型的装置的原理示意图。
如图5所示,本发明实施例提供的训练耗时预测神经网络模型的装置500可以包括获取模块510、与获取模块510连接的构建模块520、以及与构建模块520连接的训练模块530。
具体而言,获取模块510适于获取各个主任务中的每一个子任务的配置参数、用以构建相应的子任务的从服务器的性能参数以及预置的神经网络,其中,配置参数和性能参数均包括与相应的子任务的构建耗时相关的特征向量。构建模块520适于基于配置参数和性能参数构建训练样本集。训练模块530适于获取预置的神经网络,并利用训练样本集,以相应的子任务的构建耗时作为目标,对预置的神经网络进行训练,以得到耗时预测神经网络模型。
本发明实施例还提供一种训练耗时预测神经网络模型的终端。
图6是本发明实施例中训练耗时预测神经网络模型的终端的原理示意图。
如图6所示,本发明实施例提供的训练耗时预测神经网络模型的终端600可以包括第二存储器610、以及与第二存储器610连接的第二处理器620。其中,第二存储器610上存储有可在第二处理器620上运行的第二计算机指令,第二处理器620运行第二计算机指令时执行本发明实施例提供的训练耗时预测神经网络模型的方法的步骤。
本发明实施例还提供一种第二存储介质,其上存储有第二计算机指令,第二计算机指令运行时执行本发明实施例提供的训练耗时预测神经网络模型的方法的步骤。
采用本发明实施例提供的上述技术方案,可以在从服务器资源有限的情况下,动态调整每一个主任务中的待构建子任务的排队顺序,以合理利用有限的从服务器资源,并保证各个主任务快速、准时地交付。
在具体实施中,本发明实施例提供的技术方案,不但可以应用于Jenkins构建的项目,而且也可以应用于其他构建资源有限的构建项目。
尽管上文已经描述了具体实施方案,但这些实施方案并非要限制本发明公开的范围,即使仅相对于特定特征描述单个实施方案的情况下也是如此。本发明公开中提供的特征示例意在进行例示,而非限制,除非做出不同表述。在具体实施中,可根据实际需求,在技术上可行的情况下,将一项或者多项从属权利要求的技术特征与独立权利要求的技术特征进行组合,并可通过任何适当的方式而不是仅通过权利要求书中所列举的特定组合来组合来自相应独立权利要求的技术特征。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (9)

1.一种训练耗时预测神经网络模型的方法(400),其特征在于,包括:
S410,获取各个主任务中的每一个子任务的配置参数以及用以构建相应的子任务的从服务器的性能参数,其中,所述配置参数和所述性能参数均包括与相应的子任务的构建耗时相关的特征向量;
S420,基于所述配置参数和所述性能参数构建训练样本集;
S430,利用所述训练样本集,以相应的子任务的构建耗时作为目标,对预置的神经网络进行训练,并得到耗时预测神经网络模型。
2.根据权利要求1所述的方法(400),其特征在于,所述特征向量包括包含于所述配置参数中的各个子任务中需要构建的文件的文件名称。
3.根据权利要求2所述的方法(400),其特征在于,所述特征向量包括包含于所述配置参数中的各个子任务的子任务名。
4.根据权利要求2或3所述的方法(400),其特征在于,所述特征向量包括包含于所述配置参数中并与相应的子任务所对应的主任务的主任务名。
5.根据权利要求1所述的方法(400),其特征在于,所述特征向量包括包含于所述性能参数中的构建相应的子任务的从服务器的类型及其正在构建所述子任务时的并行进程数。
6.根据权利要求1所述的方法(400),其特征在于,所述预置的神经网络包括基于注意力机制的长短期记忆人工神经网络。
7.一种训练耗时预测神经网络模型的装置(500),其特征在于,包括:
获取模块(510),其适于获取各个主任务中的每一个子任务的配置参数、用以构建相应的子任务的从服务器的性能参数以及预置的神经网络,其中,所述配置参数和所述性能参数均包括与相应的子任务的构建耗时相关的特征向量;
构建模块(520),其适于基于所述配置参数和所述性能参数构建训练样本集;
训练模块(530),其适于利用所述训练样本集,以相应的子任务的构建耗时作为目标,对所述预置的神经网络进行训练,并得到耗时预测神经网络模型。
8.一种训练耗时预测神经网络模型的终端(600),其特征在于,包括第二存储器(610)和第二处理器(620),所述第二存储器(610)上存储有可在所述第二处理器(620)上运行的第二计算机指令,所述第二处理器(620)运行所述第二计算机指令时执行权利要求1至6中任一项所述的方法的步骤。
9.一种第二存储介质,其上存储有第二计算机指令,其特征在于,所述第二计算机指令被第二处理器执行,以实现权利要求1至6中任一项所述的方法的步骤。
CN202210669734.3A 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质 Pending CN115061794A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210669734.3A CN115061794A (zh) 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210669734.3A CN115061794A (zh) 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质
CN202011050166.6A CN112130979B (zh) 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202011050166.6A Division CN112130979B (zh) 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质

Publications (1)

Publication Number Publication Date
CN115061794A true CN115061794A (zh) 2022-09-16

Family

ID=73844730

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210669734.3A Pending CN115061794A (zh) 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质
CN202011050166.6A Active CN112130979B (zh) 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202011050166.6A Active CN112130979B (zh) 2020-09-29 2020-09-29 调度任务及训练神经网络模型的方法、装置、终端和介质

Country Status (1)

Country Link
CN (2) CN115061794A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102492399B1 (ko) * 2016-07-27 2023-01-26 엘에스일렉트릭(주) 감시제어장치
CN109117260B (zh) * 2018-08-30 2021-01-01 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、设备和介质
CN109784647B (zh) * 2018-12-14 2023-04-18 兰州空间技术物理研究所 一种用于空间站的主动电位控制系统的任务调度方法
CN111338791A (zh) * 2020-02-12 2020-06-26 平安科技(深圳)有限公司 集群队列资源的调度方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112130979B (zh) 2022-08-09
CN112130979A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN109582433B (zh) 一种资源调度方法、装置、云计算系统及存储介质
CN107885595B (zh) 一种资源分配方法、相关设备及系统
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN111026553B (zh) 离线混部作业的资源调度方法及服务器系统
WO2016054162A1 (en) Job scheduling using expected server performance information
US20240036937A1 (en) Workload placement for virtual gpu enabled systems
US9652294B2 (en) Cross-platform workload processing
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN114371926B (zh) 一种精细化资源分配方法、装置、电子设备及介质
CN115237581A (zh) 一种面向异构算力的多策略智能调度方法和装置
CN111190691A (zh) 适用于虚拟机的自动迁移方法、系统、装置及存储介质
CN112486642B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
US20180039520A1 (en) Methods and Nodes for Scheduling Data Processing
WO2018235739A1 (ja) 情報処理システムおよびリソース割り当て方法
CN102184124B (zh) 任务调度方法及系统
CN113485833A (zh) 资源预测方法和装置
CN113535346B (zh) 线程数量调整的方法、装置、设备及计算机存储介质
CN109189581B (zh) 一种作业调度方法和装置
CN116302448B (zh) 任务调度方法和系统
CN112130979B (zh) 调度任务及训练神经网络模型的方法、装置、终端和介质
CN117331668A (zh) 一种作业调度方法、装置、设备及存储介质
US10877800B2 (en) Method, apparatus and computer-readable medium for application scheduling
US9626226B2 (en) Cross-platform workload processing
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
CN114697213A (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