面向异构系统的数据传输优化方法

文档序号:10612761阅读:354来源:国知局
面向异构系统的数据传输优化方法
【专利摘要】本发明公开了一种面向异构系统的数据传输优化方法,目的是减少数据传输量,提高异构系统数据传输效率和提升异构计算系统效率。技术方案是先定义工作流中的处理器集合C和整个工作流中的任务集T,然后收集工作流中任务处理需要的原始数据集合D,统计工作流中各任务与数据之间的关系,接着在任务运行过程生成中间数据集,最后确认任务运行需要传入的最小数据集。采用本发明可以将处理器之间需要传输的数据集最小化,缓解异构系统数据传输压力,提高异构系统的带宽利用率,提升异构计算系统效率。
【专利说明】
面向异构系统的数据传输优化方法
技术领域
[0001] 本发明涉及数据传输优化方法,尤指面向异构计算系统的数据传输优化方法。
【背景技术】
[0002] 异构计算系统是由主处理器和加速器两种不同体系结构处理器搭建的计算机系 统。目前,主流的异构计算系统有CPU+GPU(Graphics Processing Units)和CPU+MIC(Many Integrated Core)组成异构计算系统。
[0003] 通常,异构计算系统中主处理器与加速器之间通过PCIE(Peripheral Component Interface Express,外围器件扩展接口)通道以数据报文的形式完成数据传输和通信,加 速器内部的全局通信必须在加速器全局存储空间中进行,基本通信模式如图1所示。
[0004] 随着异构计算系统计算能力的不断攀升,相对滞后的数据通信能力逐渐成为异构 计算系统性能进一步提升的瓶颈。如何避免主处理器和加速器之间频繁的数据通信、提高 PCIE数据传输效率是异构计算系统高效协同及性能优化的关键。
[0005] 目前,异构计算系统中主处理器与加速器之间的数据传输优化方法主要有以下几 种:
[0006] (1)零拷贝。该方法指加速器端独立完成待处理数据集的生成和存储,避免数据在 主处理器和加速器之间的来回传输。但是,该方法对加速器端的存储层次和存储空间容量 要求高,并且加速器端支持的数据结构类型有限。因此,零拷贝方法虽然能够最小化主处理 器与加速器之间的数据传输,但是适用范围受限。
[0007] (2)数据传输与数据计算重叠。该方法的核心思想为将主处理器与加速器之间的 数据传输延迟隐藏于数据计算之中,可以显著提升异构计算系统的效率。该方法通常要求 数据计算时间远大于数据传输时间,只有这样才能将数据传输时间很好的重叠与数据计算 之中,才能提升异构计算系统效率。但是,该方法对数据传输操作并无优化,对于数据传输 时间接近甚至超过数据计算时间的情形,该方法很难将数据传输重叠于数据计算之中。
[0008] 上述两类异构计算系统中主处理器与加速器之间的数据传输优化方法在一定程 度上,面向具体的大规模应用加速都可以提高异构计算的执行效率。但是,零拷贝方法应用 范围十分有限;传输与数据计算重叠方法并没有减少数据传输量,甚至会造成不必要的数 据传输,严重影响了异构系统的数据传输访问性能。
[0009] 如何确认最小数据集的传输,解决异构系统数据传输效率低下的难题是本领域技 术人员关注的重要技术问题。

【发明内容】

[0010] 本发明要解决的技术问题在于:针对异构系统数据传输效率低下的问题,提出一 种面向异构系统的数据传输优化方法,避免冗余数据传输,保证最小数据集的传输,减少数 据传输量,以提高异构系统数据传输效率和提升异构计算系统效率。
[0011] 为了解决上述技术问题,本发明的具体技术方案为:
[0012] 第一步、定义工作流中的处理器集合(::〇={(31,〇2,"_(^,"^},其中,(^为第」个处 理器,cj的属性cptj = core Xf Xsimd,其中j = l,2,…,N,N为异构系统中处理器和加速器的 总数,cptj表示处理器Cj的处理能力大小,core为Cj的核数,f为Cj的主频,simd为Cj的向量处 理单元宽度。由于在工作流中的任务数量很多,任务被分派到处理器后,完成每个任务需要 的处理时间与处理器的性能有关,该性能取决于参数cpk。由于用户可以根据自己需要申 请数据的存储空间,所以不考虑处理器本地存储容量限制问题。
[0013] 第二步、定义整个工作流中的任务集τ = {ti,t2,…ti,…,?μ},其中,第i个任务ti = 〈runtimei,taskid〉,runtimei为任务ti运行时间,taskid为执行任务ti所需的数据集,其中i = 1,2,···Μ,Μ为工作流中任务的个数;
[0014] 第三步、收集工作流中任务处理需要的原始数据集合D,具体步骤如下:
[0015] 3.1初始化原始数据集合!>= 0 ;
[0016] 3.2定义变量1^ = 1,
[0017] 3.3初始化任务tk的数据集= 0 ;
[0018] 3.4通过IntelVtune性能分析工具收集tk运行所需要的数据,收集的数据d为四元 组(1 =〈8126,1',(3,1;[1^>,其中,8126表示数据的大小,1'为引用数据(1的任务集合,(3为(1所在 的处理器,link表示数据d相对于T中对应任务的传输方向,有两个值,若link为in,表示该 数据为对应任务的输入数据,若link为out,表示该数据为对应任务的输出数据,将数据d加 到集合Dk中;
[0019] 3 · 5更新数据集D = D U Dk,将Dk的元素添加到D;
[0020] 3.6更新1<: = 1<:+1;
[0021] 3.7如果k<M,转3.3,否则,原始数据收集完毕,得到原始数据集合D,转第四步;
[0022] 第四步、统计工作流中各任务与数据之间的关系。具体方法如下:
[0023] 4.1令第一任务集合变量ST = T,即将工作流中的任务集T = {t,t2,…ti,…,tM}赋 值给St;
[0024] 4.2令数据集合Sd = D,将数据集合D赋值给集合SD;
[0025] 4.3 定义变量 i = l;
[0026] 4.4任取St中的一个元素,该任务用ti表示;
[0027] 4.5定义任务ti所需的数据集-之=0 ;
[0028] 4.6定义变量」=0;
[0029] 4.7任取SD中任意一个数据,该数据用山表示;
[0030] 4.8若任务丨1需要引用数据1,将数据1加入任务丨1所需的数据集(1&81^ 1,即 而為=ito'A', up/,.丨,转4.9;否则,直接转4.9;
[0031] 4.9更新SD=SD-{d],从集合中删除元素 dJ;
[0032] 4.1〇若&#0,」=」+1,转4.7,否则,数据集合遍历完毕,转4.11;
[0033] 4.11更新3了=3广{乜};
[0034] 4.12若&#0,丨=丨+1,转4.4,否则,任务集合遍历完毕,转第五步;
[0035] 第五步、在任务运行过程中生成中间数据集。具体步骤如下:
[0036] 5.1定义第二任务集合变量1^,令1^ = 1',即将工作流中的任务集1={^142,··· 。,…心丨赋值给!^
[0037] 5.2令变量口 = 1;
[0038] 5.3任取Ττ中的一个元素,该任务用tP表示;
[0039] 5.4定义任务tP生成的中间数据集先" = 0 ;
[0040] 5.5采用Intel Vtune性能分析工具统计任务tp运行生成的中间数据,将中间数据 放到集合;
[0041 ] 5 · 6更新数据集,即令
[0042] 5.7更新1>=1>-{^};
[0043] 5.8若7^0,ρ = ρ+1,转5.4,否则,任务集合遍历完毕,转第六步;
[0044] 第六步、确认任务运行需要传入的最小数据集。具体步骤如下:
[0045] 6.1定义第三任务集合变量TDt,令TDt = Τ,即将工作流中的任务集Τ = {t,t2,… 。,."3(?}赋值给丁0丁;
[0046] 6.2令变量9 = 1;
[0047] 6.3任取任务集合TDt中的一个元素,该任务用tq表示;
[0048] 6.4确认任务tq需要且已经位于tq所在处理器的数据集合夂\和、需要的数据集合 Λ?, ·具体方法如下:
[0049] 6.4.1定义任务tq需要的数据= 0 ;
[0050] 6.4.2定义任务tq需要且已经位于任务tq所在处理器的数据集合= 0 ;
[0051 ] 6.4.3定义集合STd = D,将数据集合D赋值给集合STD;
[0052] 6.4.4令『=0;
[0053] 6.4.5任取数据集合STD中一个数据,该数据用dr表示;
[0054] 6.4.6若任务tq需要引用数据dr,进一步核查dr相对于任务tq的传输方向,转 6.4.7,否则,任务t q不需要引用dr,转6.4.10;
[0055] 6.4.7若数据dr相对于任务tq的传输方向为out,也就是说数据dr已经位于t q所在 处理器,转6.4.8,否则,数据dr相对于任务tq的传输方向为in,仅将数据加入任务需要的数 据集合,转6.4.9;
[0056] 6.4.85^ = 5^^沁};将数据dr加入tq需要且已经位于、所在处理器的数据集 合坤:
[0057] 6.4.9M& 将该数据加入tq需要的数据集合 ;
[0058] 6.4.10STD = STD-{dr};
[0059] 6.4.11若沿V矣0 ,r = r+l,转6.4.5,否则,tq需要且已经位于tq所在处理器的数据 核实遍历完毕,得到t q需要且已经位于tq所在处理器的数据集合*5^\和%需要的数据集合 册,? ' 转 6 · 5;
[0060] 6.5确认由除tq之外的任务产生但位于tq所在处理器的中间数据集,具体方 法如下:
[0061 ] 6.5.1令由除tq之外任务产生但位于tq所在处理器的中间数据集=0 ;
[0062] 6 · 5 · 2定义第四集合变量TD0t,TD0t = T,即将工作流中的任务集T= {,t2,… 。,."3(?}赋值给了00丁;
[0063] 6.5.3令8 = 1;
[0064] 6.5.4任取任务集合TDOt中的一个元素,该任务用ts表示;
[0065] 6 · 5 · 5若ts乒tq,即任取的任务不是tq,转6 · 5 · 6,否则,转6 · 5 · 8;
[0066] 6.5.6定义由ts生成的中间数据集合0? _= _0 ;
[0067] 6.5.= Oi\ ugate气,将ts生成的中间数据集加入<9£>,;
[0068] 6 · 5 · 8TD0t=TDOt- {ts},从TDOt中删除 ts;
[0069] 6.5.9MA.=艰η,选出由除、之外任务产生但位于任务、所在处理器的中 间数据集合;
[0070] 6 · 5 · 10若 7'Z>0, # 0 ,s = s+l,转6 · 5 · 4,否则,转6 · 6;
[0071 ] 6.6计算tq需要传入的最小数据集s具体方法如下:
[0072] 6·6· 1定义tq需要传入的最小数据集合气崖=0 ;
[0073] 6.6.2
即tq最小传输数据集为"需 要的数据集皿\减去tq需要并且已经位于tq所在处理器的数据集(Λ/Ζ), nSD,),再减去、需 要但由除tq之外任务产生且位于tq所在处理器的中间数据集合(iVE^nOSO, ^
[0074] 6.6.3 TDT=TDT_{tq},从任务集合中删除tq;
[0075] 6.6.4若厂〇,#0 4 = 9+1,转6.3;否则,转第七步;
[0076] 第七步、结束。
[0077] 采用本发明可以达到以下技术效果:
[0078] 1.第六步将处理器之间需要传输的数据集最小化,缓解了异构系统数据传输压 力,提高了面向异构系统的数据传输效率;
[0079] 2.由于数据传输效率的提高,提高了异构系统的带宽利用率,并且加快了面向异 构系统的应用程序运行速度,提升了异构计算系统效率。
【附图说明】
[0080] 图1为基于PCIE通信模式的异构计算系统体系结构。
[0081 ]图2为本发明面向异构计算系统的数据传输优化方法总体流程图。
【具体实施方式】
[0082] 图1为基于PCIE通信模式的由主处理器CPU和加速器(如DSP、GPU、MIC)组成的异构 计算系统体系结构示意图,其中,主处理器端拥有内存,加速器端拥有全局存储空间;主处 理器与加速器之间通过PCIE总线进行通信和数据传输。
[0083]图2为本发明的总体流程图,其具体实施步骤如下:
[0084]第一步、定义工作流中的处理器集合(::〇={(31,02,一(^,~0〃},其中,(^为第」个处 理器,Cj的属性cptj = core Xf Xsimd,其中j = l,2,…,N,N为异构系统中处理器和加速器的 总数,cptj表示处理器Cj的处理能力大小,core为Cj的核数,f为Cj的主频,simd为Cj的向量处 理单元宽度。
[0085]第二步、定义整个工作流中的任务集T = {ti,t2,…ti,…,?μ},其中,第i个任务ti = 〈runtimei,taskid〉,runtimei为任务ti运行时间,taskid为执行任务ti所需的数据集,其中i = 1,2,···Μ,Μ为工作流中任务的个数;
[0086]第三步、收集工作流中任务处理需要的原始数据集合D,具体步骤如下:
[0087] 3 · 1初始化原始数据集合? = 0 ;
[0088] 3.2定义变量1^ = 1,
[0089] 3 · 3初始化任务tk的数据集贫=0 ,
[0090] 3.4通过IntelVtune性能分析工具收集tk运行所需要的数据,收集的数据d为四元 组(1 =〈8126,1',(3,1;[1^>,其中,8126表示数据的大小,1'为引用数据(1的任务集合,(3为(1所在 的处理器,link表示数据d相对于T中对应任务的传输方向,有两个值,若link为in,表示该 数据为对应任务的输入数据,若link为out,表示该数据为对应任务的输出数据,将数据d加 到集合Dk中;
[0091] 3.5更新数据集D = D U Dk,将Dk的元素添加到D;
[0092] 3.6更新1<: = 1<:+1;
[0093] 3.7如果k<M,转3.3,否则,原始数据收集完毕,得到原始数据集合D,转第四步;
[0094]第四步、统计工作流中各任务与数据之间的关系。具体方法如下:
[0095] 4.1令第一任务集合变量ST = T,即将工作流中的任务集T = {t,t2,…ti,…,tM}赋 值给St;
[0096] 4.2令数据集合Sd = D,将数据集合D赋值给集合SD;
[0097] 4.3 定义变量 i = l;
[0098] 4.4任取St中的一个元素,该任务用ti表示;
[0099] 4.5定义任务ti所需的数据集?碑,=0 [0100] 4.6定义变量」=0;
[0101] 4.7任取SD中任意一个数据,该数据用山表示;
[0102] 4.8若任务。需要引用数据山,将数据山加入任务^所需的数据集^4,,艮口 u p/,. j·,转4.9;否则,直接转4.9;
[0103] 4.9更新5^5『{山},从集合中删除元素山;
[0104] 4.10若& # 0,j = j+Ι,转4.7,否则,数据集合遍历完毕,转4.11;
[0105] 4.11 更新ST=ST_{ti};
[0106] 4.12若5',,#0,;[ = ;[+1,转4.4,否则,任务集合遍历完毕,转第五步;
[0107] 第五步、在任务运行过程中生成中间数据集。具体步骤如下:
[0108] 5.1定义第二任务集合变量1^,令1^ = 1',即将工作流中的任务集1={^142,··· 。,…心丨赋值给!^
[0109] 5.2令变量口 = 1;
[0110] 5.3任取Ττ中的一个元素,该任务用tP表示;
[0111] 5.4定义任务知生成的中间数据集_病?>=·;:
[0112] 5.5采用Intel Vtune性能分析工具统计任务如运行生成的中间数据,将中间数据 放到集合;
[0113] 5 · 6更新数据集,即令= U /' ;
[0114] 5.7更新1>=1>-{^};
[0115] 5.8若0,p = p+l,转5.4,否则,任务集合遍历完毕,转第六步;
[0116] 第六步、确认任务运行需要传入的最小数据集。具体步骤如下:
[0117] 6.1定义第三任务集合变量TDt,令TDt = T,即将工作流中的任务集T = {t,t2,… 。,."3(?}赋值给丁0丁;
[0118] 6.2令变量9 = 1;
[0119] 6.3任取任务集合TDt中的一个元素,该任务用tq表示;
[0120] 6.4确认任务、需要且已经位于丨(1所在处理器的数据集合*52\和丨(1需要的数据集合 YD,,具体方法如下:
[0121 ] 6·4· 1定义任务tq需要的数据;
[0122] 6.4.2定义任务tq需要且已经位于任务tq所在处理器的数据集合= 0 ; 6.4.3 定义集合STD = D,将数据集合D赋值给集合STD;
[0123] 6.4.4 令 r = 0;
[0124] 6.4.5任取数据集合STD中一个数据,该数据用dr表示;
[0125] 6.4.6若任务tq需要引用数据dr,进一步核查dr相对于任务tq的传输方向,转 6.4.7,否则,任务t q不需要引用dr,转6.4.10;
[0126] 6.4.7若数据dr相对于任务tq的传输方向为out,也就是说数据dr已经位于t q所在 处理器,转6.4.8,否则,数据dr相对于任务tq的传输方向为in,仅将数据加入任务需要的数 据集合,转6.4.9;
[0127] 6.4.8@\=5^4^{<};将数据4加入%需要且已经位于%所在处理器的数据集 合 5?
[0128] 6.4.9Λ2\ ;将该数据加入tq需要的数据集合;
[0129] 6.4.10 STD = STD-{dr};
[0130] 6.4.11若# 0 >τ = r+1,转6.4.5,否则,tq需要且已经位于tq所在处理器的数 据核实遍历完毕,得到t q需要且已经位于tq所在处理器的数据集合?\^tq需要的数据集合 VA 4f6.5;
[0131] 6.5确认由除tq之外的任务产生但位于tq所在处理器的中间数据集,具体方 法如下:
[0132] 6.5.1令由除tq之外任务产生但位于tq所在处理器的中间数据集=0 ;
[0133] 6.5.2定义第四集合变量了001,了001 = 1',即将工作流中的任务集了={^1,0,··· 。,."3(?}赋值给了00丁;
[0134] 6.5.3 令 s = l;
[0135] 6.5.4任取任务集合TDOt中的一个元素,该任务用ts表示;
[0136] 6 · 5 · 5若ts乒tq,即任取的任务不是tq,转6 · 5 · 6,否则,转6 · 5 · 8;
[0137] 6.5.6定义由ts生成的中间数据集合QM, = 0 ;
[0138] 6 · 5 · U ,将ts生成的中间数据集加入;
[0139] 6 · 5 · 8TD0t=TD0t-{ ts},从TDOt中删除ts;
[0140] 6.5.9&D, = SD, η ΟΙ),,选出由除、之外任务产生但位于任务、所在处理器的中 间数据集合;
[0141] 6· 5· 10若其 0,s = s+l,转6· 5·4,否则,转6·6;
[0142] 6.6计算、需要传入的最小数据集^\_-。具体方法如下:
[0143] 6.6.1定义tq需要传入的最小数据集合A,___ = 0 ;
[0144] 6.6」
,即tq最小传输数据集为%需 要的数据集减去tq需要并且已经位于tq所在处理器的数据集(Λ?, nSD,),再减去、需 要但由除tq之外任务产生且位于tq所在处理器的中间数据集合(乂〇, nOSD, h
[0145] 6.6.3 TDT=TDT_{tq},从任务集合中删除tq;
[0146] 6·6·4若Π )/ナ0,q = q+l,转6·3;否则,转第七步;
[0147] 第七步、结束。
【主权项】
1. 一种面向异构系统的数据传输优化方法,其特征在于包括W下步骤: 第一步、定义工作流中的处理器集合C:C= ki,C2, ???Cj ,-cN},其中,Cj为第j个处理器, Cj的属性cptj = core X f X simd,其中j = 1,2,…,N,N为异构系统中处理器和加速器的总数, cptj表示处理器Cj的处理能力大小,core为Cj的核数,f为Cj的主频,simd为Cj的向量处理单 兀宽度; 第二步、定义整个工作流中的任务集T={tl,t2, ···,*?},其中,第i个任务ti = < runtimei, taskid〉,runtimei为任务ti运行时间,taskid为执行任务ti所需的数据集,其中i = 1,2, 一1,Μ为工作流中任务的个数; 第Ξ步、收集工作流中任务处理需要的原始数据集合D,D中存放的数据d为四元组,d = 〈size,T, C, link〉,其中,size表示数据的大小,T为引用数据d的任务集合,C为d所在的处理 器,link表示数据d相对于T中对应任务的传输方向,有两个值,若link为in,表示该数据为 对应任务的输入数据,若link为out,表示该数据为对应任务的输出数据; 第四步、统计工作流中各任务与数据之间的关系,具体方法如下: 4.1令第一任务集合变量St = T; 4.2令数据集合5〇 = 0; 4.3定义变量i = l; 4.4任取St中的一个元素,该任务用ti表示; 4.5定义任务ti所需的数据集=0; 4.6定义变量^' = 0; 4.7任取Sd中任意一个数据,该数据用山表示; 4.8若任务ti需要引用数据山,将数据山加入任务ti所需的数据集峰,即,转4.9;否则,直接转4.9; 4.9更新SD = SD-{dj},从集合中删除元素 dj; 4.10若馬* 0,j = j+1,转4.7,否则,数据集合遍历完毕,转4.11; 4.11 更新ST = ST-{ti}; 4.12若5^*0,1 = 1+1,转4.4,否则,任务集合遍历完毕,转第五步; 第五步、在任务运行过程中生成中间数据集,具体步骤如下: 5.1定义第二任务集合变量Ττ,令Ττ=T; 5.2令变量9=1; 5.3任取Ττ中的一个元素,该任务用tp表示; 5.4定义任务tp生成的中间数据集茗心=0 ; 5.5采用Intel Vtune性能分析工具统计任务tp运行生成的中间数据,将中间数据放到 集合巧 5.6更新数据集拼/"<,即令與^^'心.; 5.7更新打=1'广{*。}; 5.8若写* 0 Φ = Ρ+1,转5.4,否则,任务集合遍历完毕,转第六步; 第六步、确认任务运行需要传入的最小数据集,具体步骤如下: 6.1定义第Ξ任务集合变量TDt,令TDt=T; 6.2令变量〇=1; 6.3任取任务集合TDt中的一个元素,该任务用tq表示; 6.4确认任务*。需要且已经位于*。所在处理器的数据集合《?\和*。需要的数据集合1\'〇,; 6.5确认由除tq之外的任务产生但位于tq所在处理器的中间数据集aSD,; 6.6计算tq需要传输的最小数据集A,_inin,具体方法如下: 6.6.1定义tq需要传输的最小数据集合A,, _mm = 0 ;即tq最小传输数据集为tq需要的数 据集^\减去tq需要并且已经位于tq所在处理器的数据集η说y,再减去tq需要但由 除tq之外任务产生且位于tq所在处理器的中间数据集合η aS'D, ; 6.6.3 ??τ = TDt- {tq},从任务集合中删除tq; 6.6.4若?1),*0,9 = 9+1,转6.3;否则,转第屯步; 第屯步、结束。2. 如权利要求1所述的一种面向异构系统的数据传输优化方法,其特征在于第Ξ步所 述收集工作流中任务处理需要的原始数据集合D的具体步骤如下: 3.1初始化原始数据集合D = 0 : 3.2定义变量4=1, 3.3初始化任务tk的数据集·= 0 ; 3.4通过Intel V化ne性能分析工具收集tk运行所需要的数据d,将数据d加到集合Dk中; 3.5更新数据集D = D U Dk,将Dk的元素添加到D; 3.6更新k = k+l; 3.7如果k《M,转3.3,否则,原始数据收集完毕,得到原始数据集合D。3. 如权利要求1所述的一种面向异构系统的数据传输优化方法,其特征在于第6.4步所 述确认任务tq需要且已经位于tq所在处理器的数据集合^£\和tq需要的数据集合的方 法是: 6.4.1定义任务tq需要的数据''vn,.二0 : 6.4.2定义任务tq需要且已经位于任务tq所在处理器的数据集合= 0 ; 6.4.3定义集合STd = D,将数据集合D赋值给集合STd ; 6.4.4令'=0; 6.4.5任取数据集合STd中一个数据,该数据用山表示; 6.4.6若任务tq需要引用数据山,进一步核查山相对于任务tq的传输方向,转6.4.7,否 贝ij,任务tq不需要引用山,转6.4.10; 6.4.7若数据山相对于任务tq的传输方向为out,也就是说数据山已经位于tq所在处理 器,转6.4.8,否则,数据山相对于任务tq的传输方向为in,仅将数据加入任务需要的数据集 合,转 6.4.9; 6.4.8SD,g υ·μ,.};将数据山加入tq需要且已经位于tq所在处理器的数据集合《^\ ; 6.4.9Λ?,,=M),,U·(式;I;将该数据加入tq需要的数据集合; 6.4.10 STD = STD-{dr}; 6.4.11若巧;*0,r = r+l,转6.4.5,否则,tq需要且已经位于tq所在处理器的数据核实 遍历完毕,得到tq需要且已经位于tq所在处理器的数据集合SA,和tq需要的数据集合.4.如权利要求1所述的一种面向异构系统的数据传输优化方法,其特征在于第6.5步所 述确认由除tq之外的任务产生但位于tq所在处理器的中间数据集05D;,,的方法是: 6.5.1令由除tq之外任务产生但位于tq所在处理器的中间数据集WD,, = 0 ; 6.5.2定义第立集合变量TDOt,TD化=T,即将工作流中的任务集T = {ti,t2,…ti,…,tM} 赋值给TD化; 6.5.3令3 = 1; 6.5.4任取任务集合TD化中的一个元素,该任务用ts表示; 6.5.5若 ts 声 tq,转6.5.6,否则,转6.5.8; 6.5.6定义由ts生成的中间数据集合〇心,=0; 6.5.70A =〇吗U如αν、,将ts生成的中间数据集知α-味加入(W,; 6.5.8 TDOt = TDOt- {ts},从TDOt 中删除 tS; 6.5.9〇5马。,选出由除tq之外任务产生但位于任务tq所在处理器的中间数 据集合; 6.5.10若 /DO, * 0,S = S+1,转6.5.4,否则,得到化巧,
【文档编号】G06F15/173GK105975434SQ201610283304
【公开日】2016年9月28日
【申请日】2016年4月29日
【发明人】甘新标, 刘杰, 杨灿群, 胡庆丰, 徐涵, 迟利华, 晏益慧, 龚春叶, 李胜国, 孙建政, 祁宝鑫, 季小聪
【申请人】中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1