DE102007024900B4 - Method for synchronizing independent computer devices for simulating peer-to-peer networks - Google Patents
Method for synchronizing independent computer devices for simulating peer-to-peer networks Download PDFInfo
- Publication number
- DE102007024900B4 DE102007024900B4 DE102007024900A DE102007024900A DE102007024900B4 DE 102007024900 B4 DE102007024900 B4 DE 102007024900B4 DE 102007024900 A DE102007024900 A DE 102007024900A DE 102007024900 A DE102007024900 A DE 102007024900A DE 102007024900 B4 DE102007024900 B4 DE 102007024900B4
- Authority
- DE
- Germany
- Prior art keywords
- peer
- computer
- lpi
- simulation
- event
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Verfahren zum Synchronisieren von mehreren unabhängigen Rechnereinrichtungen (LPi), welche Ereignisnachrichten (EN) mit einer Lokalzeit (LVTi) einer jeweiligen Sende-Rechnereinrichtung (LPi), mit einer Identifikation (IDPj) einer Peer-Einrichtung (Pi) und mit einer Ereignisinstruktion (Ei) austauschen, zum Simulieren eines Peer-to-Peer-Netzwerkes (P2P), bei dem die Peer-Einrichtungen (Pj) untereinander Nachrichten austauschen, wobei eine jeweilige Rechnereinrichtung (LPi) eine Gruppe von Peer-Einrichtungen (Pj) simuliert und empfangene Ereignisinstruktionen in Lokalzeitschritten abarbeitet, wobei die Anzahl der abgelaufenen Lokalzeitschritte einer Lokalzeit (LVT) der jeweiligen Rechnereinrichtung (LPi) entspricht und das Abarbeiten einer Ereignisinstruktion um eine der Identifikation (IDPi) der Peer-Einrichtung (Pi) zugeordneten Verzögerungszeit (Di) erfolgt.Method for synchronizing a plurality of independent computer devices (LPi), which has event messages (EN) with a local time (LVTi) of a respective transmit computer device (LPi), with an identification (IDPj) of a peer device (Pi) and with an event instruction (Ei ) for simulating a peer-to-peer network (P2P), wherein the peer devices (Pj) exchange messages with each other, wherein a respective computer device (LPi) simulates a group of peer devices (Pj) and received event instructions in local time steps, wherein the number of elapsed local time steps of a local time (LVT) of the respective computer device (LPi) corresponds and the processing of an event instruction to one of the identification (IDPi) of the peer device (Pi) associated delay time (Di) takes place.
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Synchronisieren von mehreren unabhängigen Rechnereinrichtungen zum Simulieren eines Peer-to-Peer-Netzwerkes, bei dem die Peer-Einrichtungen untereinander Nachrichten austauschen. Die Erfindung betrifft ferner ein Computerprogrammprodukt, welches die Durchführung eines entsprechenden Verfahrens auf mehreren programmgesteuerten Rechnereinrichtungen veranlasst, sowie eine Simulationsvorrichtung, welche zur Durchführung des Synchronisationsverfahrens geeignet ist.The The present invention relates to a method for synchronizing from several independent computing devices for simulating a peer-to-peer network, where the peer devices are interconnected Exchange messages. The invention further relates to a computer program product, which the implementation a corresponding method on several program-controlled Computer devices causes, and a simulation device, which to carry out the synchronization method is suitable.
Peer-to-Peer-Netzwerke werden aus gleichberechtigten Peer-Einrichtungen aufgebaut, die über ein untergeordnetes Kommunikationsnetzwerk, wie beispielsweise dem Internet, miteinander vernetzt sind. Im Gegensatz zu sogenannten Client-Server-Netzwerken, bei denen Servereinrichtungen bestimmte Dienste oder Funktionalitäten anbieten, die von den Client-Einrichtungen genutzt werden können, teilen sich in Peer-to-Peer-Netzwerken die beteiligten Peer-Einrichtungen, insbesondere ihre Hardware-Ressourcen wie Rechenleistung, Speichermöglichkeiten, Netzwerkanbindung oder auch Druckereinrichtungen gemeinsam. In Peer-to-Peer-Netzwerken kann prinzipiell jede Peer-Einrichtung mit jeder anderen Peer-Einrichtung, die dem Peer-to-Peer-Netzwerk angeschlossen ist, kommunizieren und deren Ressourcen nutzen. Das Peer-to-Peer-Netzwerk ist dabei vollständig dezentral organisiert. Als Peer-to-Peer-Netzwerkprotokolle, die beispielsweise Adressauflösungen und das Hinzustoßen weiterer Peer-Einrichtungen zu dem bestehenden Netzwerk oder Abmelden von Peer-Einrichtungen von den Peer-to-Peer-Netzwerken realisieren, seien beispielsweise Freenet oder Chord genannt. In der Regel setzt ein Peer-to-Peer-System auf einem bestehenden Netzwerk, insbesondere dem Internet, auf. Man spricht auch von sogenannten Overlay-Protokollen.Peer-to-peer networks are built from equal peer institutions that have a subordinate Communication network, such as the Internet, with each other are networked. Unlike so-called client-server networks, where Offer certain services or functionalities to those from the client facilities can be used share in peer-to-peer networks the involved peer facilities, in particular their hardware resources like computing power, memory capabilities, Network connection or printer devices together. In peer-to-peer networks can in principle be any peer device with any other peer device, which is connected to the peer-to-peer network, communicate and use their resources. The peer-to-peer network is completely decentralized organized. As peer-to-peer network protocols, for example, address resolutions and the push other peer facilities to the existing network or logoff realize peer facilities from peer-to-peer networks, may be called Freenet or Chord, for example. Usually sets a peer-to-peer system on an existing network, especially the Internet. One also speaks of so-called overlay protocols.
In
der
Um Peer-to-Peer-Netzwerke aufwandsgünstig realisieren zu können und beispielsweise mögliche Ressourcen-Engpässe vor der Implementierung zu erkennen, werden häufig zunächst Simulationen der Peer-to-Peer-Systeme durchgeführt. Da ein Peer-to-Peer-Netzwerk aus Hunderttausenden Peer-Einrichtungen aufgebaut werden kann und diese ständig direkt untereinander kommunizieren, werden besondere Anforderungen an eine Rechnerinfrastruktur zur Simulation gestellt.Around Peer-to-peer networks cost-effective to be able to realize and, for example, possible resource bottlenecks The implementation often reveals simulations of peer-to-peer systems carried out. As a peer-to-peer network can be built from hundreds of thousands of peer facilities and this constantly communicate directly with each other, become special requirements to a computer infrastructure for simulation.
Üblicherweise versteht man unter Simulation die Abbildung des realen Systems auf Objekte von Rechnereinrichtungen sowie deren logische Verknüpfungen untereinander. Dabei spricht man von sogenannten Entitäten, im Falle eines Peer-to-Peer-Netzwerkes die Peer-Einrichtungen, welche als Objekte des zu simulierenden Systems von Interesse sind. Dabei können diese Entitäten, also Peer-Einrichtungen, unterschiedliche Eigenschaften besitzen, welche durch Attribute festgelegt werden. Beispielsweise kann ein Identifikator einer Peer-Einrichtung als Attribut aufgefasst werden. Als Aktivitäten werden Zeiträume fester Länge bezeichnet, wie z. B. die Überprüfung der Peer-to-Peer-Struktur in Chord-Ringen nach dem Chord-Protokoll durch Austausch entsprechender Chord-Nachrichten.Usually Simulation is the mapping of the real system Objects of computer devices as well as their logical connections among themselves. One speaks of so-called entities, in the Case of a peer-to-peer network the peer facilities, which as objects of the simulated Systems of interest. These entities, ie Peer facilities, have different properties, which be determined by attributes. For example, an identifier a peer device as an attribute. As activities will be periods fixed length referred to as B. the review of Peer-to-peer structure in Chord rings according to the Chord protocol by exchange corresponding chord messages.
Der Zustand des (Peer-to-Peer-)Systems besteht aus allen Variablen, die notwendig sind, das System zu jeder Zeit zu beschreiben. Beispielsweise kann eine Zustandsbeschreibung des Peer-to-Peer-Netzwerkes aus den vorhandenen Peer- Einrichtungen und den zukünftigen Aktivitäten oder Ereignissen zusammengesetzt werden. Unter Ereignissen versteht man Vorgänge in dem Peer-to-Peer-System bzw. auf Simulationsebene, die zu einer Zustandsänderung des Peer-to-Peer-Systems führen. Dies kann beispielsweise die Neuanmeldung oder Abmeldung einer Peer-Einrichtung zu dem bestehenden Peer-to-Peer-Netzwerk sein. Im Folgenden werden unter Ereignissen allgemein Vorgänge, beispielsweise durch ein entsprechendes Peer-to-Peer-Protokoll vorgegebene Ereignisse, verstanden, wie z. B. insbesondere das Versenden von Nachrichten zwischen Peer-Einrichtungen des Netzwerkes.Of the State of the (peer-to-peer) system consists of all variables, which are necessary to describe the system at any time. For example may be a description of the state of the peer-to-peer network from the existing peer facilities and the future ones activities or events. Under events understands one processes in the peer-to-peer system or at the simulation level, which leads to a change in condition of the peer-to-peer system. This can, for example, the new application or deregistration of a peer device to the existing peer-to-peer network be. The following are events under general events, for example through a corresponding peer-to-peer protocol given events, understood, such. B. in particular the sending of messages between peer facilities of the network.
Bei so genannten diskreten ereignisorientierten Simulationen ändert sich der Systemzustand nur zu bestimmten diskreten Zeitpunkten. Dies wird durch Ereignisse bzw. Ereignisinstruktionen zu dem jeweiligen Eintrittszeitpunkt vollzogen. Dabei sind den Ereignissen die Eintrittszeitpunkte, also Zustandsänderungen, durch das jeweilige Ereignis vorgegeben. Man spricht von einer Abfolge von Simulationsschritten, wobei zu jedem Simulationsschritt die vorgesehenen Ereignisse bzw. Ereignisinstruktionen abgearbeitet werden und eine Zustandsänderung bewirken.at So-called discrete event-oriented simulations change the system state only at certain discrete times. This is determined by events or event instructions at the respective entry time completed. The events are the entry times, ie State changes, by the respective event specified. One speaks of a sequence of simulation steps, wherein for each simulation step the processed events or event instructions and a state change cause.
Um Ereignisse parallel ausführen zu können, müssen sie unabhängig voneinander sein, d. h. sie dürfen sich nicht gegenseitig beeinflussen. Ereignisinstruktionen dürfen nur dann gleichzeitig ausgeführt werden, wenn das erste Ereignis den Zustand nicht in einer Weise ändert, die das zweite Ereignis beeinflusst. Um diese Kausalität zu gewährleisten, müssen insbesondere Synchronisationsmechanismen vorgehalten werden, wenn Simulationen auf verteilten Rechnernetzwerken durchgeführt werden. Eine Problematik besteht insbesondere darin, dass unterschiedliche Rechnereinrichtungen unterschiedlich schnell arbeiten und verschiedene Lokalzeiten aufweisen. Die Rechnereinrichtungen werden auch als logische Prozesse bezeichnet.Around Execute events in parallel to be able to have to they are independent be from each other, d. H. they may do not affect each other. Event instructions are allowed only then run simultaneously if the first event does not change the state in a way that is affects the second event. To ensure this causality have to in particular synchronization mechanisms are kept when simulations be performed on distributed computer networks. A problem is in particular that different computing devices work different speeds and have different local times. The computer devices are also referred to as logical processes.
Um Peer-to-Peer-Netzwerke zu simulieren bzw. deren Funktionsweise auf mehrere logische Prozesse abzubilden, wird zunächst jeder Rechnereinrichtung, die an der Simulation beteiligt ist, eine Anzahl von Peer-Einrichtungen zugewiesen. Ferner wird festgelegt, welche Ereignisse bzw. Ereignisinstruktionen zur Modellierung einer bestimmten Situation des Peer-to-Peer-Netzwerkes wann ausgeführt werden müssen. Den Ereignissen ist dazu ein bestimmter Zeitpunkt oder ein Simulationsschritt zugeordnet, zu dem die Abarbeitung des Ereignisses erfolgen muss. Bei diskreten ereignisorientierten Simulationen werden diese Ereignisinstruktionen aufsteigend nach ihrer zugeordneten Abarbeitungszeit ausgeführt.Around Peer-to-peer networks to simulate or their operation on map several logical processes, is first of each computer device, involved in the simulation, a number of peer devices assigned. It also determines which events or event instructions when to run a specific situation of the peer-to-peer network have to. The events are at a certain time or a simulation step assigned to which the processing of the event must occur. For discrete event-oriented simulations, these event instructions become ascending according to their assigned execution time.
Da die eingesetzten logischen Prozesse unterschiedlich schnell arbeiten und daher die Simulation verschieden schnell fortgeschritten sein kann, besteht ein Problem, wenn Ereignisse ausgeführt werden, die ihre Ursache in einer Peer-Einrichtung haben, die einer ersten Rechnereinrichtung zugeordnet sind, aber von einer zweiten Rechnereinrichtung abgearbeitet werden müssen, da beispielsweise eine Nachricht von einem ersten Peer zu einem zweiten Peer gesendet wurde.There The logical processes used work at different speeds and therefore the simulation has progressed at different speeds there is a problem when events are executed, their cause in a peer facility but which are assigned to a first computer device, but must be processed by a second computer device because For example, a message from a first peer to a second Peer was sent.
Aus
der
Aus der Druckschrift Herrlich, Marc: „Simulation eines schema-basierten Super-Peer-Netzwerkes”, Bachelorarbeit, Universität Hannover, Institut für Informationssysteme, Oktober 2003, ist ein Verfahren zur Simulation eines Peer-to-Peer-Netzwerks in einer Simulationsumgebung bekannt. Gemäß diesem Verfahren werden zur Kommunikation der Peer-Knoten Ereignisse verwendet. Die verwendeten Ereignisse sind dabei mit einem Zeitstempel versehen zur Ablage in einer Liste vorgesehen und werden gemäß dieser Liste verarbeitet. Dabei wird zwischen einer realen und einer simulierten Zeit unterschieden.Out Herrlich, Marc: "Simulation of a schema-based Super Peer Network ", Bachelor Thesis, university Hannover, Institute for Information Systems, October 2003, is a simulation method a peer-to-peer network known in a simulation environment. According to this method, the Communication uses the peer node events. The used Events are provided with a time stamp for storage in a list and are processed according to this list. there is distinguished between a real and a simulated time.
Bei konservativen Synchronisationsverfahren wird nach jedem Simulationsschritt auf die Rechnereinrichtung gewartet, welche am langsamsten ist. Unter einem Simulationsschritt versteht man dabei die Abarbeitung aller für diesen Simulationszeitpunkt vorgesehenen Ereignisinstruktionen. Dabei kann insbesondere auch die Anzahl der abzuarbeitenden Ereignisinstruktionen von Rechnereinrichtung zu Rechnereinrichtung differieren. Nachteilig bei dieser konservativen Strategie ist insbesondere, dass die Geschwindigkeit der Simulation durch die konservative Synchronisation immer von der langsamsten eingesetzten Rechnereinrichtung gebremst wird. Ferner wird eine große Anzahl von so genannten Null-Nachrichten versendet, die von einer Rechnereinrichtung an alle anderen Rechnereinrichtungen übermittelt werden, um zu signalisieren, dass für den aktuellen Simulationsschritt keine Ereignisse zu erwarten und auszuführen sind.at conservative synchronization method is after each simulation step waiting for the computer device which is slowest. A simulation step is understood to mean the processing all for this event time provided event instructions. In this case, in particular, the number of event instructions to be processed differ from computer device to computer device. adversely in this conservative strategy is in particular that the speed the simulation by conservative synchronization always from the slowest computer used is slowed down. Further will be a big one Number of so-called null messages sent by one Computer device transmitted to all other computing devices be to signal that for the current simulation step no events are to be expected and executed.
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren zur Synchronisation von mehreren unabhängigen Rechnereinrichtungen zu schaffen.It is therefore an object of the present invention, an improved Method for the synchronization of several independent computing devices to accomplish.
Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1 gelöst.These The object is achieved by a method according to claim 1.
Demgemäß erfolgt eine Simulation eines Peer-to-Peer-Netzwerkes, indem die Peer-Einrichtungen durch mehrere unabhängige Rechnereinrichtungen als Sende- und/oder Empfangs-Peer-Einrichtungen untereinander Nachrichten austauschen. Jeder Rechnereinrichtung wird dabei einer Gruppe von Peer-Einrichtungen zugeordnet. Eine jeweilige Rechnereinrichtung empfängt Ereignisinstruktionen und arbeitet diese in Lokalzeitschritten ab. Dabei entspricht die Anzahl der abgelaufenen Lokalzeitschritte einer Lokalzeit der jeweiligen Rechnereinrichtung. Das Abarbeiten einer Ereignisinstruktion erfolgt um eine der Identifikation der Peer-Einrichtung zugeordneten Verzögerungszeit verzögert.Accordingly, takes place a simulation of a peer-to-peer network by the peer devices through several independent Computer devices as transmit and / or receive peer devices exchange messages with each other. Every computer device becomes a group of peer institutions assigned. A respective computing device receives event instructions and works these off in local time steps. This corresponds to the Number of elapsed local time steps of a local time of the respective Computer device. The processing of an event instruction takes place by a delay time associated with the identification of the peer device delayed.
Bei dem Verfahren wird jeder Peer-Einrichtung in dem Peer-to-Peer-Netzwerk eine Verzögerungszeit zugeordnet. Diese simuliert beispielsweise bei einem Nachrichtenaustausch von einer Sende-Peer-Einrichtung zu einer Empfangs-Peer-Einrichtung die notwendige Übertragungszeit, beispielsweise über das Internet. D. h., wenn zu einem vorgegebenen Simulationsschritt eine Ereignisinstruktion auszuführen ist, wird zunächst eine gewisse Anzahl von Simulationsschritten abgewartet, um diese Verzögerung zu berücksichtigen. Dadurch wird die Gefahr von Kausalitätsfehlern gemindert. Durch die Modellierung dieses Merkmals, also einer bestimmten Übertragungszeit von Nachrichten zwischen Peer-Einrichtungen, die als abzuarbeitende Ereignisinstruktionen auf den Simulationsrechnern abgebildet werden, lässt sich über Intervalle von Simulationsschritten bzw. Lokalzeitschritten simulieren, ohne dass eine Synchronisation mit den anderen Simulationsrechnern vorgenommen werden muss.In the method, each peer device in the peer-to-peer network is assigned a delay time. This simulates, for example, in a message exchange from a send peer entity tion to a receive peer device the necessary transmission time, for example via the Internet. In other words, if an event instruction is to be executed for a given simulation step, first of all a certain number of simulation steps are awaited to take this delay into account. This reduces the risk of causality errors. By modeling this feature, that is to say a specific transmission time of messages between peer devices, which are mapped as event instructions to be processed on the simulation computers, it is possible to simulate intervals of simulation steps or local time steps without having to synchronize with the other simulation computers.
Vorzugsweise werden die folgenden Verfahrensschritte durchgeführt:
- – Zuordnen von einer oder mehreren Peer-Einrichtungen als Gruppe zu jeder Rechnereinrichtung;
- – Zuordnen einer Anzahl von Lokalzeitschritten als Verzögerungszeit zu jeder Peer-Einrichtung;
- – Senden von Ereignisnachrichten zwischen den Rechnereinrichtungen, wobei ein Nachrichtenaustausch zwischen Peer-Einrichtungen in dem Peer-to-Peer-Netzwerke einer Ereignisinstruktion zur Abarbeitung durch eine Rechnereinrichtung, welcher die jeweilige Empfangs-Peer-Einrichtung zugeordnet ist, entspricht und die Identifikation in der Ereignisnachrichten der Empfangs-Peer-Einrichtung entspricht; und
- – Abarbeiten der von einer jeweiligen Rechnereinrichtung empfangenen Ereignisinstruktionen in Lokalzeitschritten der Rechnereinrichtung, wobei eine jeweilige Ereignisinstruktion nach der der jeweiligen Empfangs-Peer-Einrichtung zugeordneten Verzögerungszeit von der Empfangs-Rechnereinrichtung abgearbeitet wird.
- Assigning one or more peer devices as a group to each computing device;
- Assigning a number of local time steps as delay time to each peer device;
- - Sending event messages between the computer devices, wherein a message exchange between peer devices in the peer-to-peer networks of an event instruction for processing by a computer device to which the respective receiving peer device is assigned, and the identification in the event messages corresponds to the receive peer device; and
- Processing the event instructions received by a respective computer device in local time steps of the computer device, a respective event instruction being processed by the reception computer device after the delay time assigned to the respective receive peer device.
Vorzugsweise wird ferner eine Ereignisliste von allen abzuarbeitenden Ereignisinstruktionen erzeugt, wobei die Ereignisnachrichten gemäß der Ereignisliste erzeugt und versendet werden. Jede Ereignisinstruktion trägt ferner einen Zeitstempel bzw. eine Angabe zum Simulationszeitpunkt, zu der die Instruktionen abgearbeitet werden sollen. Global betrachtet ergibt sich durch diese Ereignisliste eine Simulation oder Abbildung einer bestimmten Situation des Peer-to-Peer-Netzwerkes. In den Ereignislisten können beispielsweise das Hinzutreten oder Abmelden von Peer-Einrichtungen zu dem Peer-to-Peer-Netzwerk festgelegt werden, eine Adressauflösung oder das Versenden von Nachrichten zwischen Peer-to-Peer-Einrich tungen, beispielsweise zur Adressauflösung gemäß dem zugrunde gelegten Peer-to-Peer-Protokoll.Preferably also becomes an event list of all the event instructions to be processed generates, generating the event messages according to the event list and shipped. Each event instruction further contributes a timestamp or an indication of the simulation time, too the instructions are to be processed. Globally this event list results in a simulation or mapping of a specific situation of the peer-to-peer network. In the event lists can For example, the addition or deregistration of peer facilities to the peer-to-peer network be set, an address resolution or the sending of Messages between peer-to-peer facilities, such as address resolution according to the underlying set peer-to-peer protocol.
Dadurch, dass die Peer-Einrichtungen unterschiedlichen Rechnereinrichtungen zugeordnet sind, ergeben sich jedoch unterschiedliche Abarbeitungszustände der Ereignisinstruktionen in der Realzeit aufgrund der unterschiedlichen Geschwindigkeiten der Rechnereinrichtungen. Es ist beispielsweise möglich, dass eine erste Rechnereinrichtung zu einer vorgegebenen realen Zeit, beispielsweise fünf Simulationsschritte durchgeführt hat, d. h. zu einer Simulationszeit 5, die Ereignisinstruktionen mit den Zeitstempeln 1, 2, 3, 4, 5 abgearbeitet hat. Parallel ist es möglich, dass eine zweite Rechnereinrichtung zu derselben Realzeit nur drei globale Simulationsschritte abgearbeitet hat. D. h., die erste Rechnereinrichtung hat eine Lokalzeit von 5, während die zweite Rechnereinrichtung eine Lokalzeit von 3 aufweist.Thereby, that the peer facilities are different computing devices are assigned, however, there are different Abarbeitungszustände the Event instructions in real time due to the different Speeds of computer equipment. It is for example possible, that a first computer device to a predetermined real Time, for example five Simulation steps performed has, d. H. at a simulation time 5, the event instructions with the time stamps 1, 2, 3, 4, 5 has worked. Parallel is it is possible that a second computer device at the same real time only three has processed global simulation steps. That is, the first computer device has a local time of 5 while the second computer device has a local time of 3.
Jede Peer-Einrichtung wird einer Rechnereinrichtung z. B. eindeutig zugeordnet, und es wird eine entsprechende Zuordnungsliste erzeugt. Damit ergeben sich disjunkte Regionen von Peer-Einrichtungen in dem Peer-to-Peer-Netzwerk, wobei jede Region durch eine Rechnereinrichtung oder einen logischen Prozess simuliert wird.each Peer device is a computer device z. B. uniquely assigned, and a corresponding assignment list is generated. With that result disjoint regions of peer devices in the peer-to-peer network, each region being characterized by a computing device or a logical one Process is simulated.
In einer Variante des Verfahrens wird für jede Rechnereinrichtung die geringste Verzögerungszeit der der Rechnereinrichtung zugeordneten Peer-Einrichtungen bestimmt. Ferner wird eine Simulationsgrenze in Abhängigkeit von der geringsten Verzögerungszeit und der jeweiligen Lokalzeiten der übrigen Rechnereinrichtungen bestimmt. Dabei wird beispielsweise das Minimum der Summen der geringsten Verzögerungszeit der Rechnereinrichtung mit der Lokalzeit der jeweiligen anderen Rechnereinrichtungen bestimmt.In A variant of the method is for each computer device the lowest delay time determines the computer means associated peer devices. Furthermore, a simulation limit becomes dependent on the lowest Delay Time and the respective local times of the other computer facilities certainly. In this case, for example, the minimum of the sums of the least Delay Time the computer device with the local time of the other Computer facilities determined.
Dabei zeigt die Verzögerungszeit an, nach wie viel Lokalzeitschritten eine Ereignisinstruktion abgearbeitet wird. Sendet beispielsweise eine erste Sende-Peer-Einrichtung eine Nach richt an eine zweite Empfangs-Peer-Einrichtung, wobei die Peer-Einrichtungen unterschiedlichen Rechnereinrichtungen zugeordnet sind, wird dieses Ereignis durch eine Ereignisnachricht von der ersten Rechnereinrichtung an die zweite Rechnereinrichtung implementiert. Diese Ereignisnachricht umfasst die Identifikation der Empfangs-Peer-Einrichtung, die Ereignisinstruktion und einen Zeitstempel, also die Lokalzeit der Sende-Rechnereinrichtung. Zu dem Wert der Lokalzeit der Sende-Peer-Einrichtung würde üblicherweise auf der Empfangs-Rechnereinrichtung die Instruktion abgearbeitet. Gemäß der Erfindung erfolgt diese Abarbeitung jedoch um die Anzahl der durch die Verzögerungszeit gegebenen Lokalzeitschritte später. Damit wird simuliert, dass die Empfangs-Peer-Einrichtung erst nach einer gewissen Laufzeit die Nachricht von der Sende-Peer-Einrichtung erhält. Zu jeder Rechnereinrichtung bzw. die ihr zugeordneten Peer-Einrichtungen liegen damit jeweils Verzögerungszeiten vor. Diese Laufzeitverzögerung des Nachrichtenversendens über das Peer-to-Peer-Netzwerk wird jeweils durch eine Verzögerung der Abarbeitung der Ereignisinstruktion bei der Empfangs-Rechnereinrichtung, welcher der Empfangs-Peer-Einrichtung zugeordnet ist, berücksichtigt.The delay time indicates after how many local time steps an event instruction is processed. If, for example, a first send peer device sends a message to a second receive peer device, the peer devices being assigned to different computer devices, this event is implemented by an event message from the first computer device to the second computer device. This event message comprises the identification of the receiving peer device, the event instruction and a time stamp, ie the local time of the transmitting computer device. For the value of the local time of the send peer device, the instruction would normally be processed on the receive computer device. However, according to the invention, this processing is done by the number of local time steps given by the delay time later. This simulates that the receive peer device receives the message from the send peer device only after a certain period of time. To every right nereinrichtung or its associated peer devices are thus each delay times before. This propagation delay of the message transmission via the peer-to-peer network is taken into account in each case by a delay in the processing of the event instruction at the reception computer device which is assigned to the reception peer device.
Die jeweilige Simulationsgrenze gibt nun an, über wie viele Simulationsschritte in seiner lokalen Zeit, d. h. über wie viele Lokalzeitschritte, eine Abarbeitung von Ereignisinstruktionen möglich ist, ohne dass Kausalitätsprobleme auftreten können. Die jeweilige Simulationsgrenze wird beispielsweise in Abhängigkeit von den durch die empfangenen Ereignisnachrichten übertragenen Lokalzeiten der jeweiligen Sende-Rechnereinrichtungen aktualisiert. Da die Ereignisnachrichten die Lokalzeit der Sende-Rechnereinrichtung umfasst, kann die Simulationsgrenze jeweils an die der Empfangsrechnereinrichtung vorliegenden Lokalzeiten der übrigen Rechnereinrichtungen angepasst werden.The respective simulation limit now indicates how many simulation steps in his local time, d. H. above how many local time steps, a processing of event instructions possible is without any causality problems may occur. The respective simulation limit becomes dependent, for example from those transmitted by the received event messages Updated local times of the respective transmitting computer facilities. Since the event messages are the local time of the sending computer device includes, the simulation limit to each of the receiving computer device Present local times of other computer facilities be adjusted.
Vorzugsweise wird für jede Rechnereinrichtung eine Synchronisationstabelle mit den Lokalzeiten der anderen Rechnereinrichtungen erzeugt. Diese Synchronisationstabelle kann eben falls in Abhängigkeit von den durch die empfangenen Ereignisnachrichten übertragenen Lokalzeiten der jeweiligen Sende-Einrichtung aktualisiert werden. Die empfangene Ereignisinstruktion wird somit zu einer Ausführungslokalzeit der Empfangs-Rechnereinrichtung abgearbeitet, die der Summe aus der Lokalzeit der Sende-Rechnereinrichtung und der Verzögerung der Sende-Peer-Einrichtung entspricht. Vorzugsweise wird dabei überprüft, ob die Lokalzeit der jeweiligen Rechnereinrichtung kleiner als die Simulationsgrenze der Rechnereinrichtung ist. Ist diese kleiner, können keine Kausalitätskonflikte auftreten, da die modellierte Nachrichtenübertragungszeit, also die Verzögerung der Abarbeitung der Ereignisinstruktionen bei der Empfangs-Rechnereinrichtung dieses abpuffert.Preferably is for each computing device a synchronization table with the local times the other computer devices generated. This synchronization table can also if in dependence from those transmitted by the received event messages Updated local times of the respective transmitting device become. The received event instruction thus becomes an execution local time the receiving computer device processed, the sum of the local time of the transmitting computer device and the delay of Send peer device corresponds. Preferably, it is checked whether the Local time of the respective computer device smaller than the simulation limit the computer device is. If this is smaller, there can be no causal conflicts occur because the modeled message transmission time, so the delay of Processing the event instructions at the receiving computer device this buffers.
Es wird dann vorzugsweise die Abarbeitung von durch Ereignisnachrichten empfangenen Ereignisinstruktionen angehalten, wenn die Lokalzeit der jeweiligen Rechnereinrichtung die Simulationsgrenze erreicht. Dann wird eine Null-Nachricht an die Rechnereinrichtung gesendet, welche die niedrigste Lokalzeit in der Synchronisationstabelle der angehaltenen Rechnereinrichtung aufweist. Daraufhin wird z. B. von der Rechnereinrichtung, welche die Null-Nachricht empfangen hat, eine Antwortnachricht mit einer niedrigeren Lokalzeit an die Rechnereinrichtung gesendet, welche die Null-Nachricht erzeugt hat.It is then preferably the processing of event messages received event instructions stopped when the local time the computer system reaches the simulation limit. Then a zero message is sent to the computer device which the lowest local time in the synchronization table of the stopped Computing device has. Then z. From the computing device, which received the null message, a reply message with sent a lower local time to the computing device, which generated the null message.
Es kann ferner vorgesehen sein, dass die Rechnereinrichtungen die erhaltenen Null-Nachrichten über einen vorgebbaren Lokalzeitraum, insbesondere über eine vorgegebene Anzahl von Lokalzeitschritten zählen. Ferner kann eine jeweilige Rechnerlast einer Rechnereinrichtung ermittelt werden, indem die Anzahl der abgearbeiteten Ereignisinstruktionen in einem vorgebbaren Lokalzeitraum, insbesondere einer vorgebbaren Anzahl von Lokalzeitschritten bestimmt wird. Ein Verhältnis von abgearbeiteten Ereignisinstruktionen zu einem Lokalzeitraum kann ein geeignetes Maß für die Rechnerlast darstellen.It can also be provided that the computer devices received Zero messages over one predefinable local period, in particular over a predetermined number counting from local time steps. Further For example, a respective computer load of a computer device can be determined are determined by the number of processed event instructions in a predefinable local period, in particular a predefinable Number of local time steps is determined. A ratio of processed event instructions at a local time period a suitable measure of the computer load represent.
Es wird dann vorzugsweise die ermittelte Rechnerlast bei jedem Lokalzeitschritt mit einer vorgegebenen Migrationschwelle verglichen. Die Migrationsschwelle kann z. B. ein Wert für das Verhältnis von abgearbeiteten Ereignisinstruktionen zu einem Lokalzeitraum sein. Wird die jeweilige Migrationsschwelle überschritten, erfolgt vorzugsweise ein Verändern der Zuordnung der Peer-Einrichtungen zu den Rechnereinrichtungen. Anhand des Überschreitens der Emigrationsschwelle wird somit erkannt, dass eine Rechnereinrichtung besonders stark ausgelastet ist und eine bessere Zuordnung der Peer-Einrichtungen zu den eingesetzten Simulationsrechnern möglich ist.It then preferably the calculated computer load at each local time step compared to a given migration threshold. The migration threshold can z. For example, a value for The relationship of processed event instructions at a local time period be. If the respective migration threshold is exceeded, it is preferable a change the assignment of the peer devices to the computer devices. Based of passing the emigration threshold is thus recognized that a computer device is particularly busy and a better allocation of peer facilities too the simulation computers used is possible.
Das Verändern der Zuordnung der Peer-Einrichtung zu den Rechnereinrichtungen erfolgt bevorzugt derart, dass Peer-Einrichtungen, welche häufig miteinander Nachrichten austauschen, einer gemeinsamen Rechnereinrichtung zugeordnet werden. Damit wird erreicht, dass der Austausch von Ereignisnachrichten zwischen den Rechnereinrichtungen reduziert wird.The Change the assignment of the peer device to the computer devices takes place preferably such that peer devices, which often together Exchange messages, assigned to a common computer device become. This ensures that the exchange of event messages is reduced between the computing devices.
Beim Überschreiten der jeweiligen Emigrationsschwelle kann außerdem eine Migrationsnachricht von der jeweiligen Rechnereinrichtung an alle übrigen Rechnereinrichtungen gesendet werden. Dabei umfasst die Migrationsnachricht vorzugsweise die Lokalzeit oder die um einen vorgegebenen Lokalzeitraum, beispielsweise einen Lokalzeitschritt erniedrigte Lokalzeit, und die aktuelle Rechnerlast der die Migrationsnachricht sendenden Rechnereinrichtung. Dies ermöglicht, dass jede Rechnereinrichtung, welche eine Migrationsnachricht empfangen hat, das Abarbeiten der Ereignisinstruktionen anhält und an alle übrigen Rechnereinrichtungen eine Vorbereitungsnachricht sendet, welche die aktuelle Lokalzeit der Rechnereinrichtung umfasst. Daraufhin können dann die Rechnereinrichtungen nach Empfang der Vorbereitungsnachrichten so lange lokalzeitschrittweise Ereignisinstruktionen abarbeiten, bis die jeweilige Lokalzeit den Maximalwert der durch die Vorbereitungsnachrichten gesendeten Lokalzeit entspricht. Somit wird eine Synchronisation auf die maximal vorhandene Lokalzeit, also eine gemeinsame Simulationszeit für alle Rechnereinrichtungen erreicht.When the respective emigration threshold is exceeded, a migration message can also be sent from the respective computer device to all other computer devices. In this case, the migration message preferably comprises the local time or the local time reduced by a predetermined local time period, for example a local time step, and the current computer load of the computer device transmitting the migration message. This makes it possible for each computer device which has received a migration message to stop the processing of the event instructions and to send to all other computer devices a preparation message which comprises the current local time of the computer device. Then, after receiving the preparation messages, the computer devices can then execute local time-step event instructions until the respective local time corresponds to the maximum value of the local time transmitted by the preparation messages. Thus, a synchronization to the maximum IN ANY dene local time, so achieved a common simulation time for all computing devices.
Daran anschließend kann eine Umzuordnung der Peer-Einrichtungen zu den Rechnereinrichtungen erfolgen. Die Rechnereinrichtungen senden dann nach dem Abarbeiten der Ereignisinstruktionen bis zu dem Maximalwert der Lokalzeiten eine Optimierungsnachricht, mit insbesondere der ermittelten Rechnerlast, an alle übrigen Rechnereinrichtungen. Damit liegen an allen beteiligten Rechnereinrichtungen Informationen zu der Lastverteilung hinsichtlich des Abarbeitens von Ereignisinstruktionen vor.it subsequently a reassignment of the peer devices to the computer devices can take place. The computing devices then send after processing the event instructions an optimization message up to the maximum value of the local times, with in particular the calculated computer load, to all other computer facilities. This information is available at all participating computer facilities to the load distribution with regard to the execution of event instructions in front.
Ferner kann jede Rechnereinrichtung eine Kommunikationstabelle erstellen, welche Kommunikationshäufigkeiten zwischen den der jeweiligen Rechnereinrichtung zugeordneten Peer-Einrichtungen und Peer-Einrichtungen, welche anderen Rechnereinrichtungen zugeordnet sind, umfasst. D. h., wenn eine Peer-Einrichtung eine Nachricht zu einer anderen Peer-Einrichtung sendet, die von einer Rechnereinrichtung simuliert wird, wird dies in der Kommunikationstabelle festgehalten. In den Einträgen der Kommunikationstabelle können diese Ereignisse beispielsweise anhand der Identifikationen der beteiligten Peer-Einrichtungen gezählt werden.Further can each computing device create a communication table, which communication frequencies between the peer devices assigned to the respective computer device and peer devices associated with other computing devices are included. That is, if a peer device has a message sends to another peer device, by a computing device is simulated, this is recorded in the communication table. In the entries the communication table can these events, for example, based on the identifications of participating peer institutions counted become.
Anschließend wird bevorzugt in Abhängigkeit von den Rechnerlasten und/oder der Kommunikationstabelle Abgabe-Rechnereinrichtung und Aufnahme-Rechnereinrichtungen bestimmt. Dabei werden einer jeweiligen Aufnahme-Rechnereinrichtung zusätzliche Peer-Einrichtungen zugeordnet, und einer jeweiligen Abgabe-Rechnereinrichtung werden Peer-Einrichtungen abgeordnet. Die Rechnereinrichtung bzw. logischen Prozesse oder Simulationsrechner können über ein Kommunikationsnetzwerk als Sende- und/oder Empfangsrechnereinrichtungen die Ereignisnachrichten austauschen.Subsequently, will preferably in dependence from the computer loads and / or the communication table dispensing computer device and host computers. This will be a respective Recording computer device additional Associated with peer devices, and a respective dispensing computer device Peer institutions are seconded. The computer device or Logical processes or simulation computers can communicate over a communication network as transmitting and / or Receiving computer devices exchange the event messages.
Die Erfindung betrifft ferner ein Computerprogrammprodukt, welches die Durchführung eines Verfahrens zum Synchronisieren von mehreren unabhängigen Rechnereinrichtungen auf mehreren programmgesteuerten Rechnereinrichtungen veranlasst. Denkbar ist z. B. eine Codierung des Verfahrens in computerlesbarer Form auf einem Datenträger. Als Datenträger kommen insbesondere USB-Sticks, Floppy-Disks, CD-ROMS, DVDs oder eine beispielsweise von einer Servereinrichtung herunterladbaren Dateien in Frage.The The invention further relates to a computer program product comprising the execution a method for synchronizing multiple independent computing devices caused on several programmable computer devices. It is conceivable z. As an encoding of the method in computer-readable Shape on a disk. As a disk come in particular USB sticks, Floppy disks, CD-ROMs, DVDs or an example downloadable from a server device Files in question.
Es wird darüber hinaus eine Simulationsvorrichtung mit mehreren Rechnereinrichtungen, welche derart ausgestaltet sind, dass ein entsprechendes Verfahren zum Synchronisieren von mehreren unabhängigen Rechnereinrichtungen durchgeführt wird, beansprucht. Dabei können die Rechnereinrichtungen insbesondere über das Internet miteinander vernetzt sein und Ereignisnachrichten austauschen.It gets over it In addition, a simulation device with multiple computing devices, which are designed such that a corresponding method for synchronizing multiple independent computing devices carried out is claimed. It can the computer devices in particular via the Internet with each other be networked and exchange event messages.
Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschriebenen Ausführungsbeispiele. Bevorzugte Ausführungsformen der Erfindung werden im Folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf die beigelegten Figuren näher erläutert. Es zeigen dabei:Further advantageous embodiments of the invention are the subject of the dependent claims and the embodiments described below. preferred embodiments The invention will be described below with reference to exemplary embodiments explained in more detail with reference to the accompanying figures. It shows:
In den Figuren sind gleiche bzw. funktionsgleiche Elemente mit denselben Bezugzeichen versehen worden, sofern nichts anderes angegeben ist. Die Begriffe Rechner, Simulationsrechner, Rechnereinrichtung und Simulationsrechnereinrichtung sind dabei synonym verwendet.In The figures are the same or functionally identical elements with the same Reference number has been provided unless otherwise indicated. The terms computer, simulation computer, computer device and Simulation computer device are used synonymously.
In
der
Die Simulationsrechner LP1, LP2, LP3 sind beispielsweise miteinander vernetzt und können Ereignisnachrichten untereinander austauschen. Dies ist allgemein durch die gestrichpunkteten Pfeile EN angedeutet. In dem Peer-to-Peer-Netzwerk P2P können nun bestimmte Ereignisse auftreten. Beispielsweise wird der Austausch einer Nachricht MS1, MS2 zwischen den Peers P3, P4 oder P2 und P7 betrachtet. Die Nachricht kann unterschiedliche Bedeutungen haben, beispielsweise ist die Anfrage eines Peers P3 an einen Peer P4 zu Übermittlung einer Fingerliste zu Adressauflösungen im Rahmen eines Chord-Rings denkbar. In den meisten Fällen besteht ein Ereignis im Versenden einer Nachricht, was ein weiteres Ereignis nach sich ziehen kann.The Simulation computers LP1, LP2, LP3 are, for example, with each other networked and can Exchange event messages with each other. This is general indicated by the dashed arrows EN. In the peer-to-peer network P2P can now certain events occur. For example, the exchange a message MS1, MS2 between peers P3, P4 or P2 and P7 considered. The message can have different meanings, for example, the request from a peer P3 to a peer P4 is for transmission a fingerlist of address resolutions conceivable in the context of a chord ring. In most cases there is an event in sending a message, which is another event can cause.
Die Ereignisse werden in Form von Ereignisinstruktionen durch die Simulationsrechner LP1, LP2, LP3 abgearbeitet. Dies erfolgt im Rahmen eines diskreten ereignisorientierten Simulationsmodells. D. h., es werden Simulationsschritte definiert und jede Ereignisinstruktion ist zu einem bestimmten Simulationsschritt auszuführen. Dadurch, dass die Ausführung bzw. Abarbeitung der Ereignisinstruktionen auf verschiedenen Simulationsrechnern LP1, LP2, LP3 durchgeführt wird, ist es möglich, dass nicht alle Simulationsrechner LP1, LP2, LP3 zu derselben realen Zeit die gleichen Simulationsschritte abarbeiten. D. h., bei schnelleren oder wenig ausgelasteten Simulationsrechnern kann die Simulationszeit stärker fortgeschritten sein als bei langsamen oder besonders belasteten Simulationsrechnern. Der jeweilige abzuarbeitende Simulationsschritt der, lokal vollzogen wird definiert die Lokalzeit des jeweiligen Simulationsrechners.The Events are in the form of event instructions by the simulation calculator LP1, LP2, LP3 processed. This is done under a discrete event-oriented simulation model. That is, it will be simulation steps and each event instruction is at a particular simulation step perform. By doing that execution or processing the event instructions on different simulation computers LP1, LP2, LP3 performed it will be possible that not all simulation computers LP1, LP2, LP3 to the same real Time to execute the same simulation steps. That is, at faster or little-used simulation computers, the simulation time stronger to be more advanced than slow or particularly stressed ones Simulation computers. The respective simulation step to be processed which is performed locally defines the local time of the respective Simulation computer.
In
der
Der
Simulationsrechner LP1 führt
Simulationsschritte 1–9
in Lokalzeitschritten aus, die eine lokale Zeit (local virtual time)
LVT1 bilden. In diesen Lokalzeitschritten erfolgt die Simulation
für die
dem Simulationsrechner LP1 zugeordneten Peer-Einrichtungen. Ähnlich hat
der zweite Simulationsrechner LP2 eine eigene Lokalzeit LVT2, die
wie in der
Eine Synchronisation der Simulationsrechner LP1, LP2, LP3 bzw. derer lokaler Simulationszeiten LVT1, LVT2, LVT3 kann dann notwendig sein, wenn Ereignisse eintreten, die eine Ereignisinstruktion für einen anderen Simulationsrechner beinhalten. Sendet beispielsweise die Peer-Einrichtung 3 eine Nachricht an die Peer-Einrichtung 4 zu einem festgelegten Simulationszeitpunkt 3, erzeugt der Simulationsrechner LP1 zu seiner Lokalzeit LVT1 = 3, also zu dem vorgegebenen Simulationszeitpunkt seiner lokalen Zeit eine Ereignisnachricht, die an den Simulationsrechner LP2 übermittelt wird. Eine globale Liste mit der gespeicherten Zuordnung von Peer-Einrichtungen auf Simulationsrechner kann dabei den Simulationsrechnern bereitgestellt werden. Der langsamere Simulationsrechner LP2 hat jedoch zu dem Zeitpunkt, der der Lokalzeit LVT1 = 3 entspricht, erst eine eigene Lokalzeit LVT2 = 2. Die Ereignisnachricht EN1 beinhaltet eine Identifikation der Empfangs-Peer-Einrichtung IDP4, die Simulationszeit LVT1, zu der eine Ereignisinstruktion, in diesem Fall die Abarbeitung einer Nachricht, welche von P3 an P4 gesendet wurde, abzuarbeiten ist und die eigentliche Ereignisinstruktion. In dem Fall des Sendens von P3 nach P4 kann sich kein Kausalitätskonflikt ergeben, da bei der lokalzeitschrittweisen Abarbeitung durch den Simulationsrechner LP2 mit seiner lokalen Zeit LVT2 keine Ereignisse aufgetreten sein können, die durch die Abarbeitung zum Zeitschritt LVT2 = 3 inkonsistent werden können.A synchronization of the simulation computer LP1, LP2, LP3 or their local simulation times LVT1, LVT2, LVT3 may be necessary when events occur that include an event instruction for another simulation computer. If, for example, the peer device 3 sends a message to the peer device 4 at a defined simulation time 3, the simulation computer LP1 generates an event message at its local time LVT1 = 3, ie at the predetermined simulation time of its local time, which is transmitted to the simulation computer LP2 , A global list with the stored assignment of peer devices to simulation computers can be made available to the simulation computers. However, the slower simulation computer LP2 has its own local time LVT2 = 2 at the time corresponding to the local time LVT1 = 3. The event message EN1 includes an identification of the receive peer device IDP4, the simulation time LVT1, to which an event instruction, In this case, the processing of a message sent from P3 to P4 is to be processed and the actual event instruction. In the case of sending from P3 to P4, there can be no causality conflict, since in the local time step processing by the simulation computer LP2 with its local time LVT2 no events may have occurred which may become inconsistent by the processing at the time step LVT2 = 3 NEN.
Die Situation ist jedoch anders bei einer Nachricht, die von der Peer-Einrichtung P2 zu der Peer-Einrichtung P7 gesendet wird. Dies hat zur Folge, dass beispielsweise zum Lokalzeitschritt LVT1 = 5 eine Ereignisnachricht EN2 mit dem Zeitstempel LVT1 = 5, der Identifikation IDP7 des Peers P7 und der Ereignisinstruktion gesendet wird. Der schnellere Simulationsrechner LP3 hat zum realen Zeitpunkt, nämlich bereits den neunten Simulationsschritt, abgearbeitet. D. h., es können Ereignisse in dem Lokalzeitraum LVT3 = 5 bis LVT3 = 9 abgearbeitet worden sein, die eine Inkonsistenz mit dem Abarbeiten der Ereignisinstruktion, welche mit der Ereignisnachricht EN2 gesendet wurde, ist. Z. B. ist es möglich, dass gemäß einer globalen Ereignisliste zum Simulationsschritt 6 die Peer-Einrichtung P7 vom Peer-to-Peer-Netzwerk entfernt werden soll.The However, situation is different with a message coming from the peer device P2 is sent to the peer device P7. As a consequence, for example, at the local time step LVT1 = 5 an event message EN2 with the time stamp LVT1 = 5, the identification IDP7 of the peer P7 and the event instruction is sent. The faster simulation computer LP3 has the real time, namely already the ninth simulation step, processed. That is, it can Events in the local period LVT3 = 5 to LVT3 = 9 completed been an inconsistency with the processing of the event instruction, which was sent with the event message EN2 is. Eg Is it possible, that according to a global event list for simulation step 6, the peer device P7 from Peer-to-peer network should be removed.
Anhand dieses Beispiels wird deutlich, dass eine Synchronisation der unterschiedlich schnell ablaufenden Lokalzeiten LVT1, LVT2, LVT3 notwendig ist. Im einfachsten Fall, bei einer konservativen Simulationsstrategie können die Nachrichten, welche einen Zeitstempel aufweisen, der niedriger ist als die aktuelle lokale Zeit abgelehnt werden. Dies führt dazu, dass bei jedem Simulationsschritt ein Abgleich erfolgt und alle beteiligten Simulationsrechner immer denselben Simulationszeitpunkt aufweisen. Dies führt jedoch dazu, dass die gesamte Berechnung langsam wird.Based This example makes it clear that a synchronization of different Fast running local times LVT1, LVT2, LVT3 is necessary. In the simplest case, in a conservative simulation strategy can the messages that have a timestamp lower is to be rejected as the current local time. This leads to, that at every simulation step an adjustment takes place and all involved simulation computer always the same simulation time exhibit. this leads to but to make the whole calculation slow.
In
der
Bei der auf mehrere Simulationsrechner verteilten parallelen, diskreten und ereignisorientierten Simulationen des Peer-to-Peer-Systems erfolgt zunächst die Zuordnung der beteiligten Peer-Einrichtungen in Gruppen auf die logischen Prozesse bzw. Simulationsrechner LP1, LP2, LP3. Anschließend wird jedem Peer eine Verzögerungszeit zugeordnet. D. h., wenn eine Nachricht von dem Peer empfangen wird, arbeitet der Simulationsrechner die entsprechende Ereignisinstruktion nicht in demselben Simulationsschritt ab, sondern erst nach der Verzögerungszeit, welche in Simulationsschritten bzw. Lokalzeitschritten angegeben ist.at the distributed on several simulation computers parallel, discrete and event-oriented simulations of the peer-to-peer system first the assignment of the involved peer devices into groups the logical processes or simulation computer LP1, LP2, LP3. Subsequently, will Each peer has a delay time assigned. That is, when a message is received from the peer, the simulation computer operates the corresponding event instruction not in the same simulation step, but only after the Delay Time, which are specified in simulation steps or local time steps is.
Ferner wird eine Ereignisliste erzeugt, in der für jeden Simulationsschritt die abzuarbeitenden Ereignisinstruktionen festgelegt sind. Als Beispiel sei nur der Empfang oder das Senden von Nachrichten der Peers, das Hinzutreten oder Löschen von Peers zum Peer-to-Peer-Netzwerk genannt. Im Folgenden wird auch von einem Zeitstempel einer Ereignisinstruktion oder eines Ereignisses als der auszuführende Simulationszeitpunkt gesprochen.Further an event list is generated in which for each simulation step the event instructions to be processed are defined. As an an example was just the receipt or sending messages of the peers, the Join or delete called by peers to the peer-to-peer network. The following will also from a timestamp of an event instruction or an event as the one to perform Simulation time spoken.
Nach dieser Initialisierungsphase erfolgt die Simulations- oder Abarbeitungsphase, in der die Ereignisinstruktionen von den betroffenen Simulationsrechnern abgearbeitet werden. Dabei werden insbesondere Ereignisnachrichten ausgetauscht, wenn durch eine Zustandsänderung des Peer-to-Peer-Systems Peer-Einrichtungen logisch miteinander verknüpft sind bzw. betroffen sind, die unterschiedlichen Simulationsrechnern zugeordnet sind.To This initialization phase is the simulation or processing phase, in which the event instructions from the affected simulation computers be processed. In particular, event messages exchanged when through a state change of the peer-to-peer system Peer devices are logically linked or affected, the different simulation computers are assigned.
In
der
Bei
einer Erweiterung des Verfahrens werden ferner Listen mit den jeweiligen
Verzögerungen
bzw. Delays der Peer-Einrichtungen entworfen und Tabellen erzeugt,
anhand derer eine sogenannte Synchronisationsgrenze für jeden
Simulationsrechner bestimmt werden können. In der
Zu Beginn der Abarbeitungsphase bestimmt jeder Simulationsrechner LP1, LP2, LP3 aus einer Verzögerungsliste DL1, DL2, DL3, welche die Verzögerungen DI der ihr zugeordneten Peer-Einrichtungen PI aufweist, das Minimum dieser Verzögerungen MD1, MD2, MD3. Bei dem Simulationsrechner LP3, dem die Peer-Einrichtung P7, P8 mit einer jeweiligen Verzögerungszeit 6 bzw. 10 zugeordnet sind, ergibt sich eine minimale Verzögerungszeit MD3 = 6. Die Verzögerung der Links, also die verzögerte Abarbeitung von bei einem Peer eingegangenen Nachrichten durch die zugeordnete Simulationsrechnereinrichtung ist vorzugsweise über die gesamte Simulationsberechnung hinweg jeweils konstant.To Beginning of the execution phase, each simulation computer LP1 determines LP2, LP3 from a delay list DL1, DL2, DL3 showing the delays DI of their associated peer facilities PI, the minimum of these delays MD1, MD2, MD3. at the simulation computer LP3, which the peer device P7, P8 with a respective Delay Time 6 or 10 are assigned, there is a minimum delay time MD3 = 6. The delay the links, so the delayed Processing of messages received by a peer through the associated simulation computer device is preferably on the entire simulation calculation always constant.
Die Simulationsrechnereinrichtungen LP1, LP2, LP3 legen anschließend eine Synchronisationstabelle ST1, ST2, ST3 an, in der für jeden der übrigen vernetzten Simulationsrechner ein Eintrag existiert. Die Einträge sind einerseits die aktuelle Simulationszeit bzw. lokale Zeit des jeweiligen Rechners und die bestimmte minimale Verzögerungszeit.The Simulation computer devices LP1, LP2, LP3 then create one Synchronization table ST1, ST2, ST3, in which for each the rest networked simulation computer an entry exists. The entries are on the one hand, the current simulation time or local time of the respective Calculator and the specific minimum delay time.
In der Synchronisationstabelle ST1 für den ersten Simulationsrechner LP1 ist ein Eintrag für den zweiten Simulationsrechner LP2 mit dessen aktueller Lokalzeit LVT2 vorgesehen und die aus der Verzögerungsliste DL1 erhaltene minimale Verzögerungszeit MD1 = 5. Ferner besteht ein Eintrag für den dritten Simulationsrechner LP3, d. h. dessen Lokalzeit LVT3 und die minimale Verzögerungszeit MD1 = 5 des Simulationsrechners LP1, der die Synchronisationstabelle ST1 anlegt. Das Minimum dieser Einträge, d. h. der jeweilige Summe aus der minimalen Verzögerungszeit MD1 mit der Lokalzeit LVT2 bzw. LVT3 der übrigen Simulationsrechner LP2, LP3 wird als Simulationsgrenze SG1 bestimmt. Analog werden Synchronisationstabellen ST2 und ST3 für die Simulationsrechner LP2, LP3 angelegt.In the synchronization table ST1 for the first simulation computer LP1 is an entry for the second simulation computer LP2 with its current local time LVT2 provided and the received from the delay list DL1 minimum delay time MD1 = 5. There is also an entry for the third simulation computer LP3, d. H. its local time LVT3 and the minimum delay time MD1 = 5 of the simulation computer LP1, which is the synchronization table ST1 applies. The minimum of these entries, d. H. the respective sum from the minimum delay time MD1 with the local time LVT2 or LVT3 of the other simulation computers LP2, LP3 is determined as simulation limit SG1. Analog synchronization tables ST2 and ST3 for created the simulation computer LP2, LP3.
Aufgrund der Synchronisationsgrenze ist nun jeder Simulationsrechner in der Lage, mehr als einen Simulationsschritt bzw. Lokalzeitschritt abzuarbeiten, ohne dass Kausalitätskonflikte auftreten können. Zu Beginn der Abarbeitungsphase für die Ereignisinstruktionen sind alle Lokalzeiten beim Simulationsschritt 1. Der Rechner LP1 überprüft nun bei der Abarbeitung der Ereignisinstruktionen zum Simulationsschritt bzw. Lokalzeitschritt 1, ob dieser Schritt kleiner ist als die bestimmte Synchronisationsgrenze SG1. Falls die minimale Verzögerung MD1 = 5 beträgt, d. h., alle Ereignisnachrichten, die im ersten Simulationsschritt beim Simulationsrechner LP1 eintreffen, werden frühestens nach fünf weiteren Lokalzeitschritten abgearbeitet. Der Simulationsrechner LP1 kann somit eine Simulation bis zum Zeitpunkt 5 fortschreiten lassen, ohne dass es zu Verletzungen der Kausalitätskette kommen kann. Durch das erfindungsgemäße Vorgehen wird erreicht, dass keine Ereignisse oder Ereignisinstruktionen in die jeweilige Eventqueue zur Abarbeitung auf den Simulationsrechnern LP1, LP2, LP3 eingetragen werden, deren Zeitstempel geringer ist als die Synchronisationsgrenze SG1, SG2, SG3 für den jeweiligen Simulationsrechner LP1, LP2, LP3.by virtue of the synchronization limit is now every simulation computer in the Able to process more than one simulation step or local time step, without that causality conflicts may occur. At the beginning of the processing phase for the event instructions all local times are at simulation step 1. The computer LP1 now checks at the execution of the event instructions for the simulation step or local time step 1, if this step is smaller than the determined one Synchronization limit SG1. If the minimum delay MD1 = 5, d. h., all event messages that are in the first simulation step arrive at the simulation computer LP1, earliest after five processed further local time steps. The simulation computer LP1 can thus advance a simulation until time 5 leave without causing damage to the chain of causation can come. The procedure according to the invention achieves that no events or event instructions in the respective Event queue for processing on the simulation computers LP1, LP2, LP3 whose time stamp is less than the synchronization limit SG1, SG2, SG3 for the respective simulation computer LP1, LP2, LP3.
Es ist ferner möglich, dass während der Simulation, also der Abarbeitung aller Ereignisinstruktionen zu den vorgegebenen Simulationszeiten die Synchronisationsgrenze aktualisiert wird. Dabei sind zwei Szenarien möglich. Während der Simulation treffen bei den Simulationsrechnern LP1, LP2, LP3 Ereignisnachrichten ein.It is also possible that while the simulation, ie the processing of all event instructions the synchronization limit is updated for the given simulation times becomes. There are two scenarios possible. During the simulation meet at the simulation computers LP1, LP2, LP3 event messages.
In
der
Bei
einem weiteren möglichen
Fall ist es möglich,
dass ein Simulationsrechner seine Synchronisationsgrenze erreicht.
Dies ist in der
Der Simulationsrechner LP2 sendet eine um einen Zeitschritt verringerte Lokalzeit LVT2 – 1 in seiner Antwortnachricht R, da der Simulationsrechner LP1 ansonsten seine Simulation fortsetzen würde. Dann könnte es passieren, dass der Simulationsrechner LP1 zum nächsten Zeitschritt LVT1 + 1 fortschreitet und dann eine Ereignisnachricht mit dem Zeitschritt LVT1 – MD1 von dem Simulationsrechner LP2 erhält. Die entsprechenden Ereignisinstruktionen würden dann bei dem Simulationsrechner LP1 verzögert durch MD1 zum Zeitpunkt LVT1 zur Abarbeitung vorgesehen werden. Da sich der Rechner LP1 jedoch bei der Simulation des Zeitschritts LVT1 + 1 befindet, würden die dann empfangenen Ereignisnachrichten und deren Ereignisinstruktionen verloren gehen. Nach der Absendernachricht und der Antwortnachricht aktualisieren beide Simulationsrechner LP1, LP2 anhand der Zeitstempel der empfangenen Ereignisnachrichten die Einträge für den jeweils anderen Simulationsrechner in der entsprechenden Synchronisationstabelle.Of the Simulation computer LP2 sends one less by one time step Local time LVT2 - 1 in its response message R, since the simulation computer LP1 otherwise his simulation would continue. Then could It happens that the simulation computer LP1 to the next time step LVT1 + 1 progresses and then an event message with the time step LVT1 - MD1 receives from the simulation computer LP2. The corresponding event instructions would then delayed at the simulation computer LP1 by MD1 at the time LVT1 for processing. Since the computer LP1 however, when simulating the time step LVT1 + 1, the then received event messages and their event instructions lost walk. Update after the sender message and the response message both simulation computers LP1, LP2 based on the timestamp of the received Event messages the entries for the each other simulation computer in the corresponding synchronization table.
Gemäß dem oben beschriebenen Verfahren, welches sich insbesondere durch eine geeignete Programmierung der Simulationsrechner implementieren lässt, wobei dann die vorbeschriebenen Verfahrensschritte durchgeführt werden, ermöglicht, dass sich Intervalle von Simulationsschritten ausführen lassen, ohne dass eine erneute Synchronisation, also ein Abgleich aller beteiligten Simulationsrechner hinsichtlich derer Lokalzeiten stattfinden muss. Die verschiedenen Simulationsschritte zu unterschiedlichen Lokalzeiten können daher unabhängig voneinander im Rahmen der Simulationsgrenze abgearbeitet werden. Lediglich durch Prüfen, ob die Synchronisationsgrenze erreicht ist, können die nächsten sicheren Simulationsschritte über die sich ergebenden Lokalzeitschritte durch Abarbeitung der dafür vorgesehenen Ereignisinstruktionen ausgeführt werden. Im günstigsten Fall besteht die Situation durch die Aktualisierung der Synchronisationsgrenze anhand der empfangenen Ereignisnachrichten, dass die Synchronisationsgrenze nie erreicht wird und keinerlei Synchronisation stattfinden muss. Ein weiterer Vorteil besteht darin, dass das Verfahren unabhängig von dem zugrundeliegenden Synchronisationsmodell für das Peer-to-Peer-Netzwerk ist. Es wird vorteilhaft die Eigenschaft, dass Nachrichten beim Übertragen von einer Peer-Einrichtung zu einer anderen Peer-Einrichtung eine gewisse Übertragungszeit benötigen, ausgenutzt.According to the above described method, which in particular by a suitable Programming the simulation computer can implement, where then the above-described method steps are carried out allows that intervals can be executed by simulation steps, without a re-synchronization, so a comparison of all participating simulation computer take place in terms of local time got to. The different simulation steps to different ones Local times can therefore independently be processed within the simulation limit. Only by checking, if the synchronization limit is reached, the next safe simulation steps can be done via the resulting local time steps by processing the designated Event instructions are executed. In the cheapest In case, the situation is the updating of the synchronization limit based on the received event messages that the synchronization limit is never reached and no synchronization must take place. Another advantage is that the process is independent of the underlying synchronization model for the peer-to-peer network is. It will be beneficial to the property that transmits messages from a peer facility exploited to another peer device require a certain transmission time.
Gemäß einem weiteren Aspekt des Verfahrens zum Synchronisieren von mehreren unabhängigen Rechnereinrichtungen ist ferner eine optimale Verteilung der jeweiligen Rechnerlast möglich. Anhand der empfangenen Null-Nachrichten kann der jeweilige Simulationsrechner daraus schließen, dass er im Vergleich zu den übrigen in dem Simulationsrechnernetz vorgesehenen Simu lationsrechner langsamer arbeitet. Es ist somit möglich, anhand der Anzahl von empfangenen Null-Nachrichten, die vorzugsweise von jedem Simulationsrechner gezählt und abgespeichert wird, ein dynamisches Load-Balancing, d. h. eine dynamische Verteilung der Rechnerressourcen auf die abzuarbeitenden Instruktionen vorzunehmen.According to one another aspect of the method for synchronizing multiple independent computer facilities Furthermore, an optimal distribution of the respective computer load is possible. Based the received zero messages, the respective simulation computer conclude, that he compared to the rest Simulation computer provided in the simulation computer network slower is working. It is thus possible based on the number of received null messages, preferably counted by each simulation computer and is stored, a dynamic load balancing, d. H. a dynamic distribution of computer resources to be processed To make instructions.
Um eine entsprechende Funktion zu implementieren, merkt sich jeder Simulationsrechner die Anzahl n der empfangenen Null-Nachrichten, die er während der letzten z Simulationsschritte, also über den Lokalzeitraum z bezüglich seiner Lokalzeit erhalten hat. Neben der oben beschriebenen Überprüfung, ob der aktuelle Simulationsschritt, also die Lokalzeit an die Synchronisationsgrenze gestoßen ist, kann optional ferner verglichen werden, ob das Verhältnis n/z der empfangenen Null-Nachrichten n im Zeitraum z größer ist als ein vorgegebener Migrationsschwellwert MG. Der Migrationsschwellwert MG kann vorgegeben werden. Falls dieser Schwellwert überschritten wird, d. h. überdurchschnittlich viele Null-Nachrichten von dem betroffenen Simulationsrechner erhalten wurden, wird entschieden, dass eine Migration von zugeordneten Peer-Einrichtungen notwendig ist. D. h. es erfolgt eine Veränderung der Zuordnung der Peer-Einrichtung in dem Peer-to-Peer-Netzwerk auf die Simulationsrechner.Around Everybody remembers to implement a corresponding function Simulation calculator the number n of received null messages, the he while the last z simulation steps, ie over the local time z with respect to its Local time has received. In addition to the above-described review, whether the current simulation step, ie the local time to the synchronization limit pushed optionally, it may be further compared whether the ratio n / z the received zero messages n in the period z is greater as a predetermined migration threshold MG. The migration threshold MG can be specified. If this threshold is exceeded is, d. H. above average received many null messages from the affected simulation computer are decided to migrate from associated peer facilities necessary is. Ie. There is a change in the assignment of the peer device in the peer-to-peer network on the simulation computer.
In
der
Falls die Simulationsgrenze nicht erreicht ist, wird im Schritt S5 eine Abarbeitung der empfangenen Ereignisse bzw. der Ereignisinstruktionen, die für die Abarbeitung im jeweiligen Lokalzeitschritt bzw. Simulationsschritt vorgesehen sind. Die Simulationsrechner bestimmen ferner einen Lastfaktor LF, der die Leistungsfähigkeit des Simulationsrechners widerspiegelt. Beispielsweise kann der Lastfaktor die Anzahl der durch den Simulationsrechner ausgeführten Ereignisinstruktionen bezogen auf die abgelaufene Realzeit sein, welche für die Abarbeitung dieser Ereignisinstruktionen benötigt wurde. Dieser Lastfaktor LF wird von den Simulationsrechnern im Schritt S5 abgespeichert.If the simulation limit is not reached, in step S5 becomes Processing the received events or the event instructions, the for the processing in the respective local time step or simulation step are provided. The simulation computers also determine a load factor LF, the performance of the simulation computer. For example, the load factor the number of event instructions executed by the simulation calculator related to the expired real time, which for the processing requires these event instructions has been. This load factor LF is used by the simulation computers in the Step S5 stored.
Ferner wird ermittelt, ob das Verhältnis der empfangenen Null-Nachrichten n über einen Simulationszeitraum z größer als die Emigrationsgrenze MG ist. Dies erfolgt im Schritt S4. Falls dies nicht der Fall ist, wird die Simulation weiterlaufen, weil erkannt wurde, dass der betroffene Rechner nicht überlastet ist.Further will determine if the ratio the received null messages n over a simulation period z greater than the emigration limit is MG. This is done in step S4. If this is not the case, the simulation will continue because was detected that the affected computer is not overloaded is.
Falls die Emigrationsgrenze MG überschritten wird, wird im Schritt S7 eine Migrationsnachricht an alle anderen Simulationsrechner versendet, wodurch signalisiert wird, dass eine Migration, also eine Umordnung der Peer-Einrichtungen auf die Simulationsrechner erfolgen muss. In dieser Migrationsnachricht MN, beispielsweise vom Simulationsrechner LP1 abgesendet, ist der aktuelle Simulationszeitpunkt, also die Lokalzeit LVT1 vermindert um 1 und der Lastfaktor LF enthalten. Alle Simulationsrechner halten die Abarbeitung der Ereignisinstruktionen nach Erhalt der Migrationsnachricht MN an.If exceeded the emigration limit MG becomes, in step S7, a migration message to all others Simulation computer sends, which signals that a Migration, ie a reorganization of the peer facilities on the simulation computer must be done. In this migration message MN, for example sent by the simulation computer LP1, is the current simulation time, ie the local time LVT1 reduced by 1 and the load factor LF included. All simulation computers keep the processing of the event instructions after receiving the migration message MN.
Ferner senden alle Simulationsrechner, die die Migrationsnachricht MN erhalten haben, im Schritt S8 eine Vorbereitungsnachricht VN, die den aktuellen Simulationszeitpunkt, also die Lokalzeit, enthält. Sofern mehrere Simulationsrechner eine Migrationsnachricht gesendet haben, sendet jeder Simulationsrechner dennoch nur eine Vorbereitungsnachricht an die übrigen Simulationsrechner. Jeder Simulationsrechner bestimmt anhand der empfangenen Vorbereitungsnachrichten den spätesten Simulationszeitpunkt, also den höchsten Wert für die Lokalzeit aller beteiligten Simulationsrechner. Bis zu diesem maximalen Wert der Lokalzeit wird die Simulation, also die Abarbeitung von Ereignisinstruktionen durch die Simulationsrechner durchgeführt. Dabei können keine Kausalitätsfehler aufführen, da jeder Simulationsrechner nur maximal die jeweilige minimale Verzögerungszeit MDI weiter abarbeitet.Further send all simulation computers that receive the migration message MN have, in step S8, a preparation message VN containing the current Simulation time, ie the local time contains. If several simulation computers sent a migration message, sends each simulation computer nevertheless only a preparation message to the other simulation computers. Each simulation computer determines based on the received preparation messages the latest Simulation time, ie the highest value for the Local time of all participating simulation computers. Up to this maximum Value of local time is the simulation, ie the execution of Event instructions performed by the simulation computer. there can no causal errors list, since each simulation computer only a maximum of the respective minimum delay time MDI continues to work.
Nachdem diese Synchronisierung im Schritt S9 abgeschlossen ist, senden alle Simulationsrechner Nachrichten an die übrigen Simulationsrechner eine Start- oder Optimierungsnachricht, durch die mitgeteilt wird, dass alle Simulationsrechner denselben Simulationsschritt, also die synchrone Lokalzeit, aufweisen. Ferner wird der ermittelte Lastfaktor den übrigen Simulationsrechnern mitgeteilt. Anschließend startet im Schritt S10 die Umordnung bzw. Emigration der zugeordneten Peer-Einrichtungen auf die Simulationsrechner.After this this synchronization is completed in step S9, send all Simulation computer messages to the other simulation computers one Start or Optimization message telling you that all simulation computers the same simulation step, ie the synchronous Local time. Furthermore, the determined load factor becomes the other simulation computers communicated. Subsequently starts in step S10 the reordering or emigration of the assigned Peer facilities on the simulation computer.
Nachdem die Simulationsrechner von allen übrigen Simulationsrechnern die Startnachricht SN erhalten haben, kann anhand der für jeden Simulationsrechner vorliegenden Last, beispielsweise nach einem mathematischen Verfahren, berechnet werden, wie eine optimale Verteilung der Peer-Einrichtungen auf die Simulationsrechner vorgenommen werden muss. Dabei wird bestimmt, welcher Simulationsrechner Peer-Einrichtungen abgeben muss bzw. welche Simulationsrechner weitere Peer-Einrichtungen aufnehmen muss, um eine Verbesserung der gesamten Rechnerleistung des vernetzten Simulationsrechnersystems zu erzielen. Diese Berechnung ist vorzugsweise identisch auf allen teilnehmenden Simulationsrechnern ausgeführt, sodass im Anschluss an diese Berechnungsphase jeder Simulationsrechner darüber Kenntnis hat, wie viele Peers er an wen abgeben muss. Aus dieser Information, nämlich wie viele Peer-Einrichtungen abgegeben bzw. aufgenommen werden sollen, um eine Optimierung der Auslastung aller Simulationsrechner zu erreichen, wird geschlossen, wie viele und welche Nachrichten beispielsweise Peer-Migrationsnachrichten PM, welche Identifikationen von Peer-Einrichtungen enthält, die künftig bei dem Empfangssimulationsrechner verwaltet werden bzw. simuliert werden sollen bzw. der jeweilige Simulationsrechner empfangen bzw. senden muss, um die Migration und damit das dynamische Load Balancing zu beenden.After this the simulation computers of all other simulation computers can receive the start message SN, based on the for each Simulation computer present load, for example, after a mathematical methods, calculated as an optimal distribution the peer facilities are made on the simulation computer got to. It is determined which simulation computer peer devices or which simulation computer other peer devices need to record to improve overall computer performance of the networked simulation computer system. This calculation is preferably identical on all participating simulation computers executed so that after this calculation phase each simulation computer about that He knows how many peers he has to give to whom. From this Information, namely how many peer institutions should be submitted or accepted to optimize the utilization of all simulation computers, is closed, how many and which messages, for example, peer migration messages PM, which contains identifications of peer devices, the future be managed or simulated at the receiving simulation computer should be received or the respective simulation computer or must send to the migration and thus the dynamic load balancing to end.
Dabei kann entweder der Fall auftreten, dass nur ein Rechner Peer-Einrichtungen abgeben muss oder aber der Fall, dass mehrere K-Rechner dies tun müssen. In einer Variante des Verfahrens wird daher zunächst das zeitliche Optimum OPT für die Abarbeitung der letzten z Simulationsschritte bestimmt: This can either be the case that only one computer must submit peer devices or the case that several K-computers have to do this. In a variant of the method, therefore, the temporal optimum OPT for the execution of the last z simulation steps is first determined:
Dabei steht mk für die gemessene Zeit des Simulationsrechners LPk. Der Parameter n bezeichnet die Anzahl der an der Simulation beteiligten Simulationsrechner.Here, m k stands for the measured time of the simulation computer LPk. The parameter n denotes the number of simulation computers involved in the simulation.
Anhand dieses optimalen Wertes OPT kann für jeden Simulationsrechner bestimmt werden, ob er schlechter oder besser als das berechnete Optimum OPT ist und wie viel Zeit er prozentual schlechter oder besser werden muss, um es zu erreichen. Es wird ein Tupel P(mk, OPT) definiert, welches diesem prozentualen Anteil entspricht. Dabei wird unterschieden, ob der gemessene Wert eines Simulationsrechners mk über oder unter dem Optimum OPT liegt. Dies lässt sich darstellen als: mk entspricht dabei einer realen Zeit und nicht der jeweiligen Lokalzeit, welche in Lokalzeitschritten berechnet wird. Je nach dem welche Bedingung aus Gleichung 2 auftritt, werden die Simulationsrechner in zwei Klassen unterteilt: in Peer- abgebende, Abgaberechnereinrichtungen und in Peer-aufnehmende Aufnahmerechnereinrichtungen.On the basis of this optimal value OPT it can be determined for each simulation computer whether it is worse or better than the calculated optimum OPT and how much time it has to be getting worse or better in percentage terms in order to achieve it. A tuple P (m k , OPT) is defined which corresponds to this percentage. It is distinguished whether the measured value of a simulation computer m k is above or below the optimum OPT. This can be represented as: m k corresponds to a real time and not the respective local time, which is calculated in local time steps. Depending on which condition of Equation 2 occurs, the simulation calculators are divided into two classes: peer-dispensers, dispenser computers, and peer-to-host recording computers.
Nachdem festgelegt wurde, welcher Simulationsrechner prozentual schneller oder langsamer werden muss, wird mit Hilfe eines Greedy-Verfahrens bestimmt, wie das Abgeben oder Aufnehmen von Peer-Einrichtungen bzw. die Zuordnung oder Abordnung von Peer-Einrichtungen vorgenommen wird. Unter einem Greedy-Verfahren versteht man ein Verfahren, das in jedem Verfahrensschritt diejenige Entscheidung trifft, die momentan aktuell am besten ist. Dadurch wird immer ein zeitlich lokales Optimum gewählt, was zwar bedeutet, dass die Gesamtlösung nicht immer vollständig optimal ist. Allerdings nähert sich das Greedy-Verfahren meist gut an ein globales Optimum an.After this was determined, which simulation computer percentage faster or slowing down, using a greedy procedure determines how to submit or record peer facilities or the assignment or delegation of peer facilities made becomes. Under a greedy procedure one understands a process that in each process step the one Make the decision that is currently the best. Thereby always a temporally local optimum is chosen, which means that the total solution not always complete optimal. However, approaching the greedy method usually looks good on a global optimum.
Im folgenden Beispiel werden vier Simulationsrechner LP1, LP2, LP3, LP4, LP5 betrachtet. Dabei wird angenommen, dass der Simulationsrechner LP1 20% und der Simulationsrechner LP2 80% seiner Last abgeben soll. Der Simulationsrechner LP3 muss 20%, der Simulationsrechner LP4 50% und der Simulationsrechner LP5 muss 30% aufnehmen. Durch das Greedy-Verfahren werden zunächst die Peer-Einrichtungen, welche dem Rechner LP1 zugeordnet sind, auf den Rechner LP3 migriert. Die Rechner LP4 und LP5 nehmen die Peer-Einrichtungen von Rechner LP2 auf. Sofern kein Greedy-Verfahren durchgeführt wird, wäre es möglich, dass beispielsweise der Simulationsrechner LP1 seine zugeordneten Peer-Einrichtungen an zwei andere Simulationsrechner migriert. Der Vorteil des Greedy-Verfahrens besteht unter anderem darin, dass ein Minimum an Nachrichten ausgetauscht werden muss, um die gesamte Migration durchzuführen.in the following example, four simulation computers LP1, LP2, LP3, LP4, LP5 considered. It is assumed that the simulation computer LP1 20% and the simulation computer LP2 should deliver 80% of its load. The simulation computer LP3 must have 20%, the simulation computer LP4 50% and the simulation computer LP5 must record 30%. By the Greedy procedures are first the peer devices associated with the computer LP1, migrated to the computer LP3. The computers LP4 and LP5 take the peer facilities from calculator LP2. If no greedy procedure is carried out, would it be possible that For example, the simulation computer LP1 its associated peer devices migrated to two other simulation computers. The advantage of the greedy procedure Among other things, it consists in exchanging a minimum of messages must be in order to perform the entire migration.
Nachdem festgelegt wurde, von welchen Simulationsrechnern zu welchen Simulationsrechnern die Migration, also Umordnung von Peer-Einrichtungen durchzuführen ist, wählt jeder Simulationsrechner der Peer-Einrichtungen abgeben muss, diese aus. Dazu wird in einem ersten Schritt die Anzahl von abzuarbeitenden Ereignisinstruktionen berechnet, die abgegeben werden müssen. Dazu wird die Differenz zwischen der eigenen gemesse nen Zeit mk und dem zeitlichen Optimum OPT berechnet. Diese Differenz wird durch die durchschnittliche Ereignisinstruktionsabarbeitungszeit während der letzen z Simulationsschritte geteilt, wobei sich die durchschnittliche Ereignisinstruktionsabarbeitungszeit aus der gemessenen Zeit mk und der Anzahl von abgearbeiteten Ereignisinstruktionen ek ergibt. Alle Simulationsrechner führen dieselben Berechnungen durch, sodass jeder Simulationsrechner Kenntnis darüber hat, ob Peers zu migrieren sind und ob die erforderlichen Parameter dazu lokal zur Verfügung stehen.After it has been determined from which simulation computers to which simulation computers the migration, ie reorganization of peer devices is to be performed, each simulation computer must submit the peer devices, these must. For this purpose, in a first step, the number of event instructions to be processed is calculated, which must be submitted. For this purpose, the difference between the own measured time m k and the temporal optimum OPT is calculated. This difference is divided by the average event instruction execution time during the last z simulation steps, the average event instruction execution time being the measured time m k and the number of processed event instructions e k . All simulation computers perform the same calculations so that each simulation computer has knowledge of whether peers are to be migrated and whether the required parameters are locally available.
Die Anzahl der abzugebenden Ereignisinstruktionen ergibt sich somit zu: The number of event instructions to be released thus results in:
Aufgrund
der Anzahl der abzugebenden Ereignisinstruktionen e ist der jeweilige
Simulationsrechner nun in der Lage, die zu migrierenden Peer-Einrichtungen
auszuwählen.
Dazu wird vorzugsweise eine Kommunikationstabelle von jedem Simulationsrechner
gebildet und verwaltet, in der die Kommunikationshäufigkeiten zwischen
den simulierten Peer-Einrichtungen protokolliert sind. Eine beispielhafte
Kommunikationstabelle ist in der
Vorzugsweise
werden also diejenigen Peer-Einrichtungen zu Simulationsrechnern
migriert, die eine besonders hohe Kommuni kationshäufigkeit
mit Peer-Einrichtungen haben, die dem Migrationsziel-Simulationsrechner
zugewiesen sind. Ausgehend von der beispielhaften Kommunikationstabelle
KT in
Jeder Simulationsrechner hat somit die notwendigen Berechnungen ausgeführt und in Abhängigkeit von den Kommunikationshäufigkeiten die Peer-Einrichtungen ausgewählt, welche er migrieren möchte. Sobald feststeht, welche Peer-Einrichtungen an einen anderen Simulationsrechner übertragen werden sollen, werden entsprechende Nachrichten ausgetauscht. Dies sind Peer-Migrationsnachrichten (PM: PeerMigrationMessage) und Peer-Zuordnungsaktualisierungsnachrichten (PMU: PeerMapUpdateMessage). Die PM-Nachricht enthält die Identifikationen der Peer-Einrichtung, welche zukünftig von dem die PM-Nachricht empfangenen Simulationsrechner simuliert werden sollen bzw. diesem zugeordnet sein sollen. Die PMU-Nachricht dient der Aktualisierung insbesondere der Eventqueue des Simulationsrechners, an den die Peer-Einrichtungen übertragen werden. Der Abgabe-Simulationsrechner muss die zur zukünftigen Abarbeitung vorgesehenen Ereignisinstruktionen, die sich auf Peer-Einrichtungen beziehen, die migriert werden, dem Annahme-Simulationsrechner übertragen. Dies erfolgt durch die PMU-Nachrichten. Die Anzahl der jeweiligen Nachrichten sind für jeden Rechner bekannt, da dieselben Berechnungen und Bewer tungen für die neue Zuordnung der Peer-Einrichtungen auf allen Simulationsrechnern gleich erfolgt sind.Everyone Simulation computer has thus performed the necessary calculations and in dependence of the communication frequencies the peer facilities selected, which he wants to migrate. As soon as it is clear which peer devices transfer to another simulation computer be replaced, corresponding messages are exchanged. This are Peer Migration Messages (PM: PeerMigrationMessage) and Peer Map Update Messages (PMU: PeerMapUpdateMessage). The PM message contains the identifications the peer facility, which in the future from which simulates the PM-message received simulation computer should or should be assigned to this. The PMU message the update serves in particular the event queue of the simulation computer, to which the peer devices transmit become. The levy simulation calculator must be the one to the future Processing provided event instructions, focusing on peer facilities refer to, which are migrated, transferred to the assumption simulation computer. This is done by the PMU messages. The number of messages are known for each computer since the same calculations and evaluations for the new assignment of peer facilities are the same on all simulation computers.
Um die Anzahl der benötigten Nachrichten festzustellen, wird im letzten Schritt der Migration ein jeweiliger Simulationsrechner prüfen, ob er ein Annahme- oder Abgabe-Rechner ist. Ein Simulationsrechner ist ein Abgaberechner oder Sender, wenn von ihm Peer-Einrichtungen zu einem anderen Simulationsrechner migriert werden. Er wird als Empfänger bezeichnet, wenn er zusätzliche Peer-Einrichtungen zugewiesen bekommt, also Migrationsobjekte empfängt oder überhaupt nicht an der Migration, also der Neuzuordnung der Peer-Einrichtungen auf die Simulationsrechner beteiligt ist. Ferner erfolgt eine Aktualisierung einer Tabelle der Namensauflösung, also die Zuordnungstabelle, welche die Neugruppierung der Peer-Einrichtungen zu den Simulationsrechnern dokumentiert.Around the number of needed Detecting messages is the last step of the migration a respective simulation calculator check whether he has an acceptance or Dispensing Calculator is. A simulation calculator is a dispensing calculator or sender, if it has peer facilities to another simulation computer be migrated. He is called a receiver if he has additional Assigned to peer devices, so receives migration objects or at all not at the migration, thus the new allocation of the Peer mechanisms involved in the simulation computer. Furthermore, an update takes place a table of name resolution, Thus, the allocation table, which the regrouping of the peer facilities too documented on the simulation computers.
Jeder
Rechner empfängt
bei einer Migration mindestens eine PMU-Nachricht, da für jede PMU-Nachricht
ein Simulationsrechner jedem anderen Rechner eine PMU-Nachricht
sendet. Mit Hilfe der folgenden Gleichungen kann für jeden
mit k indizierten Simulationsrechner bestimmt werden, welche Nachrichten
MSG bzw. welche Nachrichtentypen, also PM oder PMU er empfangen
muss, um die Migration erfolgreich abzuschließen. Ist der k-te Simulationsrechner
ein Empfänger,
bestimmt sich die Anzahl der Nachrichten bzw. Nachrichtentypen,
die er empfangen muss, als:
In
der
In
der Tabelle der
In
der
Durch die Migration ist es möglich, die Last auf die beteiligten Simulationsrechner gleichmäßig und dynamisch zu verteilen. Durch die Überprüfung, ob ein Überschreiten der Migrationsschwelle vorliegt, erfolgt nur dann ein Load-Balancing, also eine Umsortierung oder eine Umzuordnung der Peer-Einrichtungen auf die Simulationsrechner, wenn dies wirklich notwendig ist. Dies ergibt sich zum Beispiel durch die Messung bzw. Zählung der empfangenen Null-Nachrichten. Für die Migrationsentscheidung sind daher nur lokale Informationen bei den Simulationsrechnern notwendig, ohne dass der Gesamtzustand des Systems aus allen Simulationsrechnern und den jeweiligen Rechnerzuständen geprüft werden muss. Bei der Migration werden zudem keinerlei weitere Informationen abgesehen von dem Lastfaktor von jedem Simulationsrechner ausgetauscht. Die Entscheidung, wie migriert wird, kann lokal auf jedem Simulationsrechner getroffen werden. Anhand der empfangenen Nachrichten kann zudem jeder Simulationsrechner feststellen, dass die Migrationsvorgänge abgeschlossen sind, so dass die Simulation weitergeführt werden kann.By the migration is it possible the load on the involved simulation computers evenly and distribute dynamically. By checking if passing the migration threshold is present, then only a load-balancing, ie a Resorting or reassignment of the peer facilities to the Simulation calculator, if this is really necessary. This results for example, by measuring or counting the received null messages. For the Migration decision are therefore only local information at the Simulation computers necessary without affecting the overall state of the system be checked from all simulation computers and the respective computer states got to. The migration does not provide any further information replaced by the load factor of each simulation computer. The decision as to how to migrate can be made locally on each simulation computer to be hit. In addition, based on the received messages Each simulation calculator will find that the migration operations have completed so that the simulation can continue.
Obwohl die vorliegende Erfindung anhand bevorzugter Ausführungsbeispiele näher erläutert wurde, ist sie nicht darauf beschränkt, sondern vielfältig modifizierbar. Insbesondere ist die Anzahl der Simulationsrechner beliebig wählbar. Es können auch andere als die hier genannten Peer-to-Peer-Kommunikationsprotokolle den jeweiligen Simulationen zugrunde gelegt werden. Neben einem Nachrichtenaustausch über das In ternet sind auch weitere Kommunikationsnetze denkbar. Für den Nachrichtenaustausch zwischen Peer-Einrichtungen und dem Austausch von Ereignis-Nachrichten zwischen Simulationsrechnern können unterschiedliche Kommunikationsmedien verwendet werden.Even though the present invention with reference to preferred embodiments has been explained in more detail is not limited to but diverse modifiable. In particular, the number of simulation computers arbitrary. It can also other than the here mentioned peer-to-peer communication protocols the respective Based on simulations. In addition to an exchange of information about the In ternet, other communication networks are conceivable. For the message exchange between peer facilities and the exchange of event messages between simulation computers different communication media are used.
Claims (29)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102007024900A DE102007024900B4 (en) | 2007-05-29 | 2007-05-29 | Method for synchronizing independent computer devices for simulating peer-to-peer networks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102007024900A DE102007024900B4 (en) | 2007-05-29 | 2007-05-29 | Method for synchronizing independent computer devices for simulating peer-to-peer networks |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102007024900A1 DE102007024900A1 (en) | 2008-12-04 |
DE102007024900B4 true DE102007024900B4 (en) | 2010-02-04 |
Family
ID=39917244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102007024900A Expired - Fee Related DE102007024900B4 (en) | 2007-05-29 | 2007-05-29 | Method for synchronizing independent computer devices for simulating peer-to-peer networks |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102007024900B4 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016223540A1 (en) | 2016-11-28 | 2018-05-30 | Audi Ag | Method for implementing a predetermined AUTOSAR communication structure in a control unit of a motor vehicle and motor vehicle control unit and motor vehicle |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003069467A1 (en) * | 2002-02-13 | 2003-08-21 | Horizon, A Glimpse Of Tomorrow, Inc. | Distributed execution system |
-
2007
- 2007-05-29 DE DE102007024900A patent/DE102007024900B4/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003069467A1 (en) * | 2002-02-13 | 2003-08-21 | Horizon, A Glimpse Of Tomorrow, Inc. | Distributed execution system |
Non-Patent Citations (1)
Title |
---|
Herrlich, Marc: Simulation eines schema-basierten Super-Peer-Netzwerkes. Bachelorarbeit, Universität Hannover, Institut für Informationssysteme, Oktober 2003 * |
Also Published As
Publication number | Publication date |
---|---|
DE102007024900A1 (en) | 2008-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60108166T2 (en) | SUB-GROUP MULTICASTING IN A COMMUNICATION NETWORK | |
DE60122622T2 (en) | Dynamic proxy server device | |
DE112011103497T5 (en) | Information processing system, information processing device, load balancing method, database provisioning scheduling method, and load balancing connection distribution program in a distributed database | |
DE60204581T2 (en) | A method for optimizing the distribution of a service from one source to multiple service recipients in a network | |
DE60132360T2 (en) | MANAGING NETWORK TRANSPORT BY APPLYING A HASH FUNCTION | |
WO2006040139A1 (en) | Serverless replication of databases | |
WO2020108998A1 (en) | Distributor node, automation network and method for transmitting telegrams | |
DE102007024900B4 (en) | Method for synchronizing independent computer devices for simulating peer-to-peer networks | |
DE102006054090A1 (en) | Method for executing a service in a decentralized data network | |
EP2503760B1 (en) | Method for setting up a communication network comprising devices of an automation assembly | |
EP4073963A1 (en) | Method for optimising the time synchronisation between network devices connected via a communications network | |
EP3172869B1 (en) | Method for reproducing delays in networks and corresponding gateway | |
DE102019206923B3 (en) | Method for running an application on a distributed system architecture | |
DE102021210935B3 (en) | Method for determining a master clock in a communication network | |
EP1754128A1 (en) | Decentralized time interval synchronization in distributed networks | |
DE10104926B4 (en) | Method for the parallel simulation of mobile networks | |
WO2004038970A1 (en) | Method for the synchronisation of subscribers of a network | |
WO2014060272A1 (en) | Rest bus simulation of a flexray communication network | |
DE102019219413A1 (en) | Method for time-synchronized status and / or data acquisition in part software processes that are part of a software process and are executed on spatially separated computer systems | |
WO2024017947A2 (en) | Synchronized data network system, and method for initializing and synchronizing same | |
DE102008026373B4 (en) | Method, apparatus and system for providing data in a peer-to-peer network | |
WO2008012301A2 (en) | Method for executing a service in a local data network | |
DE102012214500B4 (en) | State-based planning, protection and management of resources of a data network structure | |
DE102022204721A1 (en) | Method for providing a distribution mechanism | |
CN118158229A (en) | Time delay sensitive federal learning central node election method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |