一种基于步长的分布式仿真系统时间同步方法与流程

文档序号:31053599发布日期:2022-08-06 09:34阅读:391来源:国知局
一种基于步长的分布式仿真系统时间同步方法与流程

1.本发明属于计算机技术领域,尤其涉及一种基于步长的分布式仿真系统时间同步方法。


背景技术:

2.随着计算机技术、网络技术和虚拟化等技术的高速发展,把空间上分布的多个仿真设备通过通信网络连在一起构建分布式仿真系统,可以协调完成复杂的具有分布式特征的仿真任务。
3.分布式仿真系统面临的一个基本难题是在网络中多个计算机上进行并行仿真的同时,要确保事件的处理顺序不偏离物理系统中事件的发生顺序。这要求分布式仿真系统中各个虚拟仿真节点之间进行时间同步,以保证软件任务时序的正确性。
4.针对航空航天等领域嵌入式软件的强实时性要求,分布式仿真系统的时间同步要求达到毫秒级甚至微秒级,因此,控制由于网络延迟造成的时间同步开销,是保证分布式仿真系统性能的关键因素。
5.分布式仿真系统中一种最为常见的同步策略是保守时间推进机制,它能确保仿真过程中所发生的事件在逻辑上的正确性以及所发送的消息在逻辑上的有序性,能保证各类事件是按时间的先后顺序处理执行。目前基于保守时间推进机制产生了很多种时间同步方法来控制同步开销。
6.华中科技大学申请的cn201410785390.8号专利公开了一种基于时间源的团队仿真时间同步方法,该方法公开了一种团队仿真时间同步方法,其特征在于,具体为:管理者实体加入联邦,其首先初始化仿真起始时间、时间推进步长和仿真起始步数,然后开始推进时间;普通仿真实体加入联邦,其从管理者实体接收时间同步参数,时间同步参数包括仿真起始时间、时间推进步长和仿真起始步数,依据时间同步参数计算自己的当前仿真时间,然后开始推进时间;管理者实体更改时间推进步长,按照更改后的时间推进步长进行时间推进,更新时间同步参数即将仿真起始步数更新为更改时间推进步长时对应的仿真步数,以及将仿真起始时间更新为管理者实体的当前仿真时间;同时,将更新后的时间同步参数群发给普通仿真实体,普通仿真实体依据时间同步参数进行当前时间计算和时间推进。
7.华中科技大学申请的该项专利在整个系统中所有仿真实体采用统一的时间推进步长,对于航空航天等领域强实时性嵌入式软件,分布式仿真系统的时间同步要求达到一毫秒、数百微秒,甚至几十微秒,但在当前千兆网络中,网络上两台计算机之间进行一次可靠通信传输有时需要几百微秒时间,这将导致网络通信延迟成为制约分布式仿真系统性能的关键因素。
8.专利申请人于永利申请的cn201210147868.5号专利公开了一种基于保守机制的小步长时间推进算法,该算法特征在于基于高层体系结构中的保守时间推进机制,当联邦成员在时间推进过程中不能确定某事件的发生时间时,采用插入以小步长为时戳的空事件的方式进行时间推进;当联邦成员能够判断该事件的发生时间时,取消小步长时间推进,恢
复正常的时间推进。解决了联邦成员仿真过程中由于受平均保障延误时间影响的联邦成员违反保守时间推进机制中可预测性原则的问题。
9.上述专利通过可变步长来解决步长过小时对系统性能的影响,目的是仅在某些特定时刻使用小步长,来避免长时间小步长同步对系统性能的影响。但对于航空航天等领域强实时性嵌入式软件,不能满足系统中可能存在某些事件始终要求使用小步长同步的要求。


技术实现要素:

10.本发明解决的技术问题是:克服现有技术的不足,提供了一种基于步长的分布式仿真系统时间同步方法,可以减少网络延迟的影响,降低虚拟仿真节点之间的时间同步开销,从而提升分布式仿真系统性能。
11.本发明目的通过以下技术方案予以实现:一种基于步长的分布式仿真系统时间同步方法,包括:(1)确定不同仿真节点之间的同步步长;(2)根据不同仿真节点之间的同步步长,优先部署时间同步步长较小的仿真节点在一台或多台计算机之上,其他节点根据计算机负载情况进行部署,部署的同时确定在每台计算机上的各仿真节点之间的本地时间同步步长t;(3)确定分布式仿真系统时间同步步长t;(4)调整分布式仿真系统时间同步步长t和各计算机上的各仿真节点之间的本地时间同步步长t,要求t是t的整数倍;(5)在每台计算机上,各个仿真节点按照本地时间同步步长t进行同步运行,每个仿真节点在运行至本地同步基准线;当所有仿真节点第n次到达本地同步基准线,且满足条件n*t=t时,向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号;(6)如果一台计算机已经收到所有其他计算机运行至下一个分布式同步基准线的信号,返回步骤(5),继续运行;否则,暂停运行,直至收到所有其他计算机已经运行至下一个分布式同步基准线的信号,然后返回步骤(5),继续运行。
12.上述基于步长的分布式仿真系统时间同步方法中,在步骤(1)中,在分布式仿真系统中,共有11个单机需要仿真,单机1仿真节点、单机2仿真节点、单机3仿真节点和单机4仿真节点之间时间同步步长为0.5毫秒;单机5仿真节点、单机6仿真节点和单机7仿真节点之间时间同步步长为1.0毫秒;单机8仿真节点和单机9仿真节点之间时间同步步长为1.5毫秒,单机10仿真节点和单机11仿真节点之间时间同步步长为3.2毫秒。
13.上述基于步长的分布式仿真系统时间同步方法中,在步骤(2)中,将11个单机仿真节点部署在四台物理计算机之上;其中,将单机1仿真节点、单机2仿真节点和单机3仿真节点和单机4仿真节点部署在计算机a上,并确定单机1仿真节点、单机2仿真节点和单机3仿真节点和单机4仿真节点之间的本地时间同步步长t为t1,且t1等于0.5毫秒;将单机5仿真节点、单机6仿真节点和单机7仿真节点部署在计算机b上,并确定单机5仿真节点、单机6仿真节点和单机7仿真节点之间的本地时间同步步长t为t2,且t2等于1.0毫秒;将单机8仿真节点和单机9仿真节点部署在计算机c上,并确定单机8仿真节点和单机9仿真节点之间的本地时间同步步长t为t3,且t3等于1.5毫秒;将单机10仿真节点部署在计算机d上;将单机11仿真节点部署在计算机c上,此时计算机c上共有单机8仿真节点、单机9仿真节点和单机11仿真节点三个节点,虽然单机11仿真节点与其他两个节点时间同步步长达3.2毫秒,但由于单
机8仿真节点和单机9仿真节点之间时间同步步长为1.5毫秒,所以计算机c上部署的三个仿真节点的本地时间同步步长t3仍然为1.5毫秒。
14.上述基于步长的分布式仿真系统时间同步方法中,在步骤(3)中,分布式仿真系统时间同步步长t为3.2毫秒。
15.上述基于步长的分布式仿真系统时间同步方法中,在步骤(4)中,当无法满足整数倍关系时,向下调整t和t,使得t是t的整数倍。
16.上述基于步长的分布式仿真系统时间同步方法中,在步骤(4)中,将分布式仿真系统时间同步步长t调整为3毫秒,此时t=6*t1=3*t2=2*t3。
17.上述基于步长的分布式仿真系统时间同步方法中,在步骤(5)中,在计算机a上,单机1仿真节点、单机2仿真节点、单机3仿真节点和单机4仿真节点按照本地时间同步步长t1进行同步运行,每个仿真节点运行t1时刻到达本地同步基准线,当所有仿真节点第6次到达本地同步基准线时,满足6*t1=t条件,计算机a向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号。
18.上述基于步长的分布式仿真系统时间同步方法中,在步骤(5)中,在计算机b上,单机5仿真节点、单机6仿真节点和单机7仿真节点按照本地时间同步步长t2进行同步运行,每个仿真节点运行t2时刻到达本地同步基准线,当所有仿真节点第3次到达本地同步基准线时,满足3*t2=t条件,计算机b向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号。
19.上述基于步长的分布式仿真系统时间同步方法中,在步骤(5)中,在计算机c上,单机8仿真节点、单机9仿真节点和单机11仿真节点按照本地时间同步步长t3进行同步运行,每个仿真节点运行t3时刻到达本地同步基准线,当所有仿真节点第2次到达本地同步基准线时,满足2*t3=t条件,计算机c向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号。
20.上述基于步长的分布式仿真系统时间同步方法中,在步骤(5)中,计算机d上只有单机10仿真节点,直接运行至分布式同步基准线,向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号。
21.本发明与现有技术相比具有如下有益效果:
22.本发明可以减少网络延迟的影响,降低虚拟仿真节点之间的时间同步开销,从而提升分布式仿真系统性能。
附图说明
23.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
24.图1是本发明实施例提供的基于步长的分布式仿真系统时间同步方法的时间同步
过程图。
具体实施方式
25.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
26.本实施例提供了一种基于步长的分布式仿真系统时间同步方法,该方法包括如下步骤:
27.(1)分析各仿真节点之间的时间同步需求,根据同步需求确定不同仿真节点之间的同步步长;
28.(2)根据步骤(1)的时间同步需求分析,优先部署时间同步步长较小的仿真节点在一台或多台计算机之上,其他节点根据计算机负载情况进行部署,部署的同时确定在每台计算机上的各仿真节点之间的本地时间同步步长t;
29.(3)根据步骤(1)的时间同步需求分析,确定分布式仿真系统时间同步步长t;
30.(4)调整分布式仿真系统时间同步步长t和各计算机上仿真节点的本地时间同步步长t,要求t是t的整数倍;当无法满足整数倍关系时,向下调整t和t,使得t是t的整数倍;
31.(5)初始化n=0,在每台计算机上,各个仿真节点按照本地时间同步步长t进行同步运行,每个仿真节点在运行至本地同步基准线时,要等待本机其他仿真节点均运行至该基准线后才继续运行;当所有仿真节点第n次到达本地同步基准线,且满足条件:n*t=t时,向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号;
32.(6)如果一台计算机已经收到所有其他计算机运行至下一个分布式同步基准线的信号,返回步骤(5),继续运行;否则,暂停运行,直至收到所有其他计算机已经运行至下一个分布式同步基准线的信号,然后返回步骤(5),继续运行。
33.图1是本发明一种基于步长的分布式仿真系统时间同步方法的时间同步过程图,图中展示的分布式仿真系统由部署在4台物理计算机a、b、c和d上的11个仿真节点组成,其中分布式仿真系统的时间同步周期为t,并且:
34.计算机a上部署的4个节点的本地时间同步步长为t1,并且6*t1=t。
35.计算机b上部署的3个节点的本地时间同步步长为t2,并且3*t2=t。
36.计算机c上部署的3个节点的本地时间同步步长为t3,并且2*t3=t。
37.计算机d上只部署了1个节点,不需要进行本地时间同步,该节点与部署在其他计算机上的节点按照同步仿真周期t进行同步。
38.在该控制分系统中,共有11个单机需要仿真,其中单机1~4之间时间偏差超过0.5毫秒时系统工作异常;单机5~7之间时间偏差超过1.0毫秒时系统工作异常;单机8和9之间时间偏差超过1.5毫秒时系统工作异常;其他单机之间时间偏差超过3.2毫秒时系统工作异常。
39.同时,已知单机10涉及大量数学运算,仿真时对计算机性能要求较高,其他单机仿
真时对计算机性能无特殊要求。目前有4台物理计算机可供使用来构建分布式仿真系统,并且这4台物理计算机软件、硬件配置完全相同。
40.针对上述情况,按下面步骤实施分布式仿真系统的部署:
41.(1)根据控制分系统的需求,确定单机1~4仿真节点之间时间同步步长为0.5毫秒,单机5~7仿真节点之间时间同步步长为1.0毫秒,单机8和9仿真节点之间时间同步步长为1.5毫秒,其他单机仿真节点之间时间同步步长为3.2毫秒。
42.(2)根据步骤(1)的时间同步需求分析,结合计算机负载情况将11个单机的仿真节点部署在四台物理计算机之上:
43.将需要时间同步步长较小的单机1~4仿真节点部署在计算机a上,并确定这几个仿真节点之间的本地时间同步步长为t1,且t1等于0.5毫秒。
44.将需要时间同步步长较小的单机5~7仿真节点部署在计算机b上,并确定这几个节点之间的本地时间同步步长为t2,且t2等于1.0毫秒。
45.将需要时间同步步长较小的单机8和9仿真节点部署在计算机c上,并确定这两个节点之间的本地时间同步步长为t3,且t3等于1.5毫秒。
46.由于单机10仿真时对计算机性能要求较高,且与其它仿真节点之间时间同步要求是不超过3.2毫秒,所以将其部署在计算机d上。
47.将单机11部署在计算机c上,这是由于计算机a已经部署了4个节点,计算机b已经部署了3个节点、计算机d虽然只部署了单机10一个仿真节点,但该仿真节点对计算机性能要求较高,所以将单机11仿真节点部署在计算机c上。此时计算机c上共有单机8、9和11三个节点,虽然单机11与其他两个节点时间同步步长可达3.2毫秒,但由于单机8和9之间时间同步步长为1.5毫秒,所以计算机c上部署的三个仿真节点的本地时间同步步长t3仍然为1.5毫秒。
48.(3)根据步骤(1)的时间同步需求分析,设置分布式仿真系统时间同步步长t为3.2毫秒;
49.(4)分布式仿真系统时间同步步长t为3.2毫秒,计算机a、b、c的本地时间同步步长为t1、t2、t3分别为0.5毫秒、1.0毫秒和1.5毫秒,计算机d只部署了一个仿真节点,该仿真节点直接按照分布式仿真系统时间同步步长t与其他计算机进行时间同步。为了满足整数倍关系,将t调整为3毫秒,此时t=6*t1=3*t2=2*t3。
50.(5)在计算机a上,单机1~4仿真节点按照本地时间同步步长t1进行同步运行,每个仿真节点运行t1时刻到达本地同步基准线时,等待本机其他仿真节点均运行至该基准线后才继续运行,当所有仿真节点第6次到达本地同步基准线时,满足6*t1=t条件,计算机a向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号;同理,计算机b和c上单机仿真节点也进行类似的同步操作。计算机d上只有一个单机仿真节点,直接运行至分布式同步基准线,向网络中其他计算机发送该机已经运行至下一个分布式同步基准线的信号,并检查是否已经接收到所有其他计算机已经运行至下一个分布式同步基准线的信号。
51.(6)计算机a、b、c和d如果已经收到所有其他计算机运行至下一个分布式同步基准线的信号,返回步骤(5),继续运行;否则,暂停运行,直至收到所有其他计算机已经运行至下一个分布式同步基准线的信号,然后返回步骤(5),继续运行。
52.本发明通过优先将时间同步步长较小的仿真节点部署在一台或多台计算机之上,允许分布式仿真系统中部署在不同计算机上的仿真节点使用不同的时间同步步长进行同步。部署在同一计算机上的仿真节点可以直接利用计算机操作系统提供的通信机制完成同步,不必通过延迟较大的计算机网络进行时间同步。由于本机通信速度远高于网络通信速度,即使部署在一台计算机上的几个仿真节点之间的时间同步步长很小,通过合理部署分布式仿真系统的仿真节点,可显著降低时间同步对分布式仿真系统性能的影响。
53.本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1