动态任务分配系统及方法技术方案

技术编号:9906882 阅读:122 留言:0更新日期:2014-04-11 05:44
一种动态任务分配方法,该方法包括:评估GPU及CPU的实际运算能力;将新任务分解成N项子任务,其中N为大于等于1的整数;从所分解得到的子任务中确定一项为待分配的子任务;当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间;根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间;将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。本发明专利技术可将任务有效分配给GPU和CPU处理。

【技术实现步骤摘要】
【专利摘要】一种动态任务分配方法,该方法包括:评估GPU及CPU的实际运算能力;将新任务分解成N项子任务,其中N为大于等于1的整数;从所分解得到的子任务中确定一项为待分配的子任务;当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间;根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间;将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。本专利技术可将任务有效分配给GPU和CPU处理。【专利说明】
本专利技术涉及一种计算机。
技术介绍
目前基于CUDA(ComputeUnified Device Architecture)架构的计算机进行任务分配时,是按照一种固定分配模式进行任务分配的。然而由于不同CPU和不同GPU之间有着巨大的运算能力的区别,且CPU个数以及每个CPU所能控制的显示卡数目都是不同的,每种显示卡所配备的显存容量以及速度都是不同的。显然,目前的CUDA架构并没有考虑到这种异构状态,所使用的任务分配方式也没有很好的利用CPU和GPU的运算处理能力。
技术实现思路
鉴于以上内容,有必要提供一种,其可将任务有效分配给GPU和CPU处理。所述动态任务分配系统,该系统包括:评估模块,用于评估GPU及CPU的实际运算能力;分解模块,用于将新任务分解成N项子任务,其中N为大于等于I的整数;确定模块,用于从所分解得到的子任务中确定一项为待分配的子任务;计算模块,用于当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间,该第一预计完成时间等于所述GPU执行该项子任务所需的时间与所述GPU执行其当前任务队列中的待处理任务所需的时间之和;所述计算模块,还用于根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间,该第二预计完成时间等于所述CPU执行该项子任务所需的时间与所述CPU执行其当前任务队列中的待处理任务所需的时间之和;排序模块,用于将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及分配模块,用于根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。所述动态任务分配方法,该方法包括:评估步骤,评估GPU及CPU的实际运算能力;分解步骤,将新任务分解成N项子任务,其中N为大于等于I的整数;确定步骤,从所分解得到的子任务中确定一项为待分配的子任务;第一计算步骤,当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间,该第一预计完成时间等于所述GPU执行该项子任务所需的时间与所述GPU执行其当前任务队列中的待处理任务所需的时间之和;第二计算步骤,根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间,该第二预计完成时间等于所述CPU执行该项子任务所需的时间与所述CPU执行其当前任务队列中的待处理任务所需的时间之和;排序步骤,将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及分配步骤,根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。相较于现有技术,所述,其可将任务有效分配给GPU和CPU来处理,充分利用GPU和CPU的运算处理能力,从而提高计算机的任务执行效率。【专利附图】【附图说明】图1是本专利技术动态任务分配系统的运行环境图。图2是本专利技术动态任务分配系统的功能模块图。图3是本专利技术动态任务分配方法的较佳实施例的流程图。主要元件符号说明【权利要求】1.一种动态任务分配系统,其特征在于,该系统包括: 评估模块,用于评估GPU及CPU的实际运算能力; 分解模块,用于将新任务分解成N项子任务,其中N为大于等于I的整数; 确定模块,用于从所分解得到的子任务中确定一项为待分配的子任务; 计算模块,用于当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间,该第一预计完成时间等于所述GPU执行该项子任务所需的时间与所述GPU执行其当前任务队列中的待处理任务所需的时间之和;所述计算模块,还用于根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间,该第二预计完成时间等于所述CPU执行该项子任务所需的时间与所述CPU执行其当前任务队列中的待处理任务所需的时间之和; 排序模块,用于将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序 '及 分配模块,用于根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。2.如权利要求1所述的动态任务分配系统,其特征在于,若所述待分配的子任务的第一预计完成时间和第二预计完成时间相等,所述分配模块将该项子任务分配到所述GPU的任务队列。3.如权利要 求1或2所述的动态任务分配系统,其特征在于,该系统还包括标识模块,用于当所述待分配的子任务分配到GPU或CPU的任务队列后,标识GPU或CPU执行该项子任务所需的时间。4.如权利要求1或2所述的动态任务分配系统,其特征在于,当所述待分配的子任务不能由所述GPU执行时,所述计算模块设置该项子任务的第一预计完成时间为无穷大。5.如权利要求1所述的动态任务分配系统,其特征在于,所述分解模块根据数据并行优于任务并行的分解原则分解新任务。6.—种动态任务分配方法,其特征在于,该方法包括: 评估步骤,评估GPU及CPU的实际运算能力; 分解步骤,将新任务分解成N项子任务,其中N为大于等于I的整数; 确定步骤,从所分解得到的子任务中确定一项为待分配的子任务; 第一计算步骤,当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间,该第一预计完成时间等于所述GPU执行该项子任务所需的时间与所述GPU执行其当前任务队列中的待处理任务所需的时间之和;第二计算步骤,根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间,该第二预计完成时间等于所述CPU执行该项子任务所需的时间与所述CPU执行其当前任务队列中的待处理任务所需的时间之和; 排序步骤,将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及 分配步骤,根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。7.如权利要求6所述的动态任务分配方法,其特征在于,若所述待分配的子任务的第一预计完成时间和第二预计完成时间相等,于所述分配步骤将该项子任务分配到所述GPU的任务队列。8.如权利要求6或7所述的动态任务分配方法,其特征在于,该方法还包括标识步骤: 当所述待分配的子任务分配到GPU的任务队列后,标识GPU执行该项子任务所需的时间;当所述待分配的子任务分配到CPU的任务队列后,标识CPU执行该项子任务所需的时间。9.如权利要求6或7所述的动态任务分配方法,其特征在于,当所本文档来自技高网...

【技术保护点】
一种动态任务分配系统,其特征在于,该系统包括:评估模块,用于评估GPU及CPU的实际运算能力;分解模块,用于将新任务分解成N项子任务,其中N为大于等于1的整数;确定模块,用于从所分解得到的子任务中确定一项为待分配的子任务;计算模块,用于当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间,该第一预计完成时间等于所述GPU执行该项子任务所需的时间与所述GPU执行其当前任务队列中的待处理任务所需的时间之和;所述计算模块,还用于根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间,该第二预计完成时间等于所述CPU执行该项子任务所需的时间与所述CPU执行其当前任务队列中的待处理任务所需的时间之和;排序模块,用于将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及分配模块,用于根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。

【技术特征摘要】

【专利技术属性】
技术研发人员:王光建吴文伍付小军
申请(专利权)人:鸿富锦精密工业深圳有限公司鸿海精密工业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1