本发明专利技术涉及一种基于CPU‑GPU协同计算的任务调度方法、装置及影像融合方法,该方法基于各计算节点资源的负载情况来进行任务调度,通过计算各计算节点的实时负载值形成计算节点队列,并根据各任务的紧急情况及预估完成时间形成任务队列,将任务分配至各计算节点,从而有效地利用了各计算节点的计算资源,提高了集群系统的安全性、稳定性及整个系统的生产效率。
【技术实现步骤摘要】
基于CPU-GPU协同计算的任务调度方法及装置
本专利技术涉及遥感数据处理
,尤其涉及一种基于CPU-GPU协同计算的任务调度方法、装置及影像融合方法。
技术介绍
随着我国空间对地观测技术的不断发展,高分辨率系列遥感卫星不断升空,遥感卫星所搭载的传感器在空间分辨率、光谱分辨率以及时间分辨率得到大幅提升,遥感数据的数据量呈现几何级数增长。在一些对遥感数据实时性要求较高的领域(如军事、灾害预警等),整个遥感数据的处理流程必须快速完成,否则无法满足相应的需求。面对海量遥感影像带来的全链路生产时效性问题,迫切需要高性能处理方法来提高生产效率。目前常用的遥感图像处理软件如ENVI、ERDAS都是典型的不支持并行处理的单机系统,其计算效率和自动化处理能力都十分有限,无法满足大规模数据处理需求;在遥感影像处理中,单景影像像素数可达几百上千万个,要求计算机能完成相应次数的运算。传统的单机计算已经远远无法满足多任务的遥感数据处理,且计算机的硬件能力很难在短时间内实现大幅提高。引入高性能集群技术,能有效的缓解数据处理的压力。一个好的任务调度方法可以均衡各集群节点负载任务,提升系统吞吐量,提高系统利用率,故寻求针对性强的调度策略具有重要的现实意义。现有技术中通常采用轮转调度方法,该方法的基本原理是,按照任务到达的先后顺序存入待分配的任务队列,然后按照顺序依次取出任务,循环分配给各个计算节点。该方法的缺陷在于对于各个节点计算能力差异较大且任务间计算量差异较大的情况,可能会造成集群负载不均衡,出现系统吞吐量降低的情况。<br>
技术实现思路
基于现有技术的上述情况,本专利技术的目的在于提供一种调度方法,以解决异构集群环境的资源节点的不合理调度所导致的负载不均衡,单节点内部运行的遥感产品生产算法并行度低,以及整个集群系统处理效率低等问题。为达到上述目的,根据本专利技术的一个方面,提供了一种基于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协同计算的任务调度装置的实现示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,本文档来自技高网...
【技术保护点】
1.一种基于CPU-GPU协同计算的任务调度方法,其特征在于,包括步骤:/n计算各计算节点的实时负载值,并根据各计算节点的负载值高低形成计算节点队列;/n根据各任务的紧急情况,按照优先级高低形成待分配任务队列;/n将所述待分配任务队列中的任务按照优先级顺序分配至计算节点队列中的各计算节点。/n
【技术特征摘要】
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所述的方法,其特征在于,所述根据各任务的紧急情况,按照优先级高低形成待分配任务队列,包括:
将待分配任务队列划分为紧急任务队列和非紧急任务队列;
判断新进任务是否为紧急任务,若为紧急任务,则按照优先级高低将其插入紧急任务队列,若为非紧急任务,则按照优先级高低将其插入非紧急任务队列;
其中,紧急任务队列中的任务优先级高于非紧急任务队列中的任务优先级。
4.根据权利要求3所述的方法,其特征在于,所述按照优先级高低将其插入紧急任务队列,包括:
根据如下公式计算该紧急任务的预估完成时间值TYi:
根据TYi的大小将该任务插入紧急任务队列的相应位置;
其中,α为紧急任务的权重值,Tspent为该时刻各个计算节点该资源状态下先验值的平均值,TYi越小则优先级越高。
5.根据权利要求3所述的方法,其特征在于,所述按照优先级高低...
【专利技术属性】
技术研发人员:臧文乾,汪承音,王栋,赵亚萌,黄祥志,
申请(专利权)人:中科星通廊坊信息技术有限公司,
类型:发明
国别省市:河北;13
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。