CN112860334A - 一种并行仿真方法及存储介质 - Google Patents
一种并行仿真方法及存储介质 Download PDFInfo
- Publication number
- CN112860334A CN112860334A CN202110086215.XA CN202110086215A CN112860334A CN 112860334 A CN112860334 A CN 112860334A CN 202110086215 A CN202110086215 A CN 202110086215A CN 112860334 A CN112860334 A CN 112860334A
- Authority
- CN
- China
- Prior art keywords
- simulation
- interface
- parallel
- simulation object
- event
- 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.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 230
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000005094 computer simulation Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002407 reforming Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
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
本发明公开了一种并行仿真方法及存储介质,属于并行仿真领域。一种并行仿真方法,包括以下步骤:定义支持并行plug‑in‑play仿真的仿真对象接口,封装于基类中;所述接口包括:描述所述基类的子类处理过程的描述接口与辅助所述子类进行仿真处理的辅助接口;仿真对象类分别实现所述仿真对象接口,编译形成动态链接库,供仿真引擎加载;通过上述仿真对象接口定义仿真对象的描述文件格式;将所述仿真对象集成为仿真应用,完成仿真对象名称、公布订购的匹配,形成仿真应用的描述文件;所述仿真引擎根据所述描述文件加载仿真对象库与实例化仿真对象,初始化参数,启动仿真运行。
Description
技术领域
本发明涉及并行仿真领域,具体涉及一种并行仿真方法及存储介质。
背景技术
并行仿真一般需要由仿真引擎和仿真模型支撑运行,其中仿真引擎主要完成仿真中一些共性功能,如仿真对象管理、事件驱动、时间管理、线程管理、名字服务等,这些功能与计算机仿真、并行程序设计等专业密切相关,因此一般由计算机仿真领域人员设计和开发,形成一定的库;仿真模型主要关注物理世界中被研究对象的运行机理、变化规律等,一般由相关专业领域人员提供支持,并形成库文件。
在实际开发中,两部分工作分开进行,最终由仿真开发人员编写主程序加载上述的库,编译形成可执行文件,在开始仿真运行上述模式仍然存在不足,例如。现有的并行仿真的运行模式中,对于每一个具体的仿真应用都需要进行主程序的开发,造成了大量的重复劳动。并且这种一事一办的仿真灵活性极差,单个仿真开发完成后,很难对其进行更改,维护和改造的难度和代价很高。
因此,实际中急需支持plug-in-play的并行仿真方法,即并行仿真通过加载(plug-in)不同的模型库并进行一定的配置即可灵活组装仿真应用,此后仿真引擎加载模型库和读取配置即可开始仿真运行(play),同时上述过程无需对模型库和仿真引擎作任何更改和二次编译。
发明内容
针对现有技术的不足,本发明提出了一种并行仿真方法及存储介质。
本发明的目的可以通过以下技术方案实现:
一种并行仿真方法,包括以下步骤:
定义支持并行仿真的plug-in-play仿真对象接口,封装于基类中;所述接口包括:描述所述基类的子类处理过程的描述接口与辅助所述子类进行仿真处理的辅助接口;仿真对象类分别实现所述仿真对象接口,编译形成动态链接库,供仿真引擎加载;
通过上述仿真对象接口定义仿真对象的描述文件格式;
将所述仿真对象集成为仿真应用,完成仿真对象名称、公布订购的匹配,形成仿真应用的描述文件;
所述仿真引擎根据所述描述文件加载仿真对象库与实例化仿真对象,初始化参数,启动仿真运行。
可选地,所述描述接口为:初始化模型接口、事件处理接口、处理订购接口、兴趣表达接口、退出仿真接口、保存或恢复逻辑进程状态的接口、反计算接口中的一种或多种。
可选地,所述辅助接口为获取全局或类内编号的接口、获取局部虚拟时间的接口、调度事件接口、发布订购接口、日志接口中的一种或多种。
可选地,所述事件处理接口用于向仿真对象发出完成动作的指令,使所述仿真对象表达其可响应的事件。
可选地,所述处理订购接口用于驱使所述仿真对象通过所述仿真引擎转发数据至另一个或多个仿真对象。
可选地,所述兴趣表达接口用于表达所述仿真对象是否需要接收所述数据。
可选地,用于所述仿真对象对已处理的所述事件进行更改以完成逆运算,从而撤销对所述事件的更改。
可选地,所述初始化参数包括以下步骤:采用中间配置文件,根据参数的属性依次读取文件、数值转化与变量赋值,完成所述仿真对象的初始化。
可选地,所述的集成仿真应用包括以下步骤:
仿真引擎加载仿真应用描述文件,读取仿真控制参数;
依次加载动态链接库,生成仿真对象实例;
调度初始化模型的事件至仿真对象,仿真对象处理对应事件,产生的新事件,直至仿真结束。
一种计算机可读的存储介质,存储有指令,所述计算机执行所述指令时,实现上述的并行仿真方法。
附图说明
下面结合附图对本发明作进一步的说明。
图1为本发明的一个示例中的飞机与雷达的仿真模型示意图;
图2为本发明的一个示例中的并行仿真方法的步骤示意图;
图3为本发明的一个示例中的运行仿真的步骤示意图;
图4为本发明的一个示例中的飞机处理事件的过程示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图2所示,本发明的一个示例中,公开了一种并行仿真方法,可以包括以下步骤:
定义支持并行仿真的plug-in-play仿真对象接口,封装于基类中。所述接口包括:描述所述基类的子类处理过程的描述接口与辅助所述子类进行描述仿真的辅助接口;通过上述仿真对象接口定义仿真对象的描述文件格式。本发明中的描述文件可以是计算机可读的,且具体的描述文件例如为.xml格式;
仿真对象类分别实现所述仿真对象接口,编译形成动态链接库,供仿真引擎加载;
将所述仿真对象集成为仿真应用,完成仿真对象名称、公布订购的匹配,形成仿真应用的描述文件;
所述仿真引擎根据所述描述文件加载仿真对象库与实例化仿真对象,初始化参数,启动仿真运行。
可选地,所述描述接口为:初始化模型接口、事件处理接口、处理订购接口、兴趣表达接口、退出仿真接口、保存或恢复逻辑进程状态的接口、反计算接口中的一种或多种。
可选地,所述辅助接口为获取全局或类内编号的接口、获取局部虚拟时间的接口、调度事件接口、发布订购接口、日志接口中的一种或多种。
其中,所述事件处理接口用于向仿真对象发出完成动作的指令,使所述仿真对象表达其可相应的事件。所述处理订购接口用于驱使所述仿真对象通过所述仿真引擎转发数据至另一个或多个仿真对象。所述兴趣表达接口用于表达所述仿真对象是否接收所述数据。反计算接口可以用于所述仿真对象对已处理的所述事件进行更改以完成逆运算,从而撤销对所述事件的更改。
更具体地说,所述初始化参数包括以下步骤:采用中间配置文件,根据参数的属性依次读取文件、数值转化与变量赋值,完成所述仿真对象的初始化。
所述的集成仿真应用包括以下步骤:
仿真引擎加载仿真应用描述文件,读取仿真控制参数;
依次加载动态链接库,生成仿真对象实例;
调度初始化模型的事件至仿真对象,仿真对象处理对应事件,应对可能产生的新事件,直至仿真结束。
针对上述示例中的并行仿真方法,提供一个具体仿真模型构建的实施例。该实施例涉及飞机雷达的仿真模拟,如图1所示,在1000×1000单位面积的平面区域内部署两个搜索半径分别为R1和R2雷达,两架飞机A1和A2从初始时刻分别以v1和v2的速度沿对角线飞行并将位置报告给雷达,雷达根据搜索半径判断是否在自身侦察范围内。下面具体阐述针对于该模型的开发、集成和运行三个阶段的过程和工作。
在仿真模型的开发阶段,按照所述规范实现接口来定义雷达、飞机模型的处理逻辑。本例包含两类仿真对象,飞机和雷达。在本示例中,如图4所示,飞机模型通过调度事件接口,周期性地给自己调度一个计算位置的事件。在完成事件调度接口的任务同时,还可以通过发布订购的接口,更新其位置并公布自身位置。
雷达通过调度事件接口,周期性给自己调度扫描事件,在处理该事件时处理本周期内收到的目标信息。更具体地说,还可以在执行之前定义具体的存储目标信息的位置以及雷达扫描的周期。
雷达实现兴趣表达接口和处理公布接口定义对飞机公布数据的处理,值得注意的是,由于兴趣表达接口中已过滤搜索范围外的目标,在处理订购接口中不再需要判断。
当仿真对象开发完成后,编译形成可执行格式,本示例中,以动态链接库为例,并配套编制格式化的描述文件,本例中为XML文件。
动态链接库和描述文件作为服务发现和调用的依据,在运行时读取描述文件获得模型存储的动态链接库名称、生成和销毁实例的方法此后可通过加载动态链接库并调用生成和销毁实例方法得到具体模型的实例,此后由仿真引擎托管生成的实例,从而实现仿真对象的动态挂载、模型接口调用及实例全生命周期管理。
雷达和飞机模型都编译成动态链接库并配有相应的描述文件,集成阶段的工作就是将多个模型集成为一个仿真应用,本例就是图1所示的仿真应用,并形成仿真应用描述文件。这项工作可以手动完成,也可以开发专用工具完成。
本示例中的仿真集成可以包括以下步骤:
定义仿真名称、线程数目、仿真结束的虚拟时间、需要挂载的动态链接库列表等。
设置单个动态链接库,包括但不限于动态链接库的名称、仿真对象实例化方法名称、销毁仿真对象实例方法名称、在此仿真应用内仿真对象类的名称、需要生成的仿真对象实例数目、状态保存和恢复的方法等。
完成仿真集成后,通过形成的仿真对象的描述文件,模型中的其他仿真对象通过仿真描述文件获知该仿真对象的能够响应的事件以及能够订购与公布的数据,这样,在仿真过程中,各个仿真对象能够顺利地进行数据的传递与事件响应。
如图3所示,运行仿真应用可以使用支撑上述规范的仿真引擎(可执行程序),其过程包括以下步骤:
仿真引擎加载仿真应用描述文件,并读取仿真控制参数,如线程数目、仿真结束时间等;
仿真引擎依次加载每个动态链接库(一般一个动态链接库包含一个仿真对象类),生成指定数目的仿真对象实例,这些实例由仿真对象托管,并为每个仿真对象实例调度一个初始化模型的事件,初始化模型事件的时戳为0,因此它是所有仿真对象实例的第一个事件,处理该事件时就会调用初始化接口。
所有实例生成完毕后,处理所有初始化仿真对象实例的事件,初始化事件会生成新的事件,此后开始整个仿真应用“生成事件-处理事件”的过程,直至仿真结束(即仿真运行到前面指定的结束时间),在乐观仿真中处理事件之前需要进行状态保存,并在发生回滚时恢复状态,仿真结束之前仿真引擎会调用所有实例的退出仿真接口。
在上述的初始化过程中,仿真对象实例化后需要根据其任务安排进行初始化,在有些仿真应用中不同的实例需要不同的初始化参数,初始化参数一般来自于想定文件,由于想定文件可能使用不同的工具产生,其格式不尽相同,可采用中间配置文件,读取仿真对象的参数属性,然后依次进行读取文件、数值转化、变量赋值,从而为仿真对象实例指定初始化参数。
需要注意的是,上述仅仅是本发明的并行仿真方法的一种示例,由于配置接口的多样性,以及在集成阶段形成了仿真名称、公布订购的匹配的描述文件,因此本发明的并行仿真的方法还够适用于其他的并行仿真实例中,而并不仅限于上述的飞机与雷达模型的示例。
由上述的示例可得,本发明的并行仿真方法覆盖并行仿真开发、集成和运行阶段,有效支撑plug-in-play仿真,同时实现了仿真对象类、仿真集成工具、仿真引擎和其它工具的解耦合,支持上述仿真要素的独立分布开发,有利于仿真模型利用和保护各自知识产权。
在仿真开发阶段,提出了支持并行仿真的plug-in-play仿真对象接口,专业领域人员分别实现对应接口以描述物理实体的行为,同时定义的仿真对象描述文件格式,保证了仿真模型的一致性、可读性。
在仿真集成阶段,抽取仿真应用集成所需信息并定义了仿真应用描述文件格式,为支持并行plug-in-play仿真的引擎、集成工具等其它开发工具提供支持。
并且,本发明还提出了一种计算机可读的存储介质,存储有指令,所述计算机执行所述指令时,实现上述示例中所述的并行仿真方法。上述的指令例如是计算机可识别的计算机语言。
上述的计算机可以是一个通用计算机设备、计算机组或者专用计算机设备,也可以是通过网络连接上述计算机设备组成的集群系统。在具体实现中,计算机可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备或者嵌入式设备。所述的存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。举例而言,所述的存储介质例如为但不限于磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
Claims (10)
1.一种并行仿真方法,其特征在于,包括以下步骤:
定义支持并行仿真的plug-in-play仿真对象接口,封装于基类中;所述接口包括:描述所述基类的子类处理过程的描述接口与辅助所述子类进行仿真处理的辅助接口;仿真对象类分别实现所述仿真对象接口,编译形成动态链接库,供仿真引擎加载;
通过上述仿真对象接口定义仿真对象的描述文件格式;
将所述仿真对象集成为仿真应用,完成仿真对象名称、公布订购的匹配,形成仿真应用的描述文件;
所述仿真引擎根据所述描述文件加载仿真对象库与实例化仿真对象,初始化参数,启动仿真运行。
2.根据权利要求1所述的并行仿真方法,其特征在于,所述描述接口为:初始化模型接口、事件处理接口、处理订购接口、兴趣表达接口、退出仿真接口、保存或恢复逻辑进程状态的接口、反计算接口中的一种或多种。
3.根据权利要求1所述的并行仿真方法,其特征在于,所述辅助接口为获取全局或类内编号的接口、获取局部虚拟时间的接口、调度事件接口、发布订购接口、日志接口中的一种或多种。
4.根据权利要求2所述的并行仿真方法,其特征在于,所述事件处理接口用于向仿真对象发出完成动作的指令,使所述仿真对象表达其可响应的事件。
5.根据权利要求2所述的并行仿真方法,其特征在于,所述处理订购接口用于驱使所述仿真对象通过所述仿真引擎转发数据至另一个或多个仿真对象。
6.根据权利要求2所述的并行仿真方法,其特征在于,所述兴趣表达接口用于表达所述仿真对象是否需要接收所述数据。
7.根据权利要求2所述的并行仿真方法,其特征在于,用于所述仿真对象对已处理的所述事件进行更改完成逆运算,从而撤销对所述事件的更改。
8.根据权利要求1所述的并行仿真方法,其特征在于,所述初始化参数包括以下步骤:采用中间配置文件,根据参数的属性依次读取文件、数值转化与变量赋值,完成所述仿真对象的初始化。
9.根据权利要求1所述的并行仿真方法,其特征在于,所述的集成仿真应用包括以下步骤:
仿真引擎加载仿真应用描述文件,读取仿真控制参数;
依次加载动态链接库,生成仿真对象实例;
调度初始化模型的事件至仿真对象,仿真对象处理对应事件,产生的新事件,直至仿真结束。
10.一种计算机可读的存储介质,存储有指令,其特征在于,执行所述指令时,实现权利要求1~9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110086215.XA CN112860334A (zh) | 2021-01-22 | 2021-01-22 | 一种并行仿真方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110086215.XA CN112860334A (zh) | 2021-01-22 | 2021-01-22 | 一种并行仿真方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860334A true CN112860334A (zh) | 2021-05-28 |
Family
ID=76007800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110086215.XA Pending CN112860334A (zh) | 2021-01-22 | 2021-01-22 | 一种并行仿真方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860334A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964131A (zh) * | 2023-03-16 | 2023-04-14 | 中国人民解放军国防科技大学 | 支持多仿真引擎的仿真模型管理系统和仿真模型调度方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587446A (zh) * | 2009-06-30 | 2009-11-25 | 中国运载火箭技术研究院 | 基于分布交互仿真平台的仿真模型转换方法 |
CN104268002A (zh) * | 2014-09-30 | 2015-01-07 | 中国人民解放军国防科学技术大学 | 一种基于端口封装的仿真对象可视化开发环境实现方法 |
-
2021
- 2021-01-22 CN CN202110086215.XA patent/CN112860334A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587446A (zh) * | 2009-06-30 | 2009-11-25 | 中国运载火箭技术研究院 | 基于分布交互仿真平台的仿真模型转换方法 |
CN104268002A (zh) * | 2014-09-30 | 2015-01-07 | 中国人民解放军国防科学技术大学 | 一种基于端口封装的仿真对象可视化开发环境实现方法 |
Non-Patent Citations (1)
Title |
---|
林忠伟 等: "面向plug-in-play模式的仿真对象接口研究", 《系统仿真学报》, pages 1 - 12 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964131A (zh) * | 2023-03-16 | 2023-04-14 | 中国人民解放军国防科技大学 | 支持多仿真引擎的仿真模型管理系统和仿真模型调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540335B2 (en) | Solution to generate a scriptset for an automated database migration | |
US10466981B1 (en) | System and method for generative programming in an integrated development environment (IDE) | |
WO2015019074A1 (en) | Automated application test system | |
CN101840352A (zh) | 一种数据库连接池的监控方法及装置 | |
CN107871050B (zh) | 面向数据和面向对象的混合建模方法及存储介质 | |
CN110717268B (zh) | 一种基于face架构的可移植组件单元封装方法 | |
US12073197B2 (en) | Systems and methods for generating service access points for RTE services in code or other RTE service information for use with the code | |
US10572247B2 (en) | Prototype management system | |
WO2023087764A1 (zh) | 算法应用元的打包方法及装置、设备、存储介质和计算机程序产品 | |
CN114637511A (zh) | 代码测试系统、方法、装置、电子设备及可读存储介质 | |
US9595014B1 (en) | System and method for executing workflow instance and modifying same during execution | |
US11604903B2 (en) | Layered analytical modeling of telecom tower structure and scenario analysis | |
US20040093600A1 (en) | Scheduling method, program product for use in such method, and task scheduling apparatus | |
CN112860334A (zh) | 一种并行仿真方法及存储介质 | |
US9612863B2 (en) | Hardware device for accelerating the execution of a systemC simulation in a dynamic manner during the simulation | |
CN113626163A (zh) | 一种轻量级分布式增量自调度方法、系统、设备和介质 | |
CN111027221B (zh) | 一种基于组件的模块化综合航电模拟训练系统 | |
CN117271122A (zh) | 基于cpu和gpu分离的任务处理方法、装置、设备及存储介质 | |
US20020156611A1 (en) | Performance simulation process, and multiprocessor application production process, and devices for implementing said processes | |
CN115617480A (zh) | 一种任务调度方法、装置、系统及存储介质 | |
Harper et al. | Deploying healthcare simulation models using containerization and continuous integration | |
CN113296913A (zh) | 基于单集群的数据处理方法、装置、设备及存储介质 | |
US20180239640A1 (en) | Distributed data processing system, and distributed data processing method | |
CN114692382B (zh) | 核电仿真模型开发数据的管理方法、装置及计算机设备 | |
CN117591132B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210528 |
|
RJ01 | Rejection of invention patent application after publication |