CN111881641A - 多进程自适应分配的多层超大规模集成电路场路耦合方法 - Google Patents
多进程自适应分配的多层超大规模集成电路场路耦合方法 Download PDFInfo
- Publication number
- CN111881641A CN111881641A CN202010515413.9A CN202010515413A CN111881641A CN 111881641 A CN111881641 A CN 111881641A CN 202010515413 A CN202010515413 A CN 202010515413A CN 111881641 A CN111881641 A CN 111881641A
- Authority
- CN
- China
- Prior art keywords
- nodes
- super
- node
- external circuit
- parallel coarse
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000010168 coupling process Methods 0.000 title claims abstract description 45
- 238000009826 distribution Methods 0.000 title claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 80
- 230000008878 coupling Effects 0.000 claims abstract description 32
- 238000005859 coupling reaction Methods 0.000 claims abstract description 31
- 238000004458 analytical method Methods 0.000 claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims description 69
- 239000013598 vector Substances 0.000 claims description 57
- 230000005684 electric field Effects 0.000 claims description 34
- 239000002245 particle Substances 0.000 claims description 28
- 239000011362 coarse particle Substances 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000001172 regenerating effect Effects 0.000 claims description 3
- 230000003044 adaptive effect Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 43
- 230000015654 memory Effects 0.000 abstract description 23
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 abstract description 3
- 238000004806 packaging method and process Methods 0.000 abstract description 3
- 238000009827 uniform distribution Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 239000008187 granular material Substances 0.000 description 6
- 230000009191 jumping Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了多进程自适应分配的超大规模集成电路场路耦合方法,通过将三维问题简化为二维问题,采用超节点技术,完美实现了多层超大规模集成电路直流场分析的场路耦合的快速、准确的计算目标,可以准确、完整地对多层集成电路直流电场进行场路耦合,提高多层集成电路、芯片封装直流电场计算速度。同时,在运算过程中实现粗颗粒并行,极大程度减少进程之间的通信及因为同步而产生的等待时间,同时,由于采用计算任务随机动态分配方法,保证复杂度不对等的计算模型随机均匀分布在各计算节点,避免由于过高的峰值内存导致虚拟内存访问而造成的硬盘读写瓶颈。
Description
技术领域
本申请涉及超大规模集成电路直流场高性能计算技术领域,特别涉及多进程自适应分配的多层超大规模集成电路场路耦合计算方法。
背景技术
在一个超大规模集成电路***中,包括有不同的元器件,各个元器件都有其工作电压。一般情况下,允许输入到元器件的电压在其工作电压的5%上下浮动,否则会引起元器件的误操作。另一方面,由于金属层不是理想导体,电能在金属层板传输的过程中会产生电压降。这个电压降加上元器件开关动作等引起的交流噪声,会使得实际到达元器件的电压超出其允许输入电压的范围,从而导致***的误操作。
设计者在布置多层超大规模集成电路的电源网络时,还要考察的一个重要因素是板上的电流密度是否过大,因为长时间过大的电流会使得局部发热乃至损坏元器件。通过计算电流密度的分布,可以知道哪些位置的电流密度高于给定的限制,从而改进原来的设计。例如,层与层之间的电流通过过孔(Via)传输,在得知某个过孔的电流密度太大时,可以在该过孔附近增加一些同样的过孔,使该过孔的电流密度降低。
多层超大规模集成电路的直流电场分析主要研究的是供电网络的电压、电流在超大规模集成电路***中的分布。同时,通过在任意两点设置源,可计算出两点间的阻抗,从而可直接获得两点间的电压降。这就需要对集成电路***建立一个数学模型,描叙其内部直流电场分布,然后根据这个模型对其做数值计算,以计算其内部场的分布。在此基础上,计算集成电路各层板上的电流分布及不同端口之间的电压降或电阻。
然而,发明人在实施过程中发现,现有技术中没有高效、高精度并行计算方法针对多层超大规模集成电路的直流电场进行分析,无法适应日益增加的超大规模集成电路、芯片封装的设计需求,且针对多层集成电路直流电场的电场-电路耦合(简称场路耦合)分析,通过扫描超节点对电场和电路方程组进行合并时,如果存在多个外部电路,通常都是逐一编写相互耦合的超节点与电场单元编号,导致场路耦合效率低下,进而影响多层超大规模集成电路的直流电场的计算效率。
另外,在实施过程中需要海量的同类型大规模数值计算。这类大规模数值计算由于不同计算实例具有不同结构,导致不同计算实例的计算复杂度不对等,对于这类不对等的海量计算,需要高效率并行计算方法设计,充分考虑不同实例计算复杂度的不对等,尽可能提高并行计算效率。
常规并行计算基本针对单个计算实例并行,在大量循环的计算部分实现并行,并行颗粒通常很细,这样导致不同进程之间存在大量的数据交换,降低并行效率;其次,由于不同进程计算进度不同,不可避免在需要数据共享和同步时出现大量等待,从而导致整体并行效率很低;再者,由于单个实例计算过程相当部分的计算过程有先后顺序,数据有依赖性,因此针对单个计算实例并行时,有相当部分的计算无法并行化,这也严重降低整体并行效率。
发明内容
(一)申请目的
基于此,为了完美实现多层超大规模集成电路直流场分析的场路耦合的快速、准确的计算目标,解决现阶段没有高效、高精度并行计算方法针对多层超大规模集成电路的直流电场进行分析,进而提升超大规模集成电路、芯片封装的设计能力的问题,以及为了在并行计算过程中最大限度的减少各进程之间的通信,避免多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时完美解决不同计算实例复杂度不对等带来的进程等待问题,进而大大提高并行计算效率,本申请公开了以下技术方案。
(二)技术方案
本申请公开的多进程自适应分配的多层超大规模集成电路场路耦合方法,包括:
步骤100,将执行整体多层超大规模集成电路场路耦合的运算过程的整体运算程序划分为多个互不重叠的运算颗粒,其中,所述运算颗粒为执行相同类型的所有独立运算的运算程序,并且将所述运算颗粒执行的一个独立运算作为一个运算任务;
步骤200,获取各运算颗粒的加权CPU时间和整体集成电路场路耦合运算过程的总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出并行粗颗粒;
步骤300,利用第一并行粗颗粒对多层超大规模集成电路版图的直流电场三维模型进行简化得到多个二维模型,通过有限元分析法建立所述每个第一并行粗颗粒对应的二维模型的电场方程组,最终合并所有第一并行粗颗粒得到所述电场方程组总的稀疏矩阵;
步骤400,利用第二并行粗颗粒通过电路超节点分析法对所述超大规模集成电路的外部电路进行分析进而得到对称正定的外部电路方程组;
步骤500,利用第三并行粗颗粒通过扫描超节点的方式合并所述电场方程组与所述外部电路方程组,建立电场-电路耦合的对称正定方程组;其中,
在执行所述并行粗颗粒的过程中,将同一所述并行粗颗粒执行的所有运算任务的序列随机打乱,形成新的运算任务序列,并按照所述新的运算任务序列将该并行粗颗粒执行的所有运算任务分配到所有进程中,完成运算任务的并行运算。
在一种可能的实施方式中,所述步骤400包括:
步骤410,对每一个第二并行粗颗粒对应的外部电路,生成不包含电压源支路的集成电路的外部电路;
步骤420,对不包含电压源支路的集成电路的外部电路,通过电路超节点分析法建立对称正定的外部电路方程组;
步骤430,对包含电压源支路的集成电路的外部电路,填入超节点电压向量、超节点电流向量、非参考节点的电压向量、超节点和非参考节点的互导矩阵以及超节点导纳矩阵,生成所述超节点电压向量的外部电路方程组;其中,
所述外部电路方程组包含超节点电压向量、超节点电流向量、非参考节点的电压向量、超节点和非参考节点的互导矩阵以及超节点导纳矩阵;
步骤440,收集各第二并行粗颗粒的处理结果,进行耦合,生成所述超节点电压向量的外部电路总的方程组。
在一种可能的实施方式中,所述步骤410包括:
步骤411,定义所有的外部电路节点为初始节点,设置所有所述外部电路节点为超节点,其中,所述初始节点具有初始编号,所述超节点的初始节点设置为本身;
步骤412,将外部电路中所有包含电压源的支路的两个超节点合并为一个超节点,合并该两个超节点的初始节点到合并后的超节点,并删除未被合并的超节点,形成更新的外部电路;
步骤413,判断更新后的外部电路是否包含电压源的支路,在包含电压源的支路时执行步骤412,在不包含电压源的支路时,对所有所述超节点选择一个初始节点作为参考节点,其余初始节点作为非参考节点,其中仅包含一个初始节点的超节点无对应的非参考节点;
步骤414,对所述外部电路所有的所述初始节点依据所述超节点分为参考节点和非参考节点,所述参考节点对应于所述超节点,并对所述参考节点和所述超节点进行重新编号,生成不包含电压源支路的集成电路的外部电路。
在一种可能的实施方式中,所述步骤430中:
所述超节点电压向量是由各超节点参考节点电压构成的向量;
所述超节点电流向量是由所有流入每个超节点电流之和构成的向量;
所述非参考节点的电压向量长度为所有非参考节点个数,其第i个元素Pi为非参考节点i对其参考节点的电位,所述电位是从非参考节点i到其参考节点的路径上所有理想电压源支路的电压和;
所述超节点和非参考节点的互导矩阵的行对应超节点,所述超节点和非参考节点的互导矩阵的列对应非参考点,所述超节点和非参考节点的第i行第j列的元素Pij是超节点i和非参考点j的互导或非参考节点j的自导,其中,若非参考点j属于超节点i,则所述Pij为非参考点j的值为正的自导,若非参考点j不属于超节点i,则所述Pij为超节点i和非参考点j的值为负的互导;
所述超节点导纳矩阵的行和列均对应超节点,所述超节点导纳矩阵的第i行对角元素Pdi为第i个超节点的自导,所述Pdi的值为所有与第i个支路相连的导纳和,所述超节点导纳矩阵的所有非Pdi的元素是第i、j个超节点的互导,该值为所有连接第i、j个超节点支路导纳和的负值。
在一种可能的实施方式中,所述步骤500包括:
步骤510,依据第一并行粗颗粒独立生成的网格节点和外部电路超节点编号,利用第三并行粗颗粒扫描所有的超节点并改变相关的网格节点编号,并在扫描完毕之后重新生成统一连续节点编号;
步骤520,依据所述统一连续节点编号,合并所述第一并行粗颗粒对应的电场方程组和所述外部电路方程组,形成场路耦合且对称正定的统一方程组。
在一种可能的实施方式中,所述步骤510包括:
步骤511,将超节点编号设为在前编号,并将所述网格节点编号设为在后编号,其中,所述网格节点的编号为对其初始编号与所述超节点个数求和得到的数字;
步骤512,根据超节点i包括的节点j,利用第三并行粗颗粒扫描所述网格节点,所述节点j包括参考节点和非参考节点,其中,在网格节点k与所述节点j相连的情况下,将该网格节点k重新编号为j,使该网格节点为所述超节点所在的参考节点或非参考节点;
步骤513,将最后一个所述网格节点的编号改为k,网格节点数减1;
步骤514,判断是否扫描完所有所述超节点,在未扫描完所有所述超节点时执行步骤512,直至扫描完所有超节点。
在一种可能的实施方式中,所述步骤520包括:
步骤521,将第二并行粗颗粒对应的未知量电压向量填入所述统一方程组的,其中,所述未知量电压向量包括作为前部分的超节点的电压以及作为后部分的不与所述外部电路的节点相连的网格节点的电压;
步骤522,将第一并行粗颗粒对应的稀疏矩阵填入所述统一方程组,将第二并行粗颗粒对应的所述超节点导纳矩阵填入所述稀疏矩阵,并将有限元刚度矩阵根据所述网格节点的重新编号填入所述稀疏矩阵的相应位置;
步骤523,将第二并行粗颗粒对应的右端源向量填入所述统一方程组,根据第三并行粗颗粒获得的所述网格节点的重新编号将所述电场方程组对应的右端项填入相应的位置,形成修改后的所述右端项,并将所述第二并行粗颗粒对应的外部电路方程组的右端项合并到所述修改后的右端项前面,建立场路耦合的对称正定的统一方程组,其中,所述外部电路方程组的右端项的位置与所述外部电路的节点编号对应。
在一种可能的实施方式中,所述依据所述加权CPU时间和所述总CPU时间的占比确定出并行粗颗粒包括:
将各运算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个运算颗粒作为一个并行粗颗粒。
在一种可能的实施方式中,所述将同一所述并行粗颗粒执行的所有运算任务的序列随机打乱,形成新的运算任务序列,包括:
将运算任务的序列List0={m},对应生成随机数序列{Rm},m=1,2,3,…,M;
对序列{Rm}从小到大排序,排序后的序列为{Om};
生成新的不重复的运算任务序列List={Lm}。
在一种可能的实施方式中,若所述并行粗颗粒中某运算任务被分配到一进程中,则生成该运算任务的用于表明该运算任务已经被分配标志文件;另一进程在申请分配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志文件存在的情况下使所述另一进程自动尝试申请分配下一运算任务。
(三)有益效果
本申请公开的多进程自适应分配的多层超大规模集成电路场路耦合方法,通过将三维问题简化为多个二维问题,采用超节点技术,完美实现了多层超大规模集成电路直流场分析的场路耦合的快速、准确的计算目标,可以准确、完整地对多层集成电路直流电场进行场路耦合,提高多层集成电路、芯片封装的设计效率。同时,在各个层次的计算中实现不同的粗颗粒并行,极大程度减少进程之间的通信及因为同步而产生的等待时间,同时,由于采用计算任务随机动态分配方法,保证复杂度不对等的计算模型随机均匀分布在各计算节点,避免由于过高的峰值内存导致虚拟内存访问而造成的硬盘读写瓶颈。
附图说明
以下参考附图描述的实施例是示例性的,旨在用于解释和说明本申请,而不能理解为对本申请的保护范围的限制。
图1是本申请公开的多层超大规模集成电路场路耦合计算粗颗粒并行方法实施例的流程示意图。
图2是本申请公开的利用第一并行粗颗粒建立多层超大规模集成电路版图每个二维模型的电场方程组的示意图。
图3是本申请公开的利用第二并行粗颗粒分析超大规模集成电路的外部电路的示意图。
图4是本申请公开的利用第三并行粗颗粒建立电场-电路耦合的对称正定矩阵的流程图。图5是电路场路耦合方法实施例中外部电路与初始节点编号示意图。
图6是电路场路耦合方法实施例中外部电路与超节点编号示意图。
图7是电路场路耦合方法实施例中外部电路-场域及其初始节点编号示意图。
图8是电路场路耦合方法实施例中外部电路-场域及其统一节点编号示意图。
图9是电路场路耦合方法实施例中外部电路-场域及其耦合节点编号示意图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。
下面参考图1-图9详细描述本申请公开的多进程自适应分配的多层超大规模集成电路场路耦合方法实施例。如图1所示,本实施例公开的方法包括如下步骤100至步骤600。
步骤100,将执行整体多层超大规模集成电路场路耦合的运算过程的整体运算程序划分为多个互不重叠的运算颗粒。互不重叠的计算颗粒即互不重叠的涵盖整个计算过程的串行实现代码。其中,运算颗粒为执行相同类型的所有独立运算的运算程序,并且将运算颗粒执行的一个独立运算作为一个运算任务。
在并行计算前,需人工确定进程数,并将其中一个进程作为主进程。
运算颗粒是根据问题运算特征定义的。对不同行业,问题运算特征各不相同。例如对于大规模集成电路电磁场分布计算,在进行某种结构的多层集成电路板及其外部电路进行场-路耦合时,其运算特征包括:不同版图多边形简化与对齐、不同版图多边形网格细分、多层集成电路场域识别、外部电路矩阵对称化处理、大规模集成电路电磁场分布数值计算稀疏矩阵形成、大规模稀疏矩阵求解以及基于求解的场计算各层板的电流、电位、功率密度分布等。
具体的,若根据上述运算颗粒的定义将整个电路场路耦合运算程序划分为c1、c2、c3、c4共4个运算颗粒,4个运算颗粒可执行整个运算过程的运算任务;若c1执行1个运算任务,c2执行200个运算任务,c3执行5个运算任务,c4执行500个运算任务;那么共706个运算任务构成整个运算过程,上述整个运算过程只需c1、c2、c3、c4共4个运算颗粒来实现。其中执行整个运算过程依次需要c1、c2、c3、c4这4个运算颗粒执行,且c1、c2、c3、c4中均包含至少1个独立运算(运算任务)。
步骤200,获取各运算颗粒的加权CPU时间和整体集成电路场路耦合运算过程的总CPU时间,依据加权CPU时间和总CPU时间的占比确定出并行粗颗粒。具体的,将各运算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加,找出直到累加和超过90%的总CPU时间的运算颗粒,将累加找出的每个运算颗粒作为一个并行粗颗粒。
根据问题运算特征为每个运算颗粒所需执行的所有运算任务中选取一个经典运算任务,并将c1、c2、c3、c4这4个运算颗粒执行的4个经典计算任务实现c1~c4顺序执行一次的串行计算,根据单次计算的串行计算结果,统计4个计算颗粒完成单次经典计算任务计算所需的CPU时间。
其中:运算颗粒的加权CPU时间的运算公式为:Tweight,i=Utask,i*Ti。其中,Tweight,i为第i个运算颗粒的加权CPU时间,Ti为第i个运算颗粒单次运算的CPU时间,Utask,i为第i个运算颗粒执行的运算任务数。
根据各运算颗粒运算所得的加权CPU时间进行大小排序,若c1加权CPU时间为0.1s,c2加权CPU时间为100s,c3加权CPU时间为0.2s,c4加权CPU时间为150s,则最终排序结果为c4>c2>c3>c1;4个运算颗粒的加权CPU时间从大到小依次相加,即T(c4)+T(c2)+…直到时间和大于总CPU时间的90%为止;如果T(c4)+T(c2)>90%,那就是c4、c2分别作为一个并行粗颗粒;如果T(c4)>90%总CPU时间,那么c4为并行粗颗粒。
在执行整个运算过程的整个运算程序中,并行粗颗粒c2并行计算前需要先执行c1;并行粗颗粒c4并行计算前需要先执行c3,其中c1、c3采用主进程进行执行。
步骤300,如图2所示,利用第一并行粗颗粒对多层超大规模集成电路版图的直流电场三维模型进行简化得到多层电路直流电场的二维模型,通过有限元分析法建立每个第一并行粗颗粒对应的二维模型的电场方程组(也就是场域求解方程组),最终合并所有第一并行粗颗粒得到电场方程组总的稀疏矩阵。图2中,不同场域及其外部电路通过过孔相互耦合,这是因为各层集成电路版图形成的每个场域及其外部电路都不是一个孤立的电气连接,所有场域最终形成一个整体的***。
然而,通过三维方法来求解多层集成电路直流电场的三维模型所需的算力资源较为巨大,在现有的计算资源下,很难用来真正实施分析复杂的超大规模集成电路***。但是,经过对多层超大规模集成电路尺寸特点进行分析可知,在电路放入直流电场方面,由于多层超大规模集成电路中实际PCB板或芯片封装的板放入尺寸远大于板的厚度和板间距,可知直流电场在板的厚度方向是不变的,因此可知可以使用经过简化为二维的方程来求解本需用三维方程求解的问题,因此在步骤300中可以先将三维电场问题简化为二维电场问题。
在步骤300中,多层集成电路直流电场的三维模型是指直流电场模型中电导率σ、电位u的分布均为三维空间坐标(x,y,z)的函数,即:u=u(x,y,z),σ=σ(x,y,z)。该三维模型的函数满足以下方程:
以及满足以下边界条件:
其中,Jn为外部电路的体电流密度。
在步骤300中,多层集成电路直流电场的二维模型是指直流电场模型中电导率σ、电位u的分布均为二维平面坐标(x,y)的函数,即:u=u(x,y),σ=σ(x,y),其分布与z无关。该二维模型对应的二维有限元泛函为:
其中,h为金属层的厚度,σe为网格单元e的电导率,ue为网格单元e的电位,Se为网格单元e的面积。对公式(3)取极值,可形成有限元刚度矩阵。Js为外部激励产生的表面电流密度,其是由外部电路产生的未知量,同时,芯片和电路板通常由电压源通过外部电路驱动,因此可以将外部电路和场通过电路的接入点耦合来进行联合求解。
步骤400,利用第二并行粗颗粒通过电路超节点分析法对超大规模集成电路的外部电路进行分析,得到对称正定的外部电路方程组。其中,电路超节点分析法是基于超节点的外部电路方程组分析方法。超节点是指包含一组电路的节点,一个超节点包含一组电路节点,这组节点任意两点之间的电压都能通过超节点所包含的理想电压源直观地获得,但超节点外任意点与超节点内任意点之间的电位是未知的。通常外部电路包含大量超节点,可将外部电路划分为不同的电路模块,如图3所示,每个电路模块可利用第二并行粗颗粒进行处理。同样,不同外部电路模块之间也有耦合,在利用第二并行粗颗粒处理完每个外部电路模块后,再收集各第二并行粗颗粒的处理结果并进行耦合。
目前现有技术使用普通节点分析法对支路外部电路进行分析并得到以下节点电压方程:
其中,G=AYGEAY T,AY和AE均为基本关联矩阵,AY与不含理想电压源的支路相关联,AE与包含理想电压源的支路相关联,J=AY(GEug-ig)为等效的节点电流源向量,GE为支路导纳矩阵,iE为理想电压源支路的电流向量,ug为电压源支路向量,ig为电流源支路向量,u为节点电压向量,E为理想电压源支路的电压向量。
在进行场路耦合过程中,采用直接将方程(4)的节点电压方程与有限元方程耦合的方式,则产生以下缺陷:首先,方程(4)的矩阵中部分对角元素为0,这使得耦合后的矩阵并非正定的矩阵,导致求解时间增加。其次,直接将方程(4)中的矩阵合并到有限元刚度矩阵中会使得理想电压源的电流作为待求解的未知量,导致未知量的增加,并且与有限元法中把节点电压作为未知量不相符。
因此,在步骤400中采用电路超节点分析方法形成对称正定的外部电路方程组。
具体的,步骤400包括以下步骤410至步骤430。
步骤410,对每一个第二并行粗颗粒对应的外部电路,生成不包含电压源支路的集成电路的外部电路。具体的,步骤410包括以下步骤411至步骤414。
步骤411,定义形成超节点之前所有的外部电路节点为初始节点,设置所有外部电路节点为超节点。其中,各初始节点具有初始编号,超节点的初始节点设置为本身。
步骤412,搜索外部电路中所有包含电压源的支路,将外部电路中所有包含电压源的支路的两个超节点合并为一个超节点,合并该两个超节点的初始节点到合并后的超节点,并删除未被合并的超节点,形成更新的外部电路。
步骤413,判断更新后的外部电路是否包含电压源的支路,在包含电压源的支路时则跳转到步骤412并执行步骤412,而在不包含电压源的支路时,对所有超节点选择一个初始节点作为参考节点,其余初始节点作为非参考节点,其中仅包含一个初始节点的超节点无对应的非参考节点。
在一个超节点中,其中的一个节点将被选为参考点,如图5中的节点1和2,其他节点将被选为非参考点,如图6中的节点1'和2'。
步骤414,对外部电路所有的初始节点依据超节点分为参考节点和非参考节点,参考节点对应于超节点,并对参考节点和超节点进行重新编号,生成不包含电压源支路的集成电路的外部电路。其中,重新编号是指对每个超节点选择一个节点作为该超节点的参考节点,其他节点为该超节点的非参考节点,首先针对所有参考节点进行连续编号,编号数目为超节点的数目,其次再重新针对所有非参考节点参照参考节点进行连续编号,编号数目为非参考节点的数目。
图5的外部电路中包含有三个理想电压源支路的电路,并且节点(1,3)形成一个超节点,节点(2,7)同样形成一个超节点。图6的外部电路中标明了超节点,其中(1,1')对应图5中的节点(1,3),(2,2')对应图6中的节点(2,7)。
步骤420,对不包含电压源支路的集成电路的外部电路,通过电路超节点分析法建立对称正定的外部电路方程组。其中,外部电路方程组包含超节点电压向量、超节点电流向量、非参考节点的电压向量、超节点和非参考节点的互导矩阵以及超节点导纳矩阵。
步骤430,对包含电压源支路的集成电路的外部电路,填入超节点电压向量、超节点电流向量、非参考节点的电压向量、超节点和非参考节点的互导矩阵以及超节点导纳矩阵,生成超节点电压向量的外部电路方程组。
具体的,步骤430中:
超节点电压向量是由各超节点参考节点电压构成的向量;
超节点电流向量是由所有流入每个超节点电流之和构成的向量;
非参考节点的电压向量长度为所有非参考节点个数,其第i个元素Pi为非参考节点i对其参考节点的电位,电位是从非参考节点i到其参考节点的路径上所有理想电压源支路的电压和;
超节点和非参考节点的互导矩阵的行对应超节点,超节点和非参考节点的互导矩阵的列对应非参考点,超节点和非参考节点的第i行第j列的元素Pij是超节点i和非参考点j的互导或非参考节点j的自导,其中,若非参考点j属于超节点i,则Pij为非参考点j的值为正的自导,若非参考点j不属于超节点i,则Pij为超节点i和非参考点j的值为负的互导;
超节点导纳矩阵的行和列均对应超节点,超节点导纳矩阵的第i行对角元素Pdi为第i个超节点的自导,Pdi的值为所有与第i个支路相连的导纳和,超节点导纳矩阵的所有非Pdi的元素是第i、j个超节点的互导,该值为所有连接第i、j个超节点支路导纳和的负值,也就是说,非Pdi的元素是第i行、第j(j≠i)列元素。
超节点电压是指这个超节点对应的参考点的电压,而超节点的自导、互导及电流为其包含的所有节点的自导、互导及电流总和。采用超节点的方法改写公式(4)后,得到以下的外部电路方程:
GsupUsup=Isup-GmulUnonref 方程(5);
方程(5)中,Usup为超节点的电压向量;Gsup为超节点的导纳矩阵,该矩阵是正定对称的;Isup为超节点的电流向量;Unonref为非参考节点的电压向量,长度为nnonref,nnonref为所有非参考节点的个数;Gmul为超节点和非参考节点的互导矩阵,其大小为n×nnonref,n为超节点数量。
假设所有超节点被编号为1,2,…,n,非参考节点被编号为1,2,…,nnonref,矩阵Unonref和Gmul可按以下规则形成:矩阵Unonref的第i个元素为非参考节点i对其参考节点的电位,它是从非参考节点到其参考节点的路径上所有理想电压源支路的电压代数和。矩阵Gmul的行对应超节点,列对应非参考点,Gi,j是超节点i和非参考点j的互导,如果非参考点j属于超节点i,其互导即为非参考点j的自导,值为正,否则值为负。
在计算上述矩阵之前,需先重新针对超节点和非参考点进行编号。以图5所示的模型为例,图中的非参考点被标为1',2',超节点被重新编号为1,2,…,5,超节点和非参考点的重新编号结果如图6所示。图中,模型中有2个超节点和2个非参考点,对应公式(5)中的矩阵如下所示:
矩阵(6)为:
由此得到对称正定的外部电路方程组。
步骤440,收集各第二并行粗颗粒的处理结果,进行耦合,最终得到对称正定的外部电路总的方程组。
步骤500,如图4所示,利用第三并行粗颗粒通过扫描超节点的方式合并第一并行粗颗粒独立生成的电场方程组与外部电路方程组,在外部电路与超大规模集成电路的接触点进行耦合,建立电场-电路耦合的对称正定方程组。利用第三并行粗颗粒扫描超节点对方程组进行合并,若所有的超节点扫描完毕,则结束扫描,最后收集各并行粗颗粒的扫描结果进行合并。
步骤500中,假设外部电路中有NC个超节点,有限元网格中有ND个节点,两者的公共节点有NCD个,也就是说有NCD个网格节点与电路节点相连,则可知合并后总的未知量有NC+ND-NCD,在进行场路耦合之前,先对节点重新编号。
具体的,步骤500包括以下步骤510和步骤520。
步骤510,依据第一并行粗颗粒独立生成的网格节点和外部电路超节点编号,利用第三并行粗颗粒扫描所有的超节点并改变相关的网格节点编号,并在扫描完毕之后重新生成统一连续节点编号。
步骤510包括以下步骤511和步骤514。
步骤511,将超节点编号设为在前编号,并将网格节点编号设为在后编号,其中,网格节点的编号为对其初始编号与超节点个数求和得到的数字。例如将超节点的个数设为m个,网格节点的编号为在其初始编号的基础上加上m。
步骤512,根据超节点i包括的节点j,利用第三并行粗颗粒扫描网格节点,节点j包括参考节点和非参考节点,其中,在网格节点k与节点j相连的情况下,将该网格节点k重新编号为j,使该网格节点为超节点所在的参考节点或非参考节点。
步骤513,将最后一个网格节点的编号改为k,网格节点数减1。
步骤514,判断是否扫描完所有超节点,在未扫描完所有超节点时执行步骤512,直至扫描完所有超节点。
继续以上述的假设为例,因为有NC个超节点,网格节点的编号应在原来的基础上加上NC。对于超节点i,以它包括的所有节点j(参考节点和非参考节点)为准来搜索网格节点。如果网格节点k与电路节点j相连,将网格节点k重新编号为j,同时将最后一个网格节点的编号改为k。扫描完所有电路节点后,最后网格节点将编号到NC+ND-NCD。
如图7所示,其中有16个网格节点,外部电路采用图5所示的模型,网格节点1,3,4分别与电路节点6,7,5相连。图8显示了外部电路节点修改为超节点并将网格节点重新编号后的结果,为了合并图8中的电路节点和网格节点,图8中的网格节点8,9,6在图9中被分别重新编号为2',4和5,同时,图8中的网格节点21,20,19在图9中被分别重新编号为8,9,6。最后,合并后总的未知量个数为5+16-3=18,这些未知量为电路中超节点的电位和网格节点的电位。图9为本实施例中外部电路-场域及其耦合节点编号的示意图,其显示的是所述节点的最终编号。
步骤520,依据统一连续节点编号,合并第一并行粗颗粒对应的电场方程组和外部电路方程组,形成场路耦合且对称正定的统一方程组。
步骤520包括以下步骤521-步骤523。
步骤521,将第二并行粗颗粒对应的未知量电压向量填入所述统一方程组,其中,未知量电压向量包括作为前部分的超节点的电压以及作为后部分的不与外部电路的节点相连的网格节点的电压。
步骤522,将第一并行粗颗粒对应的稀疏矩阵填入所述统一方程组,将第二并行粗颗粒对应的所述超节点导纳矩阵填入所述稀疏矩阵,并将有限元刚度矩阵根据网格节点的重新编号填入稀疏矩阵的相应位置。
步骤523,将第二并行粗颗粒对应的右端源向量填入所述统一方程组,根据第三并行粗颗粒获得的所述网格节点的重新编号将所述电场方程组对应的右端项填入相应的位置,形成修改后的右端项,并将第二并行粗颗粒对应的外部电路方程组的右端项合并到修改后的右端项前面,建立场路耦合的对称正定的统一方程组,其中,外部电路方程组的右端项的位置与外部电路的节点编号对应。
根据重新编号的节点编号,电压向量可由如下方式构成:
电压向量的前部分为电路超节点电压,后部分为不与外部电路节点相连的网格节点的电压。形成矩阵Gsup后,超节点的编号不再改变,因此矩阵Gsup的元素可直接填入稀疏矩阵相同的位置中去。但根据场域求解方程处理得到的有限元单元刚度矩阵则需要根据节点的重新编号填写入到稀疏矩阵相应的位置。由于新的节点编号将外部电路节点排在前面,首先须将有限元方程组有限元单元刚度矩阵对应的右端项填写入相应的位置,形成修改后的右端项,然后,将外部电路的右端项直接合并到修改后的右端项前面,其位置与外部电路的节点编号对应。至此完成整个场路耦合过程。
在步骤300至步骤500的执行过程中,均采用了并行粗颗粒执行运算。在执行每个并行粗颗粒的过程中,将同一并行粗颗粒执行的所有运算任务的序列随机打乱,形成新的运算任务序列,并按照新的运算任务序列将该并行粗颗粒执行的所有运算任务分配到所有进程中,完成运算任务的并行运算。
具体的,随机打乱运算任务序列的方式为:
首先将运算任务的序列List0={m},对应生成随机数序列{Rm},m=
1,2,3,…,M。然后对序列{Rm}从小到大排序,排序后的序列为{Om}。最后生成新的不重复的运算任务序列List={Lm},Lm为Om在Rm中的位置。
其关键在于将并行粗颗粒中所有运算任务的序列List0={1,2,3,…,M}随机打乱,产生新的不重复的运算任务序列List={L1,L2,…,LM},然后按照该序列顺序分配运算任务,即等效为对原始运算任务进行随机分配,该随机分配策略特征在于随机分配方案能彻底打乱所有运算任务的分配顺序,从而实现各运算节点同时运算的任务占用的峰值内存总和由进程数和所有模型(运算颗粒)占用峰值内存的平均值而非最高值决定。
主进程按照形成新的计算任务序列将该并行粗颗粒所需执行的所有运算任务分配到包含主进程的所有进程中,并完成并行粗颗粒执行的所有运算任务的并行运算。
另外,若并行粗颗粒中某运算任务被分配到一进程中,则生成该运算任务的用于表明该运算任务已经被分配标志文件;另一进程在申请分配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志文件存在的情况下使另一进程自动尝试申请分配下一运算任务。
在多进程并行运算过程中,各个进程分配到某个运算任务的机会是均等的,如果不采取任何措施,可能导致多个进程被分配到同一运算任务,造成运算资源的浪费,因此必须采取某种措施,使得所有运算任务被唯一分配到某个进程。达到这一目的最简单也最直观的措施是分配任务及时标记,即任务被分配到某一进程的同时即将该任务进行标记,这样其他进程不再分配该任务。但由于并行运算时各进程的变量一般情况下相互独立,且运算任务不对称,各进程运算状态不同,任何进程通过变量标记任务被分配的信息无法立即被传递到其他进程,因此必须采用一种外在显式的标记方法使得运算任务一旦被标记,所有进程都能获得这个信息。因此,若并行粗颗粒中运算任务被分配到进程中,马上生成运算任务的标志文件;某一进程在申请分配某一运算任务时,将试图生成该运算任务的标志文件,如果该标志文件存在,则表明该运算任务已经被分配,该进程将自动尝试申请分配下一个运算任务。
利用标志文件来实现正确分配运算任务的具体实现步骤为:
步骤A1、一进程申请分配第i个运算任务;
步骤A2、判断第i个运算任务的标志文件Fi是否存在,若存在则跳至步骤A8,若不存在则跳至步骤A3;
步骤A3、判断标志文件Fi是否被锁定,若被锁定则跳至步骤A8,若未被锁定则跳至步骤A4;
步骤A4、锁定标志文件Fi;
步骤A5、生成标志文件Fi;
步骤A6、标志文件Fi解锁;
步骤A7、完成第i个运算任务的运算;
步骤A8、判断并行粗颗粒中的所有运算任务是否全部完成,若未完成则i=i+1,并返回步骤A1,若已完成则跳至步骤A9;
步骤A9、该并行粗颗粒所需执行的所有运算任务全部分配到所有进程中,该并行粗颗粒的分配结束;其返回执行其他并行粗颗粒分配其各自所需执行的所有运算任务。
上述利用标志文件来实现正确分配运算任务可以是利用文件标记技术实现。文件标记技术采用文件锁定与解锁技术,文件锁定与解锁技术保证一次只能一个进程读/写同一运算任务,防止多个进程同时操作同一文件,导致重复运算同一个运算任务。文件读写锁具有很高的并行性,可以有多个线程同时占用读模式的读写锁,但是只能有一个线程占用写模式的读写锁,读写锁的三种状态:
1、当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞;
2、当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是以写模式对它进行加锁的线程将会被阻塞;
3、当读写锁在读模式的锁状态时,如果有另外的线程试图以写模式加锁,读写锁通常会阻塞随后的读模式锁的请求,这样可以避免读模式锁长期占用,而等待的写模式锁请求则长期阻塞。
在执行步骤300、400、500时分别利用了三个并行粗颗粒,假设这三个并行粗颗粒分别为c2、c3、c4,而另有执行于步骤300之前的前处理步骤(预处理)及执行完步骤500之后的后处理步骤(如归并、整理等),前处理步骤对应无需并行运算的运算颗粒c1,后处理步骤对应无需并行运算的运算颗粒c5。则主进程执行运算颗粒c1,并通过所有进程实现并行粗颗粒c2需要执行的所有运算任务的并行运算,主进程c转入下一个并行粗颗粒c3,采用c2类似的方法,并行粗颗粒c3和c4通过所有进程实现需要执行的所有运算任务的并行运算,完成所有并行粗颗粒的并行运算,最后执行c5以结束整个电路场路耦合程序。
在电路场路耦合程序中,不同模型运算需要的内存也有较大差异,例如运算不同模型所需的内存峰值最小约为8GB,最大则超过20GB。如果一个集群每个节点内存为48GB,利用该集群采用二阶有限元并行运算,最简单的模型可以同时开启6个进程,最复杂的模型则只能同时开启2个进程,否则***会将部分硬盘空间作为虚拟内存供程序使用。目前常用的HDD硬盘读写速度在80MB/s左右,而物理内存的读写速度有百倍以上的提高,例如,对于DDR31333MHz的服务器内存,其数据传输速率达到10.6GB/s。这一比较结果说明,如果并行运算开启的进程过多,导致运算过程中部分硬盘存储空间被当作虚拟内存读取,将使得程序运行速度降低百倍以上。为避免运算过程中部分硬盘存储空间被当作虚拟内存读取的现象,在开启进程时,需要考虑每个进程运行时可能需要的最大内存,以此为依据确定每个节点能开启的最大进程数。如果采用普通方法粗颗粒并行运算,则每节点最多能开启2个进程。实验结果表明,采用本实施例能够使每节点开启4个进程,内存使用率长期在80%以上,且无硬盘空间作为虚拟内存供程序使用的情况,基本做到了内存使用峰值平均化和内存峰值出现时间上的错位。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种多进程自适应分配的多层超大规模集成电路场路耦合方法,其特征在于,包括:
步骤100,将执行整体多层超大规模集成电路场路耦合的运算过程的整体运算程序划分为多个互不重叠的运算颗粒,其中,所述运算颗粒为执行相同类型的所有独立运算的运算程序,并且将所述运算颗粒执行的一个独立运算作为一个运算任务;
步骤200,获取各运算颗粒的加权CPU时间和整体集成电路场路耦合运算过程的总CPU时间,依据所述加权CPU时间和所述总CPU时间的占比确定出并行粗颗粒;
步骤300,利用第一并行粗颗粒对多层超大规模集成电路版图的直流电场三维模型进行简化得到多个二维模型,通过有限元分析法建立所述每个第一并行粗颗粒对应的二维模型的电场方程组,最终合并所有第一并行粗颗粒得到所述电场方程组总的稀疏矩阵;
步骤400,利用第二并行粗颗粒通过电路超节点分析法对所述超大规模集成电路的外部电路进行分析进而得到对称正定的外部电路方程组;
步骤500,利用第三并行粗颗粒通过扫描超节点的方式合并所述电场方程组与所述外部电路方程组,建立电场-电路耦合的对称正定方程组;其中,
在执行所述并行粗颗粒的过程中,将同一所述并行粗颗粒执行的所有运算任务的序列随机打乱,形成新的运算任务序列,并按照所述新的运算任务序列将该并行粗颗粒执行的所有运算任务分配到所有进程中,完成运算任务的并行运算。
2.如权利要求1所述的方法,其特征在于,所述步骤400包括:
步骤410,对每一个第二并行粗颗粒对应的外部电路,生成不包含电压源支路的集成电路的外部电路;
步骤420,对不包含电压源支路的集成电路的外部电路,通过电路超节点分析法建立对称正定的外部电路方程组;
步骤430,对包含电压源支路的集成电路的外部电路,填入超节点电压向量、超节点电流向量、非参考节点的电压向量、超节点和非参考节点的互导矩阵以及超节点导纳矩阵,生成所述超节点电压向量的外部电路方程组,所述外部电路方程组包含超节点电压向量、超节点电流向量、非参考节点的电压向量、超节点和非参考节点的互导矩阵以及超节点导纳矩阵;
步骤440,收集各第二并行粗颗粒的处理结果,进行耦合,生成所述超节点电压向量的外部电路总的方程组。
3.如权利要求2所述的方法,其特征在于,所述步骤410包括:
步骤411,定义所有的外部电路节点为初始节点,设置所有所述外部电路节点为超节点,其中,所述初始节点具有初始编号,所述超节点的初始节点设置为本身;
步骤412,将外部电路中所有包含电压源的支路的两个超节点合并为一个超节点,合并该两个超节点的初始节点到合并后的超节点,并删除未被合并的超节点,形成更新的外部电路;
步骤413,判断更新后的外部电路是否包含电压源的支路,在包含电压源的支路时执行步骤412,在不包含电压源的支路时,对所有所述超节点选择一个初始节点作为参考节点,其余初始节点作为非参考节点,其中仅包含一个初始节点的超节点无对应的非参考节点;
步骤414,对所述外部电路所有的所述初始节点依据所述超节点分为参考节点和非参考节点,所述参考节点对应于所述超节点,并对所述参考节点和所述超节点进行重新编号,生成不包含电压源支路的集成电路的外部电路。
4.如权利要求2或3所述的方法,其特征在于,所述步骤430中:
所述超节点电压向量是由各超节点参考节点电压构成的向量;
所述超节点电流向量是由所有流入每个超节点电流之和构成的向量;
所述非参考节点的电压向量长度为所有非参考节点个数,其第i个元素Pi为非参考节点i对其参考节点的电位,所述电位是从非参考节点i到其参考节点的路径上所有理想电压源支路的电压和;
所述超节点和非参考节点的互导矩阵的行对应超节点,所述超节点和非参考节点的互导矩阵的列对应非参考点,所述超节点和非参考节点的第i行第j列的元素Pij是超节点i和非参考点j的互导或非参考节点j的自导,其中,若非参考点j属于超节点i,则所述Pij为非参考点j的值为正的自导,若非参考点j不属于超节点i,则所述Pij为超节点i和非参考点j的值为负的互导;
所述超节点导纳矩阵的行和列均对应超节点,所述超节点导纳矩阵的第i行对角元素Pdi为第i个超节点的自导,所述Pdi的值为所有与第i个支路相连的导纳和,所述超节点导纳矩阵的所有非Pdi的元素是第i、j个超节点的互导,该值为所有连接第i、j个超节点支路导纳和的负值。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述步骤500包括:
步骤510,依据第一并行粗颗粒独立生成的网格节点和外部电路超节点编号,利用第三并行粗颗粒扫描所有的超节点并改变相关的网格节点编号,并在扫描完毕之后重新生成统一连续节点编号;
步骤520,依据所述统一连续节点编号,合并所述第一并行粗颗粒对应的电场方程组和所述外部电路方程组,形成场路耦合且对称正定的统一方程组。
6.如权利要求5所述的方法,其特征在于,所述步骤510包括:
步骤511,将超节点编号设为在前编号,并将所述网格节点编号设为在后编号,其中,所述网格节点的编号为对其初始编号与所述超节点个数求和得到的数字;
步骤512,根据超节点i包括的节点j,利用第三并行粗颗粒扫描所述网格节点,所述节点j包括参考节点和非参考节点,其中,在网格节点k与所述节点j相连的情况下,将该网格节点k重新编号为j,使该网格节点为所述超节点所在的参考节点或非参考节点;
步骤513,将最后一个所述网格节点的编号改为k,网格节点数减1;
步骤514,判断是否扫描完所有所述超节点,在未扫描完所有所述超节点时执行步骤512,直至扫描完所有超节点。
7.如权利要求5或6所述的方法,其特征在于,所述步骤520包括:
步骤521,将第二并行粗颗粒对应的未知量电压向量填入所述统一方程组,其中,所述未知量电压向量包括作为前部分的超节点的电压以及作为后部分的不与所述外部电路的节点相连的网格节点的电压;
步骤522,将第一并行粗颗粒对应的稀疏矩阵填入所述统一方程组,将第二并行粗颗粒对应的所述超节点导纳矩阵填入所述稀疏矩阵,并将有限元刚度矩阵根据所述网格节点的重新编号填入所述稀疏矩阵的相应位置;
步骤523,将第二并行粗颗粒对应的右端源向量填入所述统一方程组,根据第三并行粗颗粒获得的所述网格节点的重新编号将所述电场方程组对应的右端项填入相应的位置,形成修改后的所述右端项,并将所述第二并行粗颗粒对应的外部电路方程组的右端项合并到所述修改后的右端项前面,建立场路耦合的对称正定的统一方程组,其中,所述外部电路方程组的右端项的位置与所述外部电路的节点编号对应。
8.如权利要求1至7中任一项所述的方法,其特征在于,所述依据所述加权CPU时间和所述总CPU时间的占比确定出并行粗颗粒包括:
将各运算颗粒的加权CPU时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总CPU时间,将所述累加和之中的每个运算颗粒作为一个并行粗颗粒。
9.如权利要求8所述的方法,其特征在于,所述将同一所述并行粗颗粒执行的所有运算任务的序列随机打乱,形成新的运算任务序列,包括:
将运算任务的序列List0={m},对应生成随机数序列{Rm},m=1,2,3,…,M;
对序列{Rm}从小到大排序,排序后的序列为{0m};
生成新的不重复的运算任务序列List={Lm}。
10.如权利要求8所述的方法,其特征在于,若所述并行粗颗粒中某运算任务被分配到一进程中,则生成该运算任务的用于表明该运算任务已经被分配标志文件;另一进程在申请分配某一运算任务时,将尝试生成该运算任务的标志文件,并在标志文件存在的情况下使所述另一进程自动尝试申请分配下一运算任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515413.9A CN111881641A (zh) | 2020-06-08 | 2020-06-08 | 多进程自适应分配的多层超大规模集成电路场路耦合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515413.9A CN111881641A (zh) | 2020-06-08 | 2020-06-08 | 多进程自适应分配的多层超大规模集成电路场路耦合方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111881641A true CN111881641A (zh) | 2020-11-03 |
Family
ID=73156468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010515413.9A Pending CN111881641A (zh) | 2020-06-08 | 2020-06-08 | 多进程自适应分配的多层超大规模集成电路场路耦合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881641A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287625A (zh) * | 2020-12-21 | 2021-01-29 | 北京智芯仿真科技有限公司 | 一种***级集成电路直流压降的并行分析方法及*** |
CN112307709A (zh) * | 2020-12-21 | 2021-02-02 | 北京智芯仿真科技有限公司 | ***级集成电路直流压降的端口等效并行分析方法及*** |
CN112307710A (zh) * | 2020-12-21 | 2021-02-02 | 北京智芯仿真科技有限公司 | 一种***级集成电路的直流压降分析方法及*** |
CN112818585A (zh) * | 2021-04-20 | 2021-05-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置 |
CN112989756A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合动态施加的粗颗粒并行迭代方法及装置 |
CN112989677A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 大规模集成电路层间耦合部分累加计算的迭代方法及装置 |
CN112989676A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 层间耦合即时更新的集成电路电流分布的迭代方法及装置 |
CN112989678A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置 |
CN112989675A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合即时更新的粗颗粒并行迭代方法及装置 |
CN114691375A (zh) * | 2022-06-02 | 2022-07-01 | 青岛展诚科技有限公司 | 基于并行算法的集成电路电阻抽取方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030109995A1 (en) * | 2001-11-20 | 2003-06-12 | Yuichi Mabuchi | Method of deducing equivalent circuit and system for the same |
CN101908087A (zh) * | 2010-07-16 | 2010-12-08 | 清华大学 | 基于gpu的集成电路电源地线网络的并行仿真方法 |
CN104035817A (zh) * | 2014-07-08 | 2014-09-10 | 领佰思自动化科技(上海)有限公司 | 大规模集成电路物理实现的分布式并行计算方法及其*** |
CN106055401A (zh) * | 2016-06-13 | 2016-10-26 | 北京唯智佳辰科技发展有限责任公司 | 海量计算粗颗粒并行的自动启停及计算任务动态分配方法 |
CN106095574A (zh) * | 2016-06-13 | 2016-11-09 | 北京唯智佳辰科技发展有限责任公司 | 海量计算粗颗粒并行实现及计算任务随机动态分配方法 |
CN110688807A (zh) * | 2019-12-10 | 2020-01-14 | 北京唯智佳辰科技发展有限责任公司 | 一种多层集成电路直流电场的场路耦合方法及装置 |
-
2020
- 2020-06-08 CN CN202010515413.9A patent/CN111881641A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030109995A1 (en) * | 2001-11-20 | 2003-06-12 | Yuichi Mabuchi | Method of deducing equivalent circuit and system for the same |
CN101908087A (zh) * | 2010-07-16 | 2010-12-08 | 清华大学 | 基于gpu的集成电路电源地线网络的并行仿真方法 |
CN104035817A (zh) * | 2014-07-08 | 2014-09-10 | 领佰思自动化科技(上海)有限公司 | 大规模集成电路物理实现的分布式并行计算方法及其*** |
CN106055401A (zh) * | 2016-06-13 | 2016-10-26 | 北京唯智佳辰科技发展有限责任公司 | 海量计算粗颗粒并行的自动启停及计算任务动态分配方法 |
CN106095574A (zh) * | 2016-06-13 | 2016-11-09 | 北京唯智佳辰科技发展有限责任公司 | 海量计算粗颗粒并行实现及计算任务随机动态分配方法 |
CN110688807A (zh) * | 2019-12-10 | 2020-01-14 | 北京唯智佳辰科技发展有限责任公司 | 一种多层集成电路直流电场的场路耦合方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287625A (zh) * | 2020-12-21 | 2021-01-29 | 北京智芯仿真科技有限公司 | 一种***级集成电路直流压降的并行分析方法及*** |
CN112307709A (zh) * | 2020-12-21 | 2021-02-02 | 北京智芯仿真科技有限公司 | ***级集成电路直流压降的端口等效并行分析方法及*** |
CN112307710A (zh) * | 2020-12-21 | 2021-02-02 | 北京智芯仿真科技有限公司 | 一种***级集成电路的直流压降分析方法及*** |
CN112307710B (zh) * | 2020-12-21 | 2021-04-02 | 北京智芯仿真科技有限公司 | 一种***级集成电路的直流压降分析方法及*** |
CN112307709B (zh) * | 2020-12-21 | 2021-04-06 | 北京智芯仿真科技有限公司 | ***级集成电路直流压降的端口等效并行分析方法及*** |
CN112818585A (zh) * | 2021-04-20 | 2021-05-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置 |
CN112989756A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合动态施加的粗颗粒并行迭代方法及装置 |
CN112989677A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 大规模集成电路层间耦合部分累加计算的迭代方法及装置 |
CN112989676A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 层间耦合即时更新的集成电路电流分布的迭代方法及装置 |
CN112989678A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合部分累加的粗颗粒并行迭代方法及装置 |
CN112989675A (zh) * | 2021-04-20 | 2021-06-18 | 北京智芯仿真科技有限公司 | 集成电路层间耦合即时更新的粗颗粒并行迭代方法及装置 |
CN112818585B (zh) * | 2021-04-20 | 2021-07-13 | 北京智芯仿真科技有限公司 | 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置 |
CN112989676B (zh) * | 2021-04-20 | 2021-07-20 | 北京智芯仿真科技有限公司 | 层间耦合即时更新的集成电路电流分布的迭代方法及装置 |
CN112989675B (zh) * | 2021-04-20 | 2021-09-14 | 北京智芯仿真科技有限公司 | 集成电路层间耦合即时更新的粗颗粒并行迭代方法及装置 |
CN114691375A (zh) * | 2022-06-02 | 2022-07-01 | 青岛展诚科技有限公司 | 基于并行算法的集成电路电阻抽取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881641A (zh) | 多进程自适应分配的多层超大规模集成电路场路耦合方法 | |
CN111898330B (zh) | 基于多层次并行策略的集成电路电磁响应计算方法及装置 | |
CN111898331A (zh) | 超大规模集成电路频域仿真计算任务随机动态分配方法 | |
JP2719509B2 (ja) | グラフ分割化システム | |
CN111898332B (zh) | 超大规模集成电路频域仿真自适应频点提取与计算方法 | |
CN112287625B (zh) | 一种***级集成电路直流压降的并行分析方法及*** | |
CN109726441B (zh) | 体和面混合gpu并行的计算电磁学dgtd方法 | |
CN111881643A (zh) | 进程自启停的基于频域电磁响应的集成电路版图优化方法 | |
Yu et al. | Efficient parallel power grid analysis via additive schwarz method | |
Singh et al. | Partition-based algorithm for power grid design using locality | |
CN112307709B (zh) | ***级集成电路直流压降的端口等效并行分析方法及*** | |
CN112818585B (zh) | 集成电路层间耦合的迭代计算并行颗粒的划分方法及装置 | |
Abboud et al. | Mathematical methods for physical layout of printed circuit boards: an overview | |
CN116384313A (zh) | 一种集成电路全局布局方法、电子设备和存储介质 | |
CN112307710B (zh) | 一种***级集成电路的直流压降分析方法及*** | |
Lu et al. | Study of content-based image retrieval using parallel computing technique | |
CN112257376A (zh) | 馈通路径的规划方法及装置、电子设备、存储介质 | |
Diamantopoulos et al. | A shared memory parallel multi-mesh fast marching method for re-distancing | |
CN112287627B (zh) | 一种***级集成电路直流压降的端口等效分析方法及*** | |
Minz et al. | Layer assignment for reliable system-on-package | |
CN112989675B (zh) | 集成电路层间耦合即时更新的粗颗粒并行迭代方法及装置 | |
Krishnamurthy et al. | Parallel MATLAB Techniques | |
Kaushal et al. | Modified clustered approach for performance escalation of distributed real-time system | |
Lee et al. | NaPer: A TSV Noise-Aware Placer | |
Patnaik et al. | Implementation of placement and routing algorithms for computer aided design of printed circuit boards |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201103 |
|
RJ01 | Rejection of invention patent application after publication |