[发明专利]一种多核环境下OpenMP任务并行的优化方法有效
申请号: | 201310680110.2 | 申请日: | 2013-12-12 |
公开(公告)号: | CN103729241A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 廖小飞;金海;毕建民 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/45 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种多核环境下OpenMP任务并行的优化方法,主要是通过自适应任务粒度控制的方式帮助程序员控制好任务粒度,来优化任务并行,任务粒度是影响细粒度任务并行程序性能的一个重要因素。自适应任务粒度控制包括:1)帮助优先与串行化执行的自适应选取;2)限制细粒度任务的创建。在需要并行任务时采用帮助优先策略,任务数足够时采用串行化执行策略。设置了可以自动调节大小的阈值深度,用来限制细粒度任务的创建,若任务的深度大于阈值深度,则串行化执行。本发明能够自适应地控制好任务粒度,性能上和程序员手动控制的结果相接近,通过自适应的方式减轻了程序员的负担,并且还能节省内存。 | ||
搜索关键词: | 一种 多核 环境 openmp 任务 并行 优化 方法 | ||
【主权项】:
一种多核环境下OpenMP任务并行的优化方法,其特征在于,包括以下步骤:(1)初始化总线程数等于CPU核的数量,剪枝深度cut_off_depth和阈值深度threshold_depth为0,并将用于标识所有线程的状态位flag设置为0;(2)主线程接收并行任务编译指导语句,以帮助优先的执行策略执行该并行任务编译指导语句,以生成并行任务,并将该并行任务放入该线程的并行任务队列的尾部;(3)主线程判断任务队列中的并行任务总和是否达到总线程数的N倍,其中N为正整数,若达到则进入步骤(4),否则返回步骤(2);(4)主线程将剪枝深度cut_off_depth设置为当前线程执行的并行任务的深度,并设置阈值深度threshold_depth=2*cut_off_depth;(5)当前线程采用串行化执行策略执行并行任务编译指导语句,此时不生成并行任务;(6)判断是否所有任务都已完成,若是则过程结束,否则转入步骤(7);(7)当前线程判断是否接收到并行任务编译指导语句,若接收到则转入步骤(8),否则返回步骤(5);(8)当前线程判断状态位flag是否为0,若是则转入步骤(9),否则表示存在有线程处于空闲状态且窃取不到并行任务,然后转入步骤(11);(9)当前线程判断其执行的并行任务的深度total_depth是否大于阈值深度threshold_depth,若大于则返回步骤(5),否则进入步骤(10);(10)当前线程判断其并行任务队列中的并行任务是否为空,或者所有线程的并行任务队列中的并行任务总数是否小于总线程数,如果是,则转入步骤(12),否则返回步骤(5);(11)当前线程设置threshold_depth=threshold_depth+cut_off_depth,flag=0;(12)当前线程采用帮助优先的执行策略执行并行任务编译指导语句,以生成新的并行任务;(13)当前线程在接收到并行任务编译指导语句时,判断其执行的并行任务的临时深度是否大于剪枝深度cut_off_depth,若是则返回步骤(5),否则返回步骤(12)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310680110.2/,转载请声明来源钻瓜专利网。
- 上一篇:具有去偶焦化区和汽提区的流化床焦化方法
- 下一篇:紧凑型摄像模组