基于文件锁的集成电路电磁仿真粗颗粒并行方法及装置与流程

文档序号:25897158发布日期:2021-07-16 20:22阅读:来源:国知局

技术特征:
1.一种基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,包括:建立文件名映射关系,根据文件名映射关系构建文件锁,所述文件锁用于对计算任务进行锁定控制;将整个集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权cpu时间和总cpu时间,依据所述加权cpu时间和所述总cpu时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;依据待仿真的集成电路模型数量和每个集成电路模型的待计算任务,并行发起多个计算进程,每个计算进程实现一个并行粗颗粒;基于文件锁对各个并行粗颗粒需要处理的计算任务进行锁定控制及仿真计算,确保处理同一集成电路模型的不同计算任务的并行粗颗粒采用相同的剖分的网格对同一集成电路模型进行电磁仿真,锁定的计算任务表示已经存在计算进程对该计算任务进行仿真处理,其他计算进程不得同时处理;当所有并行粗颗粒遍历所有计算任务时,收集计算结果并将所有计算任务的计算结果整理生成最终计算结果。2.根据权利要求1所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,预设待仿真的集成电路模型有n个,第i个集成电路模型的待计算任务有m(i)个,并行发起k个计算进程;所述文件锁为基于唯一文件名锁定的计算任务标识或剖分的网格数据,所述文件名至多包括三个字段,第一字段表示当前文件所在的集成电路模型编号i,i=0~n

1;第二字段表示当前文件所在第i个集成电路模型的计算任务编号j,j=0~m(i)

1;第三字段表示当前文件的类型。3.根据权利要求1所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,所述基于文件锁对各个并行粗颗粒需要处理的计算任务进行锁定控制及仿真计算,确保处理同一集成电路模型的不同计算任务的并行粗颗粒采用相同的剖分的网格对同一集成电路模型进行电磁仿真,具体包括:针对第i个集成电路模型,定义集成电路模型唯一的剖分的网格数据文件名为i_mesh,所述i为阿拉伯数字i对应的字符串,所述剖分的网格数据文件名用于标识所述第i个集成电路模型是否已经被计算进程处理,同时所述数据文件用于存储所述集成电路模型的剖分的网格数据;如果存在文件名i_mesh,表示所述第i个集成电路模型的网格剖分已经被计算进程处理,其他计算进程不可处理所述第i个集成电路模型的网格剖分,如果不存在文件名i_mesh,表示所述第i个集成电路模型的网格剖分未被处理,任何计算进程都可处理所述第i个集成电路模型的网格剖分;针对第i个集成电路模型,定义集成电路模型唯一的网格剖分已经完成的标识文件名为i_meshdone,如果该文件存在,表示所述第i个集成电路模型的网格剖分已经完成,其他计算进程可以读取所述第i个集成电路模型的剖分的网格数据文件i_mesh,对所述第i个集成电路模型的其他计算任务进行仿真;如果存在文件名i_mesh但不存在文件名i_meshdone,表示所述第i个集成电路模型的网格剖分正在进行,其他计算进程不可以读取所述第i个集成电路模型的剖分的网格数据文件i_mesh,也不可以继续进行所述第i个集成电路模型的任何仿真计算。4.根据权利要求1所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在
于,所述锁定的计算任务表示已经存在计算进程对该计算任务进行仿真处理,其他计算进程不得同时处理,具体包括:针对第i个集成电路模型的第j个计算任务,定义所述计算任务的唯一标识文件名为i_j_doing,所述i和j为阿拉伯数字i和j对应的字符串表示;如果存在文件名i_j_doing,表示所述第i个集成电路模型的第j个计算任务已经被计算进程处理,其他计算进程不可处理所述第i个集成电路模型的第j个计算任务,如果不存在文件名i_j_doing,表示所述第i个集成电路模型的第j个计算任务未被处理,任何计算进程都可处理所述第i个集成电路模型的第j个计算任务;针对第i个集成电路模型的第j个计算任务,定义所述计算结果的唯一标识文件名为i_j_result,用于存储第i个集成电路模型的第j个计算任务的计算结果。5.根据权利要求2所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,所述基于文件锁对各个并行粗颗粒需要处理的计算任务进行锁定控制及仿真计算,确保处理同一集成电路模型的不同计算任务的并行粗颗粒采用相同的剖分的网格对同一集成电路模型进行电磁仿真,锁定的计算任务表示已经存在计算进程对该计算任务进行仿真处理,其他计算进程不得同时处理;当所有并行粗颗粒遍历所有计算任务时,收集计算结果并将所有计算任务的计算结果整理生成最终计算结果;具体包括:s1:在第0个计算进程上,针对n个集成电路模型的序列0~n

1生成随机序列{nr},针对第i个集成电路模型的计算任务序列0~m(i)

1生成随机序列{mr(i)},将随机序列{nr}和随机序列{mr(i)}广播给所有其他并行粗颗粒;s2:第k个计算进程查找文件nr(i)_mr(nr(i),j)_doing,若该文件已经存在,则转入步骤s8;若该文件不存在,则创建该文件,执行步骤s3;s3:第k个计算进程查找文件nr(i)_mesh,若该文件已经存在,则执行步骤s5;若该文件不存在,则创建该文件,并对第nr(i)个集成电路模型进行网格剖分,生成剖分的网格数据文件nr(i)_mesh;s4:生成第nr(i)个集成电路模型的剖分的网格数据文件生成完毕标识文件nr(i)_meshdone,执行步骤s7;s5:查询文件nr(i)_meshdone是否存在,若不存在,暂停预定时间,重复执行步骤s5;若存在,则执行步骤s6;s6:读取剖分的网格数据文件nr(i)_mesh;s7:基于第nr(i)个集成电路模型的剖分的网格数据完成该集成电路模型的第mr(nr(i),j)个计算任务的电磁仿真计算:(nr(i),mr(nr(i),j)),计算完毕后生成计算结果nr(i)_mr(nr(i),j)_result;s8:设置 j=j+1,如果j的增加总次数超过所有集成电路模型的任务数,说明第k个计算进程已经遍历所有计算任务,执行步骤s9;若j>=m(nr(i)),设置j=0且i=i+1,若i>=n,设置i=0,返回执行步骤s2;s9:当所有计算进程遍历所有计算任务时,由计算进程0收集计算结果,并将所有计算任务的计算结果整理生成最终计算结果。6.根据权利要求5所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,所述随机序列{nr}为n个0~n

1的互不相同的随机整数,所述随机序列{mr(i)}为m(i)个
0~m(i)

1的互不相同的随机整数;针对所有计算进程,设置,j=k/m(i),其中,k表示第k个计算进程。7.根据权利要求5所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,所述文件锁的文件锁定包括计算任务占有锁定和集成电路模型网格剖分占有锁定,所述文件锁的文件解锁包括集成电路模型剖分的网格数据生成完毕标识文件,所述文件锁的信息锁定包括集成电路模型剖分的网格数据和计算任务结果输出文件;针对计算任务占有锁定的文件,该文件有3个字段,前2个字段名为i_j_,第3个字段名为doing,表示编号为(i,j)的计算任务已经被某个计算进程处理,任何其他计算进程不得处理这个计算任务;针对集成电路模型网格剖分占有锁定的文件,该文件有2个字段,第一个字段名为i_,第2个字段名可为mesh,表示编号为i的集成电路模型的网格剖分任务已经被某个计算进程处理,任何其他计算进程不得处理这个集成电路模型的网格剖分任务;针对集成电路模型剖分的网格数据生成完毕标识文件,该文件有2个字段,第一个字段为i_,第二个字段名可为meshdone,表示编号为i的集成电路模型的剖分的网格数据已经生成完毕,任何其他计算进程均可读取该集成电路模型对应的剖分的网格数据;针对集成电路模型剖分的网格数据的文件,该文件有2个字段,第一个字段名为i_,第二个字段名可为mesh,表示文件存放的是第i个集成电路模型的所有剖分的网格信息;针对计算任务结果输出文件,该文件有3个字段,前两个字段名为i_j_,第3个字段名为result,表示文件存放的是编号为(i,j)的计算任务的计算结果。8.根据权利要求1所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,所述依据所述加权cpu时间和所述总cpu时间的占比确定出并行粗颗粒包括:将各计算颗粒的加权cpu时间按照从大到小的顺序排序并依次累加直到累加和超过90%的所述总cpu时间,将所述累加和之中的每个计算颗粒作为一个并行粗颗粒。9.根据权利要求8所述的基于文件锁的集成电路电磁仿真粗颗粒并行方法,其特征在于,所述计算颗粒的加权cpu时间的计算公式为:t
weight,i
=n
task,i
*t
i
式中:t
weight,i
为第i个计算颗粒的加权cpu时间,t
i
为第i个计算颗粒单次计算的cpu时间,n
task,i
为第i个计算颗粒执行的计算任务数;所述整个计算过程的总cpu时间的计算公式为:其中,t为整个计算过程的总cpu时间,m为整个计算程序被划分的计算颗粒数,t
weight,i
为第i个计算颗粒的加权cpu时间。10.一种基于文件锁的集成电路电磁仿真粗颗粒并行装置,其特征在于,包括:文件锁构建模块,用于建立文件名映射关系,根据文件名映射关系构建文件锁,所述文件锁用于对计算任务进行锁定控制;计算颗粒划分模块,用于将整个集成电路模型的电磁仿真分割成多个计算颗粒,获取各计算颗粒的加权cpu时间和总cpu时间,依据所述加权cpu时间和所述总cpu时间的占比确定出计算粗颗粒;所述计算颗粒为需要多次重复执行的计算单元;
粗颗粒并行计算模块,依据待仿真的集成电路模型数量和每个集成电路模型的待计算任务,并行发起多个计算进程,每个计算进程实现一个并行粗颗粒,基于文件锁对各个并行粗颗粒需要处理的计算任务进行锁定控制及仿真计算,确保处理同一集成电路模型的不同计算任务的并行粗颗粒采用相同的剖分的网格对同一集成电路模型进行电磁仿真,锁定的计算任务表示已经存在计算进程对该计算任务进行仿真处理,其他计算进程不得同时处理;统计整理模块,用于当所有并行粗颗粒遍历所有计算任务时,收集计算结果并将所有计算任务的计算结果整理生成最终计算结果。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1