[发明专利]一种多核环境下OpenMP任务并行的优化方法有效
申请号: | 201310680110.2 | 申请日: | 2013-12-12 |
公开(公告)号: | CN103729241A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 廖小飞;金海;毕建民 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/45 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多核 环境 openmp 任务 并行 优化 方法 | ||
1.一种多核环境下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)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310680110.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:具有去偶焦化区和汽提区的流化床焦化方法
- 下一篇:紧凑型摄像模组