EDA工具的容器化隔离运行方法、系统、存储介质及芯片设计平台与流程
本技术实施例涉及电子设计自动化(electronic design automation,eda),具体涉及一种eda工具的容器化隔离运行方法、系统、存储介质及芯片设计平台。
背景技术:
1、随着集成电路工艺节点不断演进至纳米级,芯片设计复杂度呈指数级上升,多用户、多工况并发仿真场景已成为ic设计团队的常态化工作模式。然而,不同eda工具对操作系统版本、运行时库、编译器及第三方依赖库的版本各有特定要求,甚至同一工具的不同版本之间亦存在环境冲突,使得eda工具链的部署与运维面临严峻的技术挑战。
2、目前,主流的eda工具链部署方案主要有两种。一种是裸机直接部署,即将所有eda工具及其依赖库安装于同一物理机的操作系统环境中,通过环境变量切换实现不同工具版本之间的切换。另一种是为虚拟机部署,即为不同eda工具或用户创建独立的虚拟机实例,每个实例拥有独立的操作系统和依赖环境。近年来,部分方案尝试引入容器技术进行eda工具封装,但通常采用扁平化镜像构建策略,即将所有依赖库、编译工具链和业务程序堆叠于同一镜像层中,容器仅作为单一进程的运行环境使用。
3、然而,目前的部署方案均未将eda仿真任务以独立容器实例作为最小执行单元进行隔离运行,导致任务间环境冲突、资源抢占及故障扩散问题无法从根本上得到解决。
技术实现思路
1、本技术实施例提供了一种eda工具的容器化隔离运行方法、系统、存储介质及芯片设计平台,可以实现eda仿真任务的隔离独立运行。
2、第一方面,本技术实施例提供了一种eda工具的容器化隔离运行方法,包括:
3、基于分层构建策略,构建一集成eda工具链全部业务功能模块的统一分层镜像;
4、创建虚拟网络,将基于所述统一分层镜像实例化生成的多个功能容器接入所述虚拟网络,并按照预设的服务依赖顺序依次启动各所述功能容器;
5、在各所述功能容器启动后,向管理控制台注册各所述功能容器的服务信息;所述管理控制台用于维护全局服务注册表;
6、响应于eda仿真任务,利用所述管理控制台根据任务类型查询所述全局服务注册表,并基于所述统一分层镜像为所述eda仿真任务单独实例化生成对应的独立任务容器;
7、通过内核级命名空间为所述独立任务容器提供独立的操作系统视图、文件系统和网络栈,并通过控制组为所述独立任务容器分配独立的cpu、内存及gpu算力配额,以在所述独立任务容器中执行所述eda仿真任务。
8、在本技术实施例提供的eda工具的容器化隔离运行方法中,所述基于分层构建策略,构建一集成eda工具链全部业务功能模块的统一分层镜像,包括:
9、获取eda工具链的全部业务功能模块;
10、采用linux发行版作为基础镜像,将系统软件源配置为国内镜像源,以构建基础镜像层;
11、将各所述功能模块的预编译成品程序包和配置文件复制至镜像内部的工作目录,以构建文件拷贝层,所述预编译成品程序包预先在外部开发环境中完成源码编译,所述镜像内部不存放源码且不执行编译操作;
12、安装各所述功能模块运行所需的依赖库与运行时环境,并在安装完成后执行清理操作以压缩镜像体积,以构建环境构建层;
13、配置容器的启动命令、环境变量及对外服务端口,以构建启动配置层;
14、将所述基础镜像层、所述文件拷贝层、所述环境构建层和所述启动配置层组合为统一分层镜像。
15、在本技术实施例提供的eda工具的容器化隔离运行方法中,所述响应于eda仿真任务,利用所述管理控制台根据任务类型查询所述全局服务注册表,并基于所述统一分层镜像为所述eda仿真任务单独实例化生成对应的独立任务容器,包括:
16、解析所述eda仿真任务携带的eda工具版本及依赖库标签;
17、根据解析结果从镜像仓库中拉取与所述eda工具版本及依赖库标签相匹配的统一分层镜像;
18、基于所述统一分层镜像,为所述eda仿真任务单独实例化生成对应的独立任务容器。
19、在本技术实施例提供的eda工具的容器化隔离运行方法中,所述通过控制组为所述独立任务容器分配独立的cpu、内存及gpu算力配额,包括:
20、通过控制组根据所述eda仿真任务的任务类型,动态设定所述独立任务容器的cpu配额、内存配额及gpu算力配额的上限;
21、其中,仿真类任务分配高内存配额及gpu算力配额,布线类任务分配高cpu核心数配额。
22、在本技术实施例提供的eda工具的容器化隔离运行方法中,当所述eda仿真任务需多容器协作时,通过覆盖网络实现同一宿主机内多个所述独立任务容器之间的互相连通,以及跨宿主机之间的多个所述独立任务容器的网络互连。
23、在本技术实施例提供的eda工具的容器化隔离运行方法中,还包括:
24、在所述eda仿真任务执行完成后,通过所述独立任务容器将执行结果回传至所述管理控制台,并销毁所述独立任务容器。
25、第二方面,本技术实施例提供了一种eda工具的容器化隔离运行系统,包括:
26、镜像构建模块,用于基于分层构建策略,构建一集成eda工具链全部业务功能模块的统一分层镜像;
27、网络编排模块,用于创建虚拟网络,将基于所述统一分层镜像实例化生成的多个功能容器接入所述虚拟网络,并按照预设的服务依赖顺序依次启动各所述功能容器;
28、服务注册模块,用于在各所述功能容器启动后,向管理控制台注册各所述功能容器的服务信息;所述管理控制台用于维护全局服务注册表;
29、任务调度模块,用于响应于eda仿真任务,利用所述管理控制台根据任务类型查询所述全局服务注册表,并基于所述统一分层镜像为所述eda仿真任务单独实例化生成对应的独立任务容器;
30、隔离执行模块,用于通过内核级命名空间为所述独立任务容器提供独立的操作系统视图、文件系统和网络栈,并通过控制组为所述独立任务容器分配独立的cpu、内存及gpu算力配额,以在所述独立任务容器中执行所述eda仿真任务。
31、第三方面,本技术提供了一种存储介质,所述存储介质存储有多条指令,所述指令适用于处理器进行加载,以执行上述任一项所述的eda工具的容器化隔离运行方法。
32、第四方面,本技术提供了一种芯片设计平台,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述任一项所述的eda工具的容器化隔离运行方法。
33、综上所述,本技术实施例提供的eda工具的容器化隔离运行方法包括基于分层构建策略,构建一集成eda工具链全部业务功能模块的统一分层镜像;创建虚拟网络,将基于所述统一分层镜像实例化生成的多个功能容器接入所述虚拟网络,并按照预设的服务依赖顺序依次启动各所述功能容器;在各所述功能容器启动后,向管理控制台注册各所述功能容器的服务信息;所述管理控制台用于维护全局服务注册表;响应于eda仿真任务,利用所述管理控制台根据任务类型查询所述全局服务注册表,并基于所述统一分层镜像为所述eda仿真任务单独实例化生成对应的独立任务容器;通过内核级命名空间为所述独立任务容器提供独立的操作系统视图、文件系统和网络栈,并通过控制组为所述独立任务容器分配独立的cpu、内存及gpu算力配额,以在所述独立任务容器中执行所述eda仿真任务。本技术实施例通过基于统一分层镜像为每个eda仿真任务单独实例化生成独立任务容器,并利用内核级命名空间和控制组对所述独立任务容器进行进程视图隔离和资源配额管控,解决了目前eda工具链部署中多任务环境冲突、算力资源互相抢占以及单任务故障导致整机宕机的问题,进而实现eda仿真任务的隔离独立运行。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com