[发明专利]一种多线程管理的集成电路仿真粗颗粒并行方法及装置有效
申请号: | 202110459195.6 | 申请日: | 2021-04-27 |
公开(公告)号: | CN112989746B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 唐章宏;邹军;黄承清;汲亚飞;王芬 | 申请(专利权)人: | 北京智芯仿真科技有限公司 |
主分类号: | G06F30/392 | 分类号: | G06F30/392;G06F30/398;G06F115/06 |
代理公司: | 北京星通盈泰知识产权代理有限公司 11952 | 代理人: | 李筱 |
地址: | 100085 北京市海淀区信*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 管理 集成电路 仿真 颗粒 并行 方法 装置 | ||
1.一种多线程管理的集成电路仿真粗颗粒并行方法,其特征在于,包括以下步骤:
基于所有待仿真的集成电路模型,确定出计算粗颗粒;
创建管理进程,通过管理进程读取所有需要仿真的集成电路模型,定义对象存储所述集成电路模型信息、所述集成电路模型的计算条件、所述集成电路模型的计算状态,以及管理进程与计算进程的消息内容存储;
管理进程创建互斥体和线程,线程依据互斥体的状态创建计算进程,对计算粗颗粒进行分发并管理;所述互斥体为防止多个线程同时对同一对象进行操作的机制,其状态包括:互斥体等待状态:表示此时处于堵塞状态,线程只能等待;互斥体空闲状态:表示此时线程可进入工作;其中,所述管理进程创建互斥体和线程,线程依据互斥体的状态创建计算进程,对计算粗颗粒进行分发并管理,包括:步骤1.1:建立一个管理进程MK,如果建立成功,进入步骤1.2;如果建立失败,进入步骤1.7;步骤1.2:定义并建立互斥体MutexWork和MutexExit,设置MutexWork=互斥体空闲,设置MutexExit=互斥体等待,定义对象M[Data][Type][Path][Net][State][Message];将集成电路模型存入对象M的[Data];将归类集成电路模型的类型存入对象M的[Type];将集成电路模型的路径以及所述集成电路模型对应的生产网格剖分文件路径存入对象M的[Path]中;将集成电路模型的计算条件存入对象M中的[Net];初始化对象M的State=C0_M0;初始化对象M的Message为空;初始化进程号Ki=1;步骤1.3:管理进程MK建立第Ki个计算进程,如果第Ki个计算进程建立失败,暂停预定时间,进入步骤1.3;如果第Ki个计算进程建立成功,将第Ki个计算进程置于挂起状态; Ki=Ki+1,如果Ki=允许创建的最大进程数,进入步骤1.4,否则进入步骤1.3;Ki为自然数;步骤1.4:如果MutexExit=互斥体空闲,管理进程MK进入步骤1.7;否则管理进程MK进入HTTP网络服务应答状态,查询所有计算进程的工作状态及进程池中的计算进程数,如果进程池中的计算进程数小于允许创建的最大计算进程数,进入步骤1.3,否则激活所有挂起状态的计算进程进入就绪状态并进入步骤1.5;步骤1.5:如果管理进程MK收到任意计算进程Kj发送的其元素的字段Message=Inquire,进入步骤1.6;否则直接进入步骤1.4;1≤j≤允许创建的最大进程数;步骤1.6:管理进程MK建立一个线程tj进行应答工作,进入步骤1.4;步骤1.7:删除互斥体MutexWork和MutexExit,向所有计算进程发送P_NN指令,关闭所有计算进程,销毁管理进程MK建立的所有线程,结束管理进程MK;
计算进程发送查询指令,管理进程创建线程对查询指令进行查询并应答,计算进程依据线程的应答进行响应,完成分发的计算粗颗粒;
当所有并行粗颗粒的计算任务都完成时,管理进程收集计算结果并将所有计算任务的计算结果整理生成最终计算结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智芯仿真科技有限公司,未经北京智芯仿真科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110459195.6/1.html,转载请声明来源钻瓜专利网。