WO2000022797A1 - System and method for determining global virtual time in optimistic parallel discrete event simulations - Google Patents
System and method for determining global virtual time in optimistic parallel discrete event simulations Download PDFInfo
- Publication number
- WO2000022797A1 WO2000022797A1 PCT/US1999/023790 US9923790W WO0022797A1 WO 2000022797 A1 WO2000022797 A1 WO 2000022797A1 US 9923790 W US9923790 W US 9923790W WO 0022797 A1 WO0022797 A1 WO 0022797A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- lvt
- node
- time
- response packet
- gvt
- Prior art date
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
Definitions
- This invention relates to a method and apparatus for asynchronous parallel discrete event simulation (PDES), and more particularly, it relates to a system and method for updating global virtual time in parallel discrete event simulations.
- PDES parallel discrete event simulation
- GVT Global Virtual Time
- each processing node can be allowed to free-run and can keep track of its own local time, referred to herein as local virtual time (LVT), and can synchronize with the other processors on-demand.
- the general method used to synchronize is to request the local time of all processing nodes and to determine the minimal of those times, which is defined as GVT.
- GVT indicates how far the entire network has progressed. Without GVT, an individual node would lack knowledge of how far the other nodes had progressed and would be swamped with increasing amounts of data for out of date processes.
- a system and method for determining Global Virtual Time (GVT) comprises a plurality of nodes of parallel processors including at least one requesting node for generating a GVT update request and a plurality responding nodes for generating responses to the GVT update request.
- At least one intermediate node is coupled to the requesting node and to the responding nodes such that responses are passed through at least one intermediate node.
- the intermediate node includes a memory configured to store therein information obtained from the responses, the information including the LVTs of the responding nodes.
- at least one GVT update request is sent by at least one requesting node.
- a plurality of responding nodes generate respective response packets directed to the requesting node.
- Each of the respective response packets includes the LVT of the corresponding responding node.
- the LVT of each response packet is compared with a filter LVT stored in a memory of the intermediate node to determine which LVT is earlier in time. If the LVT of a response packet is earlier in time than the filter LVT stored in a memory of the intermediate node, the response packet is routed through the intermediate device unchanged. If the LVT of the response packet is not earlier in time than the filter LVT in a memory of the intermediate device, the response packet is either updated or dropped, depending on whether the response packet is the first to pass through the intermediate device.
- the requesting node compares the LVTs of all responses it receives to determine which is earliest in time.
- FIGURE 1 is a pictorial diagram showing a general configuration of a computer network.
- FIGURE 2 is a block diagram of an intermediate node of the present invention.
- FIGURE 3 depicts a packet structure for a GVT response packet according to one embodiment of the present invention.
- FIGURE 4 is a flow chart depicting a method for updating global virtual time according to an embodiment of the invention.
- FIGURE 1 is a pictorial diagram depicting a parallel processor system 100.
- Parallel processor system 100 comprises a plurality of nodes 101 and 102 coupled to each other via network 104.
- a node is a processor coupled to a network of processors.
- Nodes of network 100 are selected from, but not limited to, the group consisting of computers, customized processors, personal computers, main frame computers, minicomputers, lap top computers and the like.
- Parallel processor system 100 includes one or more intermediate nodes 101. Intermediate nodes 101 are selected from, not limited to, the group consisting of routers, switches, repeaters, hubs and the like.
- parallel processing system 100 is configured as an event simulator, that is, the system is configured to carry out parallel discrete event simulations.
- parallel processor system 100 represents a communications network, for example, the Internet.
- parallel processor system 100 is configured to act simultaneously as an event simulator and as a communications network.
- network 104 represents the Internet.
- the Internet is a wide area network (WAN) that connects a plurality (for example thousands) of networks in a plurality of countries, for example, the U.S., Canada, Europe, and Asia.
- WAN wide area network
- the Internet provides global communications between computers on networks selected from, but not limited to, the group consisting of government, educational, and industrial networks.
- Alternative embodiments of the invention include those in which network 104 comprises a cluster of processors dedicated to event simulation, and those in which network 104 comprises a Local Area Network, private or dedicated network lines, and a Wide Area Network and combinations thereof.
- packet switching As shown in FIG. 1 communication is accomplished by relaying messages between nodes.
- a "packet switching" architecture is employed to relay messages.
- packet-switched describes the type of network in which messages comprise relatively small units of data called packets, and are routed through a network based on the destination address contained within each packet. Breaking communication down into packets allows the same data path to be shared among many users in the network.
- Packets typically comprise at least a field containing routing information and a field containing the data representing at least a portion of a message. Packets are routed between source and destination components in accordance with a predetermined communication protocol. Examples of common communications protocols include Transmission Control Protocol/ Internet Protocol (TCP/IP) and Open Systems Interconnection (OSI) protocol.
- TCP/IP Transmission Control Protocol/ Internet Protocol
- OSI Open Systems Interconnection
- At least one node of network 100 is configured to execute logical processes.
- logical processes are processes that represent and emulate in the present time, physical processes expected to execute at some future time.
- a "physical process" is an executing task defined by program code. Examples of physical processes include updating a field in a table of a database, incrementing a counter, and computing a beam table for a beam angle in a beam-formed communication system.
- Logical processes typically maintain their own version of time.
- a logical process emulates a physical process running in the future. The length of time into the future that the logical process is currently running is known in the simulation arts as Local Virtual Time.
- a logical process comprises the physical process plus additional data structures and instructions for rnaintaining message order and correct operation as the system executes ahead of real time.
- GVT Global Virtual Time
- FIG. 2 illustrates an intermediate node 101 configured in accordance with the present invention.
- Intermediate node 101 is selected from the group of network devices and components consisting of: routers, switches, hubs and repeaters and the like. Regardless of the selected device type, intermediate node 101 comprises processor 202 and memory 203 interconnected via data bus 207. Memory 203 stores therein programs, data and messages for transmission and reception.
- node 101 of the present invention further includes "small state” memory 203.
- state means a set of parameters characterizing the operational status of a unit at a given time, usually upon execution of a process.
- the tabulated parameter set is stored in memory in the form of a state table.
- small state refers to any subset of the parameter set comprising a state table.
- computational in simulation applications, and for purposes of this specification, refers to a set of operations, called “event computations”, which modify the state of a unit.
- a prior state is stored in memory before the state is modified by a subsequent event computation. If necessary, the prior state can be restored by copying back the saved value.
- the node When a logical process rujtning on a node of system 100 has a need to determine the current GVT of system 100, the node sends a GVT update request packet to all processes running on the other nodes of network 100.
- a node sending a GVT update request is referred to herein as a "requesting node”.
- a node responding to a GVT update request is referred to herein as a "responding node”.
- GVT is the minimum of the LVTs of all logical processes on the network.
- Each process receiving the GVT update request sends a response to the requesting logical process.
- responses sent from a responding node to a requesting node do not take a direct route. Instead, responses are typically routed through one or more intermediate nodes 101 before arriving at the node of the requesting process.
- a given intermediate node 101 sometimes receives a plurality of responses to the same GVT update request, each response from a different responding node.
- all of these responses are routed through intermediate unit 101 and propagate through the network until they reach the node of the requesting process.
- conventional methods for handling these responses result in increased network traffic conditions.
- a GVT update response packet 500 as illustrated in FIG. 3, in conjunction with a filter comprising memory 203 of intermediate device 101 (illustrated in FIG.2) having stored therein a filter LVT, is employed to drop unnecessary GVT responses from system 100. Unnecessary responses are those response packets containing LVT values which cannot be a minimum for network 100.
- Response packet 500 is configured to pass itself through intermediate device 101 only under certain conditions. Accordingly, response packet 500 comprises header 501 which represents destination address information; request ID portion 502 which represents the specific GVT request to which a node is responding, and LVT portion 505 which represents the LVT of the responding process. In one embodiment of the invention response packet 500 further includes responder ID portion 503 identifying the responding process.
- Response packet 500 further comprises a code portion 510.
- code portion 510 implements the GVT update algorithm depicted in FIG. 4.
- code portion 510 is implemented in the JAVA programming language. The code is executed by processor 202 on each intermediate node 101 through which GVT response packet 500 flows.
- the GVT update algorithm depicted in FIG. 4 is designed to self propagate response packet 500 through an intermediate node 101 only when packet 500 contains an LVT value which could be a minimum for the network. All other response packets are dropped.
- the algorithm shown in FIG. 4 begins at step 301 when a GVT update response packet 500 is routed through an intermediate node 101 on a path to reach the node of the requesting process.
- memory 203 of node 101 is examined to determine if this response packet is the first response packet 500 received by intermediate node 101 in response to a particular GVT update request.
- the portion of memory examined in step 301 is small state memory 212.
- alternative memory configurations including a variety of cache memory devices may be employed to implement the technique of the present invention.
- a "trace” is a record in memory of the response packets routed through intermediate node 101 .
- the record includes such information as identification of the destination of the packet and the particular GVT update request to which the packet is responding.
- the record also includes the LVT value carried by the response packet.
- response packets 500 are indexed and stored according to a key as they pass through intermediate device 101.
- a key comprises destination and request ID information. Subsequent messages are compared with stored messages by searching for matching keys (destination - request time ID).
- this response packet is the first response packet to arrive at intermediate node 101
- the LVT portion 505 of the packet is compared with a filter LVT stored in memory 203 of intermediate node 101 to determine if the LVT of the response packet is earlier in time than the filter LVT, according to steps 320 and 322.
- a filter LVT is an LVT stored in memory 203 of intermediate node 101 to which LVTs of response packets are compared.
- the filter value is derived from the LVT of a process ruru ng on intermediate node 101.
- the filter LVT is updated as subsequent response packets arrive at intermediate node 101.
- the LVT of the first response packet is earlier in time than the LVT of the process running on the intermediate node 101
- traces of the response packet are stored in memory 203 and the response packet proceeds to its destination carrying its earlier-in-time LVT.
- the LVT value thereby stored in memory 203 becomes the filter value for intermediate node 101 to which subsequent response packet LVTs are compared. If the LVT of node 101 is earlier in time than that of the response packet, the response packet is changed by replacing its LVT with the filter LVT.
- step 307 If examination of memory 203 reveals a trace of a prior response to a particular GVT update request, i.e., this response is not the first response passing through intermediate node 101, then the LVT of the response is compared to the filter LVT (the LVT derived from the trace of the prior response) according to step 307. If the LVT of this response is earlier in time than the LVT of the prior response, then at least the LVT portion of the trace of the prior response is overwritten with the LVT of the present response in accordance with step 311. Then, the present response proceeds to its destination according to step 315. However, according to step 313, if the LVT of the trace is earlier in time than the LVT of the present response then the present response is destroyed, since it cannot represent GVT (a global minimum).
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)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EA200000650A EA200000650A1 (en) | 1998-10-13 | 1999-10-12 | METHOD AND SYSTEM FOR DETERMINING GLOBAL VIRTUAL TIME IN OPTIMISTIC PARALLEL-DISCRETE MODELING OF EVENTS |
JP2000576599A JP2002527842A (en) | 1998-10-13 | 1999-10-12 | System and method for determining global virtual time for asynchronous parallel discrete event simulation |
EP99956538A EP1044546A1 (en) | 1998-10-13 | 1999-10-12 | System and method for determining global virtual time in optimistic parallel discrete event simulations |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10393698P | 1998-10-13 | 1998-10-13 | |
US10546498P | 1998-10-23 | 1998-10-23 | |
US60/103,936 | 1999-10-08 | ||
US60/105,464 | 1999-10-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2000022797A1 true WO2000022797A1 (en) | 2000-04-20 |
WO2000022797A9 WO2000022797A9 (en) | 2000-10-12 |
Family
ID=26801017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/023790 WO2000022797A1 (en) | 1998-10-13 | 1999-10-12 | System and method for determining global virtual time in optimistic parallel discrete event simulations |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1044546A1 (en) |
JP (1) | JP2002527842A (en) |
EA (1) | EA200000650A1 (en) |
WO (1) | WO2000022797A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5250943A (en) * | 1991-03-29 | 1993-10-05 | International Business Machines Corporation | GVT-NET--A Global Virtual Time Calculation Apparatus for Multi-Stage Networks |
EP0698975A2 (en) * | 1994-08-24 | 1996-02-28 | AT&T Corp. | A method of multicasting |
-
1999
- 1999-10-12 EA EA200000650A patent/EA200000650A1/en unknown
- 1999-10-12 JP JP2000576599A patent/JP2002527842A/en not_active Withdrawn
- 1999-10-12 EP EP99956538A patent/EP1044546A1/en not_active Withdrawn
- 1999-10-12 WO PCT/US1999/023790 patent/WO2000022797A1/en not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5250943A (en) * | 1991-03-29 | 1993-10-05 | International Business Machines Corporation | GVT-NET--A Global Virtual Time Calculation Apparatus for Multi-Stage Networks |
EP0698975A2 (en) * | 1994-08-24 | 1996-02-28 | AT&T Corp. | A method of multicasting |
Also Published As
Publication number | Publication date |
---|---|
EA200000650A1 (en) | 2000-12-25 |
EP1044546A1 (en) | 2000-10-18 |
JP2002527842A (en) | 2002-08-27 |
WO2000022797A9 (en) | 2000-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7523198B2 (en) | Integrated testing approach for publish/subscribe network systems | |
CN110098950A (en) | Network is verified to be intended to | |
EP3135005A1 (en) | A method and system for deep packet inspection in software defined networks | |
AU2015201564A1 (en) | Method and system for testing cloud based applications and services in a production environment using segregated backend systems | |
Zhang et al. | Differential network analysis | |
Ashok et al. | Leveraging service meshes as a new network layer | |
US7363285B2 (en) | Network management and control using collaborative on-line simulation | |
Simmonds et al. | Towards scalable network emulation | |
US7526772B2 (en) | Method and apparatus for transforming systems management native event formats to enable correlation | |
US8996427B2 (en) | Method for a system that solves multimedia resource discovery and retrieval problem sets | |
EP1044546A1 (en) | System and method for determining global virtual time in optimistic parallel discrete event simulations | |
US20040088148A1 (en) | Fast network simulation using network decomposition | |
JP2018137687A (en) | Packet analyzing program, packet analyzer, and packet analyzing method | |
EP3890254B1 (en) | Route consistency checker for network devices | |
Mikler et al. | An object oriented approach to simulating large communication networks | |
CN112260903A (en) | Link monitoring method and device | |
TW437211B (en) | System and method for determining global virtual time in optimistic parallel discrete event simulations | |
WO2000022779A2 (en) | Self predicting communications networks | |
Mensah et al. | Connectivity graph reconstruction for networking cloud infrastructures | |
Ordabayeva et al. | Analysis of network security organization based on SD-WAN technology | |
Samari et al. | A queueing theory-based analytic model of a distributed computer network | |
Xiang et al. | Modeling and verifying basic modules of floodlight | |
Attiogbé | Building correct SDN components from a global event-B formal model | |
Hollinghurst | Enabling Software Defined Networking in High Criticality Networks | |
Vu | Network Protocol Implementation Testing and Verification Under Packet Dynamics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): IN JP |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: IN/PCT/2000/00047/DE Country of ref document: IN |
|
ENP | Entry into the national phase |
Ref document number: 2000 576599 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1999956538 Country of ref document: EP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 200000650 Country of ref document: EA |
|
AK | Designated states |
Kind code of ref document: C2 Designated state(s): IN JP |
|
AL | Designated countries for regional patents |
Kind code of ref document: C2 Designated state(s): AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
COP | Corrected version of pamphlet |
Free format text: PAGE 15, CLAIMS, ADDED |
|
WWP | Wipo information: published in national office |
Ref document number: 1999956538 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1999956538 Country of ref document: EP |