进程自启停的基于频域电磁响应的集成电路版图优化方法

文档序号:971422 发布日期:2020-11-03 浏览:2次 >En<

阅读说明:本技术 进程自启停的基于频域电磁响应的集成电路版图优化方法 (Integrated circuit layout optimization method based on frequency domain electromagnetic response and capable of automatically starting and stopping process ) 是由 唐章宏 邹军 黄承清 王芬 汲亚飞 于 2020-06-08 设计创作,主要内容包括:本申请公开了进程自启停的基于频域电磁响应的集成电路版图优化方法,首先划分出多个并行粗颗粒,然后利用并行粗颗粒选取初始频率点,进而算出最优集成电路版图模型个体,并将其频率响应曲线与目标比较,在符合要求时插入新频率点,能够有效避免由于选取的典型优化频率点不足而导致出现伪最优目标,解决了典型优化频率点满足预定目标但整个频段内整体不满足预定目标的问题。另外,在计算过程中应用自动启停技术,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时保证在避免使用虚拟内存的情况下同时开启更多的进程,减少了进程之间的通信,同时解决计算实例复杂度不对等问题,提高并行计算效率。(The application discloses a frequency domain electromagnetic response-based integrated circuit layout optimization method with a process self-starting and self-stopping function. In addition, an automatic start-stop technology is applied in the calculation process, the hard disk read-write bottleneck caused by the fact that the peak value of a memory is larger than that of an available physical memory in the multi-process parallel calculation process is avoided, meanwhile, more processes are guaranteed to be started simultaneously under the condition that the virtual memory is avoided, the communication among the processes is reduced, meanwhile, the problem that the complexity of a calculation example is not equal is solved, and the parallel calculation efficiency is improved.)

进程自启停的基于频域电磁响应的集成电路版图优化方法

技术领域

本申请涉及集成电路版图优化领域,特别涉及进程自启停的基于频域电磁响应的集成电路版图优化方法。

背景技术

集成电路的发展趋势是体积越来越小,但内部包含的单元电路越来越多,这使得半导体器件和由器件组成的单元电路尺寸越来越小,其寄生参数的影响不大,但在芯片中的各单元电路间、PCB及微波多芯片组件(MCM)的各芯片间互连线将引起相当严重的寄生效应。同时,无论芯片或组件,为保护电路及支撑整个电路结构的封装部分不可避免,一些封装结构如馈电线或板、接地线或板、芯片引出焊线或带、多层金属板间的过孔等,对高速信号的传输也产生了非常明显的影响。这些因素需要设计者在研究高速集成电路系统互连和封装结构与半导体单元电路的同时,采用优化设计的方法整体考虑高速电路通过接口构成的整体系统在整个工作频段的电特性。

然而,实际优化设计过程中,计算每个设计的集成电路版图模型的个体目标函数时,不可能针对频段内所有频率点计算其电磁响应,只能在频段范围内选择少量典型优化频率点,计算集成电路个体在该优化频率点的电磁响应特征,并与预定目标对比,形成目标函数。

现有优化方法是根据预定目标情况选取固定的典型优化频率点进行优化,但优化之后可能只在选定的典型优化频率点均达到预定目标,而不能在整个频段达到预定目标。

同时,在上述的集成电路版图电磁响应计算过程中,涉及到海量的同类型大规模数值计算。这类大规模数值计算由于不同计算实例具有不同结构,导致不同计算实例的计算复杂度不对等,因此目前的并行计算效率有待提高。

另外,常规并行计算基本针对单个计算实例并行,在大量循环的计算部分实现并行,并行颗粒通常很细,这样导致不同进程之间存在大量的数据交换;并且,由于不同进程计算进度不同,不可避免在需要数据共享和同步时出现大量等待;还有,由于单个实例计算过程相当部分的计算过程有先后顺序,数据有依赖性,因此针对单个计算实例并行时,有相当部分的计算无法并行化;这三种现象均会导致并行效率的降低。

再者,常规多线程并行计算,各线程进行大规模数值计算分配大内存时,是采用直接分配内存的方式,当分配内存大于可用物理内存时,系统将自动从硬盘开辟一部分空间作为虚拟内存,并将不活动进程所占内存写入虚拟内存,释放相应的物理内存。然而目前常用的机械硬盘读写速度在80MB/s左右,而物理内存的读写速度有百倍以上的提高,例如,对于DDR31333MHz的服务器内存,其数据传输速率达到10.6GB/s。因此,若并行计算开启的进程较多且不采用任何措施,可能导致计算过程中部分硬盘存储空间被当作虚拟内存读取,将使得程序运行速度降低百倍以上。

发明内容

(一)申请目的

基于此,为了解决现阶段集成电路版图优化设计过程中只选取固定的典型优化频率点,使得无法保证获得的最优集成电路版图在整个频段内都能达到预定目标的问题,以及为了提高并行效率及程序运行速度,解决计算实例复杂度不对等的问题,本申请公开了以下技术方案。

(二)技术方案

本申请提供了一种进程自启停的基于频域电磁响应的集成电路版图优化方法,包括:

步骤100,将频域电磁响应计算过程中相同类型的所有独立完整计算划分为多个并行粗颗粒,其中,每个所述并行粗颗粒执行相应的独立计算任务;

步骤200,选取反映整个设定频段范围要求的电磁响应特征的至少一个初始频率点,形成频率点有序序列;

步骤300,通过第一并行粗颗粒,依据集成电路版图优化目标定义目标函数并利用优化算法对所述频率点有序序列进行迭代运算,直到所述目标函数缓慢收敛或达到优化目标,获得最优集成电路版图模型个体;

步骤400,通过第二并行粗颗粒,计算所述最优集成电路版图模型个体在所述设定频段内的电磁响应特征,获得最优集成电路版图模型个体的频率响应曲线,并比较最优集成电路版图模型个体的频率响应曲线与所述优化目标;

步骤500,通过第三并行粗颗粒,判断是否存在不满足所述集成电路版图优化目标的频率点,在判定不存在时完成优化,否则在所述设定频段内选取k个优化频率点,从该k个优化频率点中确定出kn个新的优化频率点,判断所述kn个新的优化频率点是否符合加入所述频率点有序序列的条件,其中,在判定符合条件时将所述kn个新的优化频率点有序地加入所述频率点有序序列并将新的频率点有序序列代入上述步骤300并执行步骤300,否则优化失败;其中,

在通过所述并行粗颗粒进行计算时,统计当前的并行粗颗粒中分配有计算任务的进程完成计算任务所需的分配内存大小,并检测当前可用物理内存的大小,在所述分配内存小于所述可用物理内存时执行该计算任务,否则暂停该进程在之后预设时间内的运算,并重新检测当前可用物理内存的大小,直至所述分配内存小于所述可用物理内存。

在一种可能的实施方式中,所述目标函数缓慢收敛包括:连续经过预设次数的迭代且集成电路版图优化的目标函数下降速度不高于预设速度。

在一种可能的实施方式中,所述在所述设定频段内选取k个优化频率点,从该k个优化点中确定出kn个新的优化频率点,包括:

按照频率点间距最小原则从设定频段内选取k个优化频率点,然后分别计算k个优化频率点的电磁响应曲线与集成电路版图优化目标的偏差,将算出的偏差进行降序排序得到偏差序列,选取所述偏差序列中的前kn个频率点作为新的优化频率点。

在一种可能的实施方式中,所述频率点间距最小原则为:将新的优化频率点加入所述频率点有序序列后,得到的新的频率点有序序列中相邻频率点的间距大于△d,△d=(fmax-fmin)/C,fmax、fmin分别为所述设定频段内的最高频率和最低频率,C为大于正在优化频率点数的常数值。

在一种可能的实施方式中,所述判断所述kn个新的优化频率点是否符合加入所述频率点有序序列的条件,包括:

当选取的新的优化频率点数量kn=0时,判断所述目标函数收敛缓慢的判断规则是否有效,若有效则降低集成电路版图优化的目标函数的收敛速度,所述kn个新的优化频率点符合加入频率点有序序列的条件,若无效则所述kn个新的优化频率点不符合加入频率点有序序列的条件;

当选取的新的优化频率数量kn>0时,直接判定所述kn个新的优化频率点符合加入频率点有序序列的条件。

在一种可能的实施方式中,所述降低集成电路版图优化的目标函数的收敛速度包括:增加迭代次数M的值并降低集成电路版图优化的目标函数下降速度δ的值,其中M的值不超过预设的最大迭代次数Mmax,且目标函数下降速度δ≥0。

在一种可能的实施方式中,在为所述并行粗颗粒的进程分配内存之前,该方法还包括:主进程基于动态分配计算任务策略和文件标记策略将所述并行粗颗粒中的每个计算任务以及相应的输入参数动态分配到所有进程中。

在一种可能的实施方式中,所述动态分配计算任务策略包括:在每个进程完成各自的计算任务之后为该进程分配新的计算任务,并依据各进程的计算任务分配顺序将所需算力高于算力阈值的计算任务分散式地分配给不同进程。

在一种可能的实施方式中,所述文件标记策略包括:若所述并行粗颗粒中某计算任务被分配到一进程中,则生成该计算任务的用于表明该计算任务已经被分配的标识文件,以使得其他进程在申请分配该计算任务时由于相应标识文件的存在而申请分配其他计算任务。

在一种可能的实施方式中,所述文件标记的实施步骤包括:

步骤A1,进程在申请分配计算任务时判断该计算任务是否存在相应的标志文件SFi,若判定不存在该标志文件SFi则执行步骤A2,若不存在则执行步骤A6;

步骤A2,判断该标志文件是否处于锁定状态,若未处于锁定状态则执行步骤A3,否则执行步骤A6;

步骤A3,锁定该标志文件;

步骤A4,生成该标志文件;

步骤A5,解锁该标志文件,完成该计算任务的运算;

步骤A6,判断是否完成并行粗颗粒中所有的计算任务,若未完成则执行步骤A1并申请分配下一计算任务,否则结束。

(三)有益效果

本申请公开的进程自启停的基于频域电磁响应的集成电路版图优化方法,能够有效避免由于选取的典型优化频率点不足而导致出现伪最优目标,解决了典型优化频率点满足集成电路版图优化预定目标但整个频段内整体不满足集成电路版图优化预定目标的问题;另外,在计算过程中应用自动启停技术,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时保证在避免使用虚拟内存的情况下同时开启更多的进程,减少了进程之间的通信,同时解决计算实例复杂度不对等问题,提高并行计算效率。

附图说明

以下参考附图描述的实施例是示例性的,旨在用于解释和说明本申请,而不能理解为对本申请的保护范围的限制。

图1是本申请公开的进程自启停的基于频域电磁响应的集成电路版图优化方法实施例的流程示意图。

具体实施方式

为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。

下面参考图1详细描述本申请公开的进程自启停的基于频域电磁响应的集成电路版图优化方法实施例。如图1所示,本实施例公开的方法包括如下步骤100至步骤500。

步骤100,将集成电路频域电磁响应计算过程中相同类型的所有独立完整计算划分为多个并行粗颗粒,其中,每个并行粗颗粒执行相应的独立计算任务。

在并行计算前,需人工确定进程数,并将其中一个进程作为主进程。

并行粗颗粒是根据问题运算特征定义的。对不同行业,问题运算特征各不相同。例如对于大规模集成电路电磁场分布计算,其问题运算特征是某种结构的多层集成电路板,在不同频率、或不同大小的电流驱动情况下各层板的电流、电位分布以及层与层之间电磁场分布情况。

每个并行粗颗粒均为一个包含最少输入/输出参数的独立执行模块,每个并行粗颗粒中每个计算任务均采用串行版本,通过所有的并行粗颗粒以及不采用并行粗颗粒进行计算的处理任务相结合,实现该方法完整运行的串行版本。定义数组长度大于106的数组为大数组,针对并行粗颗粒中双精度类型数组的大数组变量。

上述独立完整计算是指包含计算前处理、动态分配大数组变量进行大规模数值计算、计算结果整理并释放大数组变量的完整运算过程。其中,计算前处理是指采用数值计算方法处理包含复杂计算区域的场域问题,具体的,先对复杂区域进行三维建模,实现对复杂计算区域的描述,之后对复杂计算区域进行网格剖分,实现区域的离散。

具体的,假设进行集成电路频域电磁响应计算需要依次实施b1、b2、b3、b4共四个步骤,其中步骤b2包含有1000次独立完整计算,步骤b3包含有500次独立完整计算,步骤b4包含有500次独立完整计算,因此分别为b2、b3、b4划分出并行粗颗粒b2、b3、b4。其中,b2包括1000个计算任务,b3和b4分别包括500个计算任务。将并行粗颗粒b2、b3、b4分别设计成包含最少输入/输出参数的独立执行模块,并设计b2、b3、b4中每个计算任务的串行版本,调用b2、b3、b4的独立执行模块,并结合完整运行中并行粗颗粒之外的处理任务b1,实现该完整运行的串行版本。

需要说明的是,在并行粗颗粒进行并行计算前,采用主进程执行并行粗颗粒之外的处理任务。例如在并行粗颗粒b2的并行计算前需要先执行b1,因此处理任务b1由主进程进行执行。

步骤200,根据用户提供的设定频段和集成电路版图优化目标,选取反映整个设定频段范围要求的电磁响应特征的至少一个初始频率点,形成频率点有序序列。初始频率点用于反映频率点的优化目标值。

步骤300,通过第一并行粗颗粒进行:依据集成电路版图优化目标定义目标函数并利用优化算法对频率点有序序列进行迭代运算,直到目标函数缓慢收敛或达到优化目标,获得最优集成电路版图模型个体。

优化算法为在状态空间中寻找全局最优点的运算方法。能够实现对某个目标进行优化的优化算法有多种,对于集成电路版图而言,其一种典型的优化目标为对于预先设定的某些端口,这些端口的输入阻抗在特定频率范围内达到最小,从而版图的金属路径上带来的电压降最小。因此可以依据优化目标和所要进行优化的集成电路版图的电磁响应特性来选择实施的优化算法。

并且,集成电路版图的优化目标可以是由用户进行设定的,也就是说,依据用户的需求来设置被优化的集成电路版图在什么频段(设定频段)内具有的电磁响应特征(优化目标),根据该优化目标产生目标函数。

目标函数是指为达到用户指定的优化目标所设置的函数,用来表示优化个体的性能与用户设置的优化目标性能之间的差距,差距越大则算出的目标函数值越大,而优化目标就是让目标函数值最小化,使得优化个体尽量达到用户需求的性能(达到优化目标)。

假设用户的需求是:要求对于预先设定的某个端口,集成电路版图模型在10MHz~1GHz的设定频段范围内输入阻抗都在1mΩ以下。步骤200中选择了10MHz,100MHz和1GHz作为初始频率点(优化频率点),算出的某个优化集成电路版图模型个体在该3个初始频率点的输入阻抗分别为1mΩ,15mΩ和12mΩ。

定义目标函数为:

T=∑iTi 公式(1);

其中,T为定义的集成电路版图优化目标函数值;Ti为每个初始频率点的目标函数,fi为优化的频率点,R(fi)为在频率点fi下集成电路版图模型个体该端口实际的输入阻抗,R0(fi)为在频率点fi下集成电路版图模型个体该端口阻抗的优化目标,这里设置为1mΩ。公式(2)表示若频率点fi下该端口的输入阻抗能持平或优于优化目标,则Ti=0,否则Ti=(R(fi)-R0(fi))2。在上述用户需求的前提下,也就是3个初始频率点下该端口的输入阻抗分别为1mΩ,15mΩ和12mΩ时,T=0+(1-15)2+(1-12)2+0=317。

最优集成电路版图模型个体是指在设定频段内具有最佳电磁响应特征的集成电路版图模型。其中,目标函数收敛缓慢即为:连续经过预设次数的迭代且集成电路版图优化目标函数下降速度不高于预设速度。例如连续经过N次迭代、集成电路版图优化目标函数下降速度不高于δ,N和δ均为预设值,该预设值可根据集成电路版图优化目标确定。

本步骤300中对并行粗颗粒采用了自动启停技术,对有计算任务的进程动态分配内存,并完成该计算任务的计算。自动启停技术是指在动态分配内存过程中随时判断可用物理内存与动态分配内存大小,若动态分配内存小于可用物理内存则分配内存并进行计算,否则该进程暂停大数组内存分配,暂停时间T后继续更新可用物理内存并与动态分配内存大小比较。通过采用自动启停技术,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈。

因此,在步骤300的实施过程中,在通过第一并行粗颗粒进行上述迭代运算时,统计当前的并行粗颗粒中分配有计算任务的进程完成计算任务所需的分配内存大小,并检测当前可用物理内存的大小,在分配内存小于可用物理内存时执行该计算任务,否则暂停该进程在之后预设时间内的运算,并重新检测当前可用物理内存的大小,直至分配内存小于可用物理内存。其中,暂停的预设时间T可以采用1秒。

具体的,在第一并行粗颗粒进行并行计算时,统计每个计算任务完成计算需要分配的内存,假设当前有6个进程且共用16GB的可用物理内存,并且进程p1至p5占用了其中的15GB可用物理内存,而进程p6需要3GB内存来进行计算,因此此时所需的分配内存大小要大于可用物理内存,则进程p6无法和进程p1至p5同时执行,而需要暂停进程p6,假设1秒钟之后,其他进程完成了计算任务并释放了物理内存使得当前可用物理内存有4GB,则所需的分配内存大小要小于可用物理内存,则进程p6可以执行自身的计算任务。

步骤400,通过第二并行粗颗粒进行:计算最优集成电路版图模型个体在设定频段内的电磁响应特征,获得最优集成电路版图模型个体的频率响应曲线,并比较最优集成电路版图模型个体的频率响应曲线与优化目标。在本步骤400中对第二并行粗颗粒的特征计算等运算过程同样采用了自动启停技术。

由于在对集成电路版图模型优化设计过程中,若将集成电路版图模型在设定频段范围内的所有频率点都进行观测与优化,则所需的时间成本较高,因此本申请采用选择特定频率点并将集成电路版图模型在该频率点进行观测与优化的方式。

步骤500,通过第三并行粗颗粒进行:判断是否存在不满足集成电路版图优化目标的频率点,在判定不存在时完成优化,否则在设定频段内选取k个优化频率点(k≥0),从该k个优化频率点中确定出kn个新的优化频率点(k≥kn≥0),判断该kn个新的优化频率点是否符合加入频率点有序序列的条件。其中,在判定符合加入条件时将kn个新的优化频率点有序地加入频率点有序序列,并将新的频率点有序序列代入上述步骤300并再次执行步骤300,在判定不符合加入条件时则说明优化失败。在本步骤500中对第三并行粗颗粒的运算过程同样采用了自动启停技术。

由于目标函数的选择会影响优化结果,因此本申请中的集成电路版图优化目标函数不是固定不变的,而是会随着步骤400和500而不断修正调整,使得找到满足优化目标的最优集成电路版图模型个体。

在所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到完整运行的最终结果,针对最终结果进行后续处理。

在超大规模多层集成电路模型的电磁响应计算表明,同一类型计算由于模型结构不同,导致网格剖分产生的单元数量有较大差异,从而不同模型计算需要的内存也有较大差异。

本实施例公开的进程自启停的基于频域电磁响应的集成电路版图优化方法,能够有效避免由于选取的典型优化频率点不足而导致出现伪最优目标,解决了典型优化频率点满足预定目标但整个频段内整体不满足预定目标的问题;另外,在计算过程中应用自动启停技术,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时保证在避免使用虚拟内存的情况下同时开启更多的进程,减少了进程之间的通信,同时解决计算实例复杂度不对等问题,提高并行计算效率。

在一种实施方式中,步骤500中选取k个优化频率点以及从该k个优化频率点中确定出kn个新的优化频率点的方式为:在满足频率点间距最小原则的前提下从设定频段内选取k个优化频率点。然后分别计算该k个优化频率点集成电路版图模型的电磁响应曲线与优化目标的偏差,将算出的偏差进行降序排序得到偏差序列,最后选取该偏差序列中的前kn个频率点作为新的优化频率点。

其中,频率点间距最小原则具体为:选取出的k个优化频率点中的每个频率点均要求符合以下条件:在之后被判定为属于kn个新的优化频率点并且在加入所述频率点有序序列后,得到的新的频率点有序序列中相邻频率点的间距大于△d,△d=(fmax-fmin)/C,fmax、fmin分别为设定频段内的最高频率和最低频率,C为大于正在优化频率点数的常数值。这样能够保证无论之后确定出的新的优化频率点数量kn有多少,这些新的优化频率点中的每个频率点均能够在自身加入频率点有序序列后使得该序列的相邻频率点间距大于△d。

在一种实施方式中,上述判断所述kn个优化频率点是否符合加入频率点有序序列的条件,具体为:

当选取的新的优化频率点数量kn=0时,即选取的k个优化频率点均为原来的优化频率点时,判断集成电路版图优化目标函数收敛缓慢的判断规则是否有效,若有效则降低集成电路版图优化目标函数的收敛速度,也就是降低集成电路版图优化目标函数收敛缓慢的判断规则,kn个新的优化频率点符合加入频率点有序序列的条件,若无效则kn个新的优化频率点不符合加入频率点有序序列的条件,kn个新的优化频率点不能加入频率点有序序列,优化失败。

当选取的新的优化频率数量kn>0时,即选取的kn个新的优化频率点中存在与原来的优化频率点不同的频率点时,直接判定kn个新的优化频率点符合加入频率点有序序列的条件,能够将kn个新的优化频率点加入频率点有序序列。

上述有效的目标函数收敛缓慢判断规则是指不能无限制降低集成电路版图优化目标函数收敛缓慢判断规则,否则有可能永远无法完成优化。

上述降低集成电路版图优化目标函数收敛缓慢的判断规则的操作,为增加迭代次数N的值、降低目标函数下降速度δ的值,N的值不超过预设的最大迭代次数Nmax。有效的集成电路版图优化目标函数收敛缓慢的判断规则具体为,经过多次降低集成电路版图优化目标函数收敛缓慢判断规则后,也就是在多次的N=N+△N、δ=δ-△δ后,仍满足N<Nmax且δ>=0,若不满足则无效。

例如,根据集成电路版图优化目标和设定频段,根据实际情况最初定义N=10,δ=0.1,Nmax=100,则在迭代10次目标函数下降量不超过0.1的情况下,判定集成电路版图优化目标函数收敛缓慢,此时停止优化迭代找出最优集成电路版图模型个体,检查该优化集成电路版图模型个体的整个设定频段内端口输入阻抗是否满足优化目标,若不满足则检查是否有需要新加入的优化频率点。若按照频率点间距最小原则确定没有新加入的优化频率点,则降低集成电路版图优化目标函数收敛缓慢判断规则,重新定义N=20,δ=0.05,以此类推,一直到N=100,δ=0,此时集成电路版图优化目标函数收敛缓慢判断规则失效,优化失败。

利用差分进化算法优化某个15层超大规模集成电路,其工作频段为10MHz~1GHz,优化目标为在设定频段范围内用户设定的端口输入阻抗不能高于1mΩ。由于对10MHz~1GHz范围内所有频率都进行观测与优化所需时间成本较高,因此以均匀分布的方式从中选择10MHz,257.5MHz,505MHz,752.5MHz和1GHz共5个初始频率点,形成一个频率点有序序列,优化的目的是使得被选择的这些频率点下该端口的输入阻抗均不高于1mΩ。

在迭代15次后发现所选频率点下该端口的输入阻抗均满足优化目标,但比较最优集成电路版图模型个体的频率响应曲线与优化目标后发现,虽然这些被选择的频率点及其附近频率该端口的输入阻抗能在1mΩ以下,但在400MHz~561MHz、620MHz~715MHz、810MHz~890MHz内的频率响应均与预定目标有偏差,未达到1mΩ以下。例如480.5MHz频率点未被选为典型频率点,但经计算发现该频率点下端口的输入阻抗达0.5Ω。因此根据频率点间距最小原则,选出频率点480.5M,667.5MHz与850MHz***原来的频率点有序序列,继续优化,重新迭代7次所选频率点均满足目标。但比较最优个体的频率响应曲线与优化目标发现,在570MHz~630MHz、710MHz~820MHz其频率响应不满足优化目标,***频率点600MHz与765MHz继续优化,重新迭代9次所选频率点均满足目标,再次比较最优集成电路版图模型个体的频率响应曲线与优化目标发现无偏差,以此完成优化。

在一种实施方式中,在为每个并行粗颗粒的进程分配内存之前,该方法还包括:主进程基于文件标记策略和动态分配计算任务策略将并行粗颗粒中的每个计算任务以及相应的输入参数动态分配到所有进程中。对于各步骤中的各并行粗颗粒均采用此种任务-进程分配方式。

具体的,动态分配计算任务策略采用先申请先分配的机制,其包括:在每个进程完成各自的计算任务之后再为该进程分配新的计算任务,使得各进程在计算完之后即随时分配到新的计算任务,而不是将计算任务全部预先分配完成之后再计算这些预先分配好的任务,避免造成因为不同计算任务运行的CPU时间有较大差别而导致的运行结束后的等待;并且先申请先分配的机制还包括:依据各进程的计算任务分配顺序将所需算力高于算力阈值的计算任务分散式地分配给不同进程,这样可以动态地将占用CPU处理时间较多的计算任务较为平均地分配到各个进程,而不是集中分配给其中的某一个或某几个进程,提高并行计算效率。

假设当前有3个进程且共用10GB的可用物理内存,若进程p1先申请,则进程p1分配并行粗颗粒中的计算任务S1,若计算任务S1的计算需要占用4GB,则剩余7GB可分配内存。由于计算任务S1被分配,则进程p2只能申请分配并行粗颗粒中的计算任务S2,若计算任务S2的计算同样需要占用4GB,则进程p2和进程p1可以并行计算同时工作,并剩余2GB可分配内存。由于计算任务S1和S2被分配,进程p3只能申请分配并行粗颗粒中的计算任务S3,若计算任务S3的计算需要占用4GB,则基于自动启停技术,需要暂停进程p3的内存分配,直至其他进程完成计算并释放内存。

另外,由于在多进程并行运算过程中,各个进程分配到某个运算任务的机会是均等的,因此如果不采取任何措施,就可能导致有多个进程被分配到同一运算任务,造成运算资源的浪费,因此需要采取一种使得所有运算任务被唯一分配到某个进程的机制来避免这一现象的发生。

因此本申请采用了分配任务即时标记,即任务被分配到某一进程的同时即将该任务进行标记,通过该标记使得其他进程不会再分配执行该任务。

但由于在并行运算时,各进程的变量是相互独立的,且各运算任务存在不对称的现象,各进程的运算状态也各不相同,任何进程通过变量标记任务被分配的信息无法立即被传递到其他进程,因此本申请采用外在显式的标记方法来保证运算任务一旦被标记,所有进程都能获得这个信息。

因此本申请采用的文件标记策略包括:若并行粗颗粒中某计算任务被分配到一进程中,则生成该计算任务的用于表明该计算任务已经被分配的标识文件,以使得其他进程在申请分配该计算任务时由于相应标识文件的存在而申请分配其他计算任务。

采用了上述文件标记策略,使得若并行粗颗粒中运算任务被分配到进程中,则马上生成该运算任务的标志文件,某一进程在申请分配某一运算任务时,均会试图生成该运算任务的标志文件,若该标志文件存在,说明该运算任务已经被分配给其他进程,则该进程将自动尝试申请分配下一个运算任务。

具体的,利用上述文件标记策略实现正确分配运算任务的具体实施步骤包括以下步骤A1至步骤A6。

步骤A1,进程在申请分配计算任务Si时判断该计算任务Si是否存在相应的标志文件SFi,若判定不存在该标志文件SFi则执行步骤A2,若不存在则执行步骤A6。

步骤A2,判断该标志文件SFi是否处于锁定状态,若未处于锁定状态则执行步骤A3,若处于锁定状态则执行步骤A6。

步骤A3,锁定该标志文件SFi。

步骤A4,生成该标志文件SFi。

步骤A5,解锁该标志文件SFi,完成该计算任务的运算。

步骤A6,判断是否完成并行粗颗粒中所有的计算任务,若未完成则使i=i+1,之后返回执行步骤A1,以实现下一计算任务的申请分配,否则结束。结束之后,说明当前并行粗颗粒所需执行的所有运算任务已全部分配到所有进程中,当前并行粗颗粒的分配已结束,可以返回执行其他并行粗颗粒并分配其各自所需执行的所有运算任务。

上述利用标志文件来实现正确分配运算任务可以是利用文件标记技术实现。文件标记技术采用文件锁定与解锁技术,文件锁定与解锁技术保证一次只能一个进程读/写同一运算任务,防止多个进程同时操作同一文件,导致重复运算同一个运算任务。文件读写锁具有很高的并行性,可以有多个线程同时占用读模式的读写锁,但是只能有一个线程占用写模式的读写锁,读写锁的三种状态:

1、当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞;

2、当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是以写模式对它进行加锁的线程将会被阻塞;

3、当读写锁在读模式的锁状态时,如果有另外的线程试图以写模式加锁,读写锁通常会阻塞随后的读模式锁的请求,这样可以避免读模式锁长期占用,而等待的写模式锁请求则长期阻塞。

处理读取方-写入方问题的两种常见策略是强读取方同步(strong readersynchronization)和强写入方同步(strong writer synchronization)。在强读取方同步中,总是给读取方更高的优先权,只要写入方当前没有进行写操作,读取方就可以获得访问权限;而在强写入方同步中,则往往将优先权交付给写入方,而读取方只能等到所有正在等待的或者是正在执行的写入方结束以后才能执行。

在主进程执行并行粗颗粒时,包含主进程在内的所有进程分别申请各自所需的计算任务,主进程基于上述文件标记技术、文件锁定与解锁技术及动态分配计算任务策略将计算任务动态分配到各个进程中,当并行粗颗粒中最后一个计算任务完成后,该并行粗颗粒的并行计算完成,保证后续的并行粗颗粒能够无需等待太长时间即可获取计算结果。

在进行集成电路频域电磁响应计算时,采用普通方法,每个节点只能同时开启少量进程,如果开启更多进程,则会造成因使用虚拟内存导致的长时间等待。若采用本申请公开的自动启停技术、文件标记技术和动态分配技术,每个节点开启更多的进程,能较大程度的减少计算时间,保证在避免使用虚拟内存的情况下同时开启更多的进程。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种最小化芯片布局面积的自适应选择方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类