一种新型高效的启发式两阶段并行分支定界方法

文档序号:10687358阅读:327来源:国知局
一种新型高效的启发式两阶段并行分支定界方法
【专利摘要】本发明公开了一种启发式两阶段并行分支定界方法,包括如下方面:局部搜索阶段:利用局部启发式搜索方式以粗粒度的方式迅速获得局部较优解;全局搜索阶段:通过并行程序间互相共享信息,在较小的子空间中找到最优解;最终输出阶段:任一所述搜索任务得到最优调度顺序或者所有搜索任务搜索完毕后,输出最优调度顺序。本发明可以高效地获取在资源约束条件下工作流资源分配调度的最优解,避免传统分支定界方法初始解空间过大导致时间过度消耗的问题,再加上并行程序之间高效协同工作,从而极大地减少了整个求解过程所消耗的时间。
【专利说明】
一种新型高效的启发式两阶段并行分支定界方法
技术领域
[0001] 本发明属于计算机领域,专注于高层次综合中资源约束调度(RCS)寻优问题,尤其 涉及一种新型高效的启发式两阶段并行分支定界方法。
【背景技术】
[0002] 传统的分支定界方法(例如BULB)大多是设计成用来寻找一个近似最优解,采用以 下技术:
[0003] 高层次综合(High-levelSynthesis,缩写HLS):又称高级综合、C合成(C synthesis)、电子系统层次合成(Electronic System Level synthesis,缩写ESL synthesis),是将电路设计规范的算法级或行为级描述在一定的约束条件下转化为电路结 构描述的方法和过程。高层次综合又称为行为级综合、算法级综合等。它使设计者能够在更 高层次进行电子设计,更快速有效地在较高层次设计验证和仿真,而较低层次的工作由工 具来自动完成,从而让数字电路系统设计工程师可以有更多的精力和更充分的条件去进行 设计空间的搜索,寻求最佳的设计方案。HLS的过程通常基本包括预处理、编译、转换、调度、 分配、控制器、综合、RTL、生成、和反编译等几个部分。编译、转换部分决定了软件的兼容性 和易用性,调度(schedule)和分配(binding)主要决定了产生的RTL的性能、资源大小等。
[0004] 分支定界(branch and bound)算法是一种在问题的解空间树上搜索问题的解的 方法。分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界 算法中,每一个活结点只有一次机会成为扩展结点。利用分支定界算法对问题的解空间树 进行搜索,它的搜索策略是:首先产生当前扩展结点的所有孩子结点;然后在产生的孩子结 点中,抛弃那些不可能产生可行解(或最优解)的结点;再将其余的孩子结点加入活结点表; 最后从活结点表中选择下一个活结点作为新的扩展结点。如此循环,直到找到问题的可行 解(最优解)或活结点表为空。
[0005] 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式 来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析 方法的主要表达工具及用于表示软件模型的一种图示方法。一般数据流图都是一个有向无 环图(DFG)。
[0000]并行计算(parallel computing):-般是指许多指令得以同时进行的计算模式。 在同时进行的前提下,可以将计算的过程分解成小部分,之后以并发方式来加以解决。
[0007]在资源约束条件下,传统的分支定界方法有以下的不足之处:随着Dro图的增大, 传统分支定界方法所需的时间会急速增加;许多改进的分支定界方法都是用来找一个近似 最优解,而不是真正的最优解;绝大部分分支定界方法只考虑了通过单一的任务求解;同 时,这些方法从没有考虑过初始解空间的优化问题。因此,为了克服现有技术中的上述缺 陷,本发明提出了一种新型高效的启发式两阶段并行分支定界方法。该方法能够极大地减 少解空间,从而极为高效了寻找到最优解,节省时间和能耗的开销。

【发明内容】

[0008] 本发明提出了一种新型高效的启发式两阶段并行分支定界方法,包括步骤:
[0009] 局部搜索阶段:利用局部启发式搜索方式以粗粒度的方式迅速获得局部较优解;
[0010] 全局搜索阶段:通过并行程序间互相共享信息,在较小的子空间中找到最优解;
[0011] 最终输出阶段:任一所述搜索任务得到最优调度顺序或者所有搜索任务搜索完毕 后,输出最优调度顺序。
[0012] 本发明提出的所述启发式两阶段并行分支定界方法中,在局部搜索阶段中所利用 的局部启发式搜索方式包括:有界操作、非顺序回溯和解空间预测。
[0013] 本发明提出的所述启发式两阶段并行分支定界方法中,并行程序间信息的共享是 通过协同搜索框架,其包括并行搜索任务的产生和调度、并行任务间共享约束条件和并行 搜索任务间的边界预测;
[0014] 其中,并行搜索任务的产生和调度采用如下方式进行:根据任务的结构信息产生 不同的随机调度,同时集合采用多种不同局部搜索方法的任务并加上BULB方法组成一个任 务组,最后将所有任务组再组合成完整的全局搜索;
[0015] 其中,并行任务间共享约束条件采用如下方式进行:在各个任务组之间以及所述 任务组内部共享最优的上下界信息,在所述任务组内部共享任务调度的层次结构信息;
[0016] 其中,并行搜索任务间的边界预测采用如下方式进行:将任务上下界划分为多份, 每组的四个任务分别搜索其中一份,任何一个任务完成之后更新上下界信息,并重新分配 任务。
[0017] 本发明提出的所述启发式两阶段并行分支定界方法中,所述局部搜索阶段和所述 全局搜索阶段并行执行。
[0018] 本发明提出的所述启发式两阶段并行分支定界方法中,所述有界操作使用了初始 输入操作作为界限。
[0019] 本发明提出的所述启发式两阶段并行分支定界方法中,所述解空间预测使用了贪 心策略,优先取每个操作前面一半的范围。
[0020] 本发明提出的所述启发式两阶段并行分支定界方法中,所述并行搜索任务的产生 和调度中,任务根据DFG结构信息,通过在层次信息CPw(G)上增加随机变量r,将代表第i个 任务的序号i转换为二进制形式;如果i#〇且j层最小的比特数等于1,则j层所有操作的权 重加上(r-j) XCPw(G);如果i辛0且j层最小的比特数等于0,则j层所有操作的权重减去j X CPw(G);然后并按照新的权重重新安排调度顺序。
[0021] 本发明提出的所述启发式两阶段并行分支定界方法中,在所述全局搜索阶段中, 并行任务依据全局变量共享上下界信息,任务组内部共享结构信息。
[0022] 本发明的有益效果在于:首先通过三种启发式局部搜索方法,极大地缩小了初始 解空间的范围,再加入传统的BULB算法以保证最坏情况下的算法效率,同时通过并行计算 的协同应用,实时共享所有并行任务的当前最优解。同时在任务组内进一步通过利用Dro图 的结构信息,增加并行任务的随机性,加上并行任务的不断重新分配充分利用系统资源,使 得解决资源约束条件问题的效率得以极大地提高。
【附图说明】
[0023] 图1是本发明与传统B&B方法的简单对比。
[0024] 图2是本发明一种新型高效的启发式两阶段并行分支定界方法的流程图。
[0025] 图3是一个典型的RCS问题DFD (DFG)图。
[0026] 图4是两阶段并行搜索任务的框架结构图。
[0027] 图5是共享约束条件操作的伪代码。
[0028I图6是一个动态的边界预测演示图。
[0029]图7是非顺序回溯(N.C.)流程图。
[0030]图8是并行搜索任务Ti调度产生的流程图。
[0031 ]图9是并行搜索任务的边界信息更新流程图。
【具体实施方式】
[0032] 结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、 条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发 明没有特别限制内容。
[0033] 本发明一种新型高效的启发式两阶段并行分支定界方法对初始解空间进行优化, 使用多种启发式局部搜索方法迅速地获得一个较小的解空间。进一步,利用DFD图结构信 息,增加调度任务随机性,提高成功率。同时对并行任务进行分组,组间共享最优的上下界 信息,组内共享最优的结构信息,再加上上下界预测技术,可极大地提高总寻优过程的效 率,图1为本发明与传统BULB方式对比,可见本发明可节省时间和能耗。
[0034]图2显示的是本发明方法的具体流程图,其具体步骤包括步骤一至步骤三。以下对 本具体实施例中各步骤及其优选实施方式做详细阐述。
[0035]步骤一为在局部搜索阶段,为了尽快得到一个更小的初始解空间,使用三种创新 式的局部启发式搜索方法,以粗粒度的方式迅速获得局部较优解,包括:(1)有界操作 (B.O.):即为了避免深层次的递归枚举操作,使用初始输入节点(DH)图中)作为有界操作。 (2)非顺序回溯(N.C.):即我们在回溯过程中可以直接跳到不相邻的节点再进行枚举。(3) 解空间预测(S.S.):为了尽快获得更优的解,我们实时地把每个操作的调度范围划为两半, 并使用贪心策略取前面一半。
[0036]其中,有界操作(B.O.)是为了使局部搜索时间尽可能短,从而能尽快找到一个调 度,使它的上界(upperKco。通常来说,在枚举搜索过程DFD图中结点数越少,越能尽快地得 出结果,基于这点,本发明的有界操作局部搜索方式通过限制递归搜索过程中需要枚举的 操作数来避免深度递归搜索。本发明只将初始的输入操作作为有界操作来进行枚举,而其 余的操作用来计算最优解的上下界。例如在图3中,初始输入操作为Vl和V2,通过有界操作 局部搜索方式只有操作Vl、V2才需要被枚举。剩下的输入操作用来计算对Vl、V2枚举之后的 最优解的上下界。最终可知,最优解需要7个周期,这是在V2调度时间为2的时候才会发生, 因此如果V2的调度时间不为2,那么对其余操作进行枚举都是无意义的。传统分支定界(B& B)方法需要至少对4个操作枚举才能得出以上结论,而本方法只需要对2个操作进行枚举, 因此搜索时间大大缩短。而对于全局搜索来说,由于初始解空间大大缩小,最终需要的总时 间必然也极大地减少了。
[0037]非顺序回溯(N.C.)具体为:在传统的分支定界方法BULB中,操作按照特定的顺序 进行存储和调度,当发生剪枝操作时,对未调度操作的分配会被中断。例如在图3中调度顺 序为<vl,v2,v3,v4,v5>,初始ω值为8。假设当前未完成调度为f = {(opl,I),(op2,2)},此 时可以估计出S'的上界等于ω。但是枚举程序会继续调度S〃 = {(opl,I),(op2,2),(op3, 3)}。在这个例子中后续的基于S〃的枚举都是毫无意义的。因此本发明提出非顺序回溯方 法,使递归查找可以直接跳回到非相邻的操作。该非顺序回溯方法基于Dro图的结构信息, 其流程图如图7所示,具体为:当Dro图中某一层的操作结点全部被调度完毕时,就会被触发 一个检查条件。假设当前未完成调度是f,当前第i层上有操作opil,opi2,…,opik,当opik 被分配完毕之后,检查对所有的操作opij(l<j<k)是否都有Sbfs(OPij)SS 7 (opij)。如果 条件成立,就直接跳回这层分配的第一个操作即opil,而不必如同BULB中继续留在opik或 者只是返回前一个操作。
[0038] 解空间预测(S. S.)具体为:在RCS求解问题中[ASAP,ALAP]即操作最早发生时间和 最晚发生时间占有非常重要的地位。通常对每个操作来说,最佳的最早发生和最晚发生时 间是非常难以确定的。在传统分支定界方法中,大量的时间被花费在对每一个可能的操作 发生时间进行枚举上,因此,如果能减少对某些操作的搜索范围,那么整个解空间也会大大 缩小。基于这点,本发明提出的解空间预测方法试图通过实时动态地将每个操作的时间范 围减半的方式来获得更好的调度时间。解空间预测方法使用贪心策略,它假设在局部搜索 过程中,全局最优的结果总是存在于当前调度操作的时间范围的前半部分。如图3中,在局 部搜索过程中Vl结点只考虑范围[1,2],同理对V4结点只考虑范围[2,3],这样局部搜索所 需要的时间就大大小于整个分支定界法所需要的时间,只要能在局部搜索中找到一个更短 的调度,那么对整个分支定界法来说都有极大的好处。
[0039] 步骤二为全局搜索阶段,其中使用了新型的协同搜索框架包括:(1)并行搜索任务 的产生和调度:根据任务的结构信息产生不同的随机调度,以减少并行搜索任务间重复可 能性;同时将采用3种不同局部搜索方法的任务放在一起,再加上BULB方法(即传统的B&B方 法)组成一个任务组,每个任务组占用4个CPU核心,最后η个任务组再组合成一个完整的全 局搜索。(2)并行任务间共享约束条件:在各个任务组之间以及任务组内部共享最优的上下 界信息,在任务组内部共享任务调度的层次结构信息。(3)并行搜索任务间的边界预测:将 任务上下界划为四等份,每组的四个任务分别搜索其中一个,任何一个任务完成之后更新 上下界信息,重新分配任务。
[0040] 其中,步骤二中采用的新型的协同搜索框架如图4所示。参见图4,在每个任务组中 有四个子任务,包括本发明提出的三种启发式局部搜索方法,以及传统的分支定界法BULB, 从而保证在最坏的情况下寻找最优解的时间也不会大于传统的方法。假设有N个任务,那么 其中第i个任务就在第陋/4&个任务组中,其中BULB标识(CID)为0,B. 0.、S. S.以及N. C.标识 依次为1、2和3。同时为了保证协同搜索的效率,本发明假设一组中的四个子任务运行在不 同的CHJ核心上。
[0041]其中,步骤二中采用的并行搜索任务的产生和调度具体为:操作的调度次序在并 行分支定界法中扮演着非常重要的角色,为了最大化利用并行搜索,应使并行任务在解空 间中均匀分布,并且它们之间应该尽量不同。为了达到以上两点,本发明基于Dro图结构信 息产生操作调度如图8所示:通过在层次信息CPw(G)(即关键加权路径长度)加上一个随机 变量r(〇~1之间的一个随机数),我们可以产生一个新的操作顺序:将第i个任务(Task)的 序号i写成二进制形式B(i),如果i = 0不做任何改变;如果i#0且j层对应的B(i)中第j位 (从低位到高位)比特数等于1,那么j层所有操作的权重要加上(r-j) XCPw(G);如果i辛O且 j层对应的B(i)中第j位(从低位到高位)比特数等于0,那么j层所有操作的权重要减去j X CPw(G)。最后再按照新的权重重新安排调度顺序。
[0042] 现有技术中没有任何并行分支定界法考虑到共享下边界的问题,只有部分考虑到 了共享上边界,所以在本发明步骤二中采用了并行任务间共享约束条件的方式,具体为:本 发明在如图4所示的框架中使用了一个全局共享变量,保存了对所有并行任务来说的当前 最低的上界GUpper和最高的下界Glower。但是与传统的分支定界法不同,本发明使用了基 于DFD结构信息的剪枝法,因此在基于不同调度信息的子搜索任务中可能保存着各自基于 不同结构信息的最优调度。如果这些信息能够被共享那么可以进一步提高结构划剪枝法的 效率,但是如果一个子搜索任务要将本身的结构信息与所有其它任务的结构信息进行对 比,那么反而会拖慢整个求解过程,因此在本发明中,结构信息只在任务组内部共享。图5所 示算法详细介绍了并行任务间共享约束条件的过程,其中getGU,setGU,getGL和setGL是用 来查询和更新全局最优调度信息,同时为了保证互斥更新Glower和GUpper,定义了信号量 upper_bound_mutex和lower_bound_mutex。图5中的第1-3行表示获取全局上界过程;第4-10行使用信号量upper_bound_mutex互斥地更新全局上界;第11-13行为获取全局下界信 息;第14-20行使用信号量lower_bound_mutex互斥地更新全局下界;第22-24行用来判断 opi是否是Level (opi)层中最后一个未被分配的操作;基于从25行获取的操作数,第26-30 行将当前调度与所有在LBInf〇中使用过第Level (opi)层操作进的调度行对比,一遍更快地 进行剪枝。
[0043] 其中,步骤二还进一步采用了并行搜索任务间的边界预测,具体为:本发明中,上 界预测法在两阶段分支定界法的开始就执行了:既然每个任务组有四个任务,那么可以使 用上界预测法将区间[Glower,GUpper]四等分,再分配给任务上界《/ppw - (0 <c<3)。当一个子搜索任务T1(其中CID i%4 = k,并且上界是Co1)完成两阶段搜索但是没 有找到比W1更好的上界,那么就说明最优调度必然Kco1要长。此时GLower可以更新为 GLoweV = ω i+Ι。同时我们考虑到如果Ti任务结束,那么它对应的CPU就空闲出来,为了充分 利用计算资源,本发明使用如下策略更新边界信息:①如果并行任务乃(j#i)的上界 GLower',它将终止目前的搜索任务,同时用新的上界Ct/pper - 以及 新的下界GLoweiy重新开始一个新的搜索任务。②如果并行任务Tj(j辛i)的上界ω j 3 GLower',那么它的上界会被重新设置为\1彳丨1( ω j,tapper - (GUpper-GL〇_':)*(酬Χ),下界设 4 置为GLoweV,其流程图如图9所示。图6所示为一个任务组内下界的更新情况。BULB方法预 估最优解的范围是[10,18],而N.C.任务预估上界是12,一旦它在这个预测范围内没有找到 一个更好的调度,它会更新下边界为12+1 = 13,同时任务组的其它所有任务也都同步更新 下界。再接着N. C.会重新启动一个搜索任务上边界为14,而对于S. S.任务来说,由于新上界 18__^)*2 = IS大于旧的上界,因此他还是使用原来的上界继续执行。随着下界被不断 更新,整个搜索任务能够提前很多完成。
[0044] 步骤三为最终输出阶段:当任一所述搜索任务得到最优调度顺序或者所有搜索任 务搜索完毕后,输出最优调度顺序。由于在步骤一和步骤二中高效地获取在资源约束条件 下工作流资源分配调度的最优解,避免传统分支定界方法初始解空间过大导致时间过度消 耗的问题,再加上并行程序之间高效协同工作,本发明极大地减少了整个求解过程所消耗 的时间、能耗等资源,提升用户体验。
[0045] 本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本 领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保 护范围。
【主权项】
1. 一种新型高效的启发式两阶段并行分支定界方法,其特征在于,包括步骤: 局部搜索阶段:利用局部启发式搜索方式以粗粒度的方式迅速获得局部较优解; 全局搜索阶段:通过并行程序间互相共享信息,在较小的子空间中找到最优解; 最终输出阶段:任一所述搜索任务得到最优调度顺序或者所有搜索任务搜索完毕后, 输出最优调度顺序。2. 如权利要求1所述的启发式两阶段并行分支定界方法,其特征在于,在局部搜索阶段 中所利用的局部启发式搜索方式包括:有界操作、非顺序回溯和解空间预测。3. 如权利要求1所述的启发式两阶段并行分支定界方法,其特征在于,并行程序间信息 的共享是通过协同搜索框架,其包括并行搜索任务的产生和调度、并行任务间共享约束条 件和并行搜索任务间的边界预测; 其中,并行搜索任务的产生和调度采用如下方式进行:根据任务的结构信息产生不同 的随机调度,同时集合采用多种不同局部搜索方法的任务并加上BULB方法组成一个任务 组,最后将所有任务组再组合成完整的全局搜索; 其中,并行任务间共享约束条件采用如下方式进行:在各个任务组之间以及所述任务 组内部共享最优的上下界信息,在所述任务组内部共享任务调度的层次结构信息; 其中,并行搜索任务间的边界预测采用如下方式进行:将任务上下界划分为多份,每组 的四个任务分别搜索其中一份,任何一个任务完成之后更新上下界信息,并重新分配任务。4. 如权利要求1所述的启发式两阶段并行分支定界方法,其特征在于,所述局部搜索阶 段和所述全局搜索阶段并行执行。5. 如权利要求1所述的启发式两阶段并行分支定界方法,其特征在于,所述有界操作使 用了初始输入操作作为界限。6. 如权利要求1所述的启发式两阶段并行分支定界方法,其特征在于,所述解空间预测 使用了贪心策略,优先取每个操作前面一半的范围。7. 如权利要求1所述的启发式两阶段并行分支定界方法,其特征在于,所述并行搜索任 务的产生和调度中,任务根据DFG结构信息,通过在层次信息CPw(G)上增加随机变量r,将代 表第i个任务的序号i转换为二进制形式;如果i#〇且j层最小的比特数等于1,则j层所有操 作的权重加上(r-j)XCPw(G);如果i辛0且j层最小的比特数等于0,则j层所有操作的权重 减去j XCPw(G);然后并按照新的权重重新安排调度顺序。8. 如权利要求1所述的一种新型高效的启发式两阶段并行分支定界方法,其特征在于, 在所述全局搜索阶段中,并行任务依据全局变量共享上下界信息,任务组内部共享结构信 息。
【文档编号】G06F19/00GK106055862SQ201610292242
【公开日】2016年10月26日
【申请日】2016年5月5日
【发明人】陈铭松, 刘必成, 宋进忠, 王红祥
【申请人】华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1