CN111177893A - 基于多线程的并行离散仿真事件驱动方法及装置 - Google Patents

基于多线程的并行离散仿真事件驱动方法及装置 Download PDF

Info

Publication number
CN111177893A
CN111177893A CN201911269841.1A CN201911269841A CN111177893A CN 111177893 A CN111177893 A CN 111177893A CN 201911269841 A CN201911269841 A CN 201911269841A CN 111177893 A CN111177893 A CN 111177893A
Authority
CN
China
Prior art keywords
simulation
model
events
threads
entity
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
Application number
CN201911269841.1A
Other languages
English (en)
Other versions
CN111177893B (zh
Inventor
郑建国
邓石钢
刘筱斌
杨建池
马丽娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Puxin (beijing) Technology Development Co Ltd
Original Assignee
China Telecom Puxin (beijing) Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Puxin (beijing) Technology Development Co Ltd filed Critical China Telecom Puxin (beijing) Technology Development Co Ltd
Priority to CN201911269841.1A priority Critical patent/CN111177893B/zh
Publication of CN111177893A publication Critical patent/CN111177893A/zh
Application granted granted Critical
Publication of CN111177893B publication Critical patent/CN111177893B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明是关于一种基于多线程的并行离散仿真事件驱动方法及装置。该方法包括:接收生成的多个仿真事件;调用多个仿真线程;通过所述多个仿真线程并行处理所述多个仿真事件,以对所述仿真平台上的实体模型进行并行仿真。通过本发明的技术方案,可利用多线程提高仿真平台上实体模型的仿真处理进度/仿真速度,进而有利于提高仿真平台的仿真效率,另外,还可将仿真平台上的实体模型分解成平台(机动)、数据处理、雷达、通信、行为模型等组件,从而分配给不同专业的开发人员,提高模型的精细程度,针对组件的加载、组件间的通信、控制,引擎在底层实现了全面封装,做到了对模型开发用户的完全透明,用户只需调用对应组件的指针直接使用即可,降低模型开发难度。

Description

基于多线程的并行离散仿真事件驱动方法及装置
技术领域
本发明涉及仿真技术领域,尤其涉及基于多线程的并行离散仿真事件驱动方法及装置。
背景技术
目前,随机计算机仿真技术自诞生,仿真技术受到了世界各国的广泛关注和高度重视,然而现在的仿真性能并不佳,尤其是当仿真模型较多或者实体模型过于复杂、计算量过大时,仿真速度不能满足要求。
发明内容
本发明实施例提供了基于多线程的并行离散仿真事件驱动方法及装置。
所述技术方案如下:
根据本发明实施例的第一方面,提供一种基于多线程的并行离散仿真事件驱动方法,包括:
接收生成的多个仿真事件,其中,所述多个仿真事件用于供仿真平台上的实体模型执行仿真操作;
调用多个仿真线程;
通过所述多个仿真线程并行处理所述多个仿真事件,以对所述仿真平台上的实体模型进行并行仿真,其中,所述多个仿真线程中的各仿真线程用于处理所述多个仿真事件中的至少一个仿真事件,所述实体模型可被分解成若干组件,所述多个仿真事件为针对所述若干组件的事件。
在一个实施例中,所述方法还包括:
确定所述仿真平台所安装的设备的当前CPU内核数量;
调用CPU内核数量与仿真线程之间的预设对应关系;
根据所述当前CPU内核数量和所述预设对应关系,确定所述多个仿真线程的数量。
在一个实施例中,所述方法还包括:
将所述多个仿真事件提交至事件缓冲池中;
所述通过所述多个仿真线程并行处理所述多个仿真事件,包括:
通过所述多个仿真线程从所述事件缓冲池中依次交替调取事件,从而并行处理所述多个仿真事件。
在一个实施例中,所述通过所述多个仿真线程并行处理所述多个仿真事件,包括:
通过所述多个仿真线程确定所述多个仿真事件中各仿真事件对应的实体模型;
通过所述多个仿真线程同时调用所述各仿真事件对应的实体模型各自的事件处理函数;
通过所述多个仿真线程同时控制所述各仿真事件对应的实体模型响应各自的事件处理函数,以使所述各仿真事件对应的实体模型执行相应的仿真操作,驱动所述仿真平台的仿真过程。
在一个实施例中,当所述多个仿真事件的数量N1大于所述多个仿真线程的数量N2时,
所述通过所述多个仿真线程同时调用所述各仿真事件对应的实体模型各自的事件处理函数,包括:
通过所述多个仿真线程中各仿真线程同时调用所述各仿真事件对应的实体模型中的一个实体模型的事件处理函数;
所述方法还包括:
当所述各仿真线程中任一仿真线程控制所述一个实体模型响应完其事件处理函数后,所述任一仿真线程调用(N2-N1)个事件处理函数中的一个目标事件处理函数,并控制所述目标事件处理函数的实体模型响应所述目标事件处理函数,并不断循环,直至所述多个仿真线程并行处理完所述多个仿真事件,其中,所述多个仿真事件中各仿真事件都携带有处理时间,所述目标事件处理函数为所述(N2-N1)个仿真事件中处理时间最早的仿真事件对应的实体模型的事件处理函数。
在一个实施例中,所述接收生成的多个仿真事件,包括:
接收基于外部仿真指令而生成的仿真事件;和/或
接收基于实体模型反馈的仿真状态而生成的仿真事件。
在一个实施例中,所述方法还包括:
通过所述多个仿真线程确定所述实体模型的仿真状态,生成所述实体模型的当前仿真记录;
调用预先获取的所述实体模型对应的真实的被仿真对象在实际运行环境下的预设状态记录;
根据所述当前仿真记录和所述预设状态记录,生成至少一个实体模型仿真运行指令;
将所述至少一个实体模型仿真运行指令发送至所述实体模型,以控制所述实体模型的仿真过程或者调节所述实体模型的模型参数。
在一个实施例中,所述方法还包括:
采用通用建模工具对所述实体模型对应的真实的被仿真对象进行数学模型搭建,得到简易仿真模型;
采用专业建模工具对所述被仿真对象进行数学模型搭建,得到精细仿真模型;
以所述精细仿真模型为衡量标准,对所述简易仿真模型的模型结构和模型参数做初步验证,并对不符合第一预设要求的模型结构和模型参数进行修正;
利用所述被仿真对象的第一组实验数据对初步验证修正后的简易仿真模型做再次验证,并对所述修正后的简易仿真模型的模型参数做再次修正,直至在相同的输入下修正后的简易仿真模型的输出数据与所述被仿真对象对应的输出数据的一致性衡量指标满足预设接受值,获得根据所述第一组实验数据得到的简易仿真模型;
利用所述被仿真对象的第二组实验数据作为所述第一组实验数据得到的简易仿真模型的输入,经过所述简易仿真模型的仿真计算,得到所述第二组实验数据对应的输出数据;
计算所述第二组实验数据对应的输出数据与所述被仿真对象对应的输出数据的一致性衡量指标;
判断所述第二组实验数据的一致性衡量指标是否满足所述预设接受值;
如果是,则将所述第二组实验数据得到的简易仿真模型作为所述被仿真对象的实体模型。
在一个实施例中,所述第一组实验数据和所述第二组实验数据包括多次实验数据;
设所述多次实验数据中的第k次实验数据中i维度下的数据量占比为Ri,第k-1次实验中i维度下的数据量占比为Ri’,第k次实验数据中i维度下数据量绝对值为ri,第k-1次实验数据中i维度下数据量绝对值为ri’,其中i=1,2,3…n,则i维度的影响为
Ei=Ri(1-ri)-R′i(1-r′i)
各维度总的影响为
Figure BDA0002313857200000041
i维度总的影响因子为
Figure BDA0002313857200000042
相应的,当将i维度进行扩展,则所述i维度的各因素的影响为
Eij=Rij(1-rij)-R′ij(1-r′ij)
所述各维度总的影响为
Figure BDA0002313857200000051
各因素总的影响因子为
Figure BDA0002313857200000052
其中j为i维度的细分,j=1,2,3…m;
根据计算获得的Pi的值的大小,确定对所述简易仿真模型的仿真实验影响最大的维度,同时根据Pij的值的大小确定所述影响最大的维度下对所述仿真实验影响最大的影响因子。
当然很多情况下第一组实验数据和第二组实验数据得到的仿真实验结果可能不同,为了能确定在不同组实验数据中引起结果不同的原因,从而更快的调整实验数据,通过更少的仿真次数,获得最好的结果,需要对每次实验数据进行结果分析。
根据计算获得的Pi的值大小可以确定影响各次仿真实验不同的主要因素是哪个维度,同时根据Pij的值得大小可以确定各维度下哪些因子对实验结果的影响最大,从而达到快速定位原因,调整仿真实验、维度或影响因子的目的,从而减少仿真实验次数,节省计算资源。
根据本发明实施例的第二方面,提供一种基于多线程的并行离散仿真事件驱动装置,包括:
接收模块,用于接收生成的多个仿真事件,其中,所述多个仿真事件用于供仿真平台上的实体模型执行仿真操作;
调用模块,用于调用多个仿真线程;
处理模块,用于通过所述多个仿真线程并行处理所述多个仿真事件,以对所述仿真平台上的实体模型进行并行仿真,其中,所述多个仿真线程中的各仿真线程用于处理所述多个仿真事件中的至少一个仿真事件,所述实体模型可被分解成若干组件,所述多个仿真事件为针对所述若干组件的事件。
本发明的实施例提供的技术方案可以包括以下有益效果:
在接收多个仿真事件后,通过调用多个仿真线程,可利用多个仿真线程并行处理多个仿真事件,从而利用多线程提高仿真平台上实体模型的仿真处理进度/仿真速度,进而有利于提高仿真平台的仿真效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种基于多线程的并行离散仿真事件驱动方法的流程图。
图2是根据一示例性实施例示出的一种基于多线程的并行离散仿真事件驱动装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了解决上述技术问题,本发明实施例提供了一种基于多线程的并行离散仿真事件驱动方法,该方法可用于基于多线程的并行仿真程序、系统或装置中,且该方法对应的执行主体可以是终端或服务器,如图1所示,该方法包括步骤S101至步骤S103:
在步骤S101中,接收生成的多个仿真事件,其中,所述多个仿真事件用于供仿真平台上的实体模型执行仿真操作;
在步骤S102中,调用多个仿真线程;
在步骤S103中,通过所述多个仿真线程并行处理所述多个仿真事件,以对所述仿真平台上的实体模型进行并行仿真,其中,所述多个仿真线程中的各仿真线程用于处理所述多个仿真事件中的至少一个仿真事件,所述实体模型可被分解成若干组件,所述多个仿真事件为针对所述若干组件的事件,例如:可将作战实体模型分解为实体、平台(机动)、数据处理、雷达、通信、行为模型等组件,分配给不同专业的开发人员,提高模型的精细程度;针对组件的加载、组件间的通信、控制,引擎在底层实现了全面封装,做到了对模型开发用户的完全透明,用户只需调用对应组件的指针直接使用即可,降低模型开发难度,降低模型开发和移植成本。
在接收多个仿真事件后,通过调用多个仿真线程,可利用多个仿真线程并行处理多个仿真事件,从而利用多线程提高仿真平台上实体模型的仿真处理进度/仿真速度,进而有利于提高仿真平台的仿真效率。
在一个实施例中,所述方法还包括:
确定所述仿真平台所安装的设备的当前CPU内核数量;CPU即central processingunit,中央处理器。
调用CPU内核数量与仿真线程之间的预设对应关系;
根据所述当前CPU内核数量和所述预设对应关系,确定所述多个仿真线程的数量。
通过确定仿真平台所安装的设备的当前CPU内核数量,可基于上述预设对应关系和当前CPU内核数量,准确确定需要开启多少个仿真线程,从而利用多个仿真线程实现并行仿真,以提高仿真事件的处理效率/速率,进而提高仿真平台的仿真效率,也能够充分发挥目前主流计算机的多核优势。
在一个实施例中,所述方法还包括:
将所述多个仿真事件提交至事件缓冲池中;
通过设置事件缓冲池可对多个仿真事件进行缓存,另外,通过设置该事件缓冲池多个线程在执行事件时并不需要等待,(在Windows系统下,系统最低等待时间为10-15毫秒),这有利于进一步将仿真运行效率发挥到极致。
所述通过所述多个仿真线程并行处理所述多个仿真事件,包括:
通过所述多个仿真线程从所述事件缓冲池中依次交替调取事件,从而并行处理所述多个仿真事件。
通过多个仿真线程交替调取事件,可并行处理多个仿真事件,以提高仿真平台的仿真效率。
在一个实施例中,所述通过所述多个仿真线程并行处理所述多个仿真事件,包括:
通过所述多个仿真线程确定所述多个仿真事件中各仿真事件对应的实体模型;
通过所述多个仿真线程同时调用所述各仿真事件对应的实体模型各自的事件处理函数;
通过所述多个仿真线程同时控制所述各仿真事件对应的实体模型响应各自的事件处理函数,以使所述各仿真事件对应的实体模型执行相应的仿真操作,驱动所述仿真平台的仿真过程。
通过多个仿真线程同时调用所述各仿真事件对应的实体模型各自的事件处理函数,可同时控制各仿真事件对应的实体模型响应各自的事件处理函数,从而使得仿真事件能够得到并行处理,进而有利于提高仿真平台的仿真效率。
在一个实施例中,当所述多个仿真事件的数量N1大于所述多个仿真线程的数量N2时,
所述通过所述多个仿真线程同时调用所述各仿真事件对应的实体模型各自的事件处理函数,包括:
通过所述多个仿真线程中各仿真线程同时调用所述各仿真事件对应的实体模型中的一个实体模型的事件处理函数;A仿真事件对应的实体模型即需要响应A仿真事件的实体模型B。
另外,若A仿真事件对应的实体模型为B实体模型,则A仿真事件对应的B实体模型的事件处理函数即B实体模型对A仿真事件的响应处理函数。
所述方法还包括:
当所述各仿真线程中任一仿真线程控制所述一个实体模型响应完其事件处理函数后,所述任一仿真线程调用(N2-N1)个事件处理函数中的一个目标事件处理函数,并控制所述目标事件处理函数的实体模型响应所述目标事件处理函数,并不断循环,直至所述多个仿真线程并行处理完所述多个仿真事件,其中,所述多个仿真事件中各仿真事件都携带有处理时间,所述目标事件处理函数为所述(N2-N1)个仿真事件中处理时间最早的仿真事件对应的实体模型的事件处理函数,上述(N2-N1)个事件处理函数为N1个仿真事件中尚未被处理的仿真事件对应的实体模型的事件处理函数。
通过本实施例的技术方案可利用多个仿真线程并行调用事件处理函数,从而实现并行仿真,以提高仿真事件的处理效率/速率,进而提高仿真平台的仿真效率,也能够充分发挥目前主流计算机的多核优势。
在一个实施例中,所述接收生成的多个仿真事件,包括:
接收基于外部仿真指令而生成的仿真事件;和/或
接收基于实体模型反馈的仿真状态而生成的仿真事件。
接收的仿真事件可能来自外部仿真指令如仿真人员通过键盘等外部连接设备输入的仿真指令或者输入的某操作而生成的仿真指令。和/或
接收的仿真事件还可以是实体模型反馈的仿真状态而生成的仿真事件,从而便于推动实体模型进行下一步仿真操作,其中,实体模型可以是实物在仿真平台中的虚拟对象表示,如飞机模型、卫星模型、车辆模型等,而仿真状态可以是实体模型在某时刻的状态,如车辆模型在某时刻的位置、行驶方向等,飞机模型在某时刻的飞行姿态等。
在一个实施例中,所述方法还包括:
通过所述多个仿真线程确定所述实体模型的仿真状态,生成所述实体模型的当前仿真记录;
调用预先获取的所述实体模型对应的真实的被仿真对象在实际运行环境下的预设状态记录;
实体模型对应的真实的被仿真对象即实体模型对应的实物,如实体模型为飞机模型,则对应的被仿真对象即为飞机。
根据所述当前仿真记录和所述预设状态记录,生成至少一个实体模型仿真运行指令;
将所述至少一个实体模型仿真运行指令发送至所述实体模型,以控制所述实体模型的仿真过程或者调节所述实体模型的模型参数。
通过多个仿真线程确定所述实体模型的仿真状态并调用上述预设状态记录,可根据当前仿真记录和所述预设状态记录(如进行记录比较),生成一个或多个实体模型仿真运行指令,然后将至少一个实体模型仿真运行指令发送至所述实体模型,以便于自动控制所述实体模型的仿真过程或者自动调节所述实体模型的模型参数,以提高仿真效率和准确率,使得仿真效果尽可能贴近仿真模型对应的被仿真对象在真实的运行环境运行情况,或者使得实体模型更加准确。
一个实施例中,所述方法还包括:
采用通用建模工具对所述实体模型对应的真实的被仿真对象进行数学模型搭建,得到简易仿真模型;
通用建模工具的作用为:既能够方便快捷地实现对被仿真对象的原理性建模,又能够支持模型自动代码的生成,从而可以将简易仿真模型下载到通用实时仿真计算机进行实时仿真,通过实时仿真计算机运行解算简易仿真模型,实现与外界相关实物设备的数据交互,发挥简易仿真模型的实际作用。
其中,通过对被仿真对象的工作原理分析实现对通用建模工具的合理选择,从而简易仿真模型到实时仿真模型的快速过渡问题,使模型的验证过程都集中在对简易仿真模型的验证过程。
采用专业建模工具对所述被仿真对象进行数学模型搭建,得到精细仿真模型;
随着数字仿真对仿真模型的精确度要求越来越高,借助各专业建模工具,可以实现较为准确的物理对象建模,例如,利用Solidworks来实现机械系统的建模、利用AMESim来实现液压系统的建模等。
专业建模工具的特点是对被仿真对象进行精细建模,通过有限元计算、高阶微分方程组解算等,实现对被仿真对象的复杂精细计算。专业建模工具能够对被仿真对象进行全面的、细微特性的模拟解算,因此可以选择专业建模工具进行精细仿真模型。
以所述精细仿真模型为衡量标准,对所述简易仿真模型的模型结构和模型参数做初步验证,并对不符合第一预设要求的模型结构和模型参数进行修正;
第一预设要求为两个数字仿真模型一致的判定准则,可以包括:变化范围一致、变化趋势一致、在线性段斜率一致、若有非线性(如弧线)则拐点位置一致等。
利用所述被仿真对象的第一组实验数据对初步验证修正后的简易仿真模型做再次验证,并(通过预设验证方法)对所述修正后的简易仿真模型的模型参数做再次修正,直至在相同的输入下修正后的简易仿真模型的输出数据与所述被仿真对象对应的输出数据的一致性衡量指标满足预设接受值,获得根据所述第一组实验数据得到的简易仿真模型;
利用所述被仿真对象的第二组实验数据作为所述第一组实验数据得到的简易仿真模型的输入,经过所述简易仿真模型的仿真计算,得到所述第二组实验数据对应的输出数据;
预设验证方法可以是秩和检验法、动态关联分析法、数理统计法等。
预设接受值指的是两个数据结果一致程度量化指标,例如若1为完全一致,0为完全不一致,则预设接受值可以为0.75。
计算所述第二组实验数据对应的输出数据与所述被仿真对象对应的输出数据的一致性衡量指标;
判断所述第二组实验数据的一致性衡量指标是否满足所述预设接受值;
如果是,则将所述第二组实验数据得到的简易仿真模型作为所述被仿真对象的实体模型。
通过将模型验证方法和模型参数优化方法集成以实现对数字仿真模型(即简易仿真模型)的自动修正,相比通过建模人员对数字仿真模型修正而言,可减少人工修改模型的工作量,提高了对数字仿真模型的修正效率,以及获得的被仿真对象的实体模型的准确性。
在一个实施例中,所述第一组实验数据和所述第二组实验数据包括多次实验数据;第一组实验数据中可以包括若干次实验数据,第二组实验数据中可以包括若干次实验数据,这样,第一组实验数据和所述第二组实验数据包括多次实验数据。
每次实验数据可以包括多个维度,而每个维度下又可以包括多个影响因子。
设所述多次实验数据中的第k次实验数据中i维度下的数据量占比为Ri,第k-1次实验数据中i维度下的数据量占比为Ri’,第k次实验数据中i维度下数据量(i维度下数据量可以是i维度下具体的数据条数)绝对值为ri,第k-1次实验数据中i维度下数据量绝对值为ri’,其中i=1,2,3…n,则i维度的影响为
Ei=Ri(1-ri)-R′i(1-r′i)
各维度总的影响为
Figure BDA0002313857200000131
i维度总的影响因子为
Figure BDA0002313857200000132
相应的,当将i维度进行扩展,则所述i维度的各因素的影响为
Eij=Rij(1-rij)-R′ij(1-r′ij)
所述各维度总的影响为
Figure BDA0002313857200000133
各因素总的影响因子为
Figure BDA0002313857200000134
其中j为i维度的细分,j=1,2,3…m;
根据计算获得的Pi的值的大小,确定对所述简易仿真模型的仿真实验影响最大的维度,同时根据Pij的值的大小确定所述影响最大的维度下对所述仿真实验影响最大的影响因子。
当然很多情况下第一组实验数据和第二组实验数据得到的仿真实验结果可能不同,为了能确定在不同组实验数据中引起结果不同的原因,从而更快的调整实验数据,通过更少的仿真次数,获得最好的结果,需要对每次实验数据进行结果分析。
根据计算获得的Pi的值大小可以确定影响各次仿真实验不同的主要因素是哪个维度,同时根据Pij的值得大小可以确定各维度下哪些因子对实验结果的影响最大,从而达到快速定位原因,调整仿真实验、维度或影响因子的目的,从而减少仿真实验次数,节省计算资源。
最后,需要明确的是:本领域技术人员可根据实际需求,将上述多个实施例进行自由组合。
对应本发明实施例提供的上述基于多线程的并行离散仿真事件驱动方法,本发明实施例还提供一种基于多线程的并行离散仿真事件驱动装置,如图2所示,该装置包括:
接收模块201,用于接收生成的多个仿真事件,其中,所述多个仿真事件用于供仿真平台上的实体模型执行仿真操作;
调用模块202,用于调用多个仿真线程;
处理模块203,用于通过所述多个仿真线程并行处理所述多个仿真事件,以对所述仿真平台上的实体模型进行并行仿真,其中,所述多个仿真线程中的各仿真线程用于处理所述多个仿真事件中的至少一个仿真事件,所述实体模型可被分解成若干组件,所述多个仿真事件为针对所述若干组件的事件。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种基于多线程的并行离散仿真事件驱动方法,用于仿真平台,其特征在于,包括:
接收生成的多个仿真事件,其中,所述多个仿真事件用于供仿真平台上的实体模型执行仿真操作;
调用多个仿真线程;
通过所述多个仿真线程并行处理所述多个仿真事件,以对所述仿真平台上的实体模型进行并行仿真,其中,所述多个仿真线程中的各仿真线程用于处理所述多个仿真事件中的至少一个仿真事件,所述实体模型可被分解成若干组件,所述多个仿真事件为针对所述若干组件的事件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述仿真平台所安装的设备的当前CPU内核数量;
调用CPU内核数量与仿真线程之间的预设对应关系;
根据所述当前CPU内核数量和所述预设对应关系,确定所述多个仿真线程的数量。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述多个仿真事件提交至事件缓冲池中;
所述通过所述多个仿真线程并行处理所述多个仿真事件,包括:
通过所述多个仿真线程从所述事件缓冲池中依次交替调取事件,从而并行处理所述多个仿真事件。
4.根据权利要求1所述的方法,其特征在于,
所述通过所述多个仿真线程并行处理所述多个仿真事件,包括:
通过所述多个仿真线程确定所述多个仿真事件中各仿真事件对应的实体模型;
通过所述多个仿真线程同时调用所述各仿真事件对应的实体模型各自的事件处理函数;
通过所述多个仿真线程同时控制所述各仿真事件对应的实体模型响应各自的事件处理函数,以使所述各仿真事件对应的实体模型执行相应的仿真操作,驱动所述仿真平台的仿真过程。
5.根据权利要求4所述的方法,其特征在于,当所述多个仿真事件的数量N1大于所述多个仿真线程的数量N2时,
所述通过所述多个仿真线程同时调用所述各仿真事件对应的实体模型各自的事件处理函数,包括:
通过所述多个仿真线程中各仿真线程同时调用所述各仿真事件对应的实体模型中的一个实体模型的事件处理函数;
所述方法还包括:
当所述各仿真线程中任一仿真线程控制所述一个实体模型响应完其事件处理函数后,所述任一仿真线程调用(N2-N1)个事件处理函数中的一个目标事件处理函数,并控制所述目标事件处理函数的实体模型响应所述目标事件处理函数,并不断循环,直至所述多个仿真线程并行处理完所述多个仿真事件,其中,所述多个仿真事件中各仿真事件都携带有处理时间,所述目标事件处理函数为所述(N2-N1)个仿真事件中处理时间最早的仿真事件对应的实体模型的事件处理函数。
6.根据权利要求1所述的方法,其特征在于,
所述接收生成的多个仿真事件,包括:
接收基于外部仿真指令而生成的仿真事件;和/或
接收基于实体模型反馈的仿真状态而生成的仿真事件。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
通过所述多个仿真线程确定所述实体模型的仿真状态,生成所述实体模型的当前仿真记录;
调用预先获取的所述实体模型对应的真实的被仿真对象在实际运行环境下的预设状态记录;
根据所述当前仿真记录和所述预设状态记录,生成至少一个实体模型仿真运行指令;
将所述至少一个实体模型仿真运行指令发送至所述实体模型,以控制所述实体模型的仿真过程或者调节所述实体模型的模型参数。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
采用通用建模工具对所述实体模型对应的真实的被仿真对象进行数学模型搭建,得到简易仿真模型;
采用专业建模工具对所述被仿真对象进行数学模型搭建,得到精细仿真模型;
以所述精细仿真模型为衡量标准,对所述简易仿真模型的模型结构和模型参数做初步验证,并对不符合第一预设要求的模型结构和模型参数进行修正;
利用所述被仿真对象的第一组实验数据对初步验证修正后的简易仿真模型做再次验证,并对所述修正后的简易仿真模型的模型参数做再次修正,直至在相同的输入下修正后的简易仿真模型的输出数据与所述被仿真对象对应的输出数据的一致性衡量指标满足预设接受值,获得根据所述第一组实验数据得到的简易仿真模型;
利用所述被仿真对象的第二组实验数据作为所述第一组实验数据得到的简易仿真模型的输入,经过所述简易仿真模型的仿真计算,得到所述第二组实验数据对应的输出数据;
计算所述第二组实验数据对应的输出数据与所述被仿真对象对应的输出数据的一致性衡量指标;
判断所述第二组实验数据的一致性衡量指标是否满足所述预设接受值;
如果是,则将所述第二组实验数据得到的简易仿真模型作为所述被仿真对象的实体模型。
9.根据权利要求8所述的方法,其特征在于,
所述第一组实验数据和所述第二组实验数据包括多次实验数据;
设所述多次实验数据中的第k次实验数据中i维度下的数据量占比为Ri,第k-1次实验中i维度下的数据量占比为Ri’,第k次实验数据中i维度下数据量绝对值为ri,第k-1次实验数据中i维度下数据量绝对值为ri’,其中i=1,2,3…n,则i维度的影响为
Ei=Ri(1-ri)-R′i(1-r′i)
各维度总的影响为
Figure FDA0002313857190000041
i维度总的影响因子为
Figure FDA0002313857190000042
相应的,当将i维度进行扩展,则所述i维度的各因素的影响为
Eij=Rij(1-rij)-R′ij(1-r′ij)
所述各维度总的影响为
Figure FDA0002313857190000043
各因素总的影响因子为
Figure FDA0002313857190000044
其中j为i维度的细分,j=1,2,3…m;
根据计算获得的Pi的值的大小,确定对所述简易仿真模型的仿真实验影响最大的维度,同时根据Pij的值的大小确定所述影响最大的维度下对所述仿真实验影响最大的影响因子。
10.一种基于多线程的并行离散仿真事件驱动装置,用于仿真平台,其特征在于,包括:
接收模块,用于接收生成的多个仿真事件,其中,所述多个仿真事件用于供仿真平台上的实体模型执行仿真操作;
调用模块,用于调用多个仿真线程;
处理模块,用于通过所述多个仿真线程并行处理所述多个仿真事件,以对所述仿真平台上的实体模型进行并行仿真,其中,所述多个仿真线程中的各仿真线程用于处理所述多个仿真事件中的至少一个仿真事件,所述实体模型可被分解成若干组件,所述多个仿真事件为针对所述若干组件的事件。
CN201911269841.1A 2019-12-11 2019-12-11 基于多线程的并行离散仿真事件驱动方法及装置 Active CN111177893B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911269841.1A CN111177893B (zh) 2019-12-11 2019-12-11 基于多线程的并行离散仿真事件驱动方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911269841.1A CN111177893B (zh) 2019-12-11 2019-12-11 基于多线程的并行离散仿真事件驱动方法及装置

Publications (2)

Publication Number Publication Date
CN111177893A true CN111177893A (zh) 2020-05-19
CN111177893B CN111177893B (zh) 2023-05-02

Family

ID=70655480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911269841.1A Active CN111177893B (zh) 2019-12-11 2019-12-11 基于多线程的并行离散仿真事件驱动方法及装置

Country Status (1)

Country Link
CN (1) CN111177893B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419850A (zh) * 2021-06-11 2021-09-21 中国人民解放军军事科学院国防科技创新研究院 一种实体的并行仿真方法、装置、电子设备及存储介质
CN114757057A (zh) * 2022-06-14 2022-07-15 中国人民解放军国防科技大学 一种基于混合推进的多线程并行作战仿真方法和系统

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425762B1 (en) * 1998-02-24 2002-07-30 Wind River Systems, Inc. System and method for cosimulation of heterogeneous systems
US20030172145A1 (en) * 2002-03-11 2003-09-11 Nguyen John V. System and method for designing, developing and implementing internet service provider architectures
CN101436959A (zh) * 2008-12-18 2009-05-20 中国人民解放军国防科学技术大学 基于后台管控架构的并行仿真任务分发与调度方法
US20100324877A1 (en) * 2009-06-23 2010-12-23 Kabushiki Kaisha Toshiba Device property output apparatus and computer readable medium comprising program code for outputting device property
US20130179142A1 (en) * 2012-01-09 2013-07-11 Pusan National University Industry- University Cooperation Foundation Distributed parallel simulation method and recording medium for storing the method
US20150081267A1 (en) * 2013-09-16 2015-03-19 General Electric Company Control system simulation system and method
CN104731080A (zh) * 2013-12-19 2015-06-24 北汽福田汽车股份有限公司 一种硬件在环仿真环境模型自动生成系统及方法
CN104866374A (zh) * 2015-05-22 2015-08-26 北京华如科技股份有限公司 基于多任务的离散事件并行仿真及时间同步方法
US20160004608A1 (en) * 2014-07-01 2016-01-07 Bull Sas Method and device for synchronously running an application in a high availability environment
CN105843991A (zh) * 2016-03-16 2016-08-10 江汉大学 模型级hla仿真成员组合系统及方法
US20160321381A1 (en) * 2015-04-29 2016-11-03 Energid Technologies Corporation System and method for evaluation of object autonomy
US20170220719A1 (en) * 2016-02-01 2017-08-03 King Fahd University Of Petroleum And Minerals Multi-core compact executable trace processor
CN107633123A (zh) * 2017-09-13 2018-01-26 浙江工业大学 一种用于光滑粒子流体动力学模拟出血及处理加速的方法
US20180060469A1 (en) * 2016-08-30 2018-03-01 Sas Institute Inc. Comparison and selection of experiment designs
US20190087469A1 (en) * 2017-09-18 2019-03-21 Google Inc. Evaluating models that rely on aggregate historical data
CN109991874A (zh) * 2018-11-30 2019-07-09 中国电力科学研究院有限公司 一种配电网暂态实时仿真系统及方法
US20190308104A1 (en) * 2018-04-04 2019-10-10 UberGeekGames LLC Scripting engine and implementations

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425762B1 (en) * 1998-02-24 2002-07-30 Wind River Systems, Inc. System and method for cosimulation of heterogeneous systems
US20030172145A1 (en) * 2002-03-11 2003-09-11 Nguyen John V. System and method for designing, developing and implementing internet service provider architectures
CN101436959A (zh) * 2008-12-18 2009-05-20 中国人民解放军国防科学技术大学 基于后台管控架构的并行仿真任务分发与调度方法
US20100324877A1 (en) * 2009-06-23 2010-12-23 Kabushiki Kaisha Toshiba Device property output apparatus and computer readable medium comprising program code for outputting device property
US20130179142A1 (en) * 2012-01-09 2013-07-11 Pusan National University Industry- University Cooperation Foundation Distributed parallel simulation method and recording medium for storing the method
US20150081267A1 (en) * 2013-09-16 2015-03-19 General Electric Company Control system simulation system and method
CN104731080A (zh) * 2013-12-19 2015-06-24 北汽福田汽车股份有限公司 一种硬件在环仿真环境模型自动生成系统及方法
US20160004608A1 (en) * 2014-07-01 2016-01-07 Bull Sas Method and device for synchronously running an application in a high availability environment
US20160321381A1 (en) * 2015-04-29 2016-11-03 Energid Technologies Corporation System and method for evaluation of object autonomy
CN104866374A (zh) * 2015-05-22 2015-08-26 北京华如科技股份有限公司 基于多任务的离散事件并行仿真及时间同步方法
US20170220719A1 (en) * 2016-02-01 2017-08-03 King Fahd University Of Petroleum And Minerals Multi-core compact executable trace processor
CN105843991A (zh) * 2016-03-16 2016-08-10 江汉大学 模型级hla仿真成员组合系统及方法
US20180060469A1 (en) * 2016-08-30 2018-03-01 Sas Institute Inc. Comparison and selection of experiment designs
CN107633123A (zh) * 2017-09-13 2018-01-26 浙江工业大学 一种用于光滑粒子流体动力学模拟出血及处理加速的方法
US20190087469A1 (en) * 2017-09-18 2019-03-21 Google Inc. Evaluating models that rely on aggregate historical data
US20190308104A1 (en) * 2018-04-04 2019-10-10 UberGeekGames LLC Scripting engine and implementations
CN109991874A (zh) * 2018-11-30 2019-07-09 中国电力科学研究院有限公司 一种配电网暂态实时仿真系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BAZDIDI-TEHRANI: "Radiation Effects on Turbulent Mixed Convection in an Asymmetrically Heated Vertical Channel" *
闫晖: "分布式建模仿真平台的设计与研究" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419850A (zh) * 2021-06-11 2021-09-21 中国人民解放军军事科学院国防科技创新研究院 一种实体的并行仿真方法、装置、电子设备及存储介质
CN114757057A (zh) * 2022-06-14 2022-07-15 中国人民解放军国防科技大学 一种基于混合推进的多线程并行作战仿真方法和系统
CN114757057B (zh) * 2022-06-14 2022-08-23 中国人民解放军国防科技大学 一种基于混合推进的多线程并行作战仿真方法和系统

Also Published As

Publication number Publication date
CN111177893B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN111177893A (zh) 基于多线程的并行离散仿真事件驱动方法及装置
CN106919449A (zh) 一种计算任务的调度控制方法及电子设备
CN111177892A (zh) 一种分布式仿真系统
US11275561B2 (en) Mixed precision floating-point multiply-add operation
CN111738488A (zh) 一种任务调度方法及其装置
CN112732565B (zh) 一种软件持续集成的评估方法、计算机设备及介质
CN114021507B (zh) 一种自动化集成电路并行仿真方法
WO2020154537A1 (en) Convolutional neural networks with soft kernel selection
CN111325223A (zh) 深度学习模型的训练方法、装置和计算机可读存储介质
CN111966361A (zh) 用于确定待部署模型的方法、装置、设备及其存储介质
JP2022512211A (ja) 画像処理方法、装置、車載演算プラットフォーム、電子機器及びシステム
CN114185281A (zh) 基于知识库的机器人仿真平台控制方法、终端及介质
CN112699046B (zh) 应用程序测试方法及装置、电子设备和存储介质
CN113452546A (zh) 深度学习训练通信的动态服务质量管理
CN116701143A (zh) 性能分析方法、装置、系统、计算设备及存储介质
Baranov et al. Measure of adequacy for the supercomputer job management system model
CN114238106A (zh) 测试时间预测方法及装置、电子设备、存储介质
Korol et al. A FPGA parameterizable multi-layer architecture for CNNs
CN114595627A (zh) 模型量化方法、装置、设备及存储介质
Bozoki An expert judgment-based software sizing model
CN112084092A (zh) 一种诊断规则的确定方法、装置、设备及存储介质
Kacar et al. Investigaton of computational load and parallel computing of Volterra series method for frequency analysis of nonlinear systems
US20240211211A1 (en) Mac apparatus using floating point unit and control method thereof
CN117435308B (zh) 一种基于并行计算算法的Modelica模型仿真方法及系统
CN115762515B (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