动态任务分配系统及方法

文档序号:6489671阅读:163来源:国知局
动态任务分配系统及方法
【专利摘要】一种动态任务分配方法,该方法包括:评估GPU及CPU的实际运算能力;将新任务分解成N项子任务,其中N为大于等于1的整数;从所分解得到的子任务中确定一项为待分配的子任务;当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间;根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间;将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。本发明可将任务有效分配给GPU和CPU处理。
【专利说明】动态任务分配系统及方法
【技术领域】
[0001]本发明涉及一种计算机动态任务分配系统及方法。
【背景技术】
[0002]目前基于CUDA(ComputeUnified Device Architecture)架构的计算机进行任务分配时,是按照一种固定分配模式进行任务分配的。然而由于不同CPU和不同GPU之间有着巨大的运算能力的区别,且CPU个数以及每个CPU所能控制的显示卡数目都是不同的,每种显示卡所配备的显存容量以及速度都是不同的。显然,目前的CUDA架构并没有考虑到这种异构状态,所使用的任务分配方式也没有很好的利用CPU和GPU的运算处理能力。

【发明内容】

[0003]鉴于以上内容,有必要提供一种动态任务分配系统及方法,其可将任务有效分配给GPU和CPU处理。
[0004]所述动态任务分配系统,该系统包括:评估模块,用于评估GPU及CPU的实际运算能力;分解模块,用于将新任务分解成N项子任务,其中N为大于等于I的整数;确定模块,用于从所分解得到的子任务中确定一项为待分配的子任务;计算模块,用于当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间,该第一预计完成时间等于所述GPU执行该项子任务所需的时间与所述GPU执行其当前任务队列中的待处理任务所需的时间之和;所述计算模块,还用于根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间,该第二预计完成时间等于所述CPU执行该项子任务所需的时间与所述CPU执行其当前任务队列中的待处理任务所需的时间之和;排序模块,用于将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及分配模块,用于根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。
[0005]所述动态任务分配方法,该方法包括:评估步骤,评估GPU及CPU的实际运算能力;分解步骤,将新任务分解成N项子任务,其中N为大于等于I的整数;确定步骤,从所分解得到的子任务中确定一项为待分配的子任务;第一计算步骤,当待分配的子任务可由GPU执行时,根据GPU的实际运算能力计算该项子任务由GPU执行时所需的第一预计完成时间,该第一预计完成时间等于所述GPU执行该项子任务所需的时间与所述GPU执行其当前任务队列中的待处理任务所需的时间之和;第二计算步骤,根据CPU的实际运算能力对所述待分配的子任务计算其由CPU执行时所需的第二预计完成时间,该第二预计完成时间等于所述CPU执行该项子任务所需的时间与所述CPU执行其当前任务队列中的待处理任务所需的时间之和;排序步骤,将所述待分配的子任务的第一及第二预计完成时间按照时间长短进行排序;及分配步骤,根据排序结果将所述待分配的子任务分配到执行该项子任务所需预计完成时间最短的任务队列。
[0006]相较于现有技术,所述动态任务分配系统及方法,其可将任务有效分配给GPU和CPU来处理,充分利用GPU和CPU的运算处理能力,从而提高计算机的任务执行效率。
【专利附图】

【附图说明】
[0007]图1是本发明动态任务分配系统的运行环境图。
[0008]图2是本发明动态任务分配系统的功能模块图。
[0009]图3是本发明动态任务分配方法的较佳实施例的流程图。
[0010]主要元件符号说明
[0011]
【权利要求】
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执行时,于所述第一计算步骤设置该项子任务的第一预计完成时间为无穷大。
10.如权利要求6所述的动态任务分配方法,其特征在于,所述分解步骤中是根据数据并行优于任务并行 的分解原则分解新任务。
【文档编号】G06F9/50GK103713949SQ201210379538
【公开日】2014年4月9日 申请日期:2012年10月9日 优先权日:2012年10月9日
【发明者】王光建, 吴文伍, 付小军 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1