[发明专利]一种基于负载平衡的CPU和GPU两级动态任务划分方法有效
申请号: | 200910227185.9 | 申请日: | 2009-12-11 |
公开(公告)号: | CN101706741A | 公开(公告)日: | 2010-05-12 |
发明(设计)人: | 廖湘科;王锋;杨灿群;陈娟;杜云飞;易会战;黄春;赵克佳 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 *** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于负载平衡的CPU和GPU两级动态任务划分方法,要解决的技术问题在于:实现CPU和GPU之间、CPU多核之间的任务负载平衡。技术方案是为CPU和GPU之间以及CPU多核之间的任务划分建立两个数据库,记录任务的划分比例,其中CPU与GPU之间的任务划分比例根据问题规模确定,且在整个应用程序执行过程中根据CPU和GPU的实测性能自动调整任务划分的比例,实现任务划分的负载平衡。采用本发明既能保证CPU和GPU的任务负载平衡,提高科学计算程序利用GPU加速的性能,又能平衡CPU每个核之间的任务负载,提高多核CPU的性能。 | ||
搜索关键词: | 一种 基于 负载 平衡 cpu gpu 两级 动态 任务 划分 方法 | ||
【主权项】:
1.一种基于负载平衡的CPU和GPU两级动态任务划分方法,所述GPU是指图形处理单元,其特征在于包括以下步骤:第一步、构建并初始化CPU-GPU间任务划分比例数据库DB1,DB1记录M组不同问题规模下的Gspliti,i∈[0,M-1],M为正整数;构建DB1的具体步骤是:1.1DB1的形式为{(Fx,Gsplit0),(F1,Gsplit1),...,(FM-1,GsplitM-1)},其中Fi=g(i),Gspliti∈[0,1],Fi为记录的问题规模,g(i)为记录的问题规模的分布函数,是一个单调递增函数,DB1第i项记录的问题规模为g(i),Gspliti表示问题规模F落在[Fi,Fi+1)范围内的并行任务块应采取的任务划分比例因子,即比例为Gspliti的任务划分在GPU上执行,比例为1-Gspliti的任务划分在CPU上执行;1.2初始化Gspliti值,
Pcpu为参与运算的CPU核的理论峰值性能,Pgpu为GPU的理论峰值性能;第二步、构建并初始化CPU核间的任务划分比例数据库DB2,记录参与执行任务的各CPU核所占CPU总任务的比例,DB2为向量形式{Csplit0,Csplit1,…,CsplitN-1},其中N为参与执行任务的CPU核数,Cspliti的初值为1/N,j∈[0,(N-1)];第三步、启动应用程序;第四步、执行应用程序CPU执行区代码;第五步、进入GPU加速区入口,计算此次并行任务的问题规模F和总的计算量S,计算量S为并行任务中的所有定点、浮点运算数目之和,通过分析任务算法计算获得或使用工具模拟任务的整个执行过程并进行统计获得;第六步、根据数据库DB1的值进行CPU、GPU的任务划分:搜索DB1,若F满足F∈[Fi,Fi+1),取得第i项中的Gspliti值;将占总任务的比例值为Gspliti的任务划分到GPU,GPU上的计算量为Sgpu=S×Gspliti,将占总任务的比例值为1-Gspliti的任务划分到CPU上,CPU上的计算量为Scpu=S-S×Gspliti;第七步、根据数据库DB2的值进行CPU核之间的任务划分:针对CPU上的每个核j,搜索数据库DB2,取得第j项中的Csplitj值,划分CPU核上的任务,方法是将占总CPU任务的比例值为Csplitj的任务分给第j个核,第j个核的计算量为Scpu[j]=(S-S×Gspliti)×Csplitj;第八步、执行GPU加速区的并行任务,即将划分好的GPU任务和CPU各核上的任务并行执行,同时记录各自任务的执行时间;第九步、同步GPU加速区的并行任务:等待各任务执行完毕,搜集各任务的执行时间(Tgpu,Tc[0],Tc[1],…,Tc[N-1]),其中Tgpu表示GPU上任务完成的时间,Tc[j],j∈[0,N-1]表示第j个CPU核上任务完成的时间,Tcpu=MAX(Tc[0],Tc[1],…,Tc[N-1])为CPU上的并行任务总的完成时间;第十步、更新数据库DB1:GPU的实测性能为
CPU的实测性能为
调整第六步根据问题规模F得到的Gspliti值,方法是计算
用GsplitiΔ值覆盖数据库DB1中对应的Gspliti值;第十一步、更新数据库DB2:每个CPU核的实测性能为
计算每个CPU核负担的任务比例
用向量{Csplit0Δ,Csplit1Δ,…,CsplitN-1Δ}覆盖数据库DB2中的向量{Csplit0,Csplit1,…,CsplitN-1};第十二步、判断应用程序是否结束,若结束,即应用程序中所有的任务执行完毕,则结束应用程序;若未结束,跳转至第四步。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910227185.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种紫色毛用活性染料
- 下一篇:一种新型灯具转接装置