CN116149794A - 一种基于容器架构的云仿真方法 - Google Patents
一种基于容器架构的云仿真方法 Download PDFInfo
- Publication number
- CN116149794A CN116149794A CN202310210475.2A CN202310210475A CN116149794A CN 116149794 A CN116149794 A CN 116149794A CN 202310210475 A CN202310210475 A CN 202310210475A CN 116149794 A CN116149794 A CN 116149794A
- Authority
- CN
- China
- Prior art keywords
- simulation
- container
- sample
- task
- executor
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种基于容器架构的云仿真方法,通过网页创建仿真任务,任务被指派给空闲的仿真任务运行服务,仿真任务运行服务根据仿真任务创建一组样本执行器,每个执行器负责完成一个样本的仿真运算任务,并且动态创建一组仿真引擎,操控样本执行器完成初始化操作并执行仿真运行流程,完成仿真任务。优点在于:本发明将仿真系统拆分为细粒度的微服务并进行动态组合,实现了容器云架构上仿真应用系统的快速构建;利用容器云架构的弹性扩缩能力,根据仿真任务的规模、复杂度等因素,灵活合理地为仿真应用系统分配计算资源。
Description
技术领域
本发明属于系统仿真领域,具体来说是一种基于容器架构的云仿真方法。
背景技术
系统仿真技术在体系对抗仿真等领域中得到了广泛的应用,并发挥了重要的作用。目前,体系对抗仿真在系统规模、运行性能、跨层级、跨专业等方面上的要求日益提升,仿真系统的规模、复杂度也随之递增。越来越多的仿真系统选择迁移到云架构下,形成云仿真系统,利用云“按需分配、弹性伸缩”等优势,获取更优越的仿真运行性能,并充分提升仿真系统软硬件基础设施的利用率。
传统的云仿真系统一般通过将仿真系统服务化并部署上云的方式,实现云架构上的仿真运行。此类云仿真系统利用云应用的横向扩缩能力,满足了多用户并行开展仿真试验的需求。但是,不同的仿真应用在计算复杂度、系统规模等方面各有区别,对仿真系统运行资源的需求存在差异,而传统方法对服务的封装粒度粗糙,难以根据仿真应用的具体情况进行服务的扩展,因此难以灵活地满足不同体量的仿真系统对系统资源的需求。
目前,云仿真系统一般采用基于容器的云架构,其中以基于Kubernetes的容器云架构为主流。此类系统往往要求对仿真模型进行服务化,并通过服务间的通讯实现模型之间的数据交互。这种设计充分利用了云架构的服务编排管理能力来管理仿真模型,具有高效率的优势。但是,负责调度仿真模型的仿真引擎需要高频地与模型进行交互,引擎服务需要频繁地调用模型服务的API,与模型服务交互大量的数据,因此会占用大量的网络资源。并且,对于模型数量较多、模型之间数据交互关系复杂的体系对抗仿真应用需求,仿真服务之间的调用关系错综复杂,系统对网络资源的占用和消耗增大的话,仿真运行的性能也随之受到显著的影响。此外,模型服务化还对仿真模型提出了较高的开发要求,模型开发者需要将仿真模型开发为独立、完整的服务,并且需要自行维护该服务的生命周期。
发明内容
为了解决上述技术问题,本发明提出一种基于容器架构的云仿真方法,根据仿真任务所包含的仿真想定样本数量、每个样本中包含的仿真模型数量及其计算复杂度等因素,动态地创建出运行于容器云上的仿真应用系统。该方法具体步骤如下:
步骤一、创建仿真任务,用户通过网页创建仿真任务,设定所需运行的仿真想定样本集以及仿真运行的配置信息,任务提交后将被指派给一个空闲的仿真任务运行服务。
步骤二、创建样本执行器,仿真任务运行服务根据被指派的仿真任务,创建一组样本执行器,每个样本执行器负责完成一个样本的仿真运算任务,并且根据样本所含仿真模型的种类、数量和计算复杂度,动态创建一组负责执行仿真模型运算任务的仿真引擎。
步骤三、仿真初始化,仿真任务运行服务在接收到用户通过网页发送的仿真初始化指令后,使执行同一个仿真任务的样本执行器进行初始化,从仿真资源库中获得样本所需的仿真资源文件。
步骤四、仿真运行,根据用户通过网页发送的仿真运行控制指令,由仿真任务运行服务操控样本执行器执行仿真运行流程,完成仿真任务。
本发明的有益效果如下:本发明通过将仿真系统拆分为细粒度的微服务并进行动态组合的方式,实现容器云架构上仿真应用系统的快速构建;利用容器云架构的弹性扩缩能力,根据仿真任务的规模、复杂度等因素,灵活且合理地为仿真应用系统分配计算资源,以满足其仿真运算的需求。
附图说明
图1是本发明一种基于容器架构的云仿真方法的流程图。
图2是仿真任务运行请求转发的示意图。
图3是仿真应用系统的示意图。
图4是样本执行器的一种实施例。
图5是仿真初始化过程信息流的示意图。
图6是仿真运行的流程图。
图7是仿真运行过程信息流的示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步的详细说明。
一种基于容器架构的云仿真方法,运行于容器云架构上,以用户创建的仿真任务作为输入,根据仿真任务所包含的仿真想定样本数量、每个样本中包含的仿真模型数量及其计算复杂度等因素,利用容器云对容器化应用程序的编排管理能力,自动化地、动态地组建出仿真应用系统,在满足大规模复杂体系对抗仿真需求的同时合理控制云计算资源的分配。
在容器云架构上,应用程序以容器的形式打包、运行,并接受以Kubernetes为代表的容器编排管理工具的管理。基于云架构的业务系统往往由一组容器化的应用程序构成,容器之间彼此独立并相互协作,完成复杂的业务逻辑。本发明中所涉及的所有应用程序均封装为容器化的微服务,并接受容器编排管理工具的管理。
在本发明中,仿真任务是指,用户对一组仿真想定样本的仿真运算任务的描述,其中记录了一个仿真想定样本集,以及仿真运行的配置信息,例如运行时长、运行结束条件、运行次数、分配资源等。
仿真想定是指,记录了一次仿真试验所包含的仿真模型的种类、数量、初始配置及仿真模型之间的数据交互关系的文件,是仿真试验的方案文件,一般简称为想定。
仿真想定样本集是指,以一个初始的仿真想定作为基础,通过变更初始配置中个别因素的取值而产生的一系列新的仿真想定,其中每个仿真想定称为一个仿真想定样本,或简称为想定样本。
仿真应用系统是指,负责完成一个仿真任务的业务系统,由容器云架构动态创建生成。
一种基于容器架构的云仿真方法,具体步骤如图1所示,其中包括:创建仿真任务、创建样本执行器、仿真初始化和仿真运行四个步骤:
步骤一、创建仿真任务,用户通过网页创建仿真任务,设定所需运行的仿真想定样本集以及仿真运行的配置信息,任务提交后将被指派给一个空闲的仿真任务运行服务。
步骤二、创建样本执行器,仿真任务运行服务根据被指派的仿真任务,创建一组样本执行器,每个执行器负责完成一个样本的仿真运算任务,并且根据样本所含仿真模型的种类、数量和计算复杂度,动态创建一组负责执行仿真模型运算任务的仿真引擎。
步骤三、仿真初始化,仿真任务运行服务在接收到用户通过网页发送的仿真初始化指令后,使执行同一个仿真任务的样本执行器进行初始化,从仿真资源库中获得样本所需的仿真资源文件。
步骤四、仿真运行,根据用户通过网页发送的仿真运行控制指令,由仿真任务运行服务操控样本执行器执行仿真运行流程,完成仿真任务。
其中,具体地,所述方法涉及的模块包括:
仿真任务运行服务,是仿真应用系统的管理服务,负责创建和维护一组样本执行器,以完成用户提交的一个仿真任务。
样本执行器,负责完成单个仿真想定样本的仿真运算任务,并在任务完成后销毁。
仿真资源库,负责存储和管理所有仿真应用系统所需要的仿真资源文件,包括仿真模型、仿真数据、仿真想定等。
在步骤一中,用户通过网页创建仿真任务,仿真任务被创建并提交到云端后,被自动分发给云上可用的仿真任务运行服务。
步骤一的具体步骤包括:
步骤101、用户在网页浏览器中登录系统,进入仿真任务创建页面,创建一个新的仿真任务,设置其名称、任务描述、战场区域等基本信息,系统自动产生一个空白的仿真想定。
步骤102、用户从仿真模型列表中选择仿真模型,加入到仿真想定中,并设置仿真模型的初始参数,完成仿真想定的设计。
其中,仿真模型是仿真计算的最小模块,负责仿真运算,以动态链接库的方式进行封装。相比于仿真模型服务化,以动态链接库形式封装的仿真模型具有更低的开发难度和维护难度。对于仿真模型开发者,动态链接库仿真模型无需实现复杂的服务API,也无需管理复杂的服务生命周期,仅需以类Class的方式对仿真模型研究对象的物理特性、作战行为逻辑等进行编码实现,并将实例化后的管理权交给仿真引擎,由仿真引擎调用仿真模型实例化对象,并维护其生命周期。
其中,仿真引擎是仿真模型的管理器,负责根据指令调用仿真模型,使仿真模型按照时序、运行控制指令等要求,逐个时间帧地进行仿真运算。在分布式仿真的情况下,一个仿真应用系统中带有多个仿真引擎,仿真引擎彼此之间按时序交换彼此所调用的仿真模型的输出数据,实现分布式交互仿真。
步骤103、用户通过仿真试验多样本设计方法,以步骤102所产生的仿真想定为基础,生成仿真想定样本集。
步骤104、用户设定仿真运行的配置信息,包括运行时长、运行结束条件、运行次数等,并提交仿真任务。
步骤105、用户提交的仿真任务运行请求由负载均衡器转发给可用的仿真任务运行服务。
如图2所示,不同用户提交的不同的仿真任务运行请求被转发给容器云上可用的仿真任务运行服务,其余的可用的仿真任务运行服务实例继续保持空闲状态,等候接收新的仿真任务运行请求。
仿真任务运行服务由云平台的任务控制器进行维护,例如Kubernetes上的Deployment控制器。一般情况下,云上会存在一定数量的可用的仿真任务运行服务实例;若无可用实例,则任务控制器将自动创建新的服务实例。
在步骤二中,仿真任务运行服务以仿真任务为依据,创建并维护一组样本执行器,形成一个满足仿真任务运行需求的仿真应用系统。
步骤二的具体步骤包括:
步骤201、仿真任务运行服务解析指派给本服务实例的仿真任务,获得任务中包含的仿真想定样本集,将样本集中的样本数量设定为所需创建和管理的样本执行器的数量,每个样本执行器对应一个仿真想定样本。
样本执行器负责执行一个仿真想定样本的仿真运算任务,由一组容器构成,包括一个初始化容器和三种应用容器,分别为运行控制容器、仿真引擎容器和数据处理容器。在Kubernetes中,样本执行器以一个容器组的形式存在,容器组又称为Pod。其中,具体地:
初始化容器,在样本执行器创建后首先运行,自动从仿真资源库中获取同一个容器组中的应用容器所需要的仿真资源文件,并存储在应用容器可访问的共享存储区域中。在Kubernetes中,该容器通过Init容器实现,Init容器成功运行结束后,同一个Pod中的其它应用容器才可以启动运行。
运行控制容器,是负责控制样本执行器中的所有仿真引擎容器的运行过程的应用容器。该容器在样本执行器中有且仅有一个。
仿真引擎容器,是本发明中仿真引擎的具体存在形式,根据运行控制容器的操控指令,调用仿真模型执行仿真运算。样本执行器中可同时存在多个仿真引擎容器,每个容器分别承担一定数量的仿真模型的调用工作,以降低单个容器对云计算资源的占用度,提高整个样本执行器的资源利用效率。
数据处理容器,负责收集并存储仿真引擎容器所产生的仿真数据,并根据仿真态势显示等外部服务所需的格式、结构,对数据进行处理、转换和推送。该容器在样本执行器中有且仅有一个实例。
步骤202、仿真任务运行服务解析仿真想定样本,获得运行样本所需的仿真资源的列表,并作为样本执行器的初始化信息,写入其创建配置信息中。
在Kubernetes中,Pod的创建配置信息使用YAML或JSON规范来描述,其中记录了每个容器启动后需执行的指令。仿真想定样本所需的仿真资源列表信息可转换为一系列wget指令或curl指令,在初始化容器启动后自动执行,从仿真资源库中拉取本Pod所需的资源文件,并存储到Pod的数据卷中,使Pod内其它容器得以挂载该数据卷并能访问资源文件。
步骤203、仿真任务运行服务解析仿真想定样本,获得样本中所包含的仿真模型的种类、数量和计算复杂度等信息,以此设定样本执行器中所需包含的仿真引擎容器数量,及每个仿真引擎容器所需加载的仿真资源。
样本执行器中仿真引擎容器的数量及仿真资源分配情况,应将仿真运行性能最大化作为目标,同时秉承按需请求云计算资源的原则,不占用过多的云计算资源。一般情况下,可根据仿真模型的种类、实例数量、计算复杂度、所属阵营以及模型之间的数据交互关系等要素来确定仿真引擎的数量。
步骤204、仿真任务运行服务调用容器编排工具API,提交样本执行器创建配置信息,动态创建出指定数量的样本执行器。
仿真任务运行服务需通过调用容器编排管理工具提供的API才能实现对样本执行器容器组的管理。在Kubernetes中,仿真任务运行服务可调用KubernetesAPI,创建一个Job类型的工作负载,使Kubernetes创建出指定数量的样本执行器Pod。Kubernetes的Job工作负载将确保指定数量的Pod被成功创建,并且成功完成运行。当Job被删除时,其所创建的全部Pod将被清除。除了KubernetesAPI,仿真任务运行服务也可以通过kubectl或kubeadm等命令行工具实现对样本执行器Pod的管理。
图3为容器云架构上一个仿真应用系统的示意图。该系统负责执行一个包含了三个样本的仿真任务,每个样本分别由一个样本执行器负责执行,每个样本执行器中包含了三个仿真引擎容器。图4为样本执行器的一个实施例,运行控制容器、数据处理容器、仿真引擎容器以RPC服务形式提供API,仿真引擎之间通过DDS进行分布式数据交互,数据处理处理容器通过WebSocket方式对外提供数据,仿真资源库采用MySQL与MongoDB结合的方式实现。
在步骤三中,用户通过网页发送仿真初始化指令,仿真任务运行服务接收指令后操控样本执行器进行初始化,完成仿真运行前的准备工作。
步骤三的具体步骤包括:
步骤301、样本执行器中的初始化容器首先运行,根据样本执行器的创建配置信息中所设定的指令,从仿真资源库获取当前样本执行器所需要的仿真资源文件,并写入一个共享存储区域中。
Kubernetes通过Volume实现容器的数据存储管理。Volume又称为数据卷,或简称为卷。样本执行器Pod中的容器通过挂载同一个数据卷,可实现仿真资源的共享。Kubernetes支持多种类型的卷,在本发明中采用emptyDir类型的卷即可满足需求,该类型的数据卷的生命周期与Pod保持一致。当样本执行器Pod完成仿真想定样本的计算任务后被删除,则Pod中的emptyDir卷也将被永久删除。
步骤302、初始化容器运行结束后,样本执行器中的运行控制容器、仿真引擎容器和数据处理容器开始运行,从共享存储区域中访问仿真资源文件,并完成各自的初始化。
其中,具体地:
运行控制容器启动后,从其所属样本执行器的创建配置信息中获得仿真运行的配置信息,并与仿真引擎容器以及数据处理容器建立连接,为后续的仿真运行控制做准备。仿真引擎容器可通过RPC或HTTP等方式提供API,使运行控制容器可通过API调用的方式操控仿真引擎。
仿真引擎容器在启动后访问并解析共享存储区域中的仿真想定,并根据想定中记录的信息加载相关的仿真模型动态链接库,完成仿真模型的初始化,以及完成分布式交互仿真组件的初始化。在样本执行器中,负责调用不同仿真模型的仿真引擎容器之间需要高频地交换彼此仿真模型的数据,实现分布式交互仿真。在系统仿真领域中,仿真引擎之间的分布式数据交互一般采用高层体系结构HLA/RTI技术,或数据分发服务DDS技术,或其它提供数据发布/订阅机制的消息中间件,例如Kafka、RabbitMQ等。
数据处理容器启动后,访问共享存储区域中的仿真想定,获得想定中的仿真模型列表,以此作为仿真运行时数据转换的依据,为运行过程中的数据转换与存储做准备。
图5为仿真初始化过程的信息流示意图。样本执行器中的初始化容器从仿真资源库拉取仿真资源,并存入Pod中的临时数据卷,仿真引擎容器和数据处理容器从临时数据卷中各自获得所需资源。运行控制容器则分别与仿真引擎容器与数据处理容器建立连接。
在步骤四中,用户通过网页发送仿真运行控制指令,仿真任务运行服务接收到指令后,操控样本执行器执行仿真运行流程。
如图6所示,步骤四的具体步骤包括:
步骤401、样本执行器中的运行控制容器接收到仿真任务运行服务发送的启动仿真指令后,将仿真时钟的当前时刻设置为0,并向其控制的仿真引擎容器发送启动仿真指令。
步骤402、仿真引擎容器接收到运行控制容器发送的启动仿真指令,进入等候单步推进指令的状态,并向运行控制容器反馈状态,表示本容器正在等候下一个时间帧的单步推进指令。
步骤403、运行控制容器判断是否接收到终止仿真指令,或当前仿真时间已达到预设的结束时间,是则向仿真引擎容器发送终止仿真指令,否则进入下一个步骤。
步骤404、运行控制容器判断其所控制的所有仿真引擎容器所返回的状态,根据不同状态执行不同的操作。具体地:
若所有仿真引擎容器均为等候下一帧单步推进指令状态,则执行步骤405。
若有仿真引擎容器返回异常状态,则运行控制容器向仿真任务运行服务返回状态,请求用户给出进一步的处理指令,例如退出仿真,或忽略异常,等等。
若有仿真引擎容器未返回状态,则运行控制容器继续等候,直到所有仿真引擎容器返回状态,或直到等候时间超出预设的时长,超出时长未返回状态的仿真引擎容器将被视为异常,运行控制容器向仿真任务运行服务返回状态,并请求用户给出进一步的处理指令。
步骤405、运行控制容器将仿真时钟当前时刻推进一个时间步长,并将更新后的仿真时间写入单步推进指令,向仿真引擎容器发送,要求所有仿真引擎容器统一运行单个时间帧的仿真运算。
步骤406、仿真引擎容器接收到单步推进指令,将当前容器所管理的所有仿真模型的仿真时间推进一个时间步长,使其通过仿真计算更新当前仿真时间下的状态,并在所有仿真模型完成计算后,向运行控制容器返回状态,等候下一个时间帧的单步推进指令,返回步骤404。
图7为仿真运行过程的信息流示意图。样本执行器中的运行控制容器控制仿真引擎容器进行单步推进,并根据仿真引擎容器反馈的状态进行仿真时间同步管理。仿真引擎容器之间在每个时间帧内交换彼此的仿真数据。而数据处理容器则收集样本执行器中所有仿真引擎容器的仿真数据,一方面写入外部仿真资源库,另一方面经过数据处理与转换后向仿真态势显示等外部服务推送。
Claims (8)
1.一种基于容器架构的云仿真方法,其特征在于,包括以下步骤:
步骤一、接收用户创建的仿真任务指令,所述仿真任务包括运行所述仿真任务需要的仿真想定样本集以及配置信息;
步骤二、指派所述仿真任务给一个空闲的仿真任务运行服务,所述仿真任务运行服务创建一组样本执行器,每个执行器负责完成一个样本的仿真运算任务,并且根据样本所含仿真模型的种类、数量和计算复杂度,动态创建一组负责执行仿真模型运算任务的仿真引擎;
步骤三、所述仿真任务运行服务在接收到用户发送的仿真初始化指令后,使执行同一个仿真任务的样本执行器进行初始化,并从仿真资源库中获得样本所需的仿真资源文件;
步骤四、接收用户发送的仿真运行控制指令,由所述仿真任务运行服务操控所述样本执行器执行仿真运行流程,完成仿真任务。
2.根据权利要求1所述的一种基于容器架构的云仿真方法,其特征在于,所述仿真任务运行服务负责对一组样本执行器实施管理以完成用户提交的一个仿真任务,其中每个样本执行器是一组负责仿真运算的容器。
3.根据权利要求1所述的一种基于容器架构的云仿真方法,其特征在于,所述样本执行器由一组容器构成,负责完成单个仿真想定样本的仿真运算任务,并在仿真运算任务完成后销毁,其中包括一个初始化容器和三种应用容器,三种应用容器包括运行控制容器、仿真引擎容器、数据处理容器:
(1)初始化容器,在样本执行器创建后首先运行,自动从仿真资源库中获取同一个容器组中的应用容器所需要的仿真资源文件,并存储在应用容器可访问的共享存储区域中;
(2)运行控制容器,负责控制样本执行器中的所有仿真引擎容器的运行过程,所述运行控制容器在样本执行器中有且仅有一个;
(3)仿真引擎容器,加载有仿真引擎,根据运行控制容器的操控指令,调用仿真模型执行仿真运算,样本执行器中可同时存在多个仿真引擎容器,每个仿真引擎容器分别承担预设数量的仿真模型的调用工作;
(4)数据处理容器,负责收集并存储仿真引擎容器所产生的仿真数据,并根据外部服务所需的格式、结构,对数据进行处理、转换和推送,该容器在样本执行器中有且仅有一个实例。
4.根据权利要求1所述的一种基于容器架构的云仿真方法,其特征在于,所述仿真资源库负责存储和管理所有仿真应用系统所需要的仿真资源文件,包括仿真模型、仿真数据、仿真想定。
5.根据权利要求1所述的一种基于容器架构的云仿真方法,其特征在于,所述仿真模型是仿真计算的最小模块,负责仿真运算,以动态链接库的方式进行封装。
6.根据权利要求1所述的一种基于容器架构的云仿真方法,其特征在于,所述步骤二具体包括:
步骤201、仿真任务运行服务解析指派给本服务实例的仿真任务,获得所述仿真任务中包含的仿真想定样本集,将样本集中的样本数量设定为所需创建和管理的样本执行器的数量,每个样本执行器对应一个仿真想定样本;
步骤202、仿真任务运行服务解析仿真想定样本,获得运行样本所需的仿真资源的列表,并作为样本执行器的初始化信息,写入其创建配置信息中;
步骤203、仿真任务运行服务解析仿真想定样本,获得样本中所包含的仿真模型的种类、数量和计算复杂度等信息,以此设定样本执行器中所需包含的仿真引擎容器数量,及每个仿真引擎容器所需加载的仿真资源;
步骤204、仿真任务运行服务调用容器编排工具API,提交样本执行器创建配置信息,动态创建出指定数量的样本执行器。
7.根据权利要求1所述的一种基于容器架构的云仿真方法,其特征在于,所述的步骤三具体包括:
步骤301、样本执行器中的初始化容器首先运行,根据样本执行器的创建配置信息中所设定的指令,从仿真资源库获取当前样本执行器所需要的仿真资源文件,并写入一个共享存储区域中;
步骤302、初始化容器运行结束后,样本执行器中的运行控制容器、仿真引擎容器和数据处理容器开始运行,从共享存储区域中访问仿真资源文件,并完成各自的初始化。
8.根据权利要求1所述的一种基于容器架构的云仿真方法,其特征在于,所述的步骤四具体为:
步骤401、样本执行器中的运行控制容器接收到仿真任务运行服务发送的启动仿真指令后,将仿真时钟的当前时刻设置为0,并向所述运行控制容器控制的仿真引擎容器发送启动仿真指令;
步骤402、仿真引擎容器接收到运行控制容器发送的启动仿真指令,进入等候单步推进指令的状态,并向运行控制容器反馈状态,表示本容器正在等候下一个时间帧的单步推进指令;
步骤403、运行控制容器在接收到终止仿真指令或当前仿真时间已达到预设结束时间的情况下,向仿真引擎容器发送终止仿真指令,如果未接收到终止仿真指令且当前仿真时间未达到预设结束时间的情况下进入下一个步骤404;
步骤404、运行控制容器判断出自身控制的所有仿真引擎容器所返回的状态,根据不同状态执行不同的操作,具体包括:
若所有仿真引擎容器均为等候下一帧单步推进指令状态,则执行步骤405;
若有仿真引擎容器返回异常状态,则运行控制容器向仿真任务运行服务返回状态,请求用户给出进一步的处理指令;
若有仿真引擎容器未返回状态,则运行控制容器继续等候,直到所有仿真引擎容器返回状态,或直到等候时间超出预设时长,超出时长未返回状态的仿真引擎容器将被视为异常,运行控制容器向仿真任务运行服务返回状态,并请求用户给出进一步的处理指令;
步骤405、运行控制容器将仿真时钟当前时刻推进一个时间步长,并将更新后的仿真时间写入单步推进指令,将所述单步推进指令向仿真引擎容器发送,要求所有仿真引擎容器统一运行单个时间帧的仿真运算;
步骤406、仿真引擎容器接收到单步推进指令,将当前容器所管理的所有仿真模型的仿真时间推进一个时间步长,使所述仿真模型通过仿真计算更新当前仿真时间下的状态,并在所有仿真模型完成计算后,向运行控制容器返回状态,等候下一个时间帧的单步推进指令,返回步骤404。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210475.2A CN116149794B (zh) | 2023-03-07 | 2023-03-07 | 一种基于容器架构的云仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210475.2A CN116149794B (zh) | 2023-03-07 | 2023-03-07 | 一种基于容器架构的云仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116149794A true CN116149794A (zh) | 2023-05-23 |
CN116149794B CN116149794B (zh) | 2023-09-08 |
Family
ID=86361851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310210475.2A Active CN116149794B (zh) | 2023-03-07 | 2023-03-07 | 一种基于容器架构的云仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149794B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017152733A1 (zh) * | 2016-03-08 | 2017-09-14 | 中兴通讯股份有限公司 | 一种大规模复杂无线通信系统的仿真方法和系统 |
CN110991040A (zh) * | 2019-12-02 | 2020-04-10 | 北京仿真中心 | 一种复杂产品协同仿真环境构建方法 |
CN111651770A (zh) * | 2020-04-30 | 2020-09-11 | 北京华如科技股份有限公司 | 一种基于云计算的安全仿真计算系统及存储介质 |
CN113176875A (zh) * | 2021-05-12 | 2021-07-27 | 同济大学 | 一种基于微服务的资源共享服务平台架构 |
CN113377493A (zh) * | 2021-04-07 | 2021-09-10 | 中国电子科技集团公司第二十九研究所 | 一种容器云仿真系统及其设计方法 |
CN114564282A (zh) * | 2022-02-28 | 2022-05-31 | 中电工业互联网有限公司 | 一种基于分布式资源共享的仿真平台及其资源分配方法 |
CN114912255A (zh) * | 2022-04-24 | 2022-08-16 | 中国人民解放军陆军航空兵学院 | 在线仿真实验系统及方法 |
CN115454649A (zh) * | 2022-10-08 | 2022-12-09 | 中国科学院国家空间科学中心 | 面向空间操控仿真模型计算的动态任务调度系统 |
CN115586732A (zh) * | 2022-10-12 | 2023-01-10 | 中国航发四川燃气涡轮研究院 | 联合仿真装置 |
-
2023
- 2023-03-07 CN CN202310210475.2A patent/CN116149794B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017152733A1 (zh) * | 2016-03-08 | 2017-09-14 | 中兴通讯股份有限公司 | 一种大规模复杂无线通信系统的仿真方法和系统 |
CN110991040A (zh) * | 2019-12-02 | 2020-04-10 | 北京仿真中心 | 一种复杂产品协同仿真环境构建方法 |
CN111651770A (zh) * | 2020-04-30 | 2020-09-11 | 北京华如科技股份有限公司 | 一种基于云计算的安全仿真计算系统及存储介质 |
CN113377493A (zh) * | 2021-04-07 | 2021-09-10 | 中国电子科技集团公司第二十九研究所 | 一种容器云仿真系统及其设计方法 |
CN113176875A (zh) * | 2021-05-12 | 2021-07-27 | 同济大学 | 一种基于微服务的资源共享服务平台架构 |
CN114564282A (zh) * | 2022-02-28 | 2022-05-31 | 中电工业互联网有限公司 | 一种基于分布式资源共享的仿真平台及其资源分配方法 |
CN114912255A (zh) * | 2022-04-24 | 2022-08-16 | 中国人民解放军陆军航空兵学院 | 在线仿真实验系统及方法 |
CN115454649A (zh) * | 2022-10-08 | 2022-12-09 | 中国科学院国家空间科学中心 | 面向空间操控仿真模型计算的动态任务调度系统 |
CN115586732A (zh) * | 2022-10-12 | 2023-01-10 | 中国航发四川燃气涡轮研究院 | 联合仿真装置 |
Non-Patent Citations (3)
Title |
---|
ANASTASIA ANAGNOSTOU ETC.: "Towards a Deadline-Based Simulation Experimentation Framework Using Micro-Services Auto-Scaling Approach", 2019 WINTER SIMULATION CONFERENCE (WSC) * |
周隆亮 等: "体系任务仿真平台架构设计", 现代信息科技, vol. 4, no. 17 * |
李清;樊一萍;李大川;蒋欣;刘恩钰;陈甲;: "基于微服务的飞行管理系统仿真:体系与方法", 清华大学学报(自然科学版), no. 07 * |
Also Published As
Publication number | Publication date |
---|---|
CN116149794B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467725B2 (en) | Managing access to a resource pool of graphics processing units under fine grain control | |
CN106789339B (zh) | 一种基于轻量级虚拟化架构的分布式云仿真方法与系统 | |
US20050149908A1 (en) | Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity | |
CN103279390B (zh) | 一种面向小作业优化的并行处理系统 | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
US20210216375A1 (en) | Workload placement for virtual gpu enabled systems | |
CN105045658A (zh) | 一种利用多核嵌入式dsp实现动态任务调度分发的方法 | |
Agosta et al. | Managing heterogeneous resources in hpc systems | |
CN111897654A (zh) | 将应用迁移到云平台的方法、装置、电子设备和存储介质 | |
US20210042155A1 (en) | Task scheduling method and device, and computer storage medium | |
CN113434284B (zh) | 一种隐私计算服务端设备、系统及任务调度方法 | |
Naik et al. | Processor allocation in multiprogrammed distributed-memory parallel computer systems | |
CN114610474A (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
CN115543615A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN112860396A (zh) | 一种基于分布式深度学习的gpu调度方法及系统 | |
CN113377493A (zh) | 一种容器云仿真系统及其设计方法 | |
CN111124640A (zh) | 任务分配方法及系统、存储介质、电子装置 | |
CN114816694A (zh) | 一种多流程协作的rpa任务调度方法及装置 | |
Werner et al. | HARDLESS: A generalized serverless compute architecture for hardware processing accelerators | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN118069349A (zh) | 一种面向多场景的可变深度资源管理方法及系统 | |
CN116149794B (zh) | 一种基于容器架构的云仿真方法 | |
CN115775199B (zh) | 数据处理方法和装置、电子设备和计算机可读存储介质 | |
CN107872527B (zh) | 一种lvc一体化远程方式云服务系统及方法 | |
CN116204307A (zh) | 兼容不同计算框架的联邦学习方法和联邦学习系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |