[发明专利]一种多核环境下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/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top