[发明专利]面向异构系统的数据传输优化方法有效
申请号: | 201610283304.2 | 申请日: | 2016-04-29 |
公开(公告)号: | CN105975434B | 公开(公告)日: | 2018-10-02 |
发明(设计)人: | 甘新标;刘杰;杨灿群;胡庆丰;徐涵;迟利华;晏益慧;龚春叶;李胜国;孙建政;祁宝鑫;季小聪 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F15/173 | 分类号: | G06F15/173 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 赵洪 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向异构系统的数据传输优化方法,目的是减少数据传输量,提高异构系统数据传输效率和提升异构计算系统效率。技术方案是先定义工作流中的处理器集合C和整个工作流中的任务集T,然后收集工作流中任务处理需要的原始数据集合D,统计工作流中各任务与数据之间的关系,接着在任务运行过程生成中间数据集,最后确认任务运行需要传入的最小数据集。采用本发明可以将处理器之间需要传输的数据集最小化,缓解异构系统数据传输压力,提高异构系统的带宽利用率,提升异构计算系统效率。 | ||
搜索关键词: | 面向 系统 数据传输 优化 方法 | ||
【主权项】:
1.一种面向异构系统的数据传输优化方法,其特征在于包括以下步骤:第一步、定义工作流中的处理器集合C:C={c1,c2,…cj,…cN},其中,cj为第j个处理器,cj的属性cptj=core×f×simd,其中j=1,2,…,N,N为异构系统中处理器和加速器的总数,cptj表示处理器cj的处理能力大小,core为cj的核数,f为cj的主频,simd为cj的向量处理单元宽度;第二步、定义整个工作流中的任务集T={t1,t2,…ti,…,tM},其中,第i个任务ti=,runtimei为任务ti运行时间,taskid为执行任务ti所需的数据集,其中i=1,2,…M,M为工作流中任务的个数;第三步、收集工作流中任务处理需要的原始数据集合D,D中存放的数据d为四元组,d=,其中,size表示数据的大小,T为引用数据d的任务集合,c为d所在的处理器,link表示数据d相对于T中对应任务的传输方向,有两个值,若link为in,表示该数据为对应任务的输入数据,若link为out,表示该数据为对应任务的输出数据;第四步、统计工作流中各任务与数据之间的关系,具体方法如下:4.1 令第一任务集合变量ST=T;4.2 令数据集合SD=D;4.3 定义变量i=1;4.4 任取ST中的一个元素,该任务用ti表示;4.5 定义任务ti所需的数据集4.6 定义变量j=0;4.7 任取SD中任意一个数据,该数据用dj表示;4.8 若任务ti需要引用数据dj,将数据dj加入任务ti所需的数据集即转4.9;否则,直接转4.9;4.9 更新SD=SD‑{dj},从集合中删除元素dj;4.10 若j=j+1,转4.7,否则,数据集合遍历完毕,转4.11;4.11 更新ST=ST‑{ti};4.12 若i=i+1,转4.4,否则,任务集合遍历完毕,转第五步;第五步、在任务运行过程中生成中间数据集,具体步骤如下:5.1 定义第二任务集合变量TT,令TT=T;5.2 令变量p=1;5.3 任取TT中的一个元素,该任务用tp表示;5.4 定义任务tp生成的中间数据集5.5 采用Intel Vtune性能分析工具统计任务tp运行生成的中间数据,将中间数据放到集合5.6 更新数据集即令5.7 更新TT=TT‑{tp};5.8 若p=p+1,转5.4,否则,任务集合遍历完毕,转第六步;第六步、确认任务运行需要传入的最小数据集,具体步骤如下:6.1 定义第三任务集合变量TDT,令TDT=T;6.2 令变量q=1;6.3 任取任务集合TDT中的一个元素,该任务用tq表示;6.4 确认任务tq需要且已经位于tq所在处理器的数据集合和tq需要的数据集合具体方法如下:6.4.1 定义任务tq需要的数据6.4.2 定义任务tq需要且已经位于任务tq所在处理器的数据集合6.4.3 定义集合STD=D,将数据集合D赋值给集合STD;6.4.4 令r=0;6.4.5 任取数据集合STD中一个数据,该数据用dr表示;6.4.6 若任务tq需要引用数据dr,进一步核查dr相对于任务tq的传输方向,转6.4.7,否则,任务tq不需要引用dr,转6.4.10;6.4.7 若数据dr相对于任务tq的传输方向为out,也就是说数据dr已经位于tq所在处理器,转6.4.8,否则,数据dr相对于任务tq的传输方向为in,仅将数据加入任务需要的数据集合,转6.4.9;6.4.8 将数据dr加入tq需要且已经位于tq所在处理器的数据集合6.4.9 将该数据加入tq需要的数据集合6.4.10 STD=STD‑{dr};6.4.11 若r=r+1,转6.4.5,否则,tq需要且已经位于tq所在处理器的数据核实遍历完毕,得到tq需要且已经位于tq所在处理器的数据集合和tq需要的数据集合转6.5;6.5 确认由除tq之外的任务产生但位于tq所在处理器的中间数据集6.6 计算tq需要传输的最小数据集具体方法如下:6.6.1 定义tq需要传输的最小数据集合6.6.2 即tq最小传输数据集为tq需要的数据集减去tq需要并且已经位于tq所在处理器的数据集再减去tq需要但由除tq之外任务产生且位于tq所在处理器的中间数据集合6.6.3 TDT=TDT‑{tq},从任务集合中删除tq;6.6.4 若q=q+1,转6.3;否则,转第七步;第七步、结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610283304.2/,转载请声明来源钻瓜专利网。