CN113282367B - 用于提高网络模拟器性能的时间同步方法 - Google Patents

用于提高网络模拟器性能的时间同步方法 Download PDF

Info

Publication number
CN113282367B
CN113282367B CN202110484747.9A CN202110484747A CN113282367B CN 113282367 B CN113282367 B CN 113282367B CN 202110484747 A CN202110484747 A CN 202110484747A CN 113282367 B CN113282367 B CN 113282367B
Authority
CN
China
Prior art keywords
entry
time
time synchronization
synchronization method
running
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.)
Active
Application number
CN202110484747.9A
Other languages
English (en)
Other versions
CN113282367A (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.)
Western Institute Of Advanced Technology Institute Of Computing Chinese Academy Of Sciences
Original Assignee
Western Institute Of Advanced Technology Institute Of Computing Chinese Academy Of Sciences
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 Western Institute Of Advanced Technology Institute Of Computing Chinese Academy Of Sciences filed Critical Western Institute Of Advanced Technology Institute Of Computing Chinese Academy Of Sciences
Priority to CN202110484747.9A priority Critical patent/CN113282367B/zh
Publication of CN113282367A publication Critical patent/CN113282367A/zh
Application granted granted Critical
Publication of CN113282367B publication Critical patent/CN113282367B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Abstract

本申请提供一种用于提高网络模拟器性能的时间同步方法,本发明的方法主要提供一种用于网络模拟器领域的时间戳同步方法,本方法分为3个子方法,分别是基于邻居节点的时间同步方法、基于本地原子变量的时间同步方法和基于全局栅栏的时间同步方法。本发明提供一种混合策略混合使用该3种子方法,完善整体时间同步策略。本申请的用于提高网络模拟器性能的时间同步方法,通过减少集中控制与调度的方法,利用各实体自行进行混合策略的同步,实现半异步的时间戳同步操作,有效提升分布式运行性能。

Description

用于提高网络模拟器性能的时间同步方法
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种用于提高网络模拟器性能的时间同步方法。
背景技术
网络模拟器是用于大规模网络仿真等问题研究的基本工具,其主要以离散事件驱动为设计模式,主要原理是离散事件模拟将系统随时间的变化抽象成一系列的离散时间点上的事件,为保证事件的因果关系,离散事件仿真中必须按照时间对事件进行排序和按顺序执行。并行离散事件仿真将仿真任务分成很多逻辑进程,分配至不同的核中加以计算,可是由于各个核的独立运行,时间同步问题便随之而来。传统的时间同步算法分为保守同步策略和乐观同步策略。保守同步策略是当有一个逻辑进程可能从其他逻辑进程处接收到拥有更小时戳的事件时,则确保这个逻辑进程不处理事件。乐观同步策略与保守同步策略不同,它允许逻辑进程按照任何顺序执行事件,如果发生因果关系错误,则通过回退的方式重新执行。虽然乐观同步策略允许各个逻辑进程不受限地自由推进,可是在传统的时间弯曲算法中,各个逻辑进程的仿真时间差异是没有任何限制的,当遇到掉队事件或消息后通过回退和发送反消息达到同步的效果,这可能会导致非常低的计算和通信资源利用率。
因此,亟需一种新的用于网络模拟器的时间同步方法。
发明内容
有鉴于此,本发明提供一种用于提高网络模拟器性能的时间同步方法,其特征在于:所述方法包括如下步骤:
S1:将多个Entry动态加载于不同的运算器件上,并运行多个Entry中的某一个Entry的完整仿真流程;
S2:判断当前运行的Entry的当前时间戳Ti是否不小于模拟时间Tsim,若是,则进入步骤S3,若否,则进入步骤S4;
S3:结束当前运行的Entry的仿真,并释放资源;
S4:运行基于邻居节点的时间同步方法;
S5:判断步骤S4中变量legal是否为False,若是,则进入步骤S4,若否,则进入下一步;
S6:运行基于本地共享原子变量的同步方法;
S7:判断步骤S6中变量legal是否为False,若是,则进入步骤S4,若否,则进入下一步;
S8:对当前运行的Entry的时间戳Ti增加△t,并执行递增△t时间内需要仿真的进程程序;
S9:运行基于全局栅拦的时间同步方法,运行完成后,进入步骤S2。
进一步,所述基于邻居节点的时间同步方法包括如下步骤:
S41:寻找当前运行的Entry的还未开始执行的且未曾被找到的邻居节点,判断是否找到未开始执行且未曾被找到的邻居节点,若是,则进入步骤S43,若否,则进入步骤S42;
S42:设置legal为true;
S43:确定找到的未开始执行的邻居节点的时间戳Tj,判断邻居节点的时间戳Tj与当前运行的Entry的时间戳Ti的差是否不大于预设范围tα,若是,则进入步骤S41,若否,则进入步骤S44;
S44:设置legal为false。
进一步,所述基于本地共享原子变量的时间同步方法还包括:
S61:本地共享时间戳模块,即模块310,对每个模拟运行的Entry计算节点,其运行并维护一个本地的原子变量Tatomic,所述本地的原子变量Tatomic用于本地所有Entry的时间同步;
S62:将本地所有参与仿真的Entry进行编号,所述编号从i到m。
进一步,所述基于本地共享原子变量的时间同步方法具体包括如下步骤:
步骤611:从本地共享原子变量获取变量值Tatomic,并将变量值Tatomic保存至变量Ta
步骤612:判断当前Entry的时间戳Ti与本地共享时间戳平均时间Ta/M的差是否小于等于预设范围tβ,即Ti<=Ta/M+tβ,其中,Ta表示变量,M表示本地Entry数量,tβ是人工根据经验设定的参数,若是,则认为合法,进入步骤63,否则,进入步骤S65;
步骤63:使用比较并交换操作指令CAS,使共享原子变量Ta增加△t,判断Ta=Ta+△t是否执行成功,其中,△t表示增加的时间,若是,则进入步骤S64,若否,则进入步骤S611;
步骤64:判定增加时间,将legal设置为true;
判定不增加时间,将legal设置为false。
进一步,所述基于全局栅拦的时间同步方法具体包括如下步骤:
S91:判断当前Entry的时间戳Ti与全局栅拦的时间频率tγ的模是否为零,若是,则进入下一步,若否,则结束;
S92:执行栅拦阻塞同步操作barrier(),并结束。
本发明的有益技术效果:本申请的用于提高网络模拟器性能的时间同步方法,通过减少集中控制与调度的方法,利用各实体自行进行混合策略的同步,实现半异步的时间戳同步操作,有效提升分布式运行性能。
附图说明
下面结合附图和实施例对本发明作进一步描述:
图1为本申请的同步方法的流程图。
图2为网络拓扑中各仿真实体连接关系示意图。
图3为基于邻居节点的时间同步的同步方法流程图。
图4为基于本地共享原子变量的时间同步方法结构示意图。
图5为基于本地共享原子变量的时间同步方法流程图。
图6为基于全局栅拦的时间同步方法示意图。
图7为基于全局栅拦的时间同步方法的流程图。
具体实施方式
以下结合说明书附图对本发明做出进一步的说明:
在本方法中,
Barrier表示栅栏同步,常用的集合操作之一。
Entry表示仿真实体,需要模拟器运行仿真的基本单位,拥有单一时间戳。
Rank表示某仿真实体的序号,本发明中默认从0开始。
Timestamp(T)表示时间戳,本发明中用Ti来表示Rank为i的仿真实体的当前时间戳。
Legal表示用于判定是否可以进行时间戳递增的临时变量。
本发明提供一种用于提高网络模拟器性能的时间同步方法,其特征在于:所述方法包括如下步骤:如图1所示:
S1:将多个Entry动态加载于不同的运算器件上,并运行多个Entry中的某一个Entry的完整仿真流程;
S2:判断当前运行的Entry的当前时间戳Ti是否不小于模拟时间Tsim,若是,则进入步骤S3,若否,则进入步骤S4;
S3:结束当前运行的Entry的仿真,并释放资源;
S4:运行基于邻居节点的时间同步方法;
S5:判断步骤S4中变量legal是否为False,若是,则进入步骤S4,若否,则进入下一步;因为全局时间戳存在最小值,该最小值所在节点一定会更新(legal为True);因此整体流程不存在死锁情况,故不会出现死循环。
S6:运行基于本地共享原子变量的同步方法;
S7:判断步骤S6中变量legal是否为False,若是,则进入步骤S4,若否,则进入下一步;
S8:对当前运行的Entry的时间戳Ti增加△t,并执行递增△t时间内需要仿真的进程程序;
S9:运行基于全局栅拦的时间同步方法,运行完成后,进入步骤S2。
上述技术方案,利用基于邻居节点的时间同步方法、基于本地共享原子变量的时间同步方法和基于全局栅拦的时间同步方法是的网络模拟器在预设时间精度内实现时间同步。
在本实施例中,所述基于邻居节点的时间同步方法包括如下步骤:如图2所示和图3所示,
S41:寻找当前运行的Entry的还未开始执行的且未曾被找到的邻居节点,判断是否找到未开始执行且未曾被找到的邻居节点,若是,则进入步骤S43,若否,则进入步骤S42;
S42:设置legal为true;
S43:确定找到的未开始执行的邻居节点的时间戳Tj,判断邻居节点的时间戳Tj与当前运行的Entry的时间戳Ti的差是否不大于预设范围tα,若是,则进入步骤S41,若否,则进入步骤S44时与当前运行的;如图2中,Entry3的邻居节点有Entry2和Entry7,在本步骤中,需要遍历全部的邻居节点,而且都满足该公式条件下,legal才保持true,否则只要有一个不满足则legal就会变成false,然后退出遍历。
S44:将legal设置为false;
上述技术方案通过同步实体与网络拓扑中与其相邻的实体的时间戳,来保证相邻实体间模拟时间在可接受范围内,从而保证整个网络直径下的拓扑各实体的模拟时间差在一定可接受范围。
在本实施例中,所述基于本地共享原子变量的时间同步方法还包括:如图4所示,
S61:本地共享时间戳,即模块310,对每个模拟运行的Entry计算节点,其运行并维护一个本地的原子变量Tatomic,所述本地的原子变量Tatomic用于本地所有Entry的时间同步;其中,计算节点通过执行模拟器的物理单元,例如一台服务器。网络模拟器上,可以并行执行多个仿真实体(即Entry)的模拟。
S62:将本地所有参与仿真的Entry进行编号,所述编号从i到m。在本实施例中,是对仿真的Entry进行随机编号。
在本实施例中,所述基于本地共享原子变量的时间同步方法具体包括如下步骤:如图5所示,
步骤611:从本地共享原子变量获取变量值Tatomic,并将变量值Tatomic保存至变量Ta
步骤612:判断当前Entry的时间戳Ti与本地共享时间戳平均时间Ta/M的差是否小于等于预设范围Tβ,其中,Ta表示变量,M表示本地Entry数量,Tβ是人工根据经验设定的参数,若是,则认为合法,进入步骤63,否则,进入步骤S65;
步骤63:使用比较并交换操作指令CAS(compareAndSet)操作,使共享原子变量Ta增加△T,判断Ta=Ta+△t是否执行成功,其中,△t表示增加的时间,若是,则进入步骤S64,若否,则进入步骤S611;
步骤64:判定增加时间,设置legal为true;判定不增加时间,设置legal为false。
上述技术方案通过在多核系统本地维护一个共享的原子变量,来保证全局所有实体的当前运行时间与最慢节点的时间差在一定可接受范围。
在本实施例中,所述基于全局栅拦的时间同步方法具体包括如下步骤:如图6所示,
节点编号模块410全局Entry的Rank编号,从0到N-1。代表该行为该Entry的流程。
任务流程模块420表示各Entry运行若干模拟时间(tγ)的任务流程,等待barrier同步。
集合通信模块430表示全局的栅栏(barrier)集合操作,只有全局最慢的Entry也执行完模拟时间后才能完成该集合操作。
如图7所示,
S91:判断当前Entry的时间戳Ti与全局栅拦的时间频率tγ的模是否为零,若是,则进入下一步,若否,则结束;
S92:执行栅拦阻塞同步操作barrier(),并结束。
上述技术方案通过一定时间周期运行一个全局栅栏来实现所有模拟实体的时间同步。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (1)

1.一种用于提高网络模拟器性能的时间同步方法,其特征在于:所述方法包括如下步骤:
S1:将多个Entry动态加载于不同的运算器件上,并运行多个Entry中的某一个Entry的完整仿真流程;
S2:判断当前运行的Entry的当前时间戳Ti是否不小于模拟时间Tsim,若是,则进入步骤S3,若否,则进入步骤S4;
S3:结束当前运行的Entry的仿真,并释放资源;
S4:运行基于邻居节点的时间同步方法;
S5:判断步骤S4中变量legal是否为False,若是,则进入步骤S4,若否,则进入下一步;
S6:运行基于本地共享原子变量的时间同步方法;
S7:判断步骤S6中变量legal是否为False,若是,则进入步骤S4,若否,则进入下一步;
S8:对当前运行的Entry的时间戳Ti增加△t,并执行递增△t时间内需要仿真的进程程序;
S9:运行基于全局栅拦的时间同步方法,运行完成后,进入步骤S2;
所述基于本地共享原子变量的时间同步方法还包括:
S61:本地共享时间戳模块,对每个模拟运行的Entry计算节点,其运行并维护一个本地的原子变量Tatomic,所述本地的原子变量Tatomic用于本地所有Entry的时间同步;
S62:将本地所有参与仿真的Entry进行编号,所述编号从i到m;
所述基于本地共享原子变量的时间同步方法具体包括如下步骤:
步骤611:从本地共享原子变量获取变量值Tatomic,并将变量值Tatomic保存至变量Ta
步骤612:判断当前Entry的时间戳Ti与本地共享时间戳平均时间Ta/M的差是否小于等于预设范围tβ,即Ti<=Ta/M+tβ,其中,Ta表示变量,M表示本地Entry数量,tβ是人工根据经验设定的参数,若是,则认为合法,进入步骤63,否则,进入步骤S65;
步骤63:使用比较并交换操作指令CAS,使共享原子变量Ta增加△t,判断Ta=Ta+△t是否执行成功,其中,△t表示增加的时间,若是,则进入步骤S64,若否,则进入步骤S611;
步骤64:判定增加时间,将legal设置为true;
判定不增加时间,将legal设置为false;Legal表示用于判定是否可以进行时间戳递增的临时变量;
所述基于全局栅拦的时间同步方法具体包括如下步骤:
S91:判断当前Entry的时间戳Ti与全局栅拦的时间频率tγ的模是否为零,若是,则进入下一步,若否,则结束;
S92:执行栅拦阻塞同步操作barrier(),并结束;
所述基于邻居节点的时间同步方法包括如下步骤:
S41:寻找当前运行的Entry的还未开始执行的且未曾被找到的邻居节点,判断是否找到未开始执行且未曾被找到的邻居节点,若是,则进入步骤S43,若否,则进入步骤S42;
S42:设置legal为true;
S43:确定找到的未开始执行的邻居节点的时间戳Tj,判断邻居节点的时间戳Tj与当前运行的Entry的时间戳Ti的差是否不大于预设范围tα,若是,则进入步骤S41,若否,则进入步骤S44;
S44:设置legal为false。
CN202110484747.9A 2021-04-30 2021-04-30 用于提高网络模拟器性能的时间同步方法 Active CN113282367B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110484747.9A CN113282367B (zh) 2021-04-30 2021-04-30 用于提高网络模拟器性能的时间同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110484747.9A CN113282367B (zh) 2021-04-30 2021-04-30 用于提高网络模拟器性能的时间同步方法

Publications (2)

Publication Number Publication Date
CN113282367A CN113282367A (zh) 2021-08-20
CN113282367B true CN113282367B (zh) 2023-12-26

Family

ID=77277807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110484747.9A Active CN113282367B (zh) 2021-04-30 2021-04-30 用于提高网络模拟器性能的时间同步方法

Country Status (1)

Country Link
CN (1) CN113282367B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760328B1 (en) * 1999-10-14 2004-07-06 Synchrodyne Networks, Inc. Scheduling with different time intervals
CN102662428A (zh) * 2012-03-01 2012-09-12 中国科学院计算技术研究所 一种离散事件网络模拟环境的时钟同步方法
CN103268251A (zh) * 2013-05-02 2013-08-28 中国人民解放军国防科学技术大学 一种基于时戳截流的并行离散事件仿真时间同步方法
CN103281772A (zh) * 2013-04-23 2013-09-04 中国科学院计算技术研究所 一种无线传感器网络的时间同步方法及系统
CN104411008A (zh) * 2014-10-24 2015-03-11 安徽理工大学 一种无线传感器网络事件触发一致性时钟同步方法
CN106804058A (zh) * 2017-02-16 2017-06-06 上海交通大学 一种结合拓扑维护的分簇时间同步方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050058149A1 (en) * 1998-08-19 2005-03-17 Howe Wayne Richard Time-scheduled and time-reservation packet switching

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760328B1 (en) * 1999-10-14 2004-07-06 Synchrodyne Networks, Inc. Scheduling with different time intervals
CN102662428A (zh) * 2012-03-01 2012-09-12 中国科学院计算技术研究所 一种离散事件网络模拟环境的时钟同步方法
CN103281772A (zh) * 2013-04-23 2013-09-04 中国科学院计算技术研究所 一种无线传感器网络的时间同步方法及系统
CN103268251A (zh) * 2013-05-02 2013-08-28 中国人民解放军国防科学技术大学 一种基于时戳截流的并行离散事件仿真时间同步方法
CN104411008A (zh) * 2014-10-24 2015-03-11 安徽理工大学 一种无线传感器网络事件触发一致性时钟同步方法
CN106804058A (zh) * 2017-02-16 2017-06-06 上海交通大学 一种结合拓扑维护的分簇时间同步方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Survey of Clock Synchronization Over Packet-Switched Networks;Martin Lévesque等;《IEEE Communications Surveys & Tutorials》;第2926-2947页 *
CAN总线消息响应时间评估系统的仿真与测试;卢阳;《电子技术与软件工程》;第41-42页 *

Also Published As

Publication number Publication date
CN113282367A (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
CN115248728B (zh) 面向智能计算的分布式训练任务调度方法、系统和装置
CN111079921A (zh) 一种基于异构分布式系统的高效神经网络训练调度方法
CN112149808B (zh) 拓展单机图神经网络训练至分布式训练方法、系统及介质
Ferscha et al. Estimating rollback overhead for optimism control in Time Warp
Cremona et al. TRES: a modular representation of schedulers, tasks, and messages to control simulations in simulink
CN111274036A (zh) 一种基于速度预测的深度学习任务的调度方法
CN104243617A (zh) 一种异构集群中面向混合负载的任务调度方法及系统
CN103685309A (zh) 面向地图可视化瓦片服务接入的异步请求队列模型
Van Tendeloo et al. Activity in pythonpdevs
Geng et al. Accelerating distributed machine learning by smart parameter server
CN103475742B (zh) 云计算环境中主控节点确定的方法及系统
CN117354260A (zh) 一种电磁暂态跨域分布式并行计算调度方法及装置
CN111324046A (zh) 一种用于对分布式仿真系统进行协同运算的方法及系统
CN113282367B (zh) 用于提高网络模拟器性能的时间同步方法
CN110689174A (zh) 基于公共交通的人员路线规划方法及装置
CN111612155A (zh) 一种分布式机器学习系统及适用于其的通信调度方法
CN117234710A (zh) 一种采用强化学习实现ai模型训练内存优化的方法
CN115345285A (zh) 基于gpu的时序图神经网络训练方法、系统及电子设备
CN112506658B (zh) 一种服务链中动态资源分配和任务调度方法
Ran et al. Approximate optimal AUTOSAR software components deploying approach for automotive E/E system
Wang et al. Exploiting event-level parallelism for parallel network simulation on multicore systems
Liu A Programming Model for the Cloud Platform
CN110647440A (zh) 一种基于状态机的大数据任务处理方法及系统
CN113504966B (zh) Gpu集群调度策略模拟方法及gpu集群模拟器
CN114896080B (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