CN112596902A - 基于cpu-gpu协同计算的任务调度方法及装置 - Google Patents
基于cpu-gpu协同计算的任务调度方法及装置 Download PDFInfo
- Publication number
- CN112596902A CN112596902A CN202011560735.1A CN202011560735A CN112596902A CN 112596902 A CN112596902 A CN 112596902A CN 202011560735 A CN202011560735 A CN 202011560735A CN 112596902 A CN112596902 A CN 112596902A
- Authority
- CN
- China
- Prior art keywords
- task
- queue
- computing node
- cpu
- computing
- 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 54
- 238000004519 manufacturing process Methods 0.000 claims abstract description 17
- 238000007500 overflow downdraw method Methods 0.000 claims abstract description 10
- 230000015654 memory Effects 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000004927 fusion Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Images
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/505—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 the load
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5038—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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种基于CPU‑GPU协同计算的任务调度方法、装置及影像融合方法,该方法基于各计算节点资源的负载情况来进行任务调度,通过计算各计算节点的实时负载值形成计算节点队列,并根据各任务的紧急情况及预估完成时间形成任务队列,将任务分配至各计算节点,从而有效地利用了各计算节点的计算资源,提高了集群系统的安全性、稳定性及整个系统的生产效率。
Description
技术领域
本发明涉及遥感数据处理技术领域,尤其涉及一种基于CPU-GPU协同计算的任务调度方法、装置及影像融合方法。
背景技术
随着我国空间对地观测技术的不断发展,高分辨率系列遥感卫星不断升空,遥感卫星所搭载的传感器在空间分辨率、光谱分辨率以及时间分辨率得到大幅提升,遥感数据的数据量呈现几何级数增长。在一些对遥感数据实时性要求较高的领域(如军事、灾害预警等),整个遥感数据的处理流程必须快速完成,否则无法满足相应的需求。面对海量遥感影像带来的全链路生产时效性问题,迫切需要高性能处理方法来提高生产效率。目前常用的遥感图像处理软件如ENVI、ERDAS都是典型的不支持并行处理的单机系统,其计算效率和自动化处理能力都十分有限,无法满足大规模数据处理需求;在遥感影像处理中,单景影像像素数可达几百上千万个,要求计算机能完成相应次数的运算。传统的单机计算已经远远无法满足多任务的遥感数据处理,且计算机的硬件能力很难在短时间内实现大幅提高。引入高性能集群技术,能有效的缓解数据处理的压力。一个好的任务调度方法可以均衡各集群节点负载任务,提升系统吞吐量,提高系统利用率,故寻求针对性强的调度策略具有重要的现实意义。
现有技术中通常采用轮转调度方法,该方法的基本原理是,按照任务到达的先后顺序存入待分配的任务队列,然后按照顺序依次取出任务,循环分配给各个计算节点。该方法的缺陷在于对于各个节点计算能力差异较大且任务间计算量差异较大的情况,可能会造成集群负载不均衡,出现系统吞吐量降低的情况。
发明内容
基于现有技术的上述情况,本发明的目的在于提供一种调度方法,以解决异构集群环境的资源节点的不合理调度所导致的负载不均衡,单节点内部运行的遥感产品生产算法并行度低,以及整个集群系统处理效率低等问题。
为达到上述目的,根据本发明的一个方面,提供了一种基于CPU-GPU协同计算的任务调度方法,包括步骤:
计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列;
根据各任务的紧急情况,按照优先级高低形成待分配任务队列;
将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点。
进一步的,所述计算各计算节点的实时负载值,包括根据如下公式进行计算:
Li=W1Mcpu+W2Ccpu+W3Mgpu+W4Mgpu-W5T(Mcpu,Ccpu,Mgpu,Mgpu)
其中,Li为第i个计算节点的负载值,Mcpu为可用内存值,Ccpu为空闲CPU值,Mgpu为可用显存值,Cgpu为空闲GPU值,T(Mcpu,Ccpu,Mgpu,Mgpu)为某算法该计算节点该资源使用状态下任务预估完成时间的先验值,W1-W5为上述各负载指标的权重因子,且W1+W2+W3+W4+W5=1。
进一步的,所述根据各任务的紧急情况,按照优先级高低形成待分配任务队列,包括:
将待分配任务队列划分为紧急任务队列和非紧急任务队列;
判断新进任务是否为紧急任务,若为紧急任务,则按照优先级高低将其插入紧急任务队列,若为非紧急任务,则按照优先级高低将其插入非紧急任务队列;
其中,紧急任务队列中的任务优先级高于非紧急任务队列中的任务优先级。
进一步的,所述按照优先级高低将其插入紧急任务队列,包括:
根据如下公式计算该紧急任务的预估完成时间值TYi:
TYi=αTspent
根据TYi的大小将该任务插入紧急任务队列的相应位置;
其中,α为紧急任务的权重值,Tspent为该时刻各个计算节点该资源状态下先验值的平均值,TYi越小则优先级越高。
进一步的,所述按照优先级高低将其插入非紧急任务队列,包括:
获取该时刻各个计算节点该资源状态下先验值的平均值作为该非紧急任务的预估完成时间值TNi;
根据TNi的大小将该任务插入非紧急任务队列的相应位置;
其中,TNi越小则优先级越高。
进一步的,所述将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点,包括:
将待分配任务队列中优先级最高的首任务分配至计算节点队列的首计算节点;
根据各计算节点的实时负载值进行计算节点队列重新排序;
循环实施上述两个步骤,直至所有任务分配完成。
进一步的,当某计算节点的负载指标中任意一个超过预设值,则不再向该计算节点分配任务。
根据本发明的第二个方面,提供了一种基于CPU-GPU协同计算的任务调度装置,包括计算节点队列生成模块、待分配任务队列生成模块、以及调度模块;其中,
所述计算节点队列生成模块,计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列;
所述待分配任务队列生成模块,根据各任务的紧急情况,按照优先级高低形成待分配任务队列;
所述调度模块,将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点。
根据本发明的第三个方面,提供了一种两级任务调度方法,包括一级任务调度和二级任务调度;其中,
所述一级任务调度,将待生产的任务按照如本发明第一个方面所述的任务调度方法分配至各计算节点,
所述二级任务调度,各计算节点针对所分配的任务,采用如下步骤进行分配以进行生产:将分配到的任务加入等待队列,按照等待队列中任务的顺序依次进行生产;其中,将紧急任务插入到该等待队列的头部。
根据本发明的第四个方面,提供了一种基于CPU-GPU协同计算的影像融合方法,采用本发明第三个方面所述的两级任务调度方法对所述影像融合方法中涉及的任务进行调度。
综上所述,本发明提供了一种基于CPU-GPU协同计算的任务调度方法、装置及影像融合方法,该方法基于各计算节点资源的负载均衡来进行任务的调度,通过计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列,并根据各任务的紧急情况,来将其分配至各计算节点,从而有效地利用了各计算节点的计算资源,提高了计算系统的安全性及稳定性,提高集群系统的生产效率及整个计算系统的吞吐量。
附图说明
图1是本发明基于CPU-GPU协同计算的任务调度方法中一级调度待分配任务队列的生成流程图;
图2是本发明基于CPU-GPU协同计算的任务调度方法中一级调度的实施流程图;
图3是本发明基于CPU-GPU协同计算的任务调度方法中二级调度的实施流程图;
图4是本发明基于CPU-GPU协同计算的任务调度方法的实施过程示意图;
图5是采用CUDA实施基于CPU-GPU协同计算的实施过程示意图;
图6是本发明基于CPU-GPU协同计算的影像融合方法流程图;
图7是本发明基于CPU-GPU协同计算的任务调度装置的构成框图;
图8是本发明基于CPU-GPU协同计算的任务调度装置的实现示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
下面结合附图对本发明的技术方案进行详细说明。
根据本发明的一个实施例,提供了一种基于CPU-GPU协同计算的任务调度方法,包括:计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列;根据各任务的紧急情况,按照优先级高低形成待分配任务队列;将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点。图1示出了该方法中待分配任务队列的生成流程图,下面进行进一步说明。
在接收到各计算节点资源使用情况后,负载均衡器计算各个节点的负载值,根据负载值高低,形成计算节点队列(负载值高的节点优先等级越高),传递给任务调度器。调度服务器一方面接收来自负载均衡器的计算节点队列,一方面对待分配任务进行排序,将优先处理的任务分配给优先级高的节点。
该调度过程中,充分考虑了各计算节点资源的负载均衡来进行任务的调度。各计算节点硬件配置不同,本方法中各计算节点负载值的计算考虑下五个指标:
可用内存(Mcpu):(1-内存利用率)×总内存,单位:Gb。
空闲CPU(Ccpu):(1-CPU利用率)×CPU主频,单位:GHz。其中CPU主频=单核主频×核心数。
可用显存(Mgpu):(1-显存利用率)×总显存(单位:Gb)
空闲GPU(Cgpu):(1-GPU利用率)×GPU主频,单位:GHz。其中GPU主频=单核主频×核心数。
计算节点任务预估完成时间(T)。
其中,为了获取计算节点任务预估完成时间,需要先建立先验数据库。下面介绍先验数据库的建立方法:
考虑到不同计算机,处理器内存等配置不尽相同,节点CPU、GPU、内存等资源使用状态也十分多样,导致在不同资源状态下的的某产品的预估时间可能有较大差异,故在生产过程中需多次记录各个节点在各个状态下的处理时间,取多次平均值,当记录样本达到一定数量后,将其稳定值作为某算法该节点该资源使用状态下的先验值。本方法使用CPU利用率、内存利用率、显存利用率、GPU利用率四个指标衡量计算节点的资源使用状态。将每一种指标划分成5个等级,例如CPU利用率有(0,0.2]、(0.2,0.4]、(0.4,0.6]、(0.6,0.8]、(0.8,1.0]五个等级,那么不同节点不同算法及不同资源使用率就需要确定一个先验值,故需要确定先验值个数如下式所示:
Num=Np*CAlg*54
其中Num为需要确定的先验值个数,Np为计算节点个数,CAlg为算法产品个数。负载均衡器根据以上五个参数按照下式计算各个节点的负载值:
Li=W1Mcpu+W2Ccpu+W3Mgpu+W4Mgpu-W5T(Mcpu,Ccpu,Mgpu,Mgpu)
其中,Li为第i个计算节点的负载值,Mcpu为可用内存值,Ccpu为空闲CPU值,Mgpu为可用显存值,Cgpu为空闲GPU值,T(Mcpu,Ccpu,Mgpu,Mgpu)为某算法该计算节点该资源使用状态下任务预估完成时间的先验值,W1-W5为上述各负载指标的权重因子,且W1+W2+W3+W4+W5=1,权重因子的初始值可均设为0.2,在实际操作过程中可以弹性调整权重因子,以达到性能最佳状态。由上式可知,计算节点的Li值越大,该计算节点的优先级越高。
在实际生产过程中,还需要考虑紧急任务的情况。为此,本实施例中将任务划分为紧急型任务和非紧急型任务,将待分配任务队列划分为紧急任务队列和非紧急任务队列。判断新进任务是否为紧急任务,若为紧急任务,则按照优先级高低将其插入紧急任务队列,若为非紧急任务,则按照优先级高低将其插入非紧急任务队列。
对于紧急任务,其优先级总是高于非紧急任务优先级。由此,待分配任务队列可以以下表达式用表示:
其中TYi表示紧急型任务,TNi表示非紧急任务。对于非紧急任务,即无权重任务,根据任务调度器在该时刻收集到的各个节点的状态下先验值(由先验数据库获取)的平均值,TNi值越小优先级越高;对于紧急型任务,TYi计算公式如下:
其中,α为紧急型任务的权重值,Tspent为该时刻各个节点的资源状态下的先验值的平均值。
当有新任务进入到任务池时,首先判断该任务是否为紧急型任务,然后分别计算其TY或TN值,根据值的大小插入到待分配队列相应位置,从而达到排序的目的。
至此,计算节点队列与待分配队列已排序完成,这两个队列都有各自的优先级。任务调度器开始进行任务分配时,首先将优先级高的待分配队列首任务分配给计算节点队列的首节点,然后根据各节点的实时负载值再进行计算节点排序,将优先级高的待分配队列首任务再次分配给计算节点队列的首节,一直循环此操作,直至所有任务分配完成,图2示出了该一级调度的实施流程图。考虑到系统的稳定性,当某一计算节点四个负载指标(CPU利用率、内存使用率、GPU使用率、显存使用率)中任意一个指标超过80%,不再向该节点分配任务,直至这四个指标均恢复合理范围之内。
根据某些实施例,在调度服务中,可以采用两级调度服务机制。一级调度是指调度服务器通过一定调度算法模型分配任务至各个计算节点的过程。二级调度指任务分配至各个计算节点后,各个计算节点内部进行任务(先后)执行的过程。例如:有100个A任务和50个B任务需要执行,共有1台调度节点和10台计算(生产)节点。
一级调度:将150个任务按照各计算节点的负载值进行任务分配(如计算节点K,分配9个A任务1个B任务等)。具体来说,根据任务的优先级、预估完成时间进行先后排序。
二级调度:每个计算节点内部针对一级调度分配下达至该节点的任务,分配相应计算资源进行生产处理。因此,一级调度是指调度节点分配任务至计算节点的过程,而二级调度是指每个计算节点内部对任务进行排序执行生产任务的过程。一级调度和二级调度可以并行执行。
本实施例中采取的二级调度策略相对简单,为考虑任务优先级的先到先服务的策略。调度节点将任务分配给各个计算节点,计算节点内部将分配的任务加入到一个等待队列,当任务中有紧急任务时,将紧急任务插入到等待队列头部,优先处理。当计算节点上有空闲CPU/GPU时,为该任务创建进程,进行生产工作,二级调度的实施流程图如图3所示。各个任务的并行处理模式为CPU-GPU协同处理模式,最大限度利用了节点GPU资源,提高了算法并行“密集度”,从而提高了系统处理能力。
图4示出了该任务调度方法的实施过程示意图,该调度方法的实施可以大致分为A、B、C、D四个部分:
A:调度节点接收到用户下发的新订单后,对任务订单进行解析,将订单拆分成多个任务。
B1:各个计算节点内部设置定时器Ni(i为计算节点序号),定时收集本计算节点的资源使用情况并发送至调度节点的负载均衡器。
B2:负载均衡器定时接收由各个节点发送过来的资源状态信息,根据一定的负载均衡策略,计算各个节点的负载值,均衡器内部定时器J定时向任务调度器发送各节点负载值。
C1、C2:各计算节点内部设置定时器Mi(i为计算节点序号),定时向任务监控器反馈节点任务执行状态(包含当前执行任务数、待执行任务数以及已执行完成的任务数),若节点当前处于无任务执行状态,则返回“空闲状态”。
C3:任务监控器实时接收各个节点的任务执行状态,任务监控器内部的定时器K,定时向任务调度器发送各节点任务执行情况。
D1:任务调度器根据负载均衡器计算得到的各节点负载值,以及各个节点的任务执行情况,使用一定的任务分配策略分配将任务分配给响应的计算节点。
D2:计算节点接受到任务后,按照一定调度规则进行节点内部的产品生产工作,同时执行C1、C2。
本实施例所提供的任务调度方法可用于使用CUDA的计算过程中,其实施流程图如图5所示。CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,使用CUDA进行计算包括如下步骤:
将存在于主机内存中的待处理数据复制到GPU内存中。
CPU发送数据处理指令给GPU。
将CPU内存中的数据经GPU并行计算处理。
将处理后的结果由GPU内存复制到主机内存中。
以影像融合算法为例,考虑CPU和GPU特点,以及CUDA计算框架,将融合算法分为两个部分:第一部分由CPU完成,涉及数据结构及内存申请、分配等操作;第二部分由GPU完成,主要实现像素的并行处理。
下面以遥感共性产品中的影像融合产品为例,将上述实施例提供的任务调度方法用于影像融合方法的实施例,该方法的实施流程图如图6所示。
初始化:GPU设备初始化,获取本机支持CUDA框架GPU设备的属性信息。
确定融合范围:收集输入的全色影像与多光谱影像的坐标参考等属性信息,确定目标融合影像的左上角点坐标、横纵分辨率、坐标参考信息以及影像通道数。
CPU→GPU数据拷贝:使用RasterIO函数读取影像数据到内存,使用cudaMalloc函数为输入影像和输出影像分配GPU显存。使用cudaMemcpy函数将影像数据由CPU复制到GPU中。
影像融合:初始化grid与block,保证每个像素对应一个thread线程。并行计算部分,启动kernel核函数分别为每个像素进行包括HIS变换、融合影像I’分量计算、HIS反变换等计算,最终得到经HIS算法处理后的融合影像。
GPU→CPU数据拷贝:再次使用cudaMemcpy函数将融合影像数据传送至CPU内存,并使用RasterIO函数将数据写入文件。
根据本发明的某些实施例,提供了一种基于CPU-GPU协同计算的任务调度装置,包括计算节点队列生成模块、待分配任务队列生成模块、以及调度模块;其中,
所述计算节点队列生成模块,计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列;
所述待分配任务队列生成模块,根据各任务的紧急情况,按照优先级高低形成待分配任务队列;
所述调度模块,将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点。
图8示出了将该基于CPU-GPU协同计算的任务调度装置具体实现的示意图。其中包括:
设备的实现
1.调度设备指调度服务器,用于主控服务器或调度节点。
2.计算设备指生产服务器,用于计算节点或生产节点。
调度设备的实现
1.负载均衡器作用:负责收集计算设备中资源、任务执行状态收集器的资源使用状态信息,计算每个计算设备当前负载值。
2.任务调度器:负责收集负载均衡器中当前各计算设备的负载值,并形成计算设备队列,用于任务分配的依据。
3.任务监控器:负责收集计算设备中任务状态执行的状态。
计算设备的实现
1.任务状态收集器:负责收集该计算设备的,已执行任务个数、正在执行任务个数、待执行任务个数等。
2.资源状态收集器:包括收集该计算设备的可用内存、空闲CPU、可用显存、空闲GPU等。
综上所述,本发明涉及一种基于CPU-GPU协同计算的任务调度方法、装置及影像融合方法,该方法基于各计算节点资源的负载均衡来进行任务的调度,通过计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列,并根据各任务的紧急情况,来将其分配至各计算节点,从而有效地利用了各计算节点的计算资源,提高了计算系统的安全性及稳定性,提高集群系统的生产效率及整个计算系统的吞吐量。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (10)
1.一种基于CPU-GPU协同计算的任务调度方法,其特征在于,包括步骤:
计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列;
根据各任务的紧急情况,按照优先级高低形成待分配任务队列;
将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点。
2.根据权利要求1所述的方法,其特征在于,所述计算各计算节点的实时负载值,包括根据如下公式进行计算:
Li=W1Mcpu+W2Ccpu+W3Mgpu+W4Mgpu-W5T(Mcpu,Ccpu,Mgpu,Mgpu)
其中,Li为第i个计算节点的负载值,Mcpu为可用内存值,Ccpu为空闲CPU值,Mgpu为可用显存值,Cgpu为空闲GPU值,T(Mcpu,Ccpu,Mgpu,Mgpu)为某算法该计算节点该资源使用状态下任务预估完成时间的先验值,W1-W5为上述各负载指标的权重因子,且W1+W2+W3+W4+W5=1。
3.根据权利要求2所述的方法,其特征在于,所述根据各任务的紧急情况,按照优先级高低形成待分配任务队列,包括:
将待分配任务队列划分为紧急任务队列和非紧急任务队列;
判断新进任务是否为紧急任务,若为紧急任务,则按照优先级高低将其插入紧急任务队列,若为非紧急任务,则按照优先级高低将其插入非紧急任务队列;
其中,紧急任务队列中的任务优先级高于非紧急任务队列中的任务优先级。
5.根据权利要求3所述的方法,其特征在于,所述按照优先级高低将其插入非紧急任务队列,包括:
获取该时刻各个计算节点该资源状态下先验值的平均值作为该非紧急任务的预估完成时间值TNi;
根据TNi的大小将该任务插入非紧急任务队列的相应位置;
其中,TNi越小则优先级越高。
6.根据权利要求4或5所述的方法,其特征在于,所述将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点,包括:
将待分配任务队列中优先级最高的首任务分配至计算节点队列的首计算节点;
根据各计算节点的实时负载值进行计算节点队列重新排序;
循环实施上述两个步骤,直至所有任务分配完成。
7.根据权利要求6所述的方法,其特征在于,当某计算节点的负载指标中任意一个超过预设值,则不再向该计算节点分配任务。
8.一种基于CPU-GPU协同计算的任务调度装置,其特征在于,包括计算节点队列生成模块、待分配任务队列生成模块、以及调度模块;其中,
所述计算节点队列生成模块,计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列;
所述待分配任务队列生成模块,根据各任务的紧急情况,按照优先级高低形成待分配任务队列;
所述调度模块,将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点。
9.一种两级任务调度方法,其特征在于,包括一级任务调度和二级任务调度;其中,
所述一级任务调度,将待生产的任务按照如权利要求1-7中任意一项所述的任务调度方法分配至各计算节点,
所述二级任务调度,各计算节点针对所分配的任务,采用如下步骤进行分配以进行生产:将分配到的任务加入等待队列,按照等待队列中任务的顺序依次进行生产;其中,将紧急任务插入到该等待队列的头部。
10.一种基于CPU-GPU协同计算的影像融合方法,其特征在于,采用如权利要求9所述的两级任务调度方法对所述影像融合方法中涉及的任务进行调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011560735.1A CN112596902A (zh) | 2020-12-25 | 2020-12-25 | 基于cpu-gpu协同计算的任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011560735.1A CN112596902A (zh) | 2020-12-25 | 2020-12-25 | 基于cpu-gpu协同计算的任务调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112596902A true CN112596902A (zh) | 2021-04-02 |
Family
ID=75201940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011560735.1A Pending CN112596902A (zh) | 2020-12-25 | 2020-12-25 | 基于cpu-gpu协同计算的任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112596902A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181661A (zh) * | 2020-10-13 | 2021-01-05 | 极道科技(北京)有限公司 | 一种任务调度方法 |
CN112988362A (zh) * | 2021-05-14 | 2021-06-18 | 南京蓝洋智能科技有限公司 | 一种任务处理方法、装置、电子设备及存储介质 |
CN113487900A (zh) * | 2021-07-06 | 2021-10-08 | 北京邮电大学 | 一种针对卫星图像的异步道路信息提取系统及其控制方法 |
CN113778681A (zh) * | 2021-09-10 | 2021-12-10 | 施麟 | 基于云计算的数据处理方法、装置及存储介质 |
WO2022160886A1 (en) * | 2021-01-29 | 2022-08-04 | Zhejiang Dahua Technology Co., Ltd. | Task allocation method, apparatus, storage medium, and electronic device |
CN114911612A (zh) * | 2022-04-29 | 2022-08-16 | 中国航空无线电电子研究所 | 一种面向cpu-gpu异构资源的任务调度方法 |
CN115426221A (zh) * | 2022-10-14 | 2022-12-02 | 湖南省邮电规划设计院有限公司 | 一种物联网网关装置 |
CN116700993A (zh) * | 2023-08-02 | 2023-09-05 | 浪潮(北京)电子信息产业有限公司 | 一种负载均衡方法、装置、设备及可读存储介质 |
WO2024007171A1 (zh) * | 2022-07-05 | 2024-01-11 | 北京小米移动软件有限公司 | 一种算力负载均衡方法及装置 |
CN117519953A (zh) * | 2024-01-08 | 2024-02-06 | 北京大学 | 一种面向服务器无感知计算的分离式内存管理方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302638A (zh) * | 2015-11-04 | 2016-02-03 | 国家计算机网络与信息安全管理中心 | 基于系统负载的mpp集群任务调度方法 |
CN105528283A (zh) * | 2015-12-10 | 2016-04-27 | 北京邮电大学 | 一种移动应用检测负载均衡算法中计算负载值的方法 |
CN106293952A (zh) * | 2016-07-11 | 2017-01-04 | 河南大学 | 一种基于任务需求与服务能力匹配的遥感任务调度方法 |
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和系统 |
CN108469988A (zh) * | 2018-02-28 | 2018-08-31 | 西北大学 | 一种基于异构Hadoop集群的任务调度方法 |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN109254846A (zh) * | 2018-08-01 | 2019-01-22 | 国电南瑞科技股份有限公司 | 基于两级调度的cpu与gpu协同计算的动态调度方法及系统 |
CN109408236A (zh) * | 2018-10-22 | 2019-03-01 | 福建南威软件有限公司 | 一种etl在集群上的任务负载均衡方法 |
CN111176810A (zh) * | 2019-12-19 | 2020-05-19 | 胡友彬 | 基于优先级的气象水文数据处理调度系统 |
CN111813513A (zh) * | 2020-06-24 | 2020-10-23 | 中国平安人寿保险股份有限公司 | 基于分布式的实时任务调度方法、装置、设备及介质 |
-
2020
- 2020-12-25 CN CN202011560735.1A patent/CN112596902A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302638A (zh) * | 2015-11-04 | 2016-02-03 | 国家计算机网络与信息安全管理中心 | 基于系统负载的mpp集群任务调度方法 |
CN105528283A (zh) * | 2015-12-10 | 2016-04-27 | 北京邮电大学 | 一种移动应用检测负载均衡算法中计算负载值的方法 |
CN106293952A (zh) * | 2016-07-11 | 2017-01-04 | 河南大学 | 一种基于任务需求与服务能力匹配的遥感任务调度方法 |
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和系统 |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN108469988A (zh) * | 2018-02-28 | 2018-08-31 | 西北大学 | 一种基于异构Hadoop集群的任务调度方法 |
CN109254846A (zh) * | 2018-08-01 | 2019-01-22 | 国电南瑞科技股份有限公司 | 基于两级调度的cpu与gpu协同计算的动态调度方法及系统 |
CN109408236A (zh) * | 2018-10-22 | 2019-03-01 | 福建南威软件有限公司 | 一种etl在集群上的任务负载均衡方法 |
CN111176810A (zh) * | 2019-12-19 | 2020-05-19 | 胡友彬 | 基于优先级的气象水文数据处理调度系统 |
CN111813513A (zh) * | 2020-06-24 | 2020-10-23 | 中国平安人寿保险股份有限公司 | 基于分布式的实时任务调度方法、装置、设备及介质 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181661A (zh) * | 2020-10-13 | 2021-01-05 | 极道科技(北京)有限公司 | 一种任务调度方法 |
CN112181661B (zh) * | 2020-10-13 | 2023-10-24 | 极道科技(北京)有限公司 | 一种任务调度方法 |
WO2022160886A1 (en) * | 2021-01-29 | 2022-08-04 | Zhejiang Dahua Technology Co., Ltd. | Task allocation method, apparatus, storage medium, and electronic device |
CN112988362A (zh) * | 2021-05-14 | 2021-06-18 | 南京蓝洋智能科技有限公司 | 一种任务处理方法、装置、电子设备及存储介质 |
CN113487900A (zh) * | 2021-07-06 | 2021-10-08 | 北京邮电大学 | 一种针对卫星图像的异步道路信息提取系统及其控制方法 |
CN113778681A (zh) * | 2021-09-10 | 2021-12-10 | 施麟 | 基于云计算的数据处理方法、装置及存储介质 |
CN113778681B (zh) * | 2021-09-10 | 2024-05-03 | 施麟 | 基于云计算的数据处理方法、装置及存储介质 |
CN114911612A (zh) * | 2022-04-29 | 2022-08-16 | 中国航空无线电电子研究所 | 一种面向cpu-gpu异构资源的任务调度方法 |
CN114911612B (zh) * | 2022-04-29 | 2024-06-11 | 中国航空无线电电子研究所 | 一种面向cpu-gpu异构资源的任务调度方法 |
WO2024007171A1 (zh) * | 2022-07-05 | 2024-01-11 | 北京小米移动软件有限公司 | 一种算力负载均衡方法及装置 |
CN115426221A (zh) * | 2022-10-14 | 2022-12-02 | 湖南省邮电规划设计院有限公司 | 一种物联网网关装置 |
CN116700993B (zh) * | 2023-08-02 | 2024-02-09 | 浪潮(北京)电子信息产业有限公司 | 一种负载均衡方法、装置、设备及可读存储介质 |
CN116700993A (zh) * | 2023-08-02 | 2023-09-05 | 浪潮(北京)电子信息产业有限公司 | 一种负载均衡方法、装置、设备及可读存储介质 |
CN117519953A (zh) * | 2024-01-08 | 2024-02-06 | 北京大学 | 一种面向服务器无感知计算的分离式内存管理方法 |
CN117519953B (zh) * | 2024-01-08 | 2024-04-05 | 北京大学 | 一种面向服务器无感知计算的分离式内存管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112596902A (zh) | 基于cpu-gpu协同计算的任务调度方法及装置 | |
CN110796588B (zh) | 同时计算和图形调度 | |
CN105718479B (zh) | 跨idc大数据处理架构下执行策略生成方法、装置 | |
CN102780759B (zh) | 基于调度目标空间的云计算资源调度方法 | |
CN104794194B (zh) | 一种面向大规模多媒体检索的分布式异构并行计算系统 | |
CN103262002B (zh) | 优化系统调用请求通信 | |
KR20220058844A (ko) | 리소스 스케줄링 방법 및 장치, 전자 기기, 저장 매체 및 프로그램 제품 | |
WO2011134942A1 (en) | Technique for gpu command scheduling | |
CN102591709B (zh) | 基于OGR的shapefile文件主从式并行写方法 | |
CN102063336A (zh) | 一种分布式计算多应用功能异步并发调度方法 | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
CN103608776A (zh) | 异构型处理设备上的动态工作划分 | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN105320570B (zh) | 资源管理方法和系统 | |
CN116263701A (zh) | 算力网络任务调度方法、装置、计算机设备及存储介质 | |
CN110300959B (zh) | 用于动态运行时任务管理的方法、系统、设备、装置和介质 | |
CN103262035A (zh) | 组合式cpu/gpu体系结构系统中的装置发现和拓扑报告 | |
CN104537713B (zh) | 一种新型三维重构系统 | |
CN116932201A (zh) | 一种面向深度学习训练任务的多资源共享调度方法 | |
Elliott et al. | Exploring the multitude of real-time multi-GPU configurations | |
CN105957131A (zh) | 图形处理系统及其方法 | |
Bruder et al. | A hybrid in situ approach for cost efficient image database generation | |
CN115981843A (zh) | 云边协同电力系统中任务调度方法、装置和计算机设备 | |
CN107220114A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210402 |