CN116643886A - 任务调度方法、装置、电子设备和存储介质 - Google Patents
任务调度方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116643886A CN116643886A CN202310632499.7A CN202310632499A CN116643886A CN 116643886 A CN116643886 A CN 116643886A CN 202310632499 A CN202310632499 A CN 202310632499A CN 116643886 A CN116643886 A CN 116643886A
- Authority
- CN
- China
- Prior art keywords
- server
- task
- scheduled
- processor
- subtasks
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000015654 memory Effects 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Mathematical Physics (AREA)
- Power Sources (AREA)
Abstract
本申请提供了一种任务调度方法、装置、电子设备及存储介质。该方法包括:在确定用于处理待调度任务的服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,将待调度任务拆分为由不同处理器处理的多个子任务;确定服务器集群中存在服务器分别满足多个子任务的算力需求;将子任务调度至满足子任务的算力需求的服务器。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务调度方法、装置、电子设备及存储介质。
背景技术
随着人工智能和深度学习在生活中的广泛应用,数据中心接收到的数据处理任务数量巨大、种类繁多,例如人脸识别任务、图像分类任务、语音识别任务等,不同的数据处理任务对通用处理器的计算资源、图形处理器的计算资源、访存带宽资源、内存资源等的需求不同。在一种相关技术中,使用整机部署的方式来执行数据处理任务(即,执行数据处理任务所需的资源均来自同一台服务器),若该服务器上任一资源不满该数据处理任务的需求,那么该数据处理任务无法部署在该服务器上进行处理,从而严重制约了任务运行效率。
发明内容
本申请实施例提供一种任务调度方法、装置、电子设备及存储介质,以解决相关技术中存在的问题。
第一方面,本申请实施例提供了一种任务调度方法,包括:在确定用于处理待调度任务的服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,将所述待调度任务拆分为由不同处理器处理的多个子任务;确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求;将所述子任务调度至满足所述子任务的算力需求的服务器。
第二方面,本申请实施例提供了一种任务调度装置,包括:待调度任务拆分单元,配置来在确定用于处理待调度任务的服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,将所述待调度任务拆分为由不同处理器处理的多个子任务;服务器确定单元,配置来确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求;子任务调度单元,配置来将所述子任务调度至满足所述子任务的算力需求的服务器。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现上述任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
与现有技术相比,本申请具有如下优点:
依据本申请实施例,根据待调度任务所需的资源需求和服务器集群能够提供的资源,在一台服务器不能同时满足待调度任务所有的资源需求时,无需等待资源空闲或更换服务器,可以将该数据处理任务拆分为由不同处理器处理的多个子任务,并将这些子任务部署至不同的服务器中,使得不同的服务器中的处理器分别处理这些子任务,提高了服务器集群的资源利用效率和任务调度的效率。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请的一些实施方式,而不应将其视为是对本申请范围的限制。
图1是示出本申请一实施例的任务调度方案的示意图;
图2是示出本申请一实施例的任务调度方法的流程图;
图3是示出本申请一实施例的任务调度装置的结构框图;以及
图4是示出本申请一实施例的电子设备的框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。
为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。
在本申请之前的一项相关技术中,图形处理器资源可以被虚拟化为多个计算单元,并支持将多个pod调度到同一个图形处理器中,其中,pod是执行任务的容器,一个或多个任务在一个pod中运行。该调度方案具有试下局限性:首先,当pod中的任务同时需要图形处理器资源和通用处理器资源时,这两类资源只能从同一台服务器上获得。如果一台服务器上任一资源不满足任务需求,则该任务无法部署在该服务器上,只能等待该服务器资源空闲或选择另一台满足资源需求的服务器进行部署,严重制约了任务的运行效率。其次,该调度方案没有考虑任务拆分以及服务器间的互联情况,调度场景较简单,不能将拆分后的任务分别调度至不同的服务器中,任务调度效率较低。
有鉴于此,本申请实施例提供了一种任务调度方案,以全部或部分解决上述相关技术中存在的问题。为了更清楚地展示本申请实施例中提供的任务调度方案,以下结合图1对该任务调度方案进行说明。图1是示出本申请一实施例的任务调度方案的示意图。如图1所示,以处理一个任务需要的算力资源为通用处理器算力资源和图形处理器算力资源为例,任务A需要4线程通用处理器算力资源和60TFLOP/s(Tera Floating Point Operationsper second,每秒一兆次的浮点数运算)图形处理器算力资源,服务器1自身的空闲算力为4线程通用处理器算力和70TFLOP/s图形处理器算力,可以同时满足任务A的通用处理器算力需求和图形处理器需求,则可以将任务A调度至服务器S1进行处理。任务B需要12线程通用处理器算力资源,70TFLOP/s图形处理器算力资源,在服务器S1至S3中没有单个的服务器具备足够的计算资源去处理任务B。在该情况下,可以将计算资源从一台机器中解耦合,进行重组,并将任务B拆分为由通用处理器处理的部分B1和由图形处理器处理的部分B2。服务器S2具有16线程通用处理器算力,则可以由服务器S2的通用处理器处理B1;服务器S1具有70TFLOP/s图形处理器算力,则可以由服务器S1的图形处理器处理B2。任务C需要15线程通用处理器算力资源,90TFLOP/s图形处理器算力资源,在服务器S1至S3中没有单个的处理器具备足够的计算资源去处理任务C由图形处理器处理的部分C2。在该情况下,可以由多个服务器的图形处理器处理C2。服务器S1具有70TFLOP/s图形处理器算力,服务器S3具有20TFLOP/s图形处理器算力,则可以由服务器S1的图形处理器和服务器S3的图形处理器共同处理C2,由服务器S2的通用处理器处理C1。本申请实施例提供的任务调度方案根据待调度任务所需的资源需求和服务器集群能够提供的资源情况,通过将待调度任务拆分部署在不同的服务器上来进行任务处理,可以提高服务器集群的资源利用效率和任务调度效率。
本申请一实施例提供了一种任务调度方法200,该方法应用于电子设备,该电子设备可以是诸如服务器、计算机、手机、智能手表这样的电子设备。下文将参照图2对本申请的任务调度方法200进行说明。图2是示出本申请一实施例的任务调度方法200的流程图。如图2所示,所述任务调度方法200可以包括如下步骤S201至步骤S203。下面将结合具体实施例对步骤S201至步骤S203进行详细说明。
首先,进入步骤S201。在步骤S201,在确定用于处理待调度任务的服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,将所述待调度任务拆分为由不同处理器处理的多个子任务。
所述待调度任务可以是深度学习相关的任务,例如DNN(Deep Neural Network,深度神经网络)任务,也可以是其他数据处理任务,本申请对此不做限制。服务器集群中的服务器可以是物理服务器,也可以是虚拟服务器,虚拟服务器可以是通过虚拟化技术在物理服务器上构造的。待调度任务可以由服务器中不同的处理器进行处理,待调度任务中的不同部分可以由服务器中诸如通用处理器、图形处理器、数据处理器(DPU)、安全处理器(SPU)等这样的处理器进行处理。待调度任务的算力需求可以是对服务器中不同处理器的算力需求。例如,待调度任务A的对通用处理器的算力需求为4线程,对图形处理器的算力需求为70TFLOP/s。在确定服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,可以将所述待调度任务拆分为由不同处理器处理的多个子任务。
在一实施例中,所述待调度任务的算力需求根据所述待调度任务的延迟需求获得。
待调度任务的算力需求需要在满足所述待调度任务的延迟需求的前提下进行计算。待调度任务可以由用户提交,且用户可以要求该调度任务在特定的时间内返回运行结果。待调度任务的延迟需求是一段时间,即服务器集群需要在这段时间内返回任务处理结果。例如,待调度任务A的延时需求是10秒,则服务器集群需要在10秒内返回待调度任务A的处理结果。待调度任务的延迟需求越高,待调度任务的算力需求也就越高。例如,待调度任务A和待调度任务B的计算量是相同的,都是100TFLOP,待调度任务A延时需求是2秒,待调度任务B延时需求是5秒,则待调度任务A的算力需求50TFLOP/s,待调度任务B的算力需求是20TFLOP/s,待调度任务A的算力需求高于待调度任务B的算力需求。
在一实施例中,服务器集群中服务器的空闲算力随着时间变化而发生变化。例如,服务器S1在t时刻正在处理任务A,此时服务器S1空闲的通用处理器算力为4线程,空闲的图形处理器算力为20TFLOP/s。在t+1时刻,随着任务A的处理完成,服务器S1的部分算力资源得到释放,此时服务器S1空闲的通用处理器算力为6线程,空闲的图形处理器算力为30TFLOP/s。又例如,服务器S2在t时刻空闲的通用处理器算力为8线程,空闲的图形处理器算力为50TFLOP/s。在t+1时刻,任务B在服务器S2上进行处理,服务器S2的部分资源被任务B占用,此时服务器S2空闲的通用处理器算力为4线程,空闲的图形处理器算力20TFLOP/s。
在一实施例中,在获取服务器集群中每台服务器的空闲资源后,可以确定该服务器集群中是否存在服务器满足待调度任务的算力需求,其中,如果存在服务器满足待调度任务的算力需求,则将该待调度任务调度至该服务器上进行任务处理。
例如,任务A的通用处理器算力需求为5线程,图形处理器算力需求为20TFLOP/s,内存需求为5GB,存在服务器S1具有空闲的7线程通用处理器算力资源,35TFLOP/s图形处理器算力资源和10GB内存资源,则可以将任务A调度至服务器S1上,由服务器S1对任务A进行处理。
在一实施例中,所述将所述待调度任务拆分为由不同处理器处理的多个子任务,包括:将所述待调度任务拆分为由通用处理器处理的第一一级子任务和由图形处理器处理的第二一级子任务。
通用处理器具有强大的通用性,擅长处理各种不同的数据类型,并擅长逻辑控制、串行的运算等。图形处理器擅长大规模并发运算,例如图像处理、深度神经网络训练等。以待调度的任务是DNN任务为例,DNN任务可以分为两个阶段,第一个阶段是数据预处理阶段,第二个阶段是模型训练阶段。DNN任务的数据预处理阶段可以由通用处理器进行处理,DNN任务的模型训练阶段可以由图形处理器进行处理。因此,可以将待调度任务拆分为由通用处理器处理的第一一级子任务和由图形处理器处理的第二一级子任务,以便由不同的服务器对这些子任务进行处理,以提高任务调度的效率。
接下来进入步骤S202。在步骤S202,确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求。
在一实施例中,所述确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求,包括:获取所述服务器集群中每台服务器的通用处理器算力和图形处理器算力;基于所述每台服务器的通用处理器算力,确定存在第一服务器满足所述第一一级子任务的算力需求;根据所述服务器集群中非所述第一服务器的其他服务器中的图形处理器与所述第一服务器中的通用处理器连接方式,计算所述第二一级子任务的算力需求,并确定所述其他服务器中存在图形处理器算力满足所述第二一级子任务的算力需求的服务器。
确定服务器集群中存在服务器分别满足所述多个子任务的算力需求首先需要获取该服务器集群中每台服务器空闲的通用处理器算力和图形处理器算力。之后基于获得的每台服务器的通用处理器算力,可以确定存在第一服务器满足所述第一一级子任务的算力需求。
在一实施例中,所述基于所述每台服务器的通用处理器算力,确定存在第一服务器满足所述第一一级子任务的算力需求,包括:将所述服务器集群中的每台服务器按照通用处理器算力的大小进行排序,以获得服务器队列;对所述服务器队列进行遍历,确定所述服务器队列中通用处理器算力大于所述第一一级子任务的算力需求,且通用处理器算力最小的服务器作为所述第一服务器。
在获得每台服务器的通用处理器算力之后,可以按照通用处理器算力的大小对服务器进行排序(例如,升序排序),获得服务器队列C。然后对C进行遍历,确定C中通用处理器算力大于第一一级子任务,且通用处理器算力最小的服务器作为所述第一服务器。例如,第一一级子任务A1所需的通用处理器算力需求为8线程,服务器集群中有5台服务器S1至S5,这5台服务器的通用处理器算力依次为4线程,10线程,6线程,9线程,15线程,将这5台服务器按照通用处理器算力的大小进行升序排序,获得服务器队列C,即[S1,S3,S4,S2,S5]。通过对C进行遍历,可知S4、S2和S5这三台服务器可以满足A1的算力需求,进一步在满足A1的算力需求的这三台服务器中确定算力最小的服务器S4作为第一服务器,为A1进行任务处理。
依据本申请实施例,在满足任务需求的基础上选择算力最小的服务器进行任务处理,可以在分配资源时选择大小最合适的空闲资源进行任务处理,提高了资源的利用效率,避免了资源浪费。
确定存在第一服务器满足第一一级子任务的算力需求之后,可以根据服务器集群中其他服务器中的图形处理器与第一服务器中的通用处理器的连接方式,计算第二一级子任务的算力需求,并确定在其他服务器中存在图形处理器算力满足所述第二一级子任务的算力需求的服务器。第二一级子任务的算力需求是根据图形处理器和图形处理器的连接方式计算的。
在一实施例中,所述通用处理器和所述图形处理器的连接方式包括以下连接方式中的任意一项:PCIe(Peripheral Component Interconnect express,高速串行计算机扩展总线标准)、RDMA(Remote Direct Memory Access,远程直接内存访问)、以及以太网。
当通用处理器和图形处理器位于同一台服务器时,它们之间的连接方式为PCIe。当通用处理器和图形处理器分别位于不同的服务器时,它们之间的连接方式为RDMA或以太网。PCIe的传输速度大于RDMA的传输速度,RDMA的传输速度大于以太网的传输速度。
当第一一级子任务被第一服务器处理完成之后,第一服务器中的通用处理器需要将第一一级子任务的处理结果传输到处理第二一级子任务的服务器上的图形处理器中以便进行后续的处理,如果传输速度越快,该服务器有更多的时间处理第二一级子任务,则第二一级子任务的算力需求也就越低。例如,任务A的延迟需求为10秒,服务器S1处理第一一级子任务耗时3秒,服务器S1中的通用处理器与服务器S2中的图形处理器的连接方式为RDMA,服务器S1中的通用处理器将第一一级子任务的处理结果传输到服务器S2中的图形处理器耗时2秒,则服务器S2还有5秒的时间来处理第二一级子任务。例如,第二一级子任务的计算量为50TFLOP,第二一级子任务的延迟需求为5秒,则第二一级子任务的算力需求为10TFLOP/s。
接下来进入步骤S203。在步骤S203,将所述子任务调度至满足所述子任务的算力需求的服务器。
以任务A被拆分为由通用处理器处理的A1和由图形处理器处理的A2为例,例如,A1的算力需求为5线程,A2的算力需求为20TFLOP/s,服务器集群中的服务器S1的通用处理器算力资源为7线程,服务器S2的图形处理器算力资源为30TFLOP/s,则可以将A1调度至服务器S1进行处理,将A2调度至服务器S2进行处理。
在一实施例中,任务调度方法200还包括:在确定所述服务器集群中不存在服务器分别满足所述第一一级子任务的算力需求和所述第二一级子任务的算力需求的情况下,基于所述服务器集群中最大的图形处理器算力将所述第二一级子任务拆分为多个第二二级子任务;确定所述服务器集群中存在服务器分别满足所述第一一级子任务的算力需求和所述多个第二二级子任务的算力需求;将所述第一一级子任务调度至满足所述第一一级子任务的算力需求的服务器,并将所述第二二级子任务调度至满足所述第二二级子任务的算力需求的服务器。
第二一级子任务是由图形处理器处理的子任务,第二一级子任务通常是大规模并发运算任务。例如,第二一级子任务的算力需求是100TFLOP/s,服务器集群中的服务器S1具有最大的图形处理器算力70TFLOP/s,则可以基于S1的图形服务器算力与第二一级子任务的算力需求的比值(即,7/10),对第二一级子任务进行拆分。例如,第一一级子任务A1的算力需求是6线程,第二一级子任务A2的算力需求是100TFLOP/s,A2是对1000张图片进行处理,则可以将A2拆分为处理700张图片(即,算力需求为70TFLOP/s)的第二二级子任务A2-1和处理300张图片的第二二级子任务A2-2(即,算力需求为30TFLOP/s),服务器S1的图形处理器算力为70TFLOP/s,服务器S2的通用处理器算力为8线程,服务器S3的图形处理器算力为40TFLOP/s,则可以将A1调度至S2进行任务处理,将A2-1调度至S1进行任务处理以及将A2-2调度至服务器S3进行处理。
在一实施例中,可以基于第二一级子任务处理的数据量,对第二一级子任务进行平均拆分。例如,第二一级子任务A2是对1000张图片进行处理,可以将A2平均拆分为5个第二二级子任务,每个第二二级子任务处理200张图片。
依据本申请实施例,基于图形处理器大规模并发运算处理任务的特性,可以通过数据并行的方式将图形处理器处理的第二一级子任务拆分为多个第二二级子任务,由不同的图形处理器处理不同的第二二级子任务(即,运算不同的数据集),提高了图形处理器的资源利用效率。
在一实施例中,可以将第一一级子任务拆分为多个第一二级子任务,并将第一二级子任务调度至满足其资源需求的服务器。
在一实施例中,如果通过对待调度任务进行拆分后,服务器集群中仍然不存在服务器满足所有被拆分任务的算力需求,则该调度任务等待下一轮调度。一轮调度时间例如可以是1分钟,也可以是3分钟,本申请对此不做限制。在下一轮调度时,由于服务器集群中的算力资源进行了更新,该调度任务可能在下一轮调度时完成处理。
在一实施例中,任务调度方法200还包括:按照预定策略对所述待调度任务进行排序,所述预定策略包括以下策略中的任意一项:先提交先调度策略、最短时间优先策略、以及最小资源优先策略。
进行任务调度的电子设备可以对用户提交的待调度任务进行排序,以便根据排序的顺序对待调度任务进行调度和处理。在一实施例中,可以基于先提交先调度策略对待调度任务进行排序。例如,用户在t时刻提交了任务A,在t+1时刻提交了任务B,在t+2时刻提交了任务C,则这3个任务的排序是[A,B,C]。在另一实施例中,可以基于最短时间优先策略。例如,处理任务A需要5秒,处理任务B需要3秒,处理任务C需要6秒,则这3个任务的排序是[B,A,C]。此外,也可以基于最小资源优先策略对待调度任务进行排序。
与本申请实施例提供的方法的应用场景以及方法相对应地,本申请实施例还提供一种任务调度装置300,部署于电子设备,该电子设备可以是诸如服务器、计算机、手机、智能手表这样的电子设备。下文将参照图3对本申请的任务调度装置300进行说明。图3是示出本申请一实施例的任务调度装置的结构框图。如图3所示,任务调度装置300可以包括:待调度任务拆分单元301,服务器确定单元302以及子任务调度单元303。
待调度任务拆分单元301,配置来在确定用于处理待调度任务的服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,将所述待调度任务拆分为由不同处理器处理的多个子任务。
待调度任务拆分单元301可以是电子设备中的一个组件,电子设备通过该组件来将待调度任务拆分为由不同处理器处理的多个子任务。
服务器确定单元302,配置来确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求。
服务器确定单元302可以是电子设备中的一个组件,电子设备通过该组件来确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求。
子任务调度单元303,配置来将所述子任务调度至满足所述子任务的算力需求的服务器。
子任务调度单元303可以是电子设备中的一个组件,电子设备通过该组件所述子任务调度至满足所述子任务的算力需求的服务器。
在一实施例中,待调度任务拆分单元301进一步配置来将所述待调度任务拆分为由通用处理器处理的第一一级子任务和由图形处理器处理的第二一级子任务。
在一实施例中,任务调度装置300还包括二级子任务调度单元,配置来在确定所述服务器集群中不存在服务器分别满足所述第一一级子任务的算力需求和所述第二一级子任务的算力需求的情况下,基于所述服务器集群中最大的图形处理器算力将所述第二一级子任务拆分为多个第二二级子任务;确定所述服务器集群中存在服务器分别满足所述第一一级子任务的算力需求和所述多个第二二级子任务的算力需求;将所述第一一级子任务调度至满足所述第一一级子任务的算力需求的服务器,并将所述第二二级子任务调度至满足所述第二二级子任务的算力需求的服务器。
在一实施例中,服务器确定单元302进一步配置来获取所述服务器集群中每台服务器的通用处理器算力和图形处理器算力;基于所述每台服务器的通用处理器算力,确定存在第一服务器满足所述第一一级子任务的算力需求;根据所述服务器集群中非所述第一服务器的其他服务器中的图形处理器与所述第一服务器中的通用处理器的连接方式,计算所述第二一级子任务的算力需求,并确定所述其他服务器中存在图形处理器算力满足所述第二一级子任务的算力需求的服务器。
在一实施例中,服务器确定单元302进一步配置来将所述服务器集群中的每台服务器按照通用处理器算力的大小进行排序,以获得服务器队列;对所述服务器队列进行遍历,确定所述服务器队列中通用处理器算力大于所述第一一级子任务的算力需求,且通用处理器算力最小的服务器作为所述第一服务器。
在一实施例中,任务调度装置300还包括待调度任务排序单元,配置来按照预定策略对所述待调度任务进行排序,所述预定策略包括以下策略中的任意一项:先提交先调度策略、最短时间优先策略、以及最小资源优先策略。
在一实施例中,所述待调度任务的算力需求根据所述待调度任务的延迟需求获得。
在一实施例中,所述通用处理器和所述图形处理器的连接方式包括以下连接方式中的任意一项:PCIe、RDMA、以及以太网。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,并具备相应的有益效果,在此不再赘述。
依据本申请实施例,根据待调度任务所需的资源需求和服务器集群能够提供的资源,在一台服务器不能同时满足待调度任务所有的资源需求时,无需等待资源空闲或更换服务器,可以将该数据处理任务拆分为由不同处理器处理的多个子任务,并将这些子任务部署至不同的服务器中,使得不同的服务器中的处理器分别处理这些子任务,提高了系统资源利用了和任务调度的效率。
依据本申请实施例,在满足任务需求的基础上选择算力最小的服务器进行任务处理,可以在分配资源时选择大小最合适的空闲资源进行任务处理,提高了资源的利用效率,避免了资源浪费。
依据本申请实施例,基于图形处理器大规模并发运算处理任务的特性,可以通过数据并行的方式将图形处理器处理的第二一级子任务拆分为多个第二二级子任务,由不同的图形处理器处理不同的第二二级子任务(即,运算不同的数据集),提高了图形处理器的资源利用效率。
图4为用来实现本申请实施例的电子设备的框图。如图4所示,该电子设备包括:存储器401和处理器402,存储器401内存储有可在处理器402上运行的计算机程序。处理器402执行该计算机程序时实现上述实施例中的方法。存储器401和处理器402的数量可以为一个或多个。
该电子设备还包括:
通信接口403,用于与外界设备进行通信,进行数据交互传输。
如果存储器401、处理器402和通信接口403独立实现,则存储器401、处理器402和通信接口403可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器401、处理器402及通信接口403集成在一块芯片上,则存储器401、处理器402及通信接口403可以通过内部接口完成相互间的通信。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。
本申请实施例还提供了一种芯片,该芯片包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。
本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
进一步地,可选的,上述存储器可以包括只读存储器和随机访问存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机访问存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM均可用。例如,静态随机访问存储器(Static RAM,SRAM)、动态随机访问存储器(Dynamic Random Access Memory,DRAM)、同步动态随机访问存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机访问存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机访问存储器(Enhanced SDRAM,ESDRAM)、同步链接动态随机访问存储器(Sync link DRAM,SLDRAM)和直接内存总线随机访问存储器(DirectRambus RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生依照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中描述的或在此以其他方式描述的任何过程或方法可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中描述的或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请记载的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种任务调度方法,包括:
在确定用于处理待调度任务的服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,将所述待调度任务拆分为由不同处理器处理的多个子任务;
确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求;
将所述子任务调度至满足所述子任务的算力需求的服务器。
2.根据权利要求1所述的方法,所述将所述待调度任务拆分为由不同处理器处理的多个子任务,包括:
将所述待调度任务拆分为由通用处理器处理的第一一级子任务和由图形处理器处理的第二一级子任务。
3.根据权利要求2所述的方法,所述方法还包括:
在确定所述服务器集群中不存在服务器分别满足所述第一一级子任务的算力需求和所述第二一级子任务的算力需求的情况下,基于所述服务器集群中最大的图形处理器算力将所述第二一级子任务拆分为多个第二二级子任务;
确定所述服务器集群中存在服务器分别满足所述第一一级子任务的算力需求和所述多个第二二级子任务的算力需求;
将所述第一一级子任务调度至满足所述第一一级子任务的算力需求的服务器,并将所述第二二级子任务调度至满足所述第二二级子任务的算力需求的服务器。
4.根据权利要求2所述的方法,其中,所述确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求,包括:
获取所述服务器集群中每台服务器的通用处理器算力和图形处理器算力;
基于所述每台服务器的通用处理器算力,确定存在第一服务器满足所述第一一级子任务的算力需求;
根据所述服务器集群中非所述第一服务器的其他服务器中的图形处理器与所述第一服务器中的通用处理器的连接方式,计算所述第二一级子任务的算力需求,并确定所述其他服务器中存在图形处理器算力满足所述第二一级子任务的算力需求的服务器。
5.根据权利要求4所述的方法,其中,所述基于所述每台服务器的通用处理器算力,确定存在第一服务器满足所述第一一级子任务的算力需求,包括:
将所述服务器集群中的每台服务器按照通用处理器算力的大小进行排序,以获得服务器队列;
对所述服务器队列进行遍历,确定所述服务器队列中通用处理器算力大于所述第一一级子任务的算力需求,且通用处理器算力最小的服务器作为所述第一服务器。
6.根据权利要求1或2所述的方法,其中,所述方法还包括:
按照预定策略对所述待调度任务进行排序,所述预定策略包括以下策略中的任意一项:先提交先调度策略、最短时间优先策略、以及最小资源优先策略。
7.根据权利要求1或2所述的方法,其中,所述待调度任务的算力需求根据所述待调度任务的延迟需求获得。
8.根据权利要求4所述的方法,其中,所述通用处理器和所述图形处理器的连接方式包括以下连接方式中的任意一项:PCIe、RDMA、以及以太网。
9.一种任务调度装置,包括:
待调度任务拆分单元,配置来在确定用于处理待调度任务的服务器集群中不存在服务器满足所述待调度任务的算力需求的情况下,将所述待调度任务拆分为由不同处理器处理的多个子任务;
服务器确定单元,配置来确定所述服务器集群中存在服务器分别满足所述多个子任务的算力需求;
子任务调度单元,配置来将所述子任务调度至满足所述子任务的算力需求的服务器。
10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310632499.7A CN116643886A (zh) | 2023-05-30 | 2023-05-30 | 任务调度方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310632499.7A CN116643886A (zh) | 2023-05-30 | 2023-05-30 | 任务调度方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116643886A true CN116643886A (zh) | 2023-08-25 |
Family
ID=87619584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310632499.7A Pending CN116643886A (zh) | 2023-05-30 | 2023-05-30 | 任务调度方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116643886A (zh) |
-
2023
- 2023-05-30 CN CN202310632499.7A patent/CN116643886A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111768006A (zh) | 一种人工智能模型的训练方法、装置、设备及存储介质 | |
CN112214319B (zh) | 一种计算资源感知的任务调度方法 | |
WO2022067531A1 (zh) | 一种计算资源感知的任务调度方法 | |
CN110990154B (zh) | 一种大数据应用优化方法、装置及存储介质 | |
CN112783659B (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
JP2022539955A (ja) | タスクスケジューリング方法及び装置 | |
WO2024021489A1 (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN112114973A (zh) | 一种数据处理方法及装置 | |
US20230037293A1 (en) | Systems and methods of hybrid centralized distributive scheduling on shared physical hosts | |
CN112860383A (zh) | 集群资源调度方法、装置、设备及存储介质 | |
CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN114579284A (zh) | 任务调度方法及装置 | |
CN117519930A (zh) | 批量任务的执行方法、装置及电子设备 | |
CN113608852A (zh) | 任务调度方法、调度模块、推理节点和协同作业系统 | |
CN115640113A (zh) | 多平面弹性调度方法 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN116010051A (zh) | 一种联邦学习多任务调度方法及装置 | |
CN116643886A (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN112783651B (zh) | 一种云平台vGPU负载均衡调度方法、介质及装置 | |
CN113157415A (zh) | 农场渲染方法、装置、电子设备和存储介质 | |
CN114327897A (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 |