CN102880517A - 一种基于超级计算机的hla仿真程序的对象调度方法 - Google Patents
一种基于超级计算机的hla仿真程序的对象调度方法 Download PDFInfo
- Publication number
- CN102880517A CN102880517A CN2012103704924A CN201210370492A CN102880517A CN 102880517 A CN102880517 A CN 102880517A CN 2012103704924 A CN2012103704924 A CN 2012103704924A CN 201210370492 A CN201210370492 A CN 201210370492A CN 102880517 A CN102880517 A CN 102880517A
- Authority
- CN
- China
- Prior art keywords
- simulation
- parts
- rti
- simulated
- scheduling device
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于超级计算机的HLA仿真程序的对象调度方法,目的是提供一种支持将HLA仿真程序中的各个仿真对象分发到超级计算机的众多CPU核中并行运行的方法。技术方案是先在本地RTI部件中增加对象调度器;然后基于本地RTI部件设计由主程序和回调部件组成的并行仿真程序;接着将并行仿真程序编译和连接后得到的可执行仿真程序加载到多个CPU核;每个CPU核上的仿真成员按照主程序的流程执行,由对象调度器创建隶属于各个仿真成员的仿真对象,仿真对象被调度到各个CPU核上并行执行。采用本发明可以将HLA仿真程序中的各个仿真对象分发到超级计算机的多个CPU核上并行运行,大幅度地减小了仿真的计算时间和通信时间,提高了仿真的运行效率。
Description
技术领域:本发明涉及基于超级计算机的HLA仿真程序的对象调度方法,特别是将HLA仿真程序中的各个仿真对象调度到超级计算机的众多CPU核中并行执行的方法。
背景技术:近年来,中国的超级计算机取得了举世瞩目的成就。2010年11月,由国防科技大学研制的“天河一号”和曙光公司研制的“星云”千万亿次超级计算机分列世界超级计算机500强的第一名和第三名。国家已经在北京、上海、深圳、天津、济南、广州、长沙等地建立了超算中心,并在这些超算中心安装了百万亿次至千万亿次的超级计算机,这对于普及和提升我国的高性能并行计算技术水平必将产生重要的影响。如何高效利用这些计算资源是当前面临的重要研究问题,而大规模并行仿真是超级计算机的一个重要应用领域。
高层体系结构HLA(High Level Architecture)是一个最初由美国国防部建立的仿真标准,现在已经发展成为IEEE国际仿真标准,而按照HLA标准实现的软件则被称为运行支撑软件RTI(Run-Time Infrastructure)。HLA主要应用于由“微机+网络”构成的分布式仿真系统,代表着当今分布式仿真技术的主流,我国的很多分布式仿真系统都是基于RTI软件开发的。在HLA标准中,当仿真程序运行时,相应的运行进程被称之为仿真成员(Federate);所有仿真成员构成一个联邦(Federation)。RTI通常由一个“中心RTI部件”与多个“本地RTI部件”组成,本质上是一个用于仿真程序之间互操作的通信软件。“中心RTI部件”负责维护与全局相关的信息;每个“本地RTI部件”以动态链接库或静态库的方式与一个仿真成员绑定在一起,负责将仿真成员的消息发送到其他仿真成员的“本地RTI部件”,以及将来自其他仿真成员的“本地RTI部件”的消息回调给仿真成员。一个“本地RTI部件”通常包含7个部件:联邦管理部件、声明管理部件、所有权管理部件、对象管理部件、时间管理部件、数据分发管理部件、通信部件。前6个部件用于实现HLA标准中规定的6项功能,而通信部件则用于实现“本地RTI部件”与“中心RTI部件”之间的通信,以及“本地RTI部件”与其他仿真成员的“本地RTI部件”之间的通信。
然而,基于HLA标准开发的RTI软件却不适合面向超级计算机的并行仿真系统。随着仿真技术的发展及应用的不断深入,基于超级计算机运行的并行仿真系统通常都很复杂,不仅仿真对象数目多,而且仿真对象的计算量大,相互间的通信量也很大。现有的RTI软件只是一个通信软件,缺乏对仿真对象的分发调度功能,如果在超级计算机上运行由RTI软件开发的复杂仿真系统,则会存在以下两个问题。(1)计算瓶颈。当一个仿真成员中包含很多仿真对象时,RTI无法将它们分散到超级计算机的多个CPU核中并行运行,因此这些仿真对象只能串行运行在超级计算机的一个CPU核中,彼此会竞争CPU资源,造成计算瓶颈,从而导致仿真效率低。(2)通信瓶颈。由于一个仿真成员只能通过一个“本地RTI部件”发送和接收消息。当一个仿真成员包含很多仿真对象时,这些仿真对象只能共享一个“本地RTI部件”。因此,一方面,一个仿真成员中的多个仿真对象产生的消息只能一个接一个地由“本地RTI部件”发送给其他仿真成员的“本地RTI部件”;另一方面,一个“本地RTI部件”只能串行地从其他仿真成员的“本地RTI部件”接收消息,再将这些消息串行转发给仿真成员中的各个仿真对象。以上两个原因直接导致现有HLA仿真系统的仿真规模不大,仿真成员数不可能太多,因而不能充分发挥超级计算机的成千上万个CPU核的作用。
目前有一些基于超级计算机实现并行仿真的方法。
(1)针对超级计算机的特点对RTI软件的通信技术进行优化的方法。例如由Martin Adelantado撰写的文献(HP-CERTI:Towards a high performance,high availability open source RTI for composable simulations,“HP-CERTI:为了可重用的仿真,朝着高性能、高可用的开源RTI迈进”,Fall SimulationInteroperability Workshop,2004)报告了针对超级计算机的多核特点设计共享内存RTI的方法。由Roger Jansen撰写的文献(Real-time scheduling of HLAsimulator components,“HLA仿真器组件的实时调度”,Spring SimulationInteroperability Workshop,2004)报告了使用消息队列设计共享内存,以及使用UDP/IP协议设计分布式内存的RTI软件设计方法。这些方法只是对RTI软件的通信方法进行了优化,能在一定程度上缓解RTI的通信瓶颈,但不能从本质上解决RTI的计算瓶颈和通信瓶颈问题,以及仿真规模小的问题。
(2)对HLA仿真程序的结构进行重新设计的方法。例如由Alex Radeski等人撰写的文献(Towards a Simulation Component Model for HLA,“朝着HLA仿真组件模型迈进”,Fall Simulation Interoperability Workshop,2002)以及由龚建兴等人撰写的文献(“构建可扩展的HLA联邦成员架构”,系统仿真学报第18卷第11期,2006)提出的“组件方法”将仿真程序设计为多个组件,每个组件包含多个仿真对象模型,组件可以采用线程技术也可以不采用线程技术;用户可以根据需要将若干个组件组合为一个仿真成员,整个仿真系统可以组合为多个仿真成员。这种方法的主要目的是为了实现仿真组件的灵活重用而实现的,一个组件可以应用于多个仿真系统而不需要修改程序代码。然而,该方法至少有两方面的缺点,其一,由于只是在仿真程序的结构上进行了改进,RTI软件本身并没有进行优化,因此RTI不能有效地对组件进行灵活分发,以利用更多的CPU核;其二,HLA的时间管理有三种方式:步进的、事件的、乐观的。组件方法只支持“步进的”时间管理方式,不能很好地支持其他两种方式,不具有通用性。
(3)使用RTI软件连接特定仿真系统的方法。例如由Kalyan S.Perumalla等人撰写的文献(Scalable RTI-based parallel simulation of networks,“基于RTI的规模可扩的并行网络仿真”,17th Workshop on PADS,2003)报告了在超级计算机上将RTI应用于网络仿真的方法,网络仿真是一类研究网络拓扑结构的专用仿真,相关的协议软件有OpNet、QualNet、NIS、Omnest++等,通过这些软件可以设计出一个网络仿真程序,这样的程序不需要RTI就可以单独运行,但通过RTI可以将多个网络仿真程序互联为一个规模更大的网络仿真系统。由CongDuc Pham等人撰写的文献(Building parallel time-constrainedHLA federates:a case study with the Parsec parallel simulation language,“建立并行的时间受限的HLA仿真成员:使用Parsec并行仿真语言的一个示例”,Winter Simulation Conference,1998)报告了基于RTI软件互联Parsec并行程序的方法,Parsec是一种不同于HLA的并行仿真引擎,多个Parsec程序通过RTI软件可以互联为一个较大规模的仿真系统。这样的方法不具有通用性,不能用来设计各种HLA并行仿真程序。
(4)使用专门的并行仿真引擎的方法。在面向超级计算机的并行仿真领域,国外为大规模并行仿真开发了以SPEEDES、Charm++、POSE、ROSS、SIMKIT、μπ、μsik、WarpIV等为代表的许多并行仿真支撑软件,这些软件采用的技术与HLA/RTI完全不同,其优点在于这些软件能够将一个仿真程序中的各个仿真对象调度到超级计算机的众多CPU核中并行运行;但是也存在一些缺点:其一,缺少统一的标准,每个并行仿真软件都有自己的一套规范,使用难度大;其二,很难与已有的HLA仿真系统进行互联,国内的HLA用户一般不愿意使用国外的这些并行仿真支撑软件。
根据专利文献检索,以往的专利与文献中尚未见到将仿真成员中的各个仿真对象分发到超级计算机的多个CPU核中进行快速仿真的RTI对象调度方法。
发明内容:
本发明要解决的技术问题是:提出一种基于超级计算机的HLA仿真程序的对象调度方法,使得RTI软件能够支持将HLA仿真程序中的各个仿真对象分发到超级计算机的众多CPU核中并行运行,以减少仿真的计算时间和通信时间,提高仿真效率。
本发明的技术方案如下:
第一步,修改本地RTI部件,在本地RTI部件中增加对象调度器。对象调度器根据仿真程序的输入参数创建仿真对象,并将仿真对象返回给仿真程序;本地RTI部件中的原有部件包含7个部件:联邦管理部件、声明管理部件、所有权管理部件、对象管理部件、时间管理部件、数据分发管理部件、通信部件;
第二步,基于本地RTI部件设计并行仿真程序,并行仿真程序由主程序即main程序以及回调部件组成。主程序是仿真程序运行时的入口,主程序一方面在仿真开始时将每种类型的仿真对象的相关参数发送给对象调度器,由对象调度器创建该种类型的仿真对象;另一方面在仿真过程中向本地RTI部件的原有部件发送HLA服务;回调部件是仿真程序中用来从本地RTI部件的原有部件接收回调服务的部件;
第三步,将并行仿真程序进行编译和连接,得到可执行仿真程序,将可执行仿真程序加载到超级计算机的多个CPU核,方法是:
3.1在超级计算机的一个计算节点上启动“中心RTI部件”,“中心RTI部件”启动后占用超级计算机的一个CPU核;
3.2使用批处理命令或者操作系统提供的作业加载命令启动可执行仿真程序,将可执行仿真程序加载到超级计算机的k个CPU核中运行,这k个CPU核不含“中心RTI部件”启动后所占用的一个CPU核,k是大于0的整数,一个CPU核只运行一个进程,每个进程都是一个仿真成员;
第四步,每个CPU核上的仿真成员按照主程序的流程执行,由对象调度器创建隶属于各个仿真成员的仿真对象,众多仿真对象被调度到各个CPU核上并行执行,具体步骤是:
4.1每个CPU核上的仿真成员按照主程序的流程执行,方法是:主程序向本地RTI部件发送“加入联邦执行”服务,本地RTI部件收到“加入联邦执行”服务后与中心RTI部件进行通信,中心RTI部件为该主程序所属仿真成员分配一个称为“成员句柄”的唯一整数值f,f为整数且0≤f<仿真成员数,f被保存在本地RTI部件处,中心RTI部件按照仿真成员加入仿真系统的先后顺序依次分配“成员句柄”值;
4.2主程序确认是否还有仿真对象未被对象调度器分发,若还有仿真对象未被分发,主程序与对象调度器进行通信,将与一种类型的仿真对象相关的四个参数“仿真对象类型t、仿真对象数n、仿真成员数k、分发方式”发送给对象调度器执行4.3步;若所有类型的仿真对象都被对象调度器分发,则转4.4步。所述t为字符串,n和k为大于0的整数;分发方式包括“发牌式”、“块式”、“文件方式”;
4.3对象调度器从主程序收到与某种类型的仿真对象相关的四个参数“仿真对象类型t、仿真对象数n、仿真成员数k、分发方式”后,将n个仿真对象分发到k个仿真成员中,方法是:
4.3.1若从主程序接收到的分发方式为“发牌式”,则对象调度器用仿真对象的编号s模仿真成员数k,s为整数且0≤s<n,如果余数等于仿真成员的“成员句柄”f,则对象调度器创建编号为s的仿真对象。对象调度器将“仿真对象创建完成”的消息发送给主程序,转4.2步;
4.3.2若从主程序接收到的分发方式为“块式”,则对象调度器按以下方法处理:
4.3.2.2如果仿真成员的“成员句柄”f<n2,则对象调度器创建编号从f×(n1+1)开始的连续n1+1个仿真对象;否则对象调度器创建编号从n2×(n1+1)+(f-n2)×n1开始的连续n1个仿真对象。对象调度器将“仿真对象创建完成”的消息发送给主程序,转4.2步;
4.3.3若从主程序接收到的分发方式为“文件方式”,则对象调度器按以下方法处理:
4.3.3.1对象调度器从仿真程序的当前目录下读取“对象指派文件”,“对象指派文件”由注释语句和若干个块结构组成。注释语句是自字符‘#’开始直到行尾的一串字符,起解释说明的作用。块结构是用来描述一种类型的仿真对象在仿真成员中的分布情况的数据结构。一个块结构为“仿真对象类型t{第1行第2行第3行…}”,每行由两部分内容组成,结构为“f:s1 s2 s3...”,其中f表示某个仿真成员的“成员句柄”,s1、s2、s3、…为仿真对象的编号,该行表示与这些编号对应的仿真对象应分发到“成员句柄”为f的仿真成员;
4.3.3.2对象调度器在“对象指派文件”中查找仿真对象类型为t的块结构,若没有找到,表示“对象指派文件”不正确,则报错并转第五步;若找到了仿真对象类型为t的块结构,则根据仿真成员的“成员句柄”f查找块结构中以“f:”开始的行,进行如下处理:
4.3.3.2.1如果在块结构中没有找到以“f:”开始的行,则转4.2步;
4.3.3.2.2如果在块结构中找到以“f:”开始的行,则从该行中提取所有仿真对象的编号s1、s2、s3、…,对象调度器创建编号为s1、s2、s3、…的仿真对象。对象调度器将“仿真对象创建完成”的消息发送给主程序,转4.2步;
4.4仿真成员中的各个仿真对象开始执行,在仿真过程中调用HLA服务向本地RTI部件发送消息,并由回调部件接收来自其他本地RTI部件的消息;
第五步,结束。
采用本发明可以达到以下技术效果:
(1)效率高。本发明第4.3步将HLA仿真程序中的各个仿真对象分发到超级计算机的多个CPU核上并行运行。如果HLA仿真程序包含的仿真对象很多,仿真对象的模型特别复杂或计算量、通信量特别大,则将这些仿真对象分发到多个CPU核上就可以实现相互间的并行运行,从而大幅度地减小仿真的计算时间和通信时间,提高仿真的运行效率。
(2)用户编程简单。采用本发明后,用户在编程时不需要关心RTI如何将仿真对象分发到超级计算机的众多CPU核,具体操作细节被封装到RTI中并对用户透明。
综上所述,本发明面向具有众多CPU核的超级计算机,通过“修改RTI软件,在RTI中增加对象调度器”的方法,使得RTI能够将HLA仿真程序中的各个仿真对象分发到超级计算机的众多CPU核上进行并行仿真,克服了背景技术采用原有RTI软件时各个仿真对象只能“挤”在一个仿真成员中“串行执行”以及“串行发送和接收事件”而导致的“计算瓶颈”以及“通信瓶颈”问题,从而减少了仿真的计算时间和通信时间,提高了运行效率。
附图说明:
图1是美国国防部建模和仿真办公室开发的DMSO RTI软件的逻辑结构图。
图2是本发明第一步修改后RTI软件的逻辑结构图。
图3是本发明第四步对象调度器按照不同的分发方式创建仿真对象的示例图。
图4是本发明的总体流程图。
具体实施方式:
图1是美国国防部建模和仿真办公室DMSO(Defense Modeling&Simulation Office)所公开的RTI软件的逻辑结构图。RTI软件由一个“中心RTI部件”和多个“本地RTI部件”组成。“中心RTI部件”处理全局性的操作,包括“中心处理部件”和“通信部件”。“本地RTI部件”以动态链接库或静态库的方式为仿真程序访问RTI提供支持。当仿真程序运行时,仿真程序与“本地RTI部件”一起被称之为一个“仿真成员”,每个仿真成员都包含一个“本地RTI部件”。“本地RTI部件”需要处理HLA标准中规定的六类管理服务,分别由联邦管理部件、声明管理部件、所有权管理部件、对象管理部件、时间管理部件和数据分发管理部件实现,“本地RTI部件”的“通信部件”负责与其他“本地RTI部件”以及“中心RTI部件”进行通信。仿真程序包括主程序和回调部件两部分,主程序负责调用“本地RTI部件”中的六类HLA服务,这些HLA服务通过各个管理部件发送到“中心RTI部件”或者其他“本地RTI部件”;回调部件负责接收来自“本地RTI部件”中各个管理部件的回调服务。该图表明本发明前的RTI软件无法对仿真程序中的对象进行分发调度。
图2是本发明第一步修改后的RTI软件的逻辑结构图。与图1相比,本发明在“本地RTI部件”中增加了支持并行仿真的对象调度器。对象调度器按照HLA仿真程序的指定方式(“发牌式”、“块式”、“文件方式”)创建隶属于一个仿真成员的仿真对象,将HLA仿真程序中的各个仿真对象分发到超级计算机的众多CPU核。
图3是本发明第四步对象调度器按照不同的分发方式创建仿真对象的示例图。图3(a)是一个基于本发明设计的HLA仿真程序,该仿真程序包含两种类型(猫和狗)共11个仿真对象,其中8个猫的编号为0~7,3个狗的编号为0~2。在图3(b)中,中心RTI部件占用超级计算机的1个CPU核,仿真程序则被加载到另外3个CPU核上运行,每个核上运行的进程就是一个仿真成员(仿真程序与“本地RTI部件”一起被称之为一个“仿真成员”),3个仿真成员的编号为0~2。8个猫以“发牌式”被分发到3个仿真成员,其中“0、3、6”这三个数模3的值都为0,“1、4、7”模3的值都为1,“2、5”模3的值都为2,因此编号为“0、3、6”的猫被分发到仿真成员0,编号为“1、4、7”的猫被分发到仿真成员1,编号为“2、5”的猫被分发到仿真成员2。按照这种方式,3个狗被分别安排到3个仿真成员。在图3(c)中,8个猫以“块式”被分发到3个仿真成员,这种分发方式试图把8个仿真对象均匀地分发到各个仿真成员中,并将具有相邻编号的尽可能多的仿真对象分发到同一个仿真成员中。由于8%3=2,因此前两个仿真成员应分发3个猫,第3个仿真成员应分发2个猫,所以编号为“0、1、2”的猫被分发到仿真成员0,编号为“3、4、5”的猫被分发到仿真成员1,编号为“6、7”的猫被分发到仿真成员2。按照这种方式,3个狗被均匀地分发到3个仿真成员。在图3(d)中,仿真对象按照“对象指派文件”进行分发,该文件指定了猫和狗的分发方式,编号为“0、1、2”的猫被分发到仿真成员0,编号为“3、5”的猫被分发到仿真成员1,编号为“4、6、7”的猫被分发到仿真成员2。类似地,编号为“0、1”的狗被分发到仿真成员1,编号为“2”的狗被分发到仿真成员2。该图表明,一个包含很多仿真对象的HLA仿真程序能够被加载到多个CPU核上并行执行,从而仿真对象也被分发调度到多个CPU核上并行运行,解决了本发明前各个仿真对象只能“挤”在一个仿真成员中“串行执行”以及“串行发送和接收事件”而导致的“计算瓶颈”以及“通信瓶颈”问题,能有效地提高仿真效率。
图4是本发明的总体流程图。主要流程是:
第一步,修改本地RTI部件,在本地RTI部件中增加对象调度器。
第二步,基于本地RTI部件设计并行仿真程序,并行仿真程序由主程序即main程序以及回调部件组成。
第三步,将并行仿真程序进行编译和连接,得到可执行仿真程序,将可执行仿真程序加载到超级计算机的多个CPU核。
第四步,每个CPU核上的仿真成员按照主程序的流程执行,由对象调度器创建隶属于各个仿真成员的仿真对象,众多仿真对象被调度到各个CPU核上并行执行。
第五步,结束。
Claims (1)
1.一种基于超级计算机的HLA仿真程序的对象调度方法,其特征在于包括以下步骤:
第一步,修改本地RTI部件,在本地RTI部件中增加对象调度器,对象调度器根据仿真程序的输入参数创建仿真对象,并将仿真对象返回给仿真程序;本地RTI部件中的原有部件包含7个部件:联邦管理部件、声明管理部件、所有权管理部件、对象管理部件、时间管理部件、数据分发管理部件、通信部件;
第二步,基于本地RTI部件设计并行仿真程序,并行仿真程序由主程序即main程序以及回调部件组成,主程序是仿真程序运行时的入口,主程序一方面在仿真开始时将每种类型的仿真对象的相关参数发送给对象调度器,由对象调度器创建该种类型的仿真对象;另一方面在仿真过程中向本地RTI部件的原有部件发送HLA服务;回调部件是仿真程序中用来从本地RTI部件的原有部件接收回调服务的部件;
第三步,将并行仿真程序进行编译和连接,得到可执行仿真程序,将可执行仿真程序加载到超级计算机的多个CPU核,方法是:
3.1在超级计算机的一个计算节点上启动“中心RTI部件”,“中心RTI部件”启动后占用超级计算机的一个CPU核;
3.2使用批处理命令或者操作系统提供的作业加载命令启动可执行仿真程序,将可执行仿真程序加载到超级计算机的k个CPU核中运行,这k个CPU核不含“中心RTI部件”启动后所占用的一个CPU核,k是大于0的整数,一个CPU核只运行一个进程,每个进程都是一个仿真成员;
第四步,每个CPU核上的仿真成员按照主程序的流程执行,由对象调度器创建隶属于各个仿真成员的仿真对象,众多仿真对象被调度到各个CPU核上并行执行,具体步骤是:
4.1每个CPU核上的仿真成员按照主程序的流程执行,方法是:主程序向本地RTI部件发送“加入联邦执行”服务,本地RTI部件收到“加入联邦执行”服务后与中心RTI部件进行通信,中心RTI部件为该主程序所属仿真成员分配一个称为“成员句柄”的唯一整数值f,f为整数且0≤f<仿真成员数,f被保存在本地RTI部件处,中心RTI部件按照仿真成员加入仿真系统的先后顺序依次分配“成员句柄”值;
4.2主程序确认是否还有仿真对象未被对象调度器分发,若还有仿真对象未被分发,主程序与对象调度器进行通信,将与一种类型的仿真对象相关的四个参数“仿真对象类型t、仿真对象数n、仿真成员数k、分发方式”发送给对象调度器执行4.3步;若所有类型的仿真对象都被对象调度器分发,则转4.4步;所述t为字符串,n和k为大于0的整数;分发方式包括“发牌式”、“块式”、“文件方式”;
4.3对象调度器从主程序收到与某种类型的仿真对象相关的四个参数“仿真对象类型t、仿真对象数n、仿真成员数k、分发方式”后,将n个仿真对象分发到k个仿真成员中,方法是:
4.3.1若从主程序接收到的分发方式为“发牌式”,则对象调度器用仿真对象的编号s模仿真成员数k,s为整数且0≤s<n,如果余数等于仿真成员的“成员句柄”f,则对象调度器创建编号为s的仿真对象;对象调度器将“仿真对象创建完成”的消息发送给主程序,转4.2步;
4.3.2若从主程序接收到的分发方式为“块式”,则对象调度器按以下方法处理:
4.3.2.2如果仿真成员的“成员句柄”f<n2,则对象调度器创建编号从f×(n1+1)开始的连续n1+1个仿真对象;否则对象调度器创建编号从n2×(n1+1)+(f-n2)×n1开始的连续n1个仿真对象,对象调度器将“仿真对象创建完成”的消息发送给主程序,转4.2步;
4.3.3若从主程序接收到的分发方式为“文件方式”,则对象调度器按以下方法处理:
4.3.3.1对象调度器从仿真程序的当前目录下读取“对象指派文件”,“对象指派文件”由注释语句和若干个块结构组成,注释语句是自字符‘#’开始直到行尾的一串字符;块结构是用来描述一种类型的仿真对象在仿真成员中的分布情况的数据结构,一个块结构为“仿真对象类型t{第1行 第2行 第3行…}”;每行的结构为“f:s1 s2 s3...”,其中f表示某个仿真成员的“成员句柄”,s1、s2、s3、…为仿真对象的编号,该行表示与这些编号对应的仿真对象应分发到“成员句柄”为f的仿真成员;
4.3.3.2对象调度器在“对象指派文件”中查找仿真对象类型为t的块结构,若没有找到,表示“对象指派文件”不正确,则报错并转第五步;若找到了仿真对象类型为t的块结构,则根据仿真成员的“成员句柄”f查找块结构中以“f:”开始的行,进行如下处理:
4.3.3.2.1如果在块结构中没有找到以“f:”开始的行,则转4.2步;
4.3.3.2.2如果在块结构中找到以“f:”开始的行,则从该行中提取所有仿真对象的编号s1、s2、s3、…,对象调度器创建编号为s1、s2、s3、…的仿真对象;对象调度器将“仿真对象创建完成”的消息发送给主程序,转4.2步;
4.4仿真成员中的各个仿真对象开始执行,在仿真过程中调用HLA服务向本地RTI部件发送消息,并由回调部件接收来自其他本地RTI部件的消息;
第五步,结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370492.4A CN102880517B (zh) | 2012-09-29 | 2012-09-29 | 一种基于超级计算机的hla仿真程序的对象调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370492.4A CN102880517B (zh) | 2012-09-29 | 2012-09-29 | 一种基于超级计算机的hla仿真程序的对象调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102880517A true CN102880517A (zh) | 2013-01-16 |
CN102880517B CN102880517B (zh) | 2014-10-22 |
Family
ID=47481855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210370492.4A Active CN102880517B (zh) | 2012-09-29 | 2012-09-29 | 一种基于超级计算机的hla仿真程序的对象调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102880517B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414612A (zh) * | 2013-08-29 | 2013-11-27 | 中国兵器科学研究院 | 一种基于opnet的通信网络实时仿真方法 |
CN105323109A (zh) * | 2014-06-10 | 2016-02-10 | 公牛公司 | 互连网络仿真器及用于仿真互连网络的方法 |
CN106059804A (zh) * | 2016-05-27 | 2016-10-26 | 西安电子科技大学 | 基于改进的opnet‑hla的大规模网络仿真方法 |
CN106648900A (zh) * | 2016-12-28 | 2017-05-10 | 深圳Tcl数字技术有限公司 | 基于智能电视的超算方法及系统 |
WO2017152733A1 (zh) * | 2016-03-08 | 2017-09-14 | 中兴通讯股份有限公司 | 一种大规模复杂无线通信系统的仿真方法和系统 |
CN107612962A (zh) * | 2017-07-31 | 2018-01-19 | 北京航天长征飞行器研究所 | 一种分布式仿真评估试验管理系统 |
CN110895643A (zh) * | 2019-09-02 | 2020-03-20 | 芯创智(北京)微电子有限公司 | 一种存储器可靠性仿真验证方法、装置及存储介质 |
CN113254382A (zh) * | 2021-07-09 | 2021-08-13 | 国家超级计算天津中心 | 基于超级计算机构建数字数值融合装置的数据处理系统 |
CN117408060A (zh) * | 2023-10-13 | 2024-01-16 | 上海同星智能科技有限公司 | 整车模型仿真性能优化方法、存储介质和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001266050A (ja) * | 2000-02-25 | 2001-09-28 | Centric Software Inc | 包括的な属性アクセススキーマを有するシミュレーションプログラム |
US6789054B1 (en) * | 1999-04-25 | 2004-09-07 | Mahmoud A. Makhlouf | Geometric display tools and methods for the visual specification, design automation, and control of adaptive real systems |
US20040243369A1 (en) * | 2003-05-30 | 2004-12-02 | International Business Machines Corporation | Establishing relationships between components in simulation systems |
CN101609615A (zh) * | 2008-06-19 | 2009-12-23 | 广东电子工业研究院有限公司 | 一种实时半实物仿真系统及其数据采集方法 |
-
2012
- 2012-09-29 CN CN201210370492.4A patent/CN102880517B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789054B1 (en) * | 1999-04-25 | 2004-09-07 | Mahmoud A. Makhlouf | Geometric display tools and methods for the visual specification, design automation, and control of adaptive real systems |
JP2001266050A (ja) * | 2000-02-25 | 2001-09-28 | Centric Software Inc | 包括的な属性アクセススキーマを有するシミュレーションプログラム |
US20040243369A1 (en) * | 2003-05-30 | 2004-12-02 | International Business Machines Corporation | Establishing relationships between components in simulation systems |
CN101609615A (zh) * | 2008-06-19 | 2009-12-23 | 广东电子工业研究院有限公司 | 一种实时半实物仿真系统及其数据采集方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414612A (zh) * | 2013-08-29 | 2013-11-27 | 中国兵器科学研究院 | 一种基于opnet的通信网络实时仿真方法 |
CN105323109A (zh) * | 2014-06-10 | 2016-02-10 | 公牛公司 | 互连网络仿真器及用于仿真互连网络的方法 |
CN105323109B (zh) * | 2014-06-10 | 2020-06-26 | 公牛公司 | 互连网络仿真器及用于仿真互连网络的方法 |
WO2017152733A1 (zh) * | 2016-03-08 | 2017-09-14 | 中兴通讯股份有限公司 | 一种大规模复杂无线通信系统的仿真方法和系统 |
CN106059804B (zh) * | 2016-05-27 | 2019-06-21 | 西安电子科技大学 | 基于改进的opnet-hla的大规模网络仿真方法 |
CN106059804A (zh) * | 2016-05-27 | 2016-10-26 | 西安电子科技大学 | 基于改进的opnet‑hla的大规模网络仿真方法 |
CN106648900A (zh) * | 2016-12-28 | 2017-05-10 | 深圳Tcl数字技术有限公司 | 基于智能电视的超算方法及系统 |
CN106648900B (zh) * | 2016-12-28 | 2020-12-08 | 深圳Tcl数字技术有限公司 | 基于智能电视的超算方法及系统 |
CN107612962A (zh) * | 2017-07-31 | 2018-01-19 | 北京航天长征飞行器研究所 | 一种分布式仿真评估试验管理系统 |
CN107612962B (zh) * | 2017-07-31 | 2020-07-14 | 北京航天长征飞行器研究所 | 一种分布式仿真评估试验管理系统 |
CN110895643A (zh) * | 2019-09-02 | 2020-03-20 | 芯创智(北京)微电子有限公司 | 一种存储器可靠性仿真验证方法、装置及存储介质 |
CN110895643B (zh) * | 2019-09-02 | 2023-07-04 | 芯创智(上海)微电子有限公司 | 一种存储器可靠性仿真验证方法、装置及存储介质 |
CN113254382A (zh) * | 2021-07-09 | 2021-08-13 | 国家超级计算天津中心 | 基于超级计算机构建数字数值融合装置的数据处理系统 |
CN117408060A (zh) * | 2023-10-13 | 2024-01-16 | 上海同星智能科技有限公司 | 整车模型仿真性能优化方法、存储介质和电子设备 |
CN117408060B (zh) * | 2023-10-13 | 2024-05-14 | 上海同星智能科技有限公司 | 整车模型仿真性能优化方法、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102880517B (zh) | 2014-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102880517B (zh) | 一种基于超级计算机的hla仿真程序的对象调度方法 | |
US9672065B2 (en) | Parallel simulation using multiple co-simulators | |
CN104954453A (zh) | 基于云计算的数据挖掘rest服务平台 | |
CN109814990A (zh) | 一种分布式并行协同仿真架构 | |
CN102521024B (zh) | 基于生物信息云平台的作业调度方法 | |
CN101504688A (zh) | 一种基于hla的仿真软件交互方法 | |
Misale et al. | A comparison of big data frameworks on a layered dataflow model | |
CN107943592B (zh) | 一种面向gpu集群环境的避免gpu资源争用的方法 | |
Zhang et al. | DEVS/RMI-An auto-adaptive and reconfigurable distributed simulation environment for engineering studies | |
CN100588197C (zh) | 一种网格模拟方法及其模拟器 | |
CN100531070C (zh) | 网络资源调度仿真系统 | |
Arroqui et al. | JASAG: a gridification tool for agricultural simulation applications | |
Cox | Ritsim: Distributed systemc simulation | |
Peng et al. | The research of the parallel computing development from the angle of cloud computing | |
Sui et al. | On the distributed orchestration of stochastic discrete event simulations | |
Ben Romdhanne et al. | Coordinator-master-worker model for efficient large scale network simulation | |
Bruckschloegl et al. | A hierarchical architecture description for flexible multicore system simulation | |
Berthold et al. | PAEAN: Portable and scalable runtime support for parallel Haskell dialects | |
Castilhos et al. | A framework for mpsoc generation and distributed applications evaluation | |
Kale et al. | Parallel and Distributed Epirust: Towards Billion-Scale Agent-Based Epidemic Simulations. | |
Jing et al. | The Construction Concept of Cloud Computing Based Virtual Range | |
Zhang et al. | Design and realization of the simulation component-based parallel framework for HLA Federate | |
Kourzanov | Parallel evaluation of a DSP algorithm using julia | |
Dubois | An Introduction to Cosimulation and Compilation Methods | |
Bosse | Intelligent microchip networks: an agent-on-chip synthesis framework for the design of smart and robust sensor networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |