CN101964004B - 用于集成电路设计的多核并行最小代价流方法及装置 - Google Patents

用于集成电路设计的多核并行最小代价流方法及装置 Download PDF

Info

Publication number
CN101964004B
CN101964004B CN 200910055400 CN200910055400A CN101964004B CN 101964004 B CN101964004 B CN 101964004B CN 200910055400 CN200910055400 CN 200910055400 CN 200910055400 A CN200910055400 A CN 200910055400A CN 101964004 B CN101964004 B CN 101964004B
Authority
CN
China
Prior art keywords
node
minimum cost
stream
unit
ground
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200910055400
Other languages
English (en)
Other versions
CN101964004A (zh
Inventor
周海
曾璇
尚笠
杨帆
陆瀛海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN 200910055400 priority Critical patent/CN101964004B/zh
Publication of CN101964004A publication Critical patent/CN101964004A/zh
Application granted granted Critical
Publication of CN101964004B publication Critical patent/CN101964004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明属集成电路技术领域,涉及一种应用于集成电路设计自动化中的多核并行最小代价流求解方法及装置。该方法及装置基于非确定性事务模型来实现最小代价流的求解,易于算法设计和并行实现,并从理论上保证算法的正确性。该方法利用线程池及线程绑定技术降低线程创建释放以及线程调度的开销,提高并行的效率。本发明利用多核处理器技术来提升最小代价流求解的速度,用于包含任何数目处理器核的装置,具有很好的伸缩性。本发明可用于求解一大类集成电路设计自动化问题的多核并行实现。

Description

用于集成电路设计的多核并行最小代价流方法及装置
技术领域
本发明属于集成电路技术领域,具体涉及一种应用于集成电路设计自动化中的多核并行最小代价流求解方法及装置。
技术背景
随着CMOS集成电路工艺的缩小,现在超大规模集成电路(VLSI)设计自动化软件为了处理包含数十亿晶体管的设计,占用越来越多的计算资源。与此同时,由于功耗和散热的限制,处理器的频率上升趋于停滞,取而代之的是多核处理器。在目前的商用市场上,多核处理器已经成为一种主流产品(1)-(2)。在集成电路设计自动化领域,怎样借助多核计算机系统来提升集成电路设计性能和效率也成为了目前国际研究的热点(3)-(6)。
目前可以应用于集成电路设计自动化领域的并行技术包括:
1.自动并行方法(7)。自动并行方法是一种编译方法,它从串行程序中提取可并行部分进行并行化,但由于传统串行程序与并行程序的编制思想不同,传统串行程序的可并行化程度并不高,自动并行方法取得的效果并不好。
2.基于消息传递的并行方法(8)。基于消息传递的方法显式实现了一种通过消息传递进行同步的分布式内存多进程并行方法。这一方法易于理解,但是基于消息传递的编程模型抽象层次较低,过于接近物理平台。它类似于汇编语言,需要程序设计者思考底层的操作过程,程序设计过于繁琐。当计算平台改变时,往往需要重新设计程序。
3.多线程并行方法(9)。多线程并行方法通过共享内存的多个线程的并行执行来实现并行。线程之间的同步通过共享内存的加锁来实现。但是,对于多线程并行方法,粗粒度的加锁方法效率低下,而细粒度的加锁则易发生错误。更重要的是多线程并行的编程模型不便于程序设计者设计程序,难以保证程序设计的正确性。
4.基于事务内存模型的并行方法(10)。事务内存模型也是一种共享内存的并行方法。不同于多线程并行方法中通过加锁来访问共享内存,事务内存模型记录多线程并行执行时的一系列指令事务,每一个事务对应于一个数据状态的转换。当这些事务之间不存在冲突时,多个线程将较为理想地并行执行。当事务之间存在冲突时,仅仅只有一个事务有效,其他事务被取消。
5.基于非确定性事务模型的并行方法(11)。非确定性事务模型可以通过一种系统化的方法来进行算法设计,并证明算法的正确性。更重要的是,通过非确定性事务模型设计的算法在保证算法执行的正确性的前提下,允许以不确定的顺序执行算法中的指令,这意味着算法在没有冲突的情况下可以并行执行。基于非确定性事务模型的并行方法易于算法设计,同时也便于并行化,是一种较为理想的并行计算模型。
集成电路设计自动化中的很多实际问题都可以转化为最小代价流的问题,这些问题包括低功耗设计中的电压分配问题(13)、逻辑电路的尺寸调整问题(16)、时钟偏斜优化问题(14)、版图规划的面积最小化问题(12)以及布局中的线网长度最小化问题(17)等。最小代价流是集成电路设计自动化中的基本问题。对最小代价流问题求解的并行化,可以实现对一大类集成电路设计自动化问题地并行化。
目前国际上还没有应用于集成电路设计自动化中最小代价流的多核并行方法,无法借助多核并行技术来提升求解最小代价流问题的性能和效率。
参考文献
(1)J.F.et al.Design of the Power6 microprocessor.In ISSCC,2007.
(2)U.G.et al.An 8-core 64-thread 64b power-efficient SPARC SoC.In ISSCC,2007.
(3)B.Catanzaro,K.Keutzer,and B.Y.Su.Parallelizing CAD:Atimely research agenda for EDA.In DAC,2008.
(4)W.Dong,P.Li,and X.Ye.Wavepipe:Parallel transient simulation of analog and digital circuitson multi-core shared-memory machines.In DAC,2008.
(5)T.Mattson and M.Wrinn.Parallel programming:Can we please get it right this time?In DAC,2008.
(6)X.-J.Ye,W.Dong,P.Li,and S.Nassif.MAPS:multi-algorithm parallel circuit simulation.InICCAD,2008.
(7)J.P.Shen and M.H.Lipasti.Modern Processor Design:Fundamentals of Superscalar Processors.McGraw-Hill Professional,2005.
(8)P.S.Pacheco.Parallel Programming with MPI.Morg an Kaufmann,1997.
(9)M.Herlihy.The multicore revolution.In FSTTCS 2007:Foundations of Software Technologyand Theoretical Computer Science,27th International Conference,pages 1-8,2007.
(10)M.Herlihy and J.E.B.Moss.Transactional memory:Architectural support for lock-free datastructures.In ISCA,pages 289-300,1993.
(11)K.M.Chandy and J.Misra.Parallel Program Design:A Foundation.Addison-WesleyPublishing Company,1988.
(12)C.Lin,H.Zhou,and C.Chu.A revisit to floorplan optimization by lagrangian relaxation.InICCAD,2006.
(13)Q.Ma and E.F.Y.Young.Network flow-based power optimization under timing constraints inMSV-driven floorplanning.In ICCAD,2008.
(14)C.Lin and H.Zhou.Clock skew scheduling with delay padding for prescribed skew domains.In ASPDAC,2007.
(15)X.-P.Tang,R.-Q.Tian,and D.F.Wong.Minimizing wire length in floorplanning.IEEE Trans.on CAD,25(9):1744-1753,2006.
(16)J.Wang,D.Das,and H.Zhou.Gate sizing by lagrangian relaxation revisited.In ICCAD,2007.
(17)J.Wang and H.Zhou.An efficient incremental algorithm for min-area retiming.In DAC,2008.
发明内容
本发明的目的是提供一种应用于集成电路设计自动化的多核并行最小代价流求解方法及装置。本发明基于非确定性事务模型来实现最小代价流的求解,易于算法设计和并行实现,并可以从理论上保证算法的正确性。
本发明所提供的多核并行最小代价流方法及装置可以实现集成电路设计自动化中低功耗设计的电压分配、逻辑电路的尺寸调整、时钟偏斜优化、版图规划的面积最小化以及布局设计的线网长度最小化等一大类问题的并行化。
为了实现上述目的,本发明提供如下技术方案:一种应用于集成电路设计自动化的多核并行最小代价流求解方法,基于非确定性事务模型,其包括如下步骤:
步骤1:将集成电路设计自动化问题转化为最小代价流问题;
步骤2:修改最小代价流问题对应的网络图,增加地节点网络;
步骤3:为每个处理器核创建一个线程,并对最小代价流问题进行初始化;
步骤4:对节点进行预处理,并将过剩流节点存储在全局队列中;
步骤5:对于每个处理器核利用并行最小代价流处理网络图;其中,
分步骤51:从任务队列中抓取一定的数量的过剩流节点;
分步骤52:对于每一个过剩流节点进行二次检测确定其是否需要处理;
分步骤53:对需要处理的过剩流节点进行推流或重标记操作;
分步骤54:与其他处理器核进行同步;
分步骤55:同步成功时,减小收缩因子,返回步骤4,进行下一轮的
分配操作;否则返回分步骤51,开始检测全局队列并获取潜
在的新的过剩流节点;
步骤6:后处理最小代价流的结果得到集成电路设计自动化问题的解。
一种用于集成电路设计的多核并行最小代价流装置,基于非确定性事务模型,包括:
用于将集成电路设计自动化问题转化为最小代价流问题的单元;
用于修改最小代价流问题对应的网络图,增加地节点网络的单元。所述的地节点网络中,首先生成多个地节点,使电路主输入节点和主输出节点均匀地与这些地节点相连,且每一个地节点所连接的主输入或主输出节点的数目小于某一个指定的阈值ntol;然后再增加一个地节点来连接已生成的多个地节点形成地节点网络。
用于对最小代价流问题进行处理的多核处理器单元及存储节点的全局存储单元。所述多核处理器单元,为每个处理器核创建一个线程,并对最小代价流问题进行初始化;所述处理器单元对节点进行预处理,并将过剩流节点存储在所述全局存储单元队列中;所述多核处理器单元对于每个处理器核利用并行最小代价流处理网络图;
用于后处理最小代价流的结果得到集成电路设计自动化问题的解的单元。
本发明多核并行最小代价流求解方法及装置具有如下优点:
1.本发明的最小代价流求解方法基于非确定性事务模型来实现,易于算法设计和并行实现,并可以从理论上保证算法的正确性。
2.本发明在实现最小代价流求解方法的多核并行处理时,为每一处理器核创建一个线程,并将这一线程绑定到相应的处理器核上,当整个程序执行完毕后再释放线程资源。由于线程仅创建一次,避免了线程多次创建释放的开销;同时由于线程与相应的处理器核绑定,降低了由操作系统线程调度引入的开销。这些技术显著提高了并行求解最小代价流问题的效率。
3.本发明的最小代价流求解方法可以很好地利用多核处理器技术来提升最小代价流求解的速度。实验表明本发明的方法在具有四个处理器核的计算装置上相对于串行方法可以达到2倍的速度提升。同时,本发明提出的处理方法可以应用于包含任何数目处理器核的装置,具有很好的伸缩性。
4.本发明提出的处理方法可以应用于实现集成电路设计自动化领域中低功耗设计中的电压分配、逻辑电路的尺寸调整、时钟偏斜优化、版图规划的面积最小化以及布局中的线网长度最小化等一大类问题的多核并行化。
附图说明
图1是本发明多核并行最小代价流求解方法流程图。
图2是版图规划阶段的电压分配示意图。
图3a是现有技术单一地节点构造方法示意图。
图3b是本发明求解方法提出的地节点网络构造方法示意图。
具体实施方式
以下通过版图规划阶段的最优电压分配问题,说明本发明的具体实施方式。在现代电路设计中,电路功耗成为了一个很大的问题。对于电路中的每个功能宏模块分配不同的电源电压可以使设计者在功耗和性能之间做出权衡,对于性能要求不高的模块可以降低供电电压以减小功耗,对于性能要求较高的模块则以较高的供电电压供电以保证其性能。在图2给出了电压分配的示意图。求解电压分配问题的多核并行最小代价流方法步骤如下:
步骤1:将电压分配问题转化为最小代价流问题,通过下述步骤:
分步骤11:读取电路宏模块网表和供电选择方案。
电路宏模块网表表示了电路宏模块之间的连接关系。电路的供电选择方案包括每一个宏模块可选的供电电压{v1,L,vi,L vn},以及在这些供电电压下宏模块对应的功耗{power(v1),L,power(vi),L power(vn)}及延时{d(v1),L,d(vi),L d(vn)}。宏模块的功耗、延时和供电电压一一对应,为单调函数关系。
分步骤12:建立基本时序约束图。
电路网表可以表示为一个有向无环图(DAG),每个宏模块的输入和输出形成两个节点,这些节点的集合记为V。每个宏模块输入和输出两个节点由有向边相连,这些有向边构成的集合记为E1,而每个模块之间也有有向边连接表示电路的拓扑关系,这些有向边构成的集合记为E2。所有的有向边构成的集合为E=E1UE2。从而,这一有向无环图可表示为G=(V,E)。在有向无环图G=(V,E)中,每个宏模块可以用其输入节点i到输出节点j的有向边(i,j)来表示。本发明的优化目标是在满足时序约束的情况下最小化整个电路的功耗。这个优化问题可以被写下面的凸规划问题:
Min Σ ( i , j ) ∈ E power ij ( v ( i , j ) )
st ∀ ( i , j ) ∈ E : p ( i ) + d ij ( v ( i , j ) ) ≤ p ( j ) - - - ( 1 )
∀ i ∈ V : 0 ≤ p ( i ) ≤ φ
∀ ( i , j ) ∈ E 1 : v ( i , j ) ∈ Voltage
如果有向边(i,j)∈E1,它表示的是一个宏模块,那么v(i,j)表示的是有向边(i,j)宏模块内部的电压选择,dij(v(i,j))和powerij(v(i,j))表示与该模块供电电压v(i,j)对应的时延和功耗。如果有向边(i,j)∈E2,它对应的是模块之间的连接,那么dij(v(i,j))和powerij(v(i,j))均为0。p(i)表示第i个节点的到达时间,φ表示电路的时钟周期,而Voltage表示宏模块可选的供电电压。上述规划问题(1)中目标就是要最小化模块功耗总和。第一个不等式约束表明模块输入到达时间加上模块延迟不大于模块输出的到达时间;第二个不等式约束表明电路节点i的到达时间必须大于零小于电路时钟周期;最后一个约束是说明模块的可选电压必须从可选择的供电电压中选择。
上述规划问题可以使用文献(13)中的方法转化成为一个最小代价流问题。其中上述DAG中每个节点对应最小代价流问题网络图中的一个节点。最小代价流问题网络图中的边(i,j)及权重w(i,j)对应每一个模块以及模块的一种电压选择。网络图中每一个节点有一个对偶变量p(i)表示该节点的到达时间,对应于(1)式中的p(i)。该对偶变量的值可以通过求解最小代价流问题一并解得,利用p(i)的结果可以在步骤6中,求解出规划问题(1)中的电压分配方案。由电压分配问题(1)转化得到的最小代价流问题的描述如下
Min Σ ( i , j ) ∈ E w ( i , j ) f ( i , j ) - - - ( 2 )
s . t . ∀ ( i , j ) ∈ E : 0 ≤ f ( i , j ) ≤ c ( i , j ) - - - ( 3 )
∀ j ∈ V : Σ ( i , j ) ∈ E f ( i , j ) = Σ ( i , j ) ∈ E f ( j , i ) - - - ( 4 )
其中w(i,j),f(i,j)和c(i,j)是边上的权重,流以及边的容量上界。最小代价流问题就是要得到满足约束(4)的最小代价流,而且每条边上的流要满足上下界约束(3)。
上述最小代价流问题可以通过A.V.Goldberg在1997年Journal ofAlgorithms中发表论文“An efficient implementation of a scaling minimum-costflow algorithm”中的Goldberg算法进行求解。本发明提出采用K.M.Chandy等人在1988年Addison-Wesley Publishing Company出版的著作“Parallel ProgramDesign:A Foundation”中的非确定性事务模型来实现Goldberg算法,对最小代价流问题进行求解。基于非确定性事务模型来实现最小代价流的求解,易于算法设计和并行实现,并可以从理论上保证算法的正确性。在步骤3-5中,本发明基于非确定性事务模型实现的Goldberg算法来实现最小代价网络流的多核并行处理。
步骤2:修改网络图,增加地节点网络。
步骤1中得到的时序约束图由于约束条件(4),在约束图中必须增加一个地节点,并增加电路所有的主输入节点到地节点的有向边以及地节点到主输出节点的有向边,并且与地节点相连边的容量为无穷大才能满足约束条件(4),如图3a所示。由于电路的主输入输出节点庞多,这将在时序约束图中引入大量由主输入输出节点到地的连接关系。庞大的到地节点的连接关系会造成利用多核处理器处理时序约束图时资源竞争剧烈从而导致多核处理的通信增加,性能下降。因此,在本发明中,我们把单个的地节点去除,取而代之的是地节点网络,如图3b所示。在地节点网络中,首先生成多个地节点,使电路主输入节点和主输出节点均匀地与这些地节点相连,且每一个地节点所连接的主输入或主输出节点的数目小于某一个指定的阈值ntol。然后再增加一个地节点来连接已生成的多个地节点形成地节点网络。经过这样的改进后,约束图中的各节点的连接趋于平衡,这有利于后续步骤利用多核处理器并行技术进行电压分配。
步骤3:为每个处理器核创建一个线程,并对最小代价流问题进行初始化。
为每个处理器核创建一个线程,并将这一线程绑定到相应的处理器核上,当整个程序执行完毕后再释放线程资源。由于线程仅创建一次,避免了线程多次创建释放的开销;同时由于线程与相应的处理器核绑定,降低了由操作系统线程调度引入的开销。需要初始化的信息包括,每个节点上的自价p(i)=0(这里的自价对应于规划问题(1)中的节点的到达时间)。每条边上的初始流f(i,j)=0以及初始的缩放因子ε=max(w(i,j)),即最大的边权重。这些静态信息可以由各个处理器核分工完成,也可以由单个处理器核独立完成。
步骤4:对节点进行预处理,并将过剩流节点存储在全局队列中。
对于不满足条件
Figure GDA00001824814000091
的边(i,j)所对应的节点i和j,进行推流操作,也就是使从节点i到节点j的流f(i,j)=c(i,j)。这里,wP(i,j)=w(i,j)-p(i)+p(j)为边(i,j)的缩减代价(reduced cost)。上述操作会产生一些过剩流节点,满足
Figure GDA00001824814000101
的节点i称为过剩流节点,这些节点将存储在全局的队列Q中。
步骤5:对于每个处理器核利用并行最小代价流处理时序约束图。具体分步骤如下:
分步骤51:从任务队列Q中抓取一定数量的过剩流节点。
每个处理器核都有自己私有的输入缓冲队列qin和输出缓冲队列qout。当任务开始时,每个处理器核首先从全局队列Q中选取一些过剩流节点放入私有输入缓冲队列中以等待后续处理。
分步骤52:对于每一个过剩流节点进行二次检测确定其需要处理。
当处理器核n开始处理其私有输入缓冲qin中的一个过剩流节点a时,由于同时还有其他的处理器核在进行操作,首先要检查其是否因为其他处理器的推流操作影响而变成流平衡,如果流平衡,则没有必要进行后续操作。对于每个节点我们在全局保存着其过剩流X(a)的值,判断这个值是否为零就可以判断其是否达到流平衡。
为了对某一个节点a进行后续处理,处理器核n必须首先检查并获取对该节点及其推流目标节点的资源控制权。为达到这一目的,我们对于每一个节点,设置一个令牌,用于各处理器核之间的通信协调。当处理器核n获取到某一节点的令牌时,将占有这一令牌直到完成这一节点的后续操作,当处理器n完成这一节点的操作后,将释放这一节点对应的令牌,以便其他处理器核对这一节点进行操作。如未能获取到这一令牌,则不对这一节点进行操作。
分步骤53:对需要处理的过剩流节点进行推流或重标记操作。
当处理器核n在分步骤52中占有了某一流过剩节点资源的令牌,便可以对流过剩节点进行推流和重标记的操作。检查过剩流节点i经有向边(i,j)流向节点j的缩减代价wP(i,j)=w(i,j)-p(i)+p(j),如果缩减代价wP(i,j)<-ε,增加从节点i到节点j的流f(i,j)到节点i到节点j对应边(i,j)的容量上界,即使得f(i,j)=c(i,j);如果-ε≤wP(i,j)<0,那么将节点i的过剩流
Figure GDA00001824814000111
通过边(i,j)流向节点j,即将边(i,j)对应的流f(i,j)增加X(i)。如果对所有的流出边都不符合缩减代价条件,则对i节点的自价p(i)做重标记,令p(i)=p(i)+ε/2,这样在下次检测中就会有可能使wP(i,j)<0符合推流条件。
在推流操作中,由于把当前节点的过剩流推到了目标节点j,所以j节点也有可能成为了新的流过剩节点,每个处理器核在推流时都检测新的过剩流节点并将其存在私有的输出缓冲队列qout中。当输出缓冲队列qout满时,其中的过剩流节点再被放回全局队列Q中,供其他处理器核操作。
分步骤54:与其他处理器核进行同步。
当单个处理器核n处理完其私有输入队列的过剩流节点并发现全局队列Q为空时,它开始与其他处理器核进行同步。只有当所有处理器核全都空闲时,在当前缩放因子ε下的电压分配过程才算是结束。本发明使用终止检测壁垒(termination detection barrier,TDB)来实现同步。一个TDB包含了一个原子计数器,在分配开始时初始化为0。当每个处理器核从空闲转到处理状态时,通知TDB的原子计数器加1;反之当每个处理器核从处理状态转到空闲状态时,通知TDB的原子计数器减1。每次处理器核在空闲状态时,就检查TDB的原子计数器是否为0,如果为零则说明当前缩放因子ε下的分配已经结束,同步成功;否则说明还有其他处理器核在工作,同步未成功,继续等到其他处理核完成操作。
分步骤55:同步成功时,减小收缩因子ε,返回步骤4进行下一轮的分配操作;否则返回分步骤51,开始检测全局队列Q并获取潜在的新的过剩流节点。
当TDB原子计数器返回0时说明当前缩减因子ε下的分配已经结束,则每个处理核统一把缩放因子ε减半进行下一轮的分配,即返回步骤4进行操作;否则其他处理器核还在工作,它们的处理结果可能会产生新的过剩流节点,当前处理器核必须返回分步骤51开始检测全局队列Q并获取潜在的新的过剩流节点。
步骤6:后处理最小代价流的结果并得到电压分配方案。
当缩放因子ε<1/n时(n是时序约束节点的总个数),整个最小代价流的算法已经结束。结束时得到了每个节点上的自价p(i),也就是节点的到达时间。对于电路来说,节点对应了宏模块的输入输出,找到宏模块对应的输入输出节点的自价p(i)和p(j),计算出其中的时延dij=p(j)-p(i)。由于时延和电压有单调对应关系,我们就可以进一步得到每个模块分配的电压v(i,j)。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过一些具体的实例进一步说明本发明。
本发明对版图规划测试实例n200到n1600进行时序约束下的最优电压分配。测试例子名称中的数字表明了电路中的宏模块数量,例如测试例n200表明有200个宏模块。在本实例中采用的多核处理装置是一台拥有两个Intel Xeon双核CPU和2G内存的计算机,最多支持4个处理器核同时运行,即4个处理器核分属于2个CPU。在多个处理器核同时访问相同内存资源时,就发生了资源竞争。表1显示了4个处理器核协同处理时,本发明提出的地节点网络方法对于减少资源竞争和提高运行速度带来的显著效果。对于比较大的例子如n200和n300,地节点网络相对于单个地节点的时序约束图操作快了将近一倍,其资源竞争也明显下降。
表1:
Figure GDA00001824814000131
表2显示了电压分配的结果与文献(13)中的方法的速度提升比较,其中的加速比为串行执行时间与并行执行时间的比值。结果显示,本发明提出的方法相对于传统的串行电压分配方法的速度有了显著的提升。在两个处理器核的情况下,速度约为串行程序的1.6倍,而在四个处理器核的情况下,电压分配速度提升达到了2.5倍。而且随着处理电路规模的扩大,速度提升更多。
表2:
Figure GDA00001824814000132
Figure GDA00001824814000141

Claims (2)

1.一种用于集成电路设计的多核并行最小代价流方法,基于非确定性事务模型,其特征在于,其包括如下步骤:
步骤1:将集成电路设计自动化问题转化为最小代价流问题;
步骤2:修改最小代价流问题对应的网络图,增加地节点网络:在地节点网络中,首先生成多个地节点,使电路主输入节点和主输出节点均匀地与这些地节点相连,且每一个地节点所连接的主输入或主输出节点的数目小于某一个指定的阈值ntol,然后再增加一个地节点来连接已生成的多个地节点形成地节点网络;
步骤3:为每个处理器核创建一个线程,并对最小代价流问题进行初始化;
步骤4:对节点进行预处理,并将过剩流节点存储在全局队列中;
步骤5:对于每个处理器核利用并行最小代价流处理网络图;其中,
分步骤5.1:从任务队列中抓取一定的数量的过剩流节点;
分步骤5.2:对于每一个过剩流节点进行二次检测确定其是否需要处理;
分步骤5.3:对需要处理的过剩流节点进行推流或重标记操作;
分步骤5.4:与其他处理器核进行同步;
分步骤5.5:同步成功时,减小收缩因子,返回步骤4,进行下一轮的分配操作;否则返回分步骤5.1,开始检测全局队列并获取潜在的新的过剩流节点;
步骤6:后处理最小代价流的结果得到集成电路设计自动化问题的解。
2.一种用于集成电路设计的多核并行最小代价流装置,基于非确定性事务模型,包括:
用于将集成电路设计自动化问题转化为最小代价流问题的单元;
用于修改最小代价流问题对应的网络图,增加地节点网络单元;所述的地节点网络中,首先生成多个地节点,使电路主输入节点和主输出节点均匀地与这些地节点相连,且每一个地节点所连接的主输入或主输出节点的数目小于某一个指定的阈值ntol,然后再增加一个地节点来连接已生成的多个地节点形成地节点网络;
用于为每个处理器核创建一个线程,并对最小代价流问题进行初始化的单元;
用于对节点进行预处理,并将过剩流节点存储在全局队列中的单元;
用于对于每个处理器核利用并行最小代价流处理网络图的单元,其包括下述子单元:
(1)用于从任务队列中抓取一定的数量的过剩流节点单元;
(2)用于对每一个过剩流节点进行二次检测确定其是否需要处理单元;
(3)用于对需要处理的过剩流节点进行推流或重标记操作单元;
(4)用于与其他处理器核进行同步单元;
(5)用于同步成功时,减小收缩因子,返回上述用于对节点进行预处理、并将过剩流节点存储在全局队列中单元,进行下一轮的分配操作;否则返回上述用于从任务队列中抓取一定的数量的过剩流节点单元,开始检测全局队列并获取潜在的新的过剩流节点的单元;
用于后处理最小代价流的结果得到集成电路设计自动化问题的解的单元。
CN 200910055400 2009-07-24 2009-07-24 用于集成电路设计的多核并行最小代价流方法及装置 Active CN101964004B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910055400 CN101964004B (zh) 2009-07-24 2009-07-24 用于集成电路设计的多核并行最小代价流方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910055400 CN101964004B (zh) 2009-07-24 2009-07-24 用于集成电路设计的多核并行最小代价流方法及装置

Publications (2)

Publication Number Publication Date
CN101964004A CN101964004A (zh) 2011-02-02
CN101964004B true CN101964004B (zh) 2013-08-21

Family

ID=43516877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910055400 Active CN101964004B (zh) 2009-07-24 2009-07-24 用于集成电路设计的多核并行最小代价流方法及装置

Country Status (1)

Country Link
CN (1) CN101964004B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105589736B (zh) * 2015-12-21 2019-03-26 西安电子科技大学 基于网表分割和多线程并行的硬件描述语言仿真加速方法
CN109471734A (zh) * 2018-10-27 2019-03-15 哈尔滨工业大学(威海) 一种新型缓存优化多线程确定性方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414271A (zh) * 2008-12-04 2009-04-22 浙江大学 多核平台下基于硬件计时器与任务队列的调度方法
CN101464965A (zh) * 2009-01-16 2009-06-24 北京航空航天大学 一种基于tbb的多核并行蚁群设计方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414271A (zh) * 2008-12-04 2009-04-22 浙江大学 多核平台下基于硬件计时器与任务队列的调度方法
CN101464965A (zh) * 2009-01-16 2009-06-24 北京航空航天大学 一种基于tbb的多核并行蚁群设计方法

Also Published As

Publication number Publication date
CN101964004A (zh) 2011-02-02

Similar Documents

Publication Publication Date Title
Liu et al. Multi-threaded collision-aware global routing with bounded-length maze routing
CN102193779A (zh) 一种面向MPSoC的多线程调度方法
Song et al. Efficient GPU-based electromagnetic transient simulation for power systems with thread-oriented transformation and automatic code generation
CN101464965B (zh) 一种基于tbb的多核并行蚁群设计方法
CN103885826B (zh) 一种多核嵌入式系统实时任务调度实现方法
CN102855153B (zh) 面向片式多核处理器的流编译优化方法
CN109918199A (zh) 基于gpu的分布式图处理系统
CN107112042A (zh) 数据信号的边沿感知同步
Ait Aba et al. Approximation algorithm for scheduling a chain of tasks on heterogeneous systems
Yazdanpanah et al. Picos: A hardware runtime architecture support for ompss
CN103502945A (zh) 基于旋转的别名保护寄存器中的寄存器分配
Hao et al. An adaptive algorithm for scheduling parallel jobs in meteorological Cloud
Ma et al. HW/SW partitioning for region-based dynamic partial reconfigurable FPGAs
Li et al. Pin-accessible legalization for mixed-cell-height circuits
CN101964004B (zh) 用于集成电路设计的多核并行最小代价流方法及装置
CN106445666A (zh) 一种doacross循环的并行优化方法
Yang et al. Study on static task scheduling based on heterogeneous multi-core processor
CN102467586B (zh) 用于集成电路设计的分布式并行最小代价流方法及装置
CN106598716A (zh) 一种基于多处理器的任务调度方法
Kasprzyk Optimization of Lighting Systems with the use of the Parallelized Genetic Algorithm on Multi-Core Processors using the .NET Technology
Lu et al. Multicore parallelization of min-cost flow for CAD applications
Seceleanu et al. Resource allocation methodology for the segmented bus platform
Lu et al. Multicore parallel min-cost flow algorithm for cad applications
Márquez et al. Parallelism on multicore processors using Parallel. FX
Xu et al. A real-Time task scheduling algorithm for multicore embedded systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant