Distributed system simulation: slow message relaxation
First Claim
1. A method to perform on a plurality of computing devices a simulation of a distributed system, the simulation occurring round by round, the method comprising:
- receiving, by a logical process operated by one of the computing devices, an event having a timestamp;
determining, by the one of the computing devices, if the timestamp of the event is less than a local time of the logical process;
if the timestamp of the event is determined to be less than the local time of the logical process, substituting, by the one of the computing devices, the local time of the logical process for the timestamp of the event;
determining by the one of the computing devices that all logical processes operating on the computing devices have finished processing all events for a given round;
after the determining that all the logical processes have finished processing all the events, calculating by the one of the computing devices a new relaxation width of a simulation window, the new relaxation width being responsive to at least one runtime simulation parameter, the value of the relaxation width exceeding a global lookahead value for the distributed system being simulated, wherein the calculating comprises ensuring that the relaxation width does not exceed one-half of a timeout interval that is related to maintaining nodal knowledge of the distributed system being simulated; and
sending the new relaxation width to other computing devices.
2 Assignments
0 Petitions
Accused Products
Abstract
Distributed system simulation is enhanced by extending the simulation window. In a described implementation, the simulation window extension is facilitated with a slow message relaxation scheme. For example, especially when the simulation window is extended, slow unscheduled events can arrive at a logical process with a timestamp that is prior to (e.g., less than) the local time of a receiving logical process that is participating in a simulation. To ameliorate issues created by a slow unscheduled message and its corresponding slow unscheduled event, a current logical time of the receiving logical process is substituted for the original timestamp of the slow unscheduled event to transform it into a punctual unscheduled event.
-
Citations
13 Claims
-
1. A method to perform on a plurality of computing devices a simulation of a distributed system, the simulation occurring round by round, the method comprising:
-
receiving, by a logical process operated by one of the computing devices, an event having a timestamp; determining, by the one of the computing devices, if the timestamp of the event is less than a local time of the logical process; if the timestamp of the event is determined to be less than the local time of the logical process, substituting, by the one of the computing devices, the local time of the logical process for the timestamp of the event; determining by the one of the computing devices that all logical processes operating on the computing devices have finished processing all events for a given round; after the determining that all the logical processes have finished processing all the events, calculating by the one of the computing devices a new relaxation width of a simulation window, the new relaxation width being responsive to at least one runtime simulation parameter, the value of the relaxation width exceeding a global lookahead value for the distributed system being simulated, wherein the calculating comprises ensuring that the relaxation width does not exceed one-half of a timeout interval that is related to maintaining nodal knowledge of the distributed system being simulated; and sending the new relaxation width to other computing devices. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. One or more processor-accessible storage media comprising processor-executable instructions that, when executed by a processor, implement a method to perform a simulation of a distributed system synchronously, the method comprising:
-
determining by a master computing device a relaxation width of a simulation window for a round of execution that exceeds a global lookahead value of the distributed system; adjusting the relaxation width of the simulation window responsive to at least one runtime parameter, the at least one runtime parameter including a timeout interval that is related to maintaining nodal knowledge of the distributed system being simulated, the adjusting comprising ensuring that the relaxation width does not exceed one-half of the timeout interval; and sending the relaxation width from the master computing device to one or more slave computing devices. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An apparatus to perform a simulation of a distributed system, the apparatus comprising:
-
a master computing device that adapts a relaxation width of a simulation window of the simulation of the distributed system responsive to at least one runtime parameter, the at least one runtime parameter including a timeout interval that is related to maintaining nodal knowledge of the distributed system being simulated, and the adapting comprising ensuring that the relaxation width does not exceed one-half of the timeout interval; wherein the master computing device comprises; one or more processors; a global time ascertainer that ascertains a globally lowest clock; and a determiner of safe scheduled events for each logical process in the simulation; and wherein the master computing device sends the ascertained globally lowest clock and those safe scheduled events corresponding to each logical process to the corresponding logical process; and a plurality of slave computing devices communicatively coupled to the master computing device, each slave computing device having a logical process that replaces a timestamp of an event with a local time of the logical process if the timestamp is less than the local time, wherein each slave computing device comprises an event queue having multiple events that are chronologically ordered, a head event of the multiple events located at a head of the event queue, and wherein the local time of the logical process is established by a timestamp of the head event, and wherein the logical process processes events in the event queue in chronological order. - View Dependent Claims (13)
-
Specification