CN103377082B - 对离散事件仿真进行调度的方法和装置 - Google Patents
对离散事件仿真进行调度的方法和装置 Download PDFInfo
- Publication number
- CN103377082B CN103377082B CN201210130365.7A CN201210130365A CN103377082B CN 103377082 B CN103377082 B CN 103377082B CN 201210130365 A CN201210130365 A CN 201210130365A CN 103377082 B CN103377082 B CN 103377082B
- Authority
- CN
- China
- Prior art keywords
- event
- type
- events
- simulation
- time
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种对离散事件仿真进行调度的方法和装置。在本发明的一个实施方式中,提供了一种对离散事件仿真进行调度的方法,该方法包括:响应于加载离散事件仿真,提取离散事件仿真中的两个或者更多事件类型;基于两个或者更多事件类型建立用于离散事件仿真的相关性图;以及根据相关性图调度被分类为两个或者更多事件类型的事件;其中相关性图中的每个节点描述两个或者更多事件类型中的一个事件类型,相关性图中的边描述两个或者更多事件类型之间的创建关系或依赖关系。在本发明的另一实施方式中,提供了一种对离散事件仿真进行调度的装置。
Description
技术领域
本发明涉及并行处理,更具体地,涉及对离散事件仿真(DiscreteEvent Simulation)进行调度的方法、装置和相关计算机程序产品。
背景技术
随着计算机硬件和软件技术的发展,已经可以对人们日常工作和生活中越来越多的方面进行仿真。例如,可以采用离散事件来描述日常工作和生活中的各种过程(诸如,移动通信网络运行、数据网络运行、生产线管理等),并且还可以采用离散事件仿真来对这些处理进行仿真。
离散事件仿真将待分析系统随时间的变化抽象成离散时间点上的一系列事件,通过按照时间顺序处理这些事件,进而形成一种事件驱动的仿真世界。离散事件仿真将系统的变化看作事件,因此系统的任何变化都可以通过处理相应的事件来实现。
随着多核处理器等硬件技术的发展,近年来多核CPU已成为计算机的主流配置,因而基于多核的并行处理技术也越来越受到重视。然而,目前大多数仿真平台在实际应用中还很难有效利用CPU的多核特性。为提高离散事件仿真的运行效率、并且为了更充分地利用多核CPU潜在的处理能力,基于并行处理技术来对离散事件进行仿真已经成为目前的一个研究重点。
然而,现有的离散事件仿真的应用难以被移植到可以支持并行处理的计算设备中,并且目前的解决方案通常过多依赖于研发人员的自身经验、或者需要研发人员改变长期以来一贯遵循的编程习惯,这导致难以充分利用硬件提供的并行处理能力。
发明内容
因而,如何在与现有的离散事件仿真兼容的情况下更有效地对事件进行并行处理,成为一项亟待解决的问题。为此,本发明的各实施方式提供了对离散事件仿真进行调度的方法、装置和相关计算机程序产品。
根据本发明的一个方面,提供了一种对离散事件仿真进行调度的方法。该方法包括:响应于加载离散事件仿真,提取离散事件仿真中的两个或者更多事件类型;基于两个或者更多事件类型建立用于离散事件仿真的相关性图;以及根据相关性图调度被分类为两个或者更多事件类型的事件;其中相关性图(Correlation Graph)中的每个节点描述两个或者更多事件类型中的一个事件类型,相关性图中的边描述两个或者更多事件类型之间的创建关系或依赖关系。
根据本发明的一个方面,基于两个或者更多事件类型建立用于离散事件仿真的相关性图包括:针对两个或者更多事件类型中的一个事件类型,获取由被分类为该事件类型的事件创建的新事件的事件类型;以及在该事件类型与新事件的事件类型之间建立创建关系。
根据本发明的一个方面,基于两个或者更多事件类型建立用于离散事件仿真的相关性图包括:通过分析离散事件仿真并基于离散事件仿真的场景配置,建立两个或者更多事件类型之间的依赖关系。
根据本发明的一个方面,提供了一种对离散事件仿真进行调度的装置,包括:提取装置,被配置用于响应于加载离散事件仿真,提取离散事件仿真中的两个或者更多事件类型;建立装置,被配置用于基于两个或者更多事件类型建立用于离散事件仿真的相关性图;以及调度装置,被配置用于根据相关性图调度被分类为两个或者更多事件类型的事件;其中相关性图中的每个节点描述两个或者更多事件类型中的一个事件类型,相关性图中的边描述两个或者更多事件类型之间的创建关系或依赖关系。
根据本发明的一个方面,该建立装置包括:获取装置,被配置用于针对两个或者更多事件类型中的一个事件类型,获取由被分类为该事件类型的事件创建的新事件的事件类型;以及第一建立装置,被配置用于在该事件类型与新事件的事件类型之间建立创建关系。
根据本发明的一个方面,该建立装置包括:第二建立装置,被配置用于通过分析离散事件仿真并基于离散事件仿真的场景配置,建立两个或者更多事件类型之间的依赖关系。
采用根据本发明的各实施方式,可以在尽量不改变现有编程习惯的基础上实现以并行方式对离散事件仿真进行调度,可以在无需编程人员人工处理并行时间仿真模型的情况下,有效地利用硬件设备的并行处理能力,进而提高对离散事件仿真进行调度的效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件:
图1示意性示出了根据一个解决方案的对离散事件仿真进行调度的方法的示意图;
图2示意性示出了在多核处理器系统中对离散事件仿真进行调度时所存在问题的示意图;
图3示意性示出了根据另一解决方案的、在多核处理器系统中对离散事件仿真进行调度的方法的示意图;
图4示意性示出了根据本发明一个实施方式的对离散事件仿真进行调度的方法的流程图;
图5A示意性示出了通信网络运行过程的示意图,以及图5B示意性示出了根据本发明一个实施方式的、对图5A中所示的通信网络进行仿真进行建模的示意图;
图6示意性示出了通信网络中的离散事件相关的事件日历(Event Calendar);
图7A示意性示出了根据本发明一个实施方式而建立的离散事件仿真的相关性图,图7B示意性示出了根据本发明一个实施方式的、对离散事件仿真进行调度的方法的示意图;
图8示意性示出了根据本发明一个实施方式的、以面向对象编程语言实现的程序设计的示意图;
图9示意性示出了根据本发明一个实施方式的、对离散事件仿真进行调度的装置的示意图;以及
图10示意性示出了适于实现本发明实施方式的示例性计算系统的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示意性示出了根据一个解决方案的对离散事件仿真进行调度的方法的示意图100。目前,大部分离散事件仿真的应用运行在单进程共享存储器编程环境下。此时由于计算资源有限,通常以串行方式对多个离散事件进行处理。
如图1中所示,事件日历110记录了在仿真应用运行时的各个事件,其中“时间”表示特定事件的发生时间(Occurrence Time),而“事件ID”唯一地标识该特定事件。应当注意,在本发明的上下文中,“时间”可以采用多种方式来表示并且可以采用各种时间单位。例如,在事件日历110中的“000018”、“000024”和“000028”仅仅是一种示意性表示。“000018”并不代表以“时/分/秒”表示的具体时刻,而是代表相对的时间单位,例如每个时间单位可以是真实世界中的100毫秒、1秒或者1分钟,等等。现在将解释事件日历110中各数据的含义:
1)“000018:事件a1”:表示事件a1的发生时间是000018;
2)“000024:事件b1,b2,b3”:表示事件b1、b2和b3的发生时间均为000024(即,事件b1、b2和b3可以在时间000024被并行处理);
3)“000028:事件c1”:表示事件c1的发生时间是000028。
图1右侧的方框S102-S110示出在单进程共享存储器计算环境中执行事件日历110中各事件的过程。假设当前时间t=000018,在完成事件a1后,在方框S102处获取下一个时间点处的事件。由于计算资源有限,仅能以串行方式执行原本可以在时间t=000024并行执行的事件b1、b2和b3。在方框S106中执行事件b1,执行完毕后在方框S108处执行事件b2,继而在方框S110处执行事件b3。
应当注意,方框S110左侧以虚线示出的箭头表示:事件日历110并非静态的,而是可以随着对各事件(例如,事件b1、b2和b3)的执行而被动态地更新。例如,在方框S106中执行的事件b1还可能创建新的事件d1,此时被创建的新的事件d1将进入事件日历110中。从方框S110向上循环回到方框S102的箭头表示,对各个事件的处理是随着事件日历110的更新而对事件日历110中的待处理事件不断进行处理的循环过程。
图2示意性示出了在多核处理器系统中对离散事件仿真进行调度时所存在问题的示意图200。在多核处理器系统中,由于存在附加的计算资源因而可以分别由多个线程220执行事件日历210中的不同事件。然而,由于事件a1和事件b1、b2和b3之间可能存在严格的时间依赖关系(事件b1、b2和b3需要在事件a1之后执行),在没有额外的信息来提示这种时间依赖关系的情况下,为了保证仿真的正确性,并不能由多个线程220来同时执行事件a1、b1和b2。这造成了某些线程可能一直处于空闲状态因而出现计算资源的浪费。
针对图2中所示的问题,图3示意性示出了根据另一解决方案的、在多核处理器系统中对离散事件仿真进行调度的方法的示意图300。随着多核处理器技术的发展,为了提高离散事件仿真的并行处理效率,提出了一种基于各个离散事件的时间依赖关系而将离散事件仿真模型(例如,图3中的仿真系统模型310)人工划分成多个子模型(例如,图3中的仿真系统子模型320)的方法。此时,由于多个子模型中的各个事件不具有时间依赖关系或具备较少的时间依赖关系,因而可以采用不同的线程330来并行执行,并通过线程间同步机制来处理少量的子模型之间的时间依赖关系。尽管这一方案可以在一定程度上利用多核处理器的并行处理能力,该方案较多地依赖于研发人员的技术经验,并且需要额外的划分处理。因而这一方法的应用范围受到诸多因素的限制。
另外,为实现对离散事件仿真进行更为有效的调度,还提出了一种全新的离散事件仿真引擎(参见G.Kunz et.val.:“RuntimeEfficient Event Scheduling in Multi-threaded Network Simulation”,4thInternational Workshop on OMNeT++,2011)。然而由于该方案依赖于一种新的独特的事件建模方法,打破了编程人员的常规习惯,难以快速并有效地广泛应用。
为在与现有的离散事件仿真兼容的情况下更有效地对事件进行并行处理,本发明的各实施方式提供了对离散事件仿真进行调度的方法、装置和相关计算机程序产品。在本发明的一个实施方式中,提供了一种对离散事件仿真进行调度的方法,包括:响应于加载离散事件仿真,提取离散事件仿真中的两个或者更多事件类型;基于两个或者更多事件类型建立用于离散事件仿真的相关性图;以及根据相关性图调度被分类为两个或者更多事件类型的事件;其中相关性图中的每个节点描述两个或者更多事件类型中的一个事件类型,相关性图中的边描述两个或者更多事件类型之间的创建关系或依赖关系。
图4示意性示出了根据本发明一个实施方式的对离散事件仿真进行调度的方法的流程图400。在方框S402处,响应于加载离散事件仿真,提取离散事件仿真中的两个或者更多事件类型。应当注意,在此实施方式中,所加载的离散事件仿真并非描述仿真应用的静态代码,而是该应用在运行中基于具体的环境配置和输入生成的动态实例。例如,假设仿真应用以诸如C++的面向对象语言编写,则所提取的事件类型对应于运行时被实例化的事件发生器和/或事件处理器的实例,而不是静态类的声明。
在方框S404处,基于两个或者更多事件类型建立用于离散事件仿真的相关性图。在此实施方式中,以相关性图中的每个节点描述两个或者更多事件类型中的一个事件类型,相关性图中的边描述两个或者更多事件类型之间的创建关系或依赖关系。例如,假设针对两个或者更多事件类型中的事件类型A和事件类型B,可以以节点A和节点B分别描述事件类型A和事件类型B。
应当注意,在此实施方式中节点之间的边是有向边。如果事件类型A创建事件类型B,则在节点A和节点B之间具有表示创建关系的第一类型的边,该边从节点A指向节点B。如果事件类型A在时间上依赖于事件类型B,则在节点A和节点B之间具有表示依赖关系的第二类型的边,该边从节点B指向节点A。
在方框S406处,根据相关性图调度被分类为两个或者更多事件类型的事件。基于两个节点之间是否具有边以及基于边的类型,可以调度该两个节点所代表的事件类型的事件。例如,如果两个节点之间根本没有依赖关系(例如,没有直接依赖关系,也没有通过表示创建关系和依赖关系的有向边顺次连接的间接依赖关系),则被分类为这两个事件类型的事件可以并行地执行;否则,需要进一步的判断。
应当注意在本发明的上下文中,“事件类型”是指一类事件的统称。例如,“在节点处生成数据分组”可以是一个事件类型,而在不同时间点分别“在节点处生成数据分组”的具体操作可以是“在节点处生成数据分组”这一事件类型的多个事件,也即,该事件是被分类为事件类型“节点处生成数据分组”的具体事件。为简便起见,本文中“某事件类型的事件”可以表示被分类为某事件类型的一个或者多个事件,而“某事件的事件类型”可以表示某事件所属于的事件类型。
现在将参见对离散事件进行仿真的具体示例描述根据本发明的方法和装置。图5A示意性示出了通信网络运行过程的示意图500A。在图5A中,以圆圈示出的符号510A、520A、...、530A分别表示通信网络中的节点1、节点2、...、节点N;图中底部以方块示出的符号512A、522A、...、532A分别表示通信网络中的接入点1、接入点2、...、接入点N;各个接入点之间的连线表示数据可以在其上传输的传输路径。本领域技术人员应当理解,在此传输路径上传输数据时存在延迟,该延迟表示数据传输时所花费的时间开销。
当图5A所示的通信网络处于运行时,各个节点1 510A、节点2520A、...、节点3 530A可以在相同或者不同时间生成数据分组,并且分别向接入点1 512A、接入点2 522A、...、接入点N 532A传输所生成的数据分组。所生成的数据分组还可以缓存在节点和相应接入点之间的队列中(未示出)。接着,各个接入点1 512A、接入点2 522A、...、接入点N 532A可以通过传输路径来向Hub传输所接收的数据分组。应当注意,各个接入点1 512A、接入点2 522A、...、接入点N 532A之间存在传输延迟。
针对图5A所示的通信网络,可以以表1所示的数据结构来对通信网络500A中的各种事件进行描述。
表1 事件描述
图5B示意性示出了根据本发明一个实施方式的、对图5A中所示的通信网络进行仿真进行建模的示意图500B。结合上文表1所示,采用类Generator来描述图5A中各节点处的生成数据分组的事件发生器,在实例化之后,针对节点1和节点2分别采用对象Generator1和Generator2来表示。类似地,采用类AP(即,接入点“Access Point”的缩写)来描述图5A中各接入点相关的事件发生器,针对接入点1和接入点2分别采用对象AP1和AP2来表示;采用类Delayer描述图5A中传输路径中各处的延迟。例如,接入点1 512A和接入点2522A之间的延迟可以采用对象Delayer1表示(对应于图5B中的Delayer1 514B)。如表1所示,Packet Generation@Node1表示在节点1处生成数据分组,Transmission End@AP1表示在接入点1处传输结束,而Delay Timeout@Delayer1表示在传输路径1处延迟超时。
应当注意,在图5A和图5B中仅仅示出了可以采用本发明的方法进行仿真的具体示例。本发明的方法并不局限于对通信网络进行仿真,而是还可以用于对例如数据网络、生产线管理、等等其他系统进行仿真。
在下文中,将参见图6所示详细描述如何建立创建关系和依赖关系。图6示意性示出了通信网络中的离散事件相关的事件日历600,具体地,图6右侧的方框620、630和640分别示出了在事件日历610中记载的多个事件的具体执行内容。例如,在时间000018处,执行Packet Generation@Node1(内容如方框事件1 620所示),在此事件中还包括创建新事件的代码:代码(1)“book a new packetgeneration event,Δt=12”;以及代码(2)“book a delay timeout event,Δt=8”。
代码(1)创建一个新的事件,而该新的事件表示在12个时间单位之后在节点1处生成新的数据分组。如虚线箭头D所示,代码(1)导致向事件日历610中插入条目“000030:Packet Generation@Node1”。类似地,代码(2)创建另一新的事件,该事件表示在2个时间单位之后在接入点1处传输结束。如虚线箭头E所示,代码(2)导致向事件日历610插入条目“000020:Transmission End@AP1”。类似地,事件2 630中的代码(3)“book a delay timeout event,Δt=8”向事件日历610插入条目“000028:Delay Timeout@Delayer1”(如虚线箭头F所示)。应当注意,在本发明的实施方式中,事件日历610的内容是动态更新的。
在本发明的一个实施方式中,基于两个或者更多事件类型建立用于离散事件仿真的相关性图包括:针对两个或者更多事件类型中的一个事件类型,获取由被分类为该事件类型的事件创建的新事件的事件类型;以及在事件类型与新事件的事件类型之间建立创建关系。
图6中的事件1 620中的代码(1)创建了新的事件(事件1 620),因而在事件1 620的事件类型与其自身的事件类型之间具有创建关系;又如,事件1 620中的代码(2)创建了新的事件(事件2 630),因而在事件1 620的事件类型和事件2 630的事件类型之间具有创建关系;事件2 630中的代码(3)创建了新的事件(事件3 640),因而事件2 630的事件类型和事件3 640的事件类型之间具有创建关系。
在本发明的一个实施方式中,基于两个或者更多事件类型建立用于离散事件仿真的相关性图包括:通过分析离散事件仿真并基于离散事件仿真的场景配置,建立两个或者更多事件类型之间的依赖关系。例如可以通过分析在具体离散事件仿真场景配置下的离散事件仿真程序,建立两个或者更多事件类型之间的依赖关系。本发明中的依赖关系也即时间依赖关系。
如图6所示,在事件3 640中包括代码(4)“AP2 status is updatedto busy(接入点2的状态被更新为‘忙’)”,此时如果在节点2处生成数据分组(对应于事件“Packet Generation @Node2”),则该事件将受到影响。
如果以圆圈表示事件类型、以虚线箭头表示创建关系并以实线箭头表示依赖关系,则图6中各事件及其之间的关系可以如图7A所示。图7A示意性示出了根据本发明一个实施方式而建立的离散事件仿真的相关性图700A。在图700A中,710A表示事件类型“PacketGeneration @Node1”,720A表示事件类型“Transmission End @AP1”,730A表示事件类型“Delay Timeout @Delayer1”,而740表示事件类型“Packet Generation @Node2”。
对应于上文的描述,起始于事件类型710A并终止于自身的虚线箭头,表示事件类型710A的事件创建与自身具有相同事件类型的事件(对应于图6中事件1 620中的代码(1))。
类似地,起始于事件类型710A并终止于事件类型720A的虚线箭头,表示事件类型710A的事件创建事件类型720A的事件(对应于图6中事件1 620中的代码(2));起始于事件类型720A并终止于事件类型730A的虚线箭头,表示事件类型720A的事件创建事件类型730A的事件(对应于图6中事件2 630中的代码(3));而起始于事件类型730A并终止于事件类型740A的实线箭头,表示事件类型740A的事件可以依赖于事件类型730A的事件(对应于图6中事件3 640中的代码(4))。
通过上文所述具体实施方式并结合图7A中所生成的相关性图,本领域技术人员可以得知生成相关性图的具体实施方式。应当注意,尽管在上文示例中仅示出了基于分析离散事件仿真(即,分析图6中事件3 640中的代码(4))来获得依赖关系,在本发明的一个实施方式中,还可以基于离散事件仿真的场景配置获得事件之间的依赖关系。例如,在场景配置文件中可以明确定义:图7A中的事件740A依赖于事件730A。
在本发明的一个实施方式中,相关性图中的描述创建关系的边至少包括创建关系的时间相关性值(Temporal Correlation Value),时间相关性值表示被分类为与边相关联的事件类型的事件被创建的时间与事件的发生时间之间的间隔。如图7A所示,在相应创建关系的终端节点处示出了时间相关性值Δt。
现在详细解释时间相关性值Δt的含义。返回附图6,在事件1 620的代码(1)中,定义了“book a new packet generation event,Δt=12”。此时“Δt=12”表示,新事件被创建的时间(即当前时间“000018”)与该新事件的发生时间之间的间隔为12个时间单位,可以得知该新事件的发生时间是000018+12=000030。因而在事件日历610处插入条目“000030:Packet Generation @Node1”。
类似地,本领域技术人员可以理解在图6中所示的“Δt=2”以及“Δt=8”的含义,并且可以将这些时间相关性值Δt与图7A中的特定创建关系相关联(例如,将“Δt=8”与图7A中的事件类型720和730之间的创建关系相关联)。在本发明的一个实施方式中,时间相关性值Δt可以基于时间相关性规则来定义,或者也可以采用人工方式定义。
在本发明的一个实施方式中,根据相关性图来调度被分类为两个或者更多事件类型的事件包括:针对被分类为两个或者更多事件类型的第一事件和第二事件,计算第二事件的发生时间和第一事件的发生时间之间的时间差;如果该时间差小于第二事件的事件类型和第一事件的事件类型之间的时间相关性距离(Temporal CorrelationDistance),则与第一事件并行地执行第二事件。
计算第二事件和第一事件之间的时间相关性距离的目的在于,确定依赖于第一事件并和第二事件属于相同事件类型的事件最快将在第一事件之后多久发生。如果这个最快的发生时间迟于在事件日历中记载的第二事件的即将发生时间,则尽管相关性图中对应节点之间的连通性表明第二事件可能会依赖于第一事件,然而在当前的情况下第二事件实际上并不依赖于第一事件。
在本发明的一个实施方式中,第二事件的事件类型和第一事件的事件类型之间的时间相关性距离等于:相关性图中代表第二事件的事件类型的第二节点和代表第一事件的事件类型的第一节点之间的创建关系的最小时间相关性值之和。
在本发明的一个实施方式中,可以获取与每个创建关系相关联的最小时间相关性值。例如,如果该时间相关性值仅依赖于常量,则可以将该最小时间相关性值确定为一个常数;如果该时间相关性值依赖于由某种概率分布函数生成的随机数值,则可以进一步检查该概率分布函数的最小非负值并将其作为最小时间相关性值;如果该时间相关性值是上述多种情况的组合,例如是依赖于常数和随机数的时间参数,则可以基于常数值以及随机函数的最小非负值来确定最小时间相关性值,等等。应当理解,上文所述仅仅是确定最小时间相关性值的多个具体实施方式,本领域技术人员可以根据离散事件仿真的具体应用环境来计算与每个事件相关联的最小时间相关性值。
图7B示意性示出了根据本发明一个实施方式的、对离散事件仿真进行调度的方法的示意图700B。图7B中的事件类型710B-740B分别对应于图7A中的事件类型710A-740A,并且事件日历750B对应于事件日历750A。为计算事件类型740B的事件是否能够与事件类型710B的事件并行执行,需要对事件类型740B和事件类型710B之间的各条虚线表示的创建关系(事件类型710B到720B,事件类型720B到730B)的最小时间相关性值(分别为1和8)求和。事件类型740B和事件类型710B之间的时间相关性距离=1+8=9。另外,从事件日历750B中可知,事件类型740B的事件和事件类型710B的事件的发生时间之差为(000024-000018)=6。由于(1+8)=9>6,因而事件类型740B的事件可以与事件类型710B的事件并行执行。
如果采用常规的依赖关系算法,由于事件类型740B间接地依赖于事件类型710B,这两个事件类型的事件不能并行地执行,而是需要在执行事件类型710B的事件之后执行事件类型740B的事件。可见,采用本发明的实施方式,可以提高对离散事件仿真的调度效率,并且使得更多的事件能够并行执行。
在图7B底部左侧的方框中,示出了实现根据本发明一个实施方式的方法的伪代码。如所示出,伪代码中的事件e1和e2分别对应于被分类为图7B中的事件类型710B和740B的两个事件。如果事件e2和e1不具有依赖关系,则两个事件可以并行地执行而无需判断e2和e1之间的时间相关性距离。在图7B的示例中,由于事件e2和e1具有依赖关系,因而需要计算e2和e1之间的时间相关性距离d。接着,判断d是否大于事件e2的发生时间(000024)和事件e1的发生时间(000018)之间的时间差(e2.time-e1.time)。如果判断结果为“是”,则与事件e1并行地执行事件e2。
在上文中已经参见附图描述了根据相关性图调度两个或者更多事件的具体方法。在下文中具体描述如何对离散事件仿真的事件日历中的各个事件进行调度。
在本发明的一个实施方式中,第二事件是离散事件仿真的事件日历中的事件。在本发明的一个实施方式中,第一事件是正在执行的事件或者事件日历中发生时间在第二事件之前的待处理事件。
本领与技术人员应当理解,事件日历中记录了离散事件仿真中有待执行但尚未执行的事件的队列,并且该队列是随着事件的执行而动态更新的。本发明的一个目的在于尽可能地并行执行多个事件,因而可以将事件日历中的事件与正在执行或者其他有待执行的事件进行比较,如果两个事件之间的时间相关性距离与两个事件的发生时间差满足上文所述的要求,则可以并行地执行这两个事件。
在本发明的一个实施方式中,与第一事件并行地执行第二事件包括:响应于存在空闲资源,利用计算空闲资源执行第二事件;以及从事件日历中删除第二事件。在离散事件仿真期间并行地执行多个事件的一个基础在于,存在计算空闲的资源可以用于执行可并行执行的事件;而如果不存在空闲资源,则还需要等待正在被执行的事件执行完毕并释放计算资源。因而当判断存在空闲计算资源时,利用该计算资源执行事件日历中的特定事件(该特定事件可以与所有正在执行的事件或者事件日历中当前所有位于该特定事件之前的事件并行执行)。一旦开始执行该特定事件,则从事件日历中删除第二事件。另外,当一个事件执行完毕时,可以释放该事件所占用的计算资源以用于执行其他事件。
在本发明的一个实施方式中,在多核处理器系统中执行该方法。采用多核处理器系统的一个优势在于,可以提供更多的计算资源以便以并行方式实现离散事件仿真。在多核处理器系统中,可以采用多进程和/或多线程来并行地处理离散事件仿真中的两个或者多个事件,进而提高仿真的性能。
在下文中将描述用于实现本发明各实施方式的数据结构。在本发明的一个实施方式中,可以采用面向对象编程语言来实现根据本发明的方法。图8示意性示出了根据本发明一个实施方式的、以面向对象编程语言实现的程序设计的示意图800。在上文所述的采用类Generator、AP和Delayer描述离散事件仿真的示例中,当采用面向对象编程时,可以采用如图8中所示的类Entity来作为类Generator、AP和Delayer的基类。
类Entity可以具有两个方法:postEvent(eventType,time)方法,用于向事件日历中插入新的事件,在插入新创建的事件时,需要指定该事件的事件类以及该事件的发生时间;以及cancelEvent(eventType,time)方法,用于从事件日历中删除特定事件。对于上文所述的示例,事件类例如可以是Packet Generation、TransmissionEnd和Delay Timeout。每个事件类对应于一个EventHandler类。
在具体实现时,可以首先扫描已加载并初始化的仿真应用程序,并提取该应用中所涉及的全部事件类型,例如Packet Generation@Node1、Transmission End @AP1、Delay Timeout @Delayer1以及Packet-Generation @Node2。继而,可以采用上文所述的方法建立相关性图,并针对每个事件获取时间相关性距离。
在本发明的一个实施方式中,相关性图中事件类型A和事件类型B(A可以等于B,即存在自依赖)之间的依赖关系(在图7A和7B中以实线段表示)可以采用如下方式建立:1)如果事件类型A的处理过程会写入一个或多个变量或数据结构,而这之中至少有一个变量或数据结构会在B类型的处理过程中被读取或引用,则事件类型B依赖于事件类型A;2)如果事件类型A和事件类型B在处理过程中会对至少一个相同的变量或数据结构进行写操作,则事件类型A和事件类型B相互依赖于对方。
在本发明的一个实施方式中,在判定第二事件是否可以和第一事件并发执行的时候,首先在相关性图上找到对应的节点1(第一事件)和2(第二事件)。如果从节点1到节点2之间具有一条或多条有向路径,则需要对路径进行如下分析:
1)如果存在一条路径表示节点2直接依赖于节点1(按照之前的图示标志即该路径为单段实线),则第二事件不能被并发执行;否则进一步检查以下路径类型;
2)如果节点2直接依赖于任意一个节点3(节点3可以是节点2但不能是节点1),而节点3的事件可以被第一事件直接或间接创建(即通过一个创建关系创建、或通过多个连续创建关系创建),则可以采用上文所述的通过分析时间相关性距离的方法进一步判断。如果符合这个条件的所有路径都允许并发执行,则第二事件可以和第一事件并发执行;反之,则不能。
除了以上两类路径,从节点1到节点2的其他有向连通路径不对当前第一事件和第二事件的并发性判断产生影响。
应当注意,上文所示的数据结构仅仅是用于实现根据本发明的方法的示例,根据本说明书公开的原理,本领域技术人员可以采用其他方式来实现。
图9示意性示出了根据本发明一个实施方式的、对离散事件仿真进行调度的装置的示意图900。该装置包括:提取装置910,被配置用于响应于加载离散事件仿真,提取离散事件仿真中的两个或者更多事件类型;建立装置920,被配置用于基于两个或者更多事件类型建立用于离散事件仿真的相关性图;以及调度装置930,被配置用于根据相关性图调度被分类为两个或者更多事件类型的事件;其中相关性图中的每个节点描述两个或者更多事件类型中的一个事件类型,相关性图中的边描述两个或者更多事件类型之间的创建关系或依赖关系。
在本发明的一个实施方式中,建立装置910包括:获取装置,获取装置,被配置用于针对两个或者更多事件类型中的一个事件类型,获取由被分类为事件类型的事件创建的新事件的事件类型;以及第一建立装置,被配置用于在事件类型与新事件的事件类型之间建立创建关系。
在本发明的一个实施方式中,建立装置920包括:第二建立装置,被配置用于通过分析离散事件仿真并基于离散事件仿真的场景配置,建立两个或者更多事件类型之间的依赖关系。
在本发明的一个实施方式中,相关性图中的描述创建关系的边至少包括创建关系的时间相关性值,时间相关性值表示被分类为与边相关联的事件类型的事件被创建的时间与事件的发生时间之间的间隔。
在本发明的一个实施方式中,调度装置930包括:针对被分类为两个或者更多事件类型的第一事件和第二事件的,计算装置,被配置用于计算第二事件的发生时间和第一事件的发生时间之间的时间差;并行执行装置,被配置用于如果时间差小于第二事件的事件类型和第一事件的事件类型之间的时间相关性距离,则与第一事件并行地执行第二事件。
在本发明的一个实施方式中,第二事件的事件类型和第一事件的事件类型之间的时间相关性距离等于:相关性图中代表第二事件的事件类型的第二节点和代表第一事件的事件类型的第一节点之间的创建关系的最小时间相关性值之和。
在本发明的一个实施方式中,第二事件是离散事件仿真的事件日历中的事件。
在本发明的一个实施方式中,第一事件是正在执行的事件或者事件日历中的发生时间在第二事件之前的待处理事件。
在本发明的一个实施方式中,并行执行装置包括:执行装置,被配置用于响应于存在空闲计算资源,利用空闲计算资源执行第二事件;以及删除装置,被配置用于从事件日历中删除第二事件。
在本发明的一个实施方式中,在多核处理器系统中实现该装置。
图10示意性示出了适于用来实现本发明实施方式的示例性计算系统1000的框图。如所示,计算机系统1000可以包括:CPU(中央处理单元)1001、RAM(随机存取存储器)1002、ROM(只读存储器)1003、系统总线1004、硬盘控制器1005、键盘控制器1006、串行接口控制器1007、并行接口控制器1008、显示控制器1009、硬盘1010、键盘1011、串行外部设备1012、并行外部设备1013和显示器1014。在这些设备中,与系统总线1004耦合的有CPU 1001、RAM 1002、ROM 1003、硬盘控制器1005、键盘控制器1006、串行控制器1007、并行控制器1008和显示控制器1009。硬盘1010与硬盘控制器1005耦合,键盘1011与键盘控制器1006耦合,串行外部设备1012与串行接口控制器1007耦合,并行外部设备1013与并行接口控制器1008耦合,以及显示器1014与显示控制器1009耦合。应当理解,图10所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种对离散事件仿真进行调度的方法,包括:
响应于加载所述离散事件仿真,提取所述离散事件仿真中的两个或者更多事件类型;
基于所述两个或者更多事件类型建立用于所述离散事件仿真的相关性图;以及
根据所述相关性图调度被分类为所述两个或者更多事件类型的事件;
其中所述相关性图中的每个节点描述所述两个或者更多事件类型中的一个事件类型,所述相关性图中的边描述所述两个或者更多事件类型之间的创建关系或依赖关系,
其中根据所述相关性图调度被分类为所述两个或者更多事件类型的事件包括:针对被分类为所述两个或者更多事件类型的第一事件和第二事件,
计算所述第二事件的发生时间和所述第一事件的发生时间之间的时间差;
如果所述时间差小于所述第二事件的事件类型和所述第一事件的事件类型之间的时间相关性距离,则与所述第一事件并行地执行所述第二事件。
2.根据权利要求1所述的方法,其中基于所述两个或者更多事件类型建立用于所述离散事件仿真的相关性图包括:
针对所述两个或者更多事件类型中的一个事件类型,获取由被分类为所述事件类型的事件创建的新事件的事件类型;以及
在所述事件类型与所述新事件的事件类型之间建立创建关系。
3.根据权利要求1所述的方法,其中基于所述两个或者更多事件类型建立用于所述离散事件仿真的相关性图包括:
通过分析所述离散事件仿真并基于所述离散事件仿真的场景配置,建立所述两个或者更多事件类型之间的依赖关系。
4.根据权利要求1-3中任一项所述的方法,其中所述相关性图中的描述创建关系的边至少包括所述创建关系的时间相关性值,所述时间相关性值表示被分类为与所述边相关联的事件类型的事件被创建的时间与所述事件的发生时间之间的间隔。
5.根据权利要求1所述的方法,其中所述第二事件的事件类型和所述第一事件的事件类型之间的时间相关性距离等于:所述相关性图中代表所述第二事件的事件类型的第二节点和代表所述第一事件的事件类型的第一节点之间的创建关系的最小时间相关性值之和。
6.根据权利要求5所述的方法,其中所述第二事件是所述离散事件仿真的事件日历中的事件。
7.根据权利要求6所述的方法,其中所述第一事件是正在执行的事件或者所述事件日历中发生时间在所述第二事件之前的待处理事件。
8.根据权利要求7所述的方法,其中与所述第一事件并行地执行所述第二事件包括:
响应于存在空闲计算资源,利用所述空闲计算资源执行所述第二事件;以及
从所述事件日历中删除所述第二事件。
9.根据权利要求1-3中任一项所述的方法,其中在多核处理器系统中执行所述方法。
10.一种对离散事件仿真进行调度的装置,包括:
提取装置,被配置用于响应于加载所述离散事件仿真,提取所述离散事件仿真中的两个或者更多事件类型;
建立装置,被配置用于基于所述两个或者更多事件类型建立用于所述离散事件仿真的相关性图;以及
调度装置,被配置用于根据所述相关性图调度被分类为所述两个或者更多事件类型的事件;
其中所述相关性图中的每个节点描述所述两个或者更多事件类型中的一个事件类型,所述相关性图中的边描述所述两个或者更多事件类型之间的创建关系或依赖关系,
其中所述调度装置包括:针对被分类为所述两个或者更多事件类型的第一事件和第二事件的,
计算装置,被配置用于计算所述第二事件的发生时间和所述第一事件的发生时间之间的时间差;
并行执行装置,被配置用于如果所述时间差小于所述第二事件的事件类型和所述第一事件的事件类型之间的时间相关性距离,则与所述第一事件并行地执行所述第二事件。
11.根据权利要求10所述的装置,其中所述建立装置包括:
获取装置,被配置用于针对所述两个或者更多事件类型中的一个事件类型,获取由被分类为所述事件类型的事件创建的新事件的事件类型;以及
第一建立装置,被配置用于在所述事件类型与所述新事件的事件类型之间建立创建关系。
12.根据权利要求10所述的装置,其中所述建立装置包括:
第二建立装置,被配置用于通过分析所述离散事件仿真并基于所述离散事件仿真的场景配置,建立所述两个或者更多事件类型之间的依赖关系。
13.根据权利要求10-12中任一项所述的装置,其中所述相关性图中的描述创建关系的边至少包括所述创建关系的时间相关性值,所述时间相关性值表示被分类为与所述边相关联的事件类型的事件被创建的时间与所述事件的发生时间之间的间隔。
14.根据权利要求10所述的装置,其中所述第二事件的事件类型和所述第一事件的事件类型之间的时间相关性距离等于:所述相关性图中代表所述第二事件的事件类型的第二节点和代表所述第一事件的事件类型的第一节点之间的创建关系的最小时间相关性值之和。
15.根据权利要求14所述的装置,其中所述第二事件是所述离散事件仿真的事件日历中的事件。
16.根据权利要求15所述的装置,其中所述第一事件是正在执行的事件或者所述事件日历中的发生时间在所述第二事件之前的待处理事件。
17.根据权利要求16所述的装置,其中所述并行执行装置包括:
执行装置,被配置用于响应于存在空闲计算资源,利用所述空闲计算资源执行所述第二事件;以及
删除装置,被配置用于从所述事件日历中删除所述第二事件。
18.根据权利要求10-12中任一项所述的装置,其中在多核处理器系统中实现所述装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210130365.7A CN103377082B (zh) | 2012-04-27 | 2012-04-27 | 对离散事件仿真进行调度的方法和装置 |
US13/868,655 US9053263B2 (en) | 2012-04-27 | 2013-04-23 | Scheduling discrete event simulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210130365.7A CN103377082B (zh) | 2012-04-27 | 2012-04-27 | 对离散事件仿真进行调度的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103377082A CN103377082A (zh) | 2013-10-30 |
CN103377082B true CN103377082B (zh) | 2016-09-07 |
Family
ID=49462242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210130365.7A Expired - Fee Related CN103377082B (zh) | 2012-04-27 | 2012-04-27 | 对离散事件仿真进行调度的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9053263B2 (zh) |
CN (1) | CN103377082B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201200498D0 (en) * | 2012-01-13 | 2012-02-22 | Optimized Systems And Solutions Ltd | Simulation modelling |
US10210294B1 (en) * | 2015-07-09 | 2019-02-19 | Xilinx, Inc. | System and methods for simulating a circuit design |
US10348761B2 (en) * | 2017-12-01 | 2019-07-09 | KnowBe4, Inc. | Systems and methods for situational localization of AIDA |
US11138568B2 (en) * | 2018-01-29 | 2021-10-05 | Microsoft Technology Licensing, Llc | Calendar-aware resource retrieval |
CN110968546B (zh) * | 2018-09-30 | 2023-04-07 | 北京国双科技有限公司 | 图谱节点跳转概率的设置方法及相关设备 |
US11537997B2 (en) * | 2019-07-18 | 2022-12-27 | Microsoft Technology Licensing, Llc | Providing task assistance to a user |
CN111045932B (zh) * | 2019-11-25 | 2023-06-16 | 杭州网易再顾科技有限公司 | 业务系统仿真处理方法、装置、电子设备及存储介质 |
CN114422378A (zh) * | 2022-01-20 | 2022-04-29 | 北京广利核系统工程有限公司 | 网络缓冲区大小的验证方法及装置 |
CN114757057B (zh) * | 2022-06-14 | 2022-08-23 | 中国人民解放军国防科技大学 | 一种基于混合推进的多线程并行作战仿真方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134514A (en) * | 1998-06-25 | 2000-10-17 | Itt Manufacturing Enterprises, Inc. | Large-scale network simulation method and apparatus |
CN1885988A (zh) * | 2006-06-13 | 2006-12-27 | 北京邮电大学 | 第三代移动通信系统网络层性能的动态仿真装置和方法 |
CN101841531A (zh) * | 2010-03-16 | 2010-09-22 | 中国科学院计算技术研究所 | Cdn-p2p混合网络的模拟方法和系统 |
CN101944045A (zh) * | 2010-10-18 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 基于社区特性的并行离散事件仿真对象分发方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6278963B1 (en) | 1997-07-01 | 2001-08-21 | Opnet Technologies, Inc. | System architecture for distribution of discrete-event simulations |
WO2003096235A2 (en) | 2002-05-13 | 2003-11-20 | Rensselaer Polytechnic Institute | Discrete event simulation system and method |
US7564809B1 (en) | 2004-05-06 | 2009-07-21 | Cornell Research Foundation, Inc. | Event-synchronization protocol for parallel simulation of large-scale wireless networks |
-
2012
- 2012-04-27 CN CN201210130365.7A patent/CN103377082B/zh not_active Expired - Fee Related
-
2013
- 2013-04-23 US US13/868,655 patent/US9053263B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134514A (en) * | 1998-06-25 | 2000-10-17 | Itt Manufacturing Enterprises, Inc. | Large-scale network simulation method and apparatus |
CN1885988A (zh) * | 2006-06-13 | 2006-12-27 | 北京邮电大学 | 第三代移动通信系统网络层性能的动态仿真装置和方法 |
CN101841531A (zh) * | 2010-03-16 | 2010-09-22 | 中国科学院计算技术研究所 | Cdn-p2p混合网络的模拟方法和系统 |
CN101944045A (zh) * | 2010-10-18 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 基于社区特性的并行离散事件仿真对象分发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103377082A (zh) | 2013-10-30 |
US9053263B2 (en) | 2015-06-09 |
US20130304442A1 (en) | 2013-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377082B (zh) | 对离散事件仿真进行调度的方法和装置 | |
CN112433819A (zh) | 异构集群调度的模拟方法、装置、计算机设备及存储介质 | |
CN111767031B (zh) | 一种基于仿真的核电工业互联网实验床 | |
KR101275172B1 (ko) | 이산 사건 시뮬레이션 방법 | |
Gu et al. | ElasticFlow: An elastic serverless training platform for distributed deep learning | |
CN104734870A (zh) | 一种基于元胞自动机的软件故障传播方法 | |
Van Tendeloo et al. | Activity in pythonpdevs | |
CN110569615A (zh) | 一种多源异构嵌入式软件协同仿真测试方法 | |
CN117009238A (zh) | 数据测试方法、装置、电子设备、存储介质和程序产品 | |
Liu et al. | i-Jacob: An internetware-oriented approach to optimizing computation-intensive mobile web browsing | |
CN110502838A (zh) | 基于仿真的备件管理策略优化模型 | |
Bilel et al. | Cunetsim: A gpu based simulation testbed for large scale mobile networks | |
KR101830582B1 (ko) | 전력계통 해석을 위한 주파수조정용 bess의 모의해석 프로그램 | |
Johnsen et al. | A formal model of cloud-deployed software and its application to workflow processing | |
Lanuza et al. | Parallel execution of DEVS in shared-memory multicore architectures | |
Asprone et al. | Assessment of urban ecosystem resilience using the efficiency of hybrid social-physical complex networks | |
Keim | Benchmarking Resource Management For Serverless Computing | |
Rodríguez et al. | Data injection at execution time in grid environments using Dynamic Data Driven Application System for wildland fire spread prediction | |
CN109375987A (zh) | 一种虚拟机选择物理机的方法和系统 | |
Shan et al. | Adaptive resource allocation for workflow containerization on Kubernetes | |
Al-Shiab et al. | Simulating large-scale networks for public safety: Parallel and distributed solutions in NS-3 | |
Liu et al. | Towards a Flexible and High-Fidelity Approach to Distributed DNN Training Emulation | |
Ayyub et al. | Executing large parameter sweep applications on a multi-VO testbed | |
An et al. | Resource Demand Forecasting Approach Based on Generic Cloud Workload Model | |
Chen et al. | PCTran-Cloud: an Accident Simulator for Nuclear Power Plants Based on Cloud Technology |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160907 |