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 PDF

Info

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
Application number
DE102007024900A
Other languages
German (de)
Other versions
DE102007024900A1 (en
Inventor
Christoph Gerdes
Peter Hessheimer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102007024900A priority Critical patent/DE102007024900B4/en
Publication of DE102007024900A1 publication Critical patent/DE102007024900A1/en
Application granted granted Critical
Publication of DE102007024900B4 publication Critical patent/DE102007024900B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers 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.

Figure 00000001
Figure 00000001

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 1 ist beispielhaft ein Peer-to-Peer-Netzwerk P2P dargestellt. Die Peer-Einrichtung P1–P6, beispielsweise PCs, die mit einer entsprechenden Peer-to-Peer-Software ausgestattet sind, werden an das Internet IN gekoppelt. Beim Peer-to-Peer-Netzwerk ist es möglich, dass jede Peer-Einrichtung mit den übrigen über die Netzwerkinfrastruktur, in dem in 1 dargestellten Fall, dem Internet IN, kommunizieren können. Dies ist in der 1 durch die Pfeile K für die Peer-Einrichtung P5 angedeutet.In the 1 For example, a peer-to-peer network P2P is shown. The peer device P1-P6, for example PCs, which are equipped with a corresponding peer-to-peer software, are coupled to the Internet IN. In the peer-to-peer network, it is possible for each peer device to communicate with the rest via the network infrastructure in which 1 illustrated case, the Internet IN. This is in the 1 indicated by the arrows K for the peer device P5.

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 WO 03/069467 A1 ist ein Verfahren zur Simulation in einem Peer-to-Peer-Netzwerk bekannt, bei dem einzelne Peer-Knoten miteinander kommunizieren und bei dem die Kommunikation der Peer-Knoten untereinander in einer synchronisierten Weise erfolgt. Die Synchronisation wird dabei durch einen Zeitserver vorgenommen. Gegenstand des Simulationsverfahrens gemäß dieser Offenbarung ist jedoch ein Spiel mit mehreren Teilnehmern, nicht jedoch eine Simulation eines eigentlichen Peer-to-Peer-Netzwerks.From the WO 03/069467 A1 For example, a method for simulating peer-to-peer networks is known in which individual peer nodes communicate with one another and in which the peer nodes communicate with each other in a synchronized manner. The synchronization is done by a time server. The object of the simulation method according to this disclosure, however, is a game with multiple participants, but not a simulation of an actual peer-to-peer network.

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.
Preferably, the following process steps are carried out:
  • 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:

1: eine schematische Darstellung eines Peer-to-Peer-Netzwerkes; 1 : a schematic representation of a peer-to-peer network;

2: miteinander vernetzte Rechnereinrichtungen zur Simulation eines Peer-to-Peer-Netzwerkes; 2 : networked computing devices to simulate a peer-to-peer network;

3: mögliche Zeitabläufe und Zeitskalen mehrerer Rechnereinrichtungen zur Simulation eines Peer-to-Peer-Netzwerkes; 3 : possible time sequences and time scales of several computer devices for simulating a peer-to-peer network;

4: mögliche Zeitabläufe und Zeitskalen mehrerer Rechnereinrichtungen zur Simulation eines Peer-to-Peer-Netzwerkes; 4 : possible time sequences and time scales of several computer devices for simulating a peer-to-peer network;

5: Rechnereinrichtungen mit beispielhaften Synchronisationstabellen; 5 : Computing devices with exemplary synchronization tables;

6: einen Nachrichtenaustausch zur Aktualisierung einer Synchronisationstabelle; 6 : a message exchange for updating a synchronization table;

7: einen Austausch von Null-Nachrichten bei Erreichen einer Simulationsgrenze; 7 : an exchange of null messages upon reaching a simulation limit;

8: ein Ablaufdiagramm für einen möglichen Migrationsvorgang; 8th : a flowchart for a possible migration process;

9: eine Kommunikationstabelle; 9 a communication table;

10: ein Nachrichtenaustausch während eines ersten beispielhaften Migrationsvorgangs; und 10 a message exchange during a first exemplary migration process; and

11: ein Nachrichtenaustausch während eines zweiten beispielhaften Migrationsvorgangs. 11 a message exchange during a second exemplary migration process.

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 2 ist zunächst ein Peer-to-Peer-Netzwerk P2P dargestellt, das aus Peer-Einrichtungen P1–P8 aufgebaut ist. Die Peer-Einrichtungen können beispielsweise über das Internet und im Rahmen eines geeigneten Peer-to-Peer-Protokolls wie Chord miteinander kommunizieren. Ferner sind mehrere Rechnereinrichtungen als Simulationsrechner LP1, LP2, LP3 vorgesehen, die eine Simulation des Peer-to-Peer-Netzwerkes P2P vollziehen. Dazu sind die Peer-Einrichtungen P1–P8 zunächst Gruppen zugewiesen, wobei beispielhaft die Peer-Einrichtungen P1, P2, P3 eine erste Gruppe G1 bilden, die Peer-Einrichtungen P4, P5, P6 eine zweite Gruppe G2 bilden und die Peer-Einrichtungen P7, P8 eine dritte Gruppe G3 bilden. Jeder Rechnereinrichtung bzw. jedem Simulationsrechner LP1, LP2, LP3 wird eine Gruppe von Peer-Einrichtungen G1, G2, G3 zugeordnet.In the 2 First, a peer-to-peer network P2P is shown, which is composed of peer devices P1-P8. The peer devices can communicate with each other, for example, over the Internet and within the framework of a suitable peer-to-peer protocol such as Chord. Furthermore, a plurality of computer devices are provided as simulation computers LP1, LP2, LP3, which perform a simulation of the peer-to-peer network P2P. For this purpose, the peer devices P1-P8 are first assigned to groups, wherein, for example, the peer devices P1, P2, P3 form a first group G1, the peer devices P4, P5, P6 form a second group G2 and the peer devices P7 , P8 form a third group G3. Each computer device or each simulation computer LP1, LP2, LP3 is assigned a group of peer devices G1, G2, G3.

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 3 sind beispielsweise die lokalen Zeiten der Simulationsrechner LP1, LP2, LP3 dargestellt. Links ist eine Realzeit RT angedeutet. Dem Simulationsrechner LP1 sind die Peer-Einrichtungen P1, P2, P3 zugeordnet, dem Simulationsrechner LP2 die Peer-Einrichtungen P4, P5, P6 und dem Simulationsrechner LP3 die Peer-Einrichtungen P7 und P8.In the 3 For example, the local times of the simulation computer LP1, LP2, LP3 are shown. Left is a real time RT indicated. The simulation computer LP1, the peer devices P1, P2, P3 are assigned to the simulation computer LP2, the peer devices P4, P5, P6 and the simulation computer LP3, the peer devices P7 and P8.

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 3 angedeutet ist, gegenüber der Lokalzeit LVT1 des ersten Simulationsrechners LP1 real langsamer abläuft. Dies kann seine Ursache darin haben, dass der Simulationsrechner LP1 eine geringere Rechenleistung hat. Der Simulationsrechner LP3 hat ebenso seine lokale Zeit LVT3.The simulation computer LP1 executes simulation steps 1-9 in local time steps which form a local time (LVT1). In these local time steps, the simulation is performed for the peer devices assigned to the simulation computer LP1. Similarly, the second simulation computer LP2 has its own local time LVT2, as in the 3 is indicated, compared to the local time LVT1 of the first simulation computer LP1 runs real slower. This may be due to the fact that the simulation computer LP1 has a lower computing power. The simulation computer LP3 also has its local time LVT3.

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 4 ist ein Aspekt des erfindungsgemäßen Verfahrens zum Synchronisieren der Simulationsrechner dargestellt. Es wird dabei davon ausgegangen, dass beim Übertragen einer Nachricht von einer Peer-Einrichtung zu einer zweiten Peer-Einrichtung eine gewisse Verzögerungszeit verstreicht. Es wird damit jeder Peer-Einrichtung ein sogenannter Link zugeordnet, mittels dessen Verzögerungen durch die Nachrichten übertragung zwischen einzelnen Peers berücksichtigt werden. Im einfachsten Fall ist die Verzögerung zwischen allen Peers gleich.In the 4 an aspect of the method according to the invention for synchronizing the simulation computer is shown. It is assumed that when transferring a message from a peer device to a second peer device a certain delay time elapses. It is thus assigned to each peer device a so-called link, by means of which delays are taken into account by the message transfer between individual peers. In the simplest case, the delay between all peers is the same.

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 4 sind wiederum die Ereignisse aufgegriffen, welche in der 3 dargestellt waren. D. h., eine Nachricht vom Peer P3 zum Peer P4 zum Simulationszeitpunkt 3 und eine Nachricht vom Peer P2 zum Peer P7 zum Simulationszeit punkt 5. Dem Peer P7 wurde beispielsweise eine Verzögerungszeit oder ein Delay von D7 = 6 Simulationsschritten zugeordnet. D. h., gemäß der globalen Ereignisliste sendet die Rechnereinrichtung bzw. der Simulationsrechner LVT1 eine Ereignisnachricht EN2 [LVT1 = 5, IDP7, E2] an den Simulationsrechner LP3. Der Simulationsrechner LP3 wertet diese Ereignisnachricht aus und sieht eine Abarbeitung der Ereignisinstruktion E2 zur Simulationszeit LVT1 + D7 = 11 vor. Durch die Berücksichtigung der Nachrichtenlaufzeit zwischen dem Peer P2 und dem Peer P7 in Form des Delays bzw. der Verzögerungszeit D7 = 6 ist eine konsistente kausale Abarbeitung der Ereignisinstruktion E2 auf dem Simulationsrechner LP3 möglich.In the 4 In turn, the events are taken up, which in the 3 were shown. That is, a message from the peer P3 to the peer P4 at the simulation time point 3 and a message from the peer P2 to the peer P7 at the simulation time point 5. The peer P7, for example, a delay time or a delay of D7 = 6 simulation steps assigned. That is, according to the global event list, the computer device or the simulation computer LVT1 sends an event message EN2 [LVT1 = 5, IDP7, E2] to the simulation computer LP3. The simulation computer LP3 evaluates this event message and provides for a processing of the event instruction E2 at the simulation time LVT1 + D7 = 11. By taking into account the message transit time between the peer P2 and the peer P7 in the form of the delay or the delay time D7 = 6, a consistent causal processing of the event instruction E2 on the simulation computer LP3 is possible.

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 5 sind wiederum mehrere miteinander vernetzte Simulationsrechner LP1, LP2, LP3 dargestellt. In der 5 ist eine schematische Darstellung in Form der Kopplung an einen Datenbus IN zur Illustration der Vernetzung dargestellt.In an extension of the method lists are further designed with the respective delays or delays of the peer devices and tables are generated, based on which a so-called synchronization limit for each simulation computer can be determined. In the 5 In turn, a plurality of mutually networked simulation computer LP1, LP2, LP3 are shown. In the 5 is a schematic representation in the form of the coupling to a data bus IN to illustrate the networking shown.

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 6 ist z. B. das Versenden einer Ereignisnachricht EN [LVT1', IDP3, Ei] von dem Simulationsrechner LP1 zum Simulationsrechner LP2 dargestellt. Anhand der empfangenen Ereignisnachricht EN kann der Rechner LP2 seine zugeordnete Synchronisationstabelle ST2' aktualisieren, denn die Nachricht weist den Zeitstempel bzw. die aktuelle Lokalzeit LVT1' des ersten Simulationsrechners LP1 auf. Somit wird in der Synchronisationstabelle ST2' der Wert von LVT1' für den Simulationsrechner LP1 eingetragen, sodass die Simulationsgrenze SG2', für den die Ereignisnachricht EN empfangenden Simulationsrechner LP2' aktualisiert wird. Die Aktualisierung findet synchron zur Simulation statt. Da mit jedem Lokalzeitschritt die empfangenen Ereignisnachrichten bzw. die damit übermittelten Ereignisinstruktionen abgearbeitet werden, bezieht sich durch die Aktualisierung beim Ereignisnachrichtenempfang das Minimum der Synchronisationsgrenze SG2' immer auf die aktuellen Zeitstempel bzw. aktuellen Lokalzeiten aller beteiligten Simulationsrechner. Es ist damit sichergestellt, dass keine Ereignisnachricht eintrifft, deren Sendezeitstempel, also Lokalzeit des Sende-Simulationsrechners LP1, geringer ist als der einer vorherigen Ereignisnachricht desselben Rechners. Es wird daher garantiert, dass keine Zeitschritte simuliert werden, zu denen noch weitere Ereignisinstruktionen abgearbeitet werden könnten.In the 6 is z. For example, the sending of an event message EN [LVT1 ', IDP3, Ei] from the simulation computer LP1 to the simulation computer LP2 is shown. On the basis of the received event message EN, the computer LP2 can update its assigned synchronization table ST2 'because the message has the time stamp or the current local time LVT1' of the first simulation computer LP1. Thus, in the synchronization table ST2 'the value of LVT1' is entered for the simulation computer LP1, so that the simulation limit SG2 'for which the event message EN receiving simulation computer LP2' is updated. The update takes place synchronously with the simulation. Since the received event messages or the event instructions transmitted with them are processed with each local time step, the update of the event message reception always relates the minimum of the synchronization limit SG2 'to the current time stamps or current local times of all simulation computers involved. This ensures that no event message arrives whose transmission time stamp, ie local time of the transmission simulation computer LP1, is lower than that of a previous event message of the same computer. It is therefore guaranteed that no time steps are simulated, for which further event instructions could be processed.

Bei einem weiteren möglichen Fall ist es möglich, dass ein Simulationsrechner seine Synchronisationsgrenze erreicht. Dies ist in der 7 schematisch dargestellt. Der Simula tionsrechner LP1 erreicht zu seiner Lokalzeit LVT1 seine bestimmte Synchronisationsgrenze SG1. In diesem Fall hält der Simulationsrechner LP1 die weitere Abarbeitung an und sendet eine sogenannte Null-Nachricht NN an denjenigen Rechner, der das Minimum, also die kleinste Lokalzeit der in der Synchronisationstabelle ST1 eingetragenen Simulationsrechner LP2, LP3 darstellt. Falls mehrere Rechner dieselbe minimale Lokalzeit bilden, sendet der an seine Synchronisationsgrenze stoßende Rechner an alle diese Simulationsrechner eine Null-Nachricht NN. Die Null-Nachricht NN [LVT1 = SG1, _, _] enthält den aktuellen Zeitstempel, also die Lokalzeit des die Null-Nachricht NN sendenden Simulationsrechners LP1. Jeder Rechner, der eine solche Null-Nachricht NN enthält, antwortet mit einer Antwortnachricht R, die einen Zeitstempel verringert um 1 entspricht. D. h., für den Fall, der in der 7 dargestellt ist, sendet der Simulationsrechner LP2 eine Antwortnachricht R [LVT2 – 1, _, _] an den Simulationsrechner LP1, welcher die Null-Nachricht NN geschickt hat. Der Simulationsrechner LP1 hat zum Zeitpunkt LVT1 = SG1 den Simulationsschritt LVT1 – 1 vollständig simuliert, d. h., alle für den Zeitpunkt LVT1 – 1 vorgesehenen Ereignisinstruktionen abgearbeitet. Der Simulationsrechner LP2, der für den Simulationsrechner LP1 das Minimum bildet, befindet sich demnach an seinem Lokalzeitpunkt LVT2 = LVT1 – MD1. Der Simulationsrechner LP2 hat damit den Simulationsschritt LVT1 – MD1 – 1 vollständig abgearbeitet.In another possible case, it is possible for a simulation computer to reach its synchronization limit. This is in the 7 shown schematically. The simulation computer LP1 reaches its specific synchronization limit SG1 at its local time LVT1. In this case, the simulation computer LP1 stops the further processing and sends a so-called zero message NN to that computer which determines the minimum, ie the smallest local time of the simulation entered in the synchronization table ST1 calculator LP2, LP3 represents. If several computers form the same minimum local time, the computer which encounters its synchronization limit sends a zero message NN to all these simulation computers. The null message NN [LVT1 = SG1, _, _] contains the current time stamp, ie the local time of the simulation computer LP1 sending the null message NN. Each computer containing such a null message NN responds with a response message R corresponding to a timestamp reduced by one. D. h., In the case, in the 7 is shown, the simulation computer LP2 sends a response message R [LVT2 - 1, _, _] to the simulation computer LP1, which has sent the null message NN. At the point in time LVT1 = SG1, the simulation computer LP1 has completely simulated the simulation step LVT1-1, ie, processed all event instructions intended for the point in time LVT1-1. The simulation computer LP2, which forms the minimum for the simulation computer LP1, is therefore located at its local time LVT2 = LVT1 - MD1. The simulation computer LP2 has thus completed the simulation step LVT1 - MD1 - 1 completely.

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 8 ist ein möglicher Verfahrensablauf diagrammatisch dargestellt. Die Simulation beginnt im Schritt S1, d. h. es werden simulationsschrittweise von den Simulationsrechnern die abzuarbeitenden Ereignisinstruktionen ausgeführt. Dabei wird im Schritt S2 bei jedem Simulationsschritt, wie bereits vorbeschrieben ist, die Simulationsgrenze SG aktualisiert, ferner wird die Anzahl der empfangenen Null-Nachrichten gezählt. Im Schritt S3 wird überprüft, ob die jeweilige Lokalzeit mit der Simulationsgrenze SG übereinstimmt. Falls dies der Fall ist, wird, wie bereits in 7 erläutert ist, eine Null-Nachricht im Schritt 84 gesendet. Durch die Anpassung der jeweiligen Lokalzeiten LVT erfolgt dann erneut die Aktualisierung der Synchronisationsgrenze im Schritt S2.In the 8th is a possible procedure shown diagrammatically. The simulation begins in step S1, ie, the simulation instructions execute the event instructions to be processed in a simulation step by step. In this case, in step S2 at each simulation step, as already described above is updated, the simulation limit SG, and the number of received zero messages is counted. In step S3, it is checked whether the respective local time coincides with the simulation limit SG. If this is the case, as in 7 is explained, sent a null message in step 84. By adapting the respective local times LVT, the synchronization limit is then updated again in step S2.

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:

Figure 00270001
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:
Figure 00270001

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:

Figure 00270002
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:
Figure 00270002
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:

Figure 00290001
The number of event instructions to be released thus results in:
Figure 00290001

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 9 dargestellt. Die Kommunikationstabelle KT führt in der ersten Spalte die Identifikationen oder Zeichnungen der Peer-Einrichtungen P1, P2, P3. In der zweiten, dritten und vierten Spalte ist die Anzahl der Nachrichtenereignisse abgelegt, die von den jeweiligen Peers P1, P2, P3 mit Peers erfolgten, die den Simulationsrechnern LP1, LP2, LP3 zugeordnet wurden. Die Peer-Einrichtung P2, welche durch die Identifikation IDP2 bezeichnet ist, hat während der bisherigen Simulation beispielsweise überdurchschnittlich viele Nachrichten mit Peer-Einrichtungen ausgetauscht, die dem Simulationsrechner LP2 zugeordnet sind.Due to the number of event instructions e to be delivered, the respective simulation computer is now able to select the peer devices to be migrated. For this purpose, a communication table is preferably formed and managed by each simulation computer, in which the communication frequencies between the simulated peer devices are logged. An exemplary communication table is in the 9 shown. The communication table KT leads in the first column the identifications or Drawings of peer devices P1, P2, P3. In the second, third and fourth column, the number of message events that were made by the respective peers P1, P2, P3 with peers that have been assigned to the simulation computers LP1, LP2, LP3 is stored. The peer device P2, which is designated by the identification IDP2, has exchanged, for example, an above-average number of messages during the previous simulation with peer devices which are assigned to the simulation computer LP2.

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 7 wäre es günstig, die Peer-Einrichtung IDP1 zum Simulationsrechner LP3 zu migrieren, die Peer-Einrichtung P2 zum Simulationsrechner LP2 und die Peer-Einrichtung P3 beim Simulationsrechner LP1 zu belassen. Dadurch werden Peer-Einrichtungen, die oft miteinander kommunizieren, auf demselben Simulationsrechner verwaltet. Dies hat zudem den Vorteil, dass die Netzlast reduziert wird, da kleinere oder im optimalen fall keine Nachrichten mehr zwischen den Simulationsrechnern über das Netzwerk geschickt werden müssen. Jedem Simulationsrechner ist somit bekannt, wie viele Ereignisinstruktionen bzw. Peer-Einrichtungen er migrieren muss. Dies ergibt sich aus dem Greedy-Verfahren zu: p = P(mk, OPT) – e. (Gl. 4) Preferably, therefore, those peer devices are migrated to simulation computers that have a particularly high communi cation frequency with peer devices that are assigned to the migration target simulation computer. Starting from the exemplary communication table KT in 7 it would be favorable to migrate the peer device IDP1 to the simulation computer LP3, to leave the peer device P2 to the simulation computer LP2 and the peer device P3 to the simulation computer LP1. As a result, peer devices, which often communicate with each other, are managed on the same simulation computer. This also has the advantage that the network load is reduced because smaller or, in the optimal case, no messages have to be sent between the simulation computers via the network. Each simulation computer is thus aware of how many event instructions or peer devices it has to migrate. This results from the greedy procedure to: p = P (m k , OPT) - e. (Equation 4)

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: MSG = PMUgesamt + PMkIN, (Gl. 5)wobei PMUgesamt für die Gesamtanzahl aller PMU-Nachrichten steht und PMkIN die Anzahl der PM-Nachrichten bezeichnet, die der k-te Simulationsrechner empfängt. Falls der k-te Simulationsrechner ein Sender ist, also Peer-Einrichtungen an andere Simulationsrechner abgibt, gilt: MSG = PMUgesamt – PMkOUT, (Gl. 6) wobei PMkOUT die Anzahl der PM-Nachrichten bezeichnet, die der k-te Simulationsrechner sendet.Each computer receives at least one PMU message during a migration since for each PMU message a simulation computer sends a PMU message to each other computer. With the aid of the following equations, it can be determined for each k-indexed simulation computer which messages MSG or which message types, ie PM or PMU, it has to receive in order to complete the migration successfully. If the kth simulation computer is a receiver, the number of messages or message types that it must receive is determined as: MSG = PMU total + PMkIN, (equation 5) wherein PMU is total for the total number of messages and PMU PMkIN denotes the number of PM messages received by the k-th simulation computer. If the k-th simulation computer is a transmitter, that is, delivers peer devices to other simulation computers, the following applies: MSG = PMU total - PMkOUT, (Gl. 6) where PMkOUT denotes the number of PM messages sent by the kth simulation computer.

In der 10A und 10B ist ein mögliches Migrationsszenario zwischen vier Simulationsrechner LP1, LP2, LP3, LP4 dargestellt. Die in der 10A dargestellte Tabelle führt die jeweils notwendigen PMU- und PM-Nachrichten sowie die Anzahl der insgesamt zu empfangenen Nachrichten für die Rechner LP1, LP2, LP3, LP4 auf. Ferner ist in der zweiten Spalte jeweils festgehalten, ob der jeweilige Simulationsrechner ein Sender oder Empfänger von Peer-Einrichtungen ist. In dem dargestellten Beispiel migriert der Simulationsrechner LP1 Objekte bzw. Peer-Einrichtungen zum Simulationsrechner LP3. D. h. es wird eine entsprechende PM-Nachricht vom Simulationsrechner LP1 zum Simulationsrechner LP3 gesendet. Dies ist in der 10B durch den durchgezogenen Pfeil PM verdeutlicht. Ferner wird durch die Migration eine Aktualisierung der jeweiligen Zuordnungsdaten, d. h. die Zuordnung der Peer-Einrichtungen auf die vier Simulationsrechner LP1 – LP4 notwendig. Daher wird jeweils eine PMU-Nachricht von dem Simulationsrechner LP1 an die Simulationsrechner LP2, LP3 und LP4 gesendet.In the 10A and 10B is a possible migration scenario between four simulation computers LP1, LP2, LP3, LP4 shown. The in the 10A The table shown lists the respectively required PMU and PM messages and the total number of messages to be received for the computers LP1, LP2, LP3, LP4. Furthermore, it is respectively recorded in the second column whether the respective simulation computer is a transmitter or receiver of peer devices. In the illustrated example, the simulation computer LP1 migrates objects or peer devices to the simulation computer LP3. Ie. A corresponding PM message is sent from the simulation computer LP1 to the simulation computer LP3. This is in the 10B indicated by the solid arrow PM. Furthermore, the migration necessitates an update of the respective assignment data, ie the assignment of the peer devices to the four simulation computers LP1-LP4. Therefore, a PMU message is sent from the simulation computer LP1 to the simulation computers LP2, LP3 and LP4, respectively.

In der Tabelle der 10A ist aufgelistet, welche Art von Nachrichten von den jeweiligen Simulationsrechner LP1–LP4 empfangen werden. Beispielsweise empfängt der Simulationsrechner LP1 keine Nachricht, da gemäß der Gleichung 6 sich Null ergibt. Die als Empfangssimulatorrechner LP2, LP3, LP4 fungierenden Simulationsrechner berechnen gemäß der Gleichung 5 die zu empfangenen Nachrichten. Sobald alle betrachteten Nachrichten empfangen wurden, ist der Migrationsschritt bzw. Migrationsvorgang beendet, so dass beispielsweise nach dem Schritt S10, welcher in der 8 dargestellt ist, erneut die Abarbeitung von Simulationsschritten und Ereignisinstruktionen angefangen vom Schritt S1 erfolgen kann.In the table of 10A is listed which type of messages are received by the respective simulation computer LP1-LP4. For example, the simulation calculator LP1 does not receive a message because, according to Equation 6, it results in zero. The simulation computers functioning as reception simulator computers LP2, LP3, LP4 calculate the messages to be received according to equation 5. As soon as all the messages under consideration have been received, the migration step or migration process has ended so that, for example, after step S10, which is described in FIG 8th again, the execution of simulation steps and event instructions can be performed starting from step S1.

In der 11 ist ein weiteres Beispiel für einen Migrationsvorgang dargestellt. In dem Beispiel migriert der Simula tionsrechner LP1 Peer-Einrichtungen zum Migrationsrechner LP2 und LP3. Der Simulationsrechner LP4 migriert Peer-Einrichtungen zu den Simulationsrechnern LP2 und LP3. Anhand der Gleichungen 5 und 6 ergeben sich die Nachrichtenzahlen, wie sie in der Tabelle der 11A dargestellt sind, für die einzelnen Simulationsrechner LP1–LP4. Der PMU- und PM-Nachrichtenaustausch zwischen den Simulationsrechnern LP1–LP4 ist in der 4B illustriert, wobei PM-Nachrichten mit durchgezogenen Pfeilen und PMU-Nachrichten mit gestrichelten Pfeilen dargestellt sind.In the 11 is another example of a migration process shown. In the example, the simulation computer LP1 migrates peer facilities to the migration calculator LP2 and LP3. The simulation computer LP4 migrates peer devices to the simulation computers LP2 and LP3. Equations 5 and 6 give the message numbers, as shown in the table of 11A are shown for the individual simulation computer LP1-LP4. The PMU and PM message exchange between the simulation computers LP1-LP4 is in the 4B illustrated with PM messages with solid arrows and PMU messages with dashed arrows.

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)

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 multiple independent computing devices (LPi), which event messages (EN) with a local time (LVTi) a respective transmitting computer device (LPi), with an identification (IDPj) of a peer device (Pi) and exchange with an event instruction (Ei) to simulate a peer-to-peer network (P2P), in which the peer devices (Pj) exchange messages with each other, wherein a respective computer device (LPi) is a group of peer devices (Pj) simulates and receives event instructions in local time steps processing, with the number of elapsed local time steps a local time (LVT) of the respective computer device (LPi) corresponds and processing an event instruction by one of the identification (IDPi) of the peer device (Pi) associated delay time (Di) takes place. Verfahren nach Anspruch 1, wobei die folgenden Verfahrensschritte durchgeführt werden: a) Zuordnen von einer oder mehreren Peer-Einrichtungen (Pj) als Gruppe (Gi) zu jeder Rechnereinrichtung (LPj); b) Zuordnen einer Anzahl von Lokalzeitschritten als Verzögerungszeit (Di) zu jeder Peer-Einrichtung (Pi); c) Senden von Ereignisnachrichten (EN) zwischen den Rechnereinrichtungen (LPi), wobei ein Nachrichtenaustausch zwischen Peer-Einrichtungen (Pi) in dem Peer-to-Peer-Netzwerk (P2P) einer Ereignisinstruktion zur Abarbeitung durch eine Rechnereinrichtung (LPi), welcher die jeweilige Empfangs-Peer-Einrichtung (Pi) zugeordnet ist, entspricht und die Identifikation (IDPi) in der Ereignisnachricht der Empfangs-Peer-Einrichtung entspricht; und d) Abarbeiten der von einer jeweiligen Rechnereinrichtung (LPi) empfangenen Ereignisinstruktionen in Lokalzeitschritten der Rechnereinrichtung (LPi), wobei eine jeweilige Ereignisinstruktion nach der der jeweiligen Empfangs-Peer-Einrichtung zugeordneten Verzögerungszeit (Di) von der Empfangs-Rechnereinrichtung (LPi) abgearbeitet wird.The method of claim 1, wherein the following steps are performed: a) assigning one or more peer devices (Pj) as a group (Gi) to each computer device (LPj); b) assigning a number of local time steps as delay time (Di) to each peer device (Pi); c) sending event messages (EN) between the computer devices (LPi), wherein a message exchange between peer devices (Pi) in the peer-to-peer network (P2P) an event instruction for processing by a computer device (LPi), which the respective receive peer device (Pi) is assigned, and corresponds to the identification (IDPi) in the event message of the receive peer device; and d) processing the event instructions received by a respective computer device (LPi) in local time steps of the computer device (LPi), wherein a respective event instruction is processed by the reception computer device (LPi) after the delay time (Di) associated with the respective receive peer device , Verfahren nach Anspruch 1 oder 2, wobei eine Ereignisliste von allen abzuarbeitenden Ereignisinstruktionen erzeugt wird, wobei die Ereignisnachrichten (EN) gemäß der Ereignisliste erzeugt und versendet werden.The method of claim 1 or 2, wherein an event list is generated by all to be processed event instructions, where the event messages (EN) according to the event list be generated and shipped. Verfahren nach einem der Ansprüche 1–3, wobei jede Peer-Einrichtung (Pi) einer Rechnereinrichtung (LPi) eindeutig zugeordnet wird und eine Zuordnungsliste erzeugt wird.Method according to one of claims 1-3, wherein each peer device (Pi) a computer device (LPi) is uniquely assigned and a Assignment list is generated. Verfahren nach einem der Ansprüche 1–4, wobei für jede Rechnereinrichtung (LPi) die geringste Verzögerungszeit (MDi) der der Rechnereinrichtung (LPi) zugeordneten Peer-Einrichtungen (LPi) bestimmt wird und eine Simulationsgrenze (SGi) in Abhängigkeit von der geringsten Verzögerungszeit (MDi) und der jeweiligen Lokalzeiten (LVTi) der übrigen Rechnereinrichtungen (LPi) bestimmt wird.Method according to one of claims 1-4, wherein for each computer device (LPi) the least delay time (MDi) of the computer device (LPi) associated peer devices (LPi) is determined and a simulation limit (SGi) depending from the least delay time (MDi) and the respective local times (LVTi) of the other computer facilities (LPi) is determined. Verfahren nach Anspruch 5, wobei die Simulationsgrenze (SGi) einer Recheneinrichtung (LPi) als das Minimum der Summen der geringsten Verzögerungszeit (MDi) der Rechnereinrichtung (Li) mit der Lokalzeit (LVTi) der jeweiligen anderen Rechnereinrichtungen (LPi) bestimmt wird.Method according to claim 5, wherein the simulation limit (SGi) of a computing device (LPi) as the minimum of the sums of the lowest delay time (MDi) of the computer device (Li) with the local time (LVTi) of the respective other computer equipment (LPi) is determined. Verfahren nach Anspruch 5 oder 6, wobei die jeweilige Simulationsgrenze (SGi) in Abhängigkeit von den durch die empfangenen Ereignisnachrichten (EN) übertragenen Lokalzeiten (LVTi) der jeweiligen Sende-Rechnereinrichtung (LPi) aktualisiert wird.The method of claim 5 or 6, wherein the respective Simulation limit (SGi) depending from those transmitted by the received event messages (EN) Local times (LVTi) of the respective transmitting computer device (LPi) is updated. Verfahren nach einem der Ansprüche 1–7, wobei für jede Rechnereinrichtung (LPi) eine Synchronisationstabelle (STi) mit den Lokalzeiten (LVTi) der anderen Rechnereinrichtungen (LPi) erzeugt wird.Method according to one of claims 1-7, wherein for each computer device (LPi) a synchronization table (STi) with the local times (LVTi) of the other computing devices (LPi) is generated. Verfahren nach Anspruch 8, wobei die Synchronisationstabelle (STi) in Abhängigkeit von den durch die empfangenen Ereignisnachrichten (EN) übertragenen Lokalzeiten (LVTi) der jeweiligen Senderecheneinrichtung (LPi) aktualisiert wird.The method of claim 8, wherein the synchronization table (STi) depending from those transmitted by the received event messages (EN) Local times (LVTi) of the respective transmitter device (LPi) updated becomes. Verfahren nach einem der Ansprüche 1–9, wobei eine empfangene Ereignisinstruktion (Ei) zu einer Ausführungslokalzeit der Empfangs-Rechnereinrichtung (LPi) abgearbeitet wird, die der Summe aus der Lokalzeit (LVTi) der Sende-Rechnereinrichtung (LPi) und der Verzögerung (Di) der Sende-Peer-Einrichtung entspricht.The method of any one of claims 1-9, wherein a received event instruction (Egg) at a runtime local time the receiving computer device (LPi) is processed, the Sum of the local time (LVTi) of the transmitting computer device (LPi) and the delay (Di) the send peer facility equivalent. Verfahren nach einem der Ansprüche 5–10, wobei geprüft wird, ob die Lokalzeit (LVTi) der jeweiligen Rechnereinrichtung (LPi) kleiner ist als die Simulationsgrenze (SGi) der Rechnereinrichtung (LPi).Method according to one of claims 5-10, wherein it is checked whether the local time (LVTi) of the respective computer device (LPi) is smaller than the simulation limit (SGi) of the computer device (LPI). Verfahren nach Anspruch 11, wobei die Abarbeitung von durch Ereignisnachrichten (EN) empfangenen Ereignisinstruktionen angehalten wird, wenn die Lokalzeit (LVTi) der jeweiligen Rechnereinrichtung (LPi) der Simulationsgrenze (SGi) entspricht, und es wird eine Null-Nachricht (NN) an die Rechnereinrichtung (LPi) gesendet, welche die niedrigste Lokalzeit (LVTi) in der Synchronisationstabelle (STi) der angehaltenen Rechnereinrichtung (LPi) aufweist.The method of claim 11, wherein the processing of event instructions received by event messages is stopped when the local time (LVTi) of the respective computer device (LPi) corresponds to the simulation limit (SGi), and it becomes a null message (NN) sent to the computer device (LPi), which is the lowest Local time (LVTi) in the synchronization table (STi) of the stopped Computer device (LPi) has. Verfahren nach Anspruch 12, wobei von der Rechnereinrichtung (LPi), welche die Null-Nachricht (NN) empfangen hat, eine Antwortnachricht (RN) mit einer erniedrigten Lokalzeit (LVTi) an die Rechnereinrichtung (LPi) gesendet wird, welche die Null-Nachricht (NN) erzeugt hat.The method of claim 12, wherein the computing device (LPi) which has received the null message (NN), a reply message (RN) with a reduced local time (LVTi) to the computer device (LPi) is sent, which has generated the null message (NN). Verfahren nach Anspruch 12 oder 13, wobei die Rechnereinrichtungen (LPi) die erhaltenen Null-Nachrichten (NN) über einen vorgebbaren Lokalzeitraum, insbesondere einer vorgebbaren Anzahl von Lokalzeitschritten, zählen.The method of claim 12 or 13, wherein the computer means (LPi) the received zero messages (NN) over a predetermined local time period, in particular a predetermined number of local time step, count. Verfahren nach einem der Ansprüche 1–14, wobei eine jeweilige Rechnerlast (LF) einer Rechnereinrichtung (LPi) in Abhängigkeit von der Anzahl der abgearbeiteten Ereignisinstruktionen in einem vorgebbaren Lokalzeitraum, insbesondere einer vorgebbaren Anzahl von Lokalzeitschritten, durch die Rechnereinrichtung (LPi) ermittelt wird.Method according to one of claims 1-14, wherein a respective computer load (LF) of a computer device (LPi) depending on the number of processed event instructions in a predefined local period, in particular a predefinable number of local time steps, by the computer device (LPi) is determined. Verfahren nach Anspruch 15, wobei die ermittelte Rechnerlast (LF) bei jedem Lokalzeitschritt mit einer vorgegebenen Migrationsschwelle (MG) verglichen wird.The method of claim 15, wherein the determined Computer load (LF) at each local time step with a given Migration threshold (MG) is compared. Verfahren nach Anspruch 16 wobei bei Überschreiten der jeweiligen Migrationsschwelle (MG), ein Verändern der Zuordnung der Peer-Einrichtungen (Pi) zu den Rechnereinrichtungen (LPi) erfolgt.The method of claim 16 wherein when exceeded the respective migration threshold (MG), changing the assignment of the peer devices (Pi) to the computer devices (LPi) takes place. Verfahren nach Anspruch 16 oder 17, wobei bei Überschreiten der jeweiligen Migrationsschwelle (MG), eine Migrationsnachricht (MN) von der jeweiligen Rechnereinrichtung (LPi) an alle übrigen Rechnereinrichtungen (LPi) gesendet wird.A method according to claim 16 or 17, wherein when exceeded the respective migration threshold (MG), a migration message (MN) from the respective computer device (LPi) to all other computer devices (LPi) is sent. Verfahren nach Anspruch 18, wobei die Migrationsnachricht (MN) die Lokalzeit (LVTi) oder die um einen vorgegebenen Lokalzeitraum erniedrigte Lokalzeit und die aktuelle Rechnerlast (LF) der die Migrationsnachricht (MN) sendenden Rechnereinrichtung (LPi) umfasst.The method of claim 18, wherein the migration message (MN) the local time (LVTi) or by a given local time period reduced local time and the current computer load (LF) of the Migration message (MN) transmitting computer device (LPi) includes. Verfahren nach Anspruch 18 oder 19, wobei jede Rechnereinrichtung (LPi), welche eine Migrationsnachricht (MN) empfangen hat, das Abarbeiten der Ereignisinstruktionen anhält, und an alle übrigen Rechnereinrichtungen (LPi) eine Vorbereitungsnachricht (VN) sendet, welche die aktuelle Lokalzeit (LVTi) der Rechnereinrichtung (LPi) umfasst.The method of claim 18 or 19, wherein each computing device (LPi), which has received a migration message (MN), the processing the event instructions stops, and to all the rest Computer equipment (LPi) sends a preparation message (VN), which the current local time (LVTi) of the computer device (LPi) includes. Verfahren nach Anspruch 20, wobei die Rechnereinrichtungen (LPi) nach Empfang der Vorbereitungsnachrichten (VN) solange lokalzeitschrittweise Ereignisinstruktionen abarbeiten bis die jeweilige Lokalzeit (LVi) dem Maximalwert der durch die Vorbereitungsnachrichten (VN) versendeten Lokalzeiten (LVTi) entspricht.The method of claim 20, wherein the computing devices (LPi) after receiving the preparation messages (VN) as long as local time by step Process event instructions until the respective local time (LVi) Maximum value of those sent by the preparation messages (VN) Local times (LVTi) corresponds. Verfahren nach Anspruch 21, wobei die Rechnereinrichtungen (LPi) nach dem Abarbeiten der Ereignisinstruktionen bis zum Maximalwert der Lokalzeiten an alle übrigen Rechnereinrichtungen (LPi) eine Optimierungsnachricht (SN), welche die ermittelte Rechnerlast (LF) umfasst, senden.The method of claim 21, wherein the computing devices (LPi) after processing the event instructions up to the maximum value the local times to all the rest Computer facilities (LPi) an optimization message (SN), which the calculated computer load (LF) includes send. Verfahren nach einem der Ansprüche 1–22, wobei jede Rechnereinrichtung (LTi) eine Kommunikationstabelle (KT) erstellt, welche Kommunikationshäufigkeiten zwischen den der jeweiligen Rechnereinrichtung (LPi) zugeordneten Peer-Einrichtungen (Pi) und Peer-Einrichtungen (Pj), welche anderen Rechnereinrichtungen (LPi) zugeordnet sind, umfasst.The method of any one of claims 1-22, wherein each computing device (LTi) creates a communication table (KT), which communication frequencies between the respective computer device (LPi) assigned Peer devices (Pi) and peer devices (Pj), which are other computing devices (LPi). Verfahren nach Anspruch 22 oder 23, wobei in Abhängigkeit von den Rechnerlasten (LF) und/oder der Kommunikationstabelle (KT) Abgaberechnereinrichtungen und Aufnahmerechnereinrichtungen bestimmt werden, wobei einer jeweiligen Aufnahmerechnereinrichtungen zusätzliche Peer-Einrichtungen zugeordnet werden und einer jeweiligen Abgaberechnereinrichtungen Peer-Einrichten abgeordnet werdenA method according to claim 22 or 23, wherein depending on from the computer loads (LF) and / or the communication table (KT) Abgaberechnereinrichtungen and recording computer devices determined with a respective recording computer devices additional Peer facilities are assigned and a respective Abgaberechnereinereinrichtungen Peer-setting be seconded Verfahren nach einem der Ansprüche 17–24, wobei das Verändern der Zuordnung der Peer-Einrichtungen (Pi) zu den Rechnereinrichtungen (LPi) derart erfolgt, dass Peer-Einrichtungen (Pi), welche häufig miteinander Nachrichten (K) austauschen, einer gemeinsamen Rechnereinrichtung (LPi) zugeordnet werden.A method according to any of claims 17-24, wherein changing the Assignment of the peer devices (Pi) to the computer devices (LPi) is done in such a way that peer facilities (Pi), which are common exchange messages (K) with each other, a common computer device (LPi). Verfahren nach einem der Ansprüche 1–25, wobei die Rechnereinrichtungen (LPi) über ein Kommunikationsnetzwerk (IN) als Sende- und/oder Empfangs-Rechnereinrichtungen die Ereignisnachrichten (EN) austauschen.The method of any of claims 1-25, wherein the computing devices (LPi) over a communication network (IN) as transmitting and / or receiving computer facilities exchange the event messages (EN). Computerprogrammprodukt, welches die Durchführung eines Verfahrens nach einem der Ansprüche 1–26 auf mehreren programmgesteuerten Rechnereinrichtungen (LP1, LP2, LP3) veranlasst.Computer program product, which carries out a A method according to any one of claims 1-26 several program-controlled computer devices (LP1, LP2, LP3) causes. Simulationsvorrichtung mit mehreren Rechnereinrichtungen (LP1, LP2, LP3), welche derart ausgestaltet sind, dass ein Verfahren nach einem der vorherigen Ansprüche 1–27 ausgeführt wird.Simulation device with several computer devices (LP1, LP2, LP3) which are configured such that a method according to one of the preceding claims 1-27 is executed. Simulationsvorrichtung nach Anspruch 28, wobei die Rechnereinrichtungen (LP1, LP2, LP3) über das Internet (IN) miteinander vernetzt sind und Ereignisnachrichten austauschen.A simulation device according to claim 28, wherein the computing means (LP1, LP2, LP3) are provided via the Internet (IN) are networked and exchange event messages.
DE102007024900A 2007-05-29 2007-05-29 Method for synchronizing independent computer devices for simulating peer-to-peer networks Expired - Fee Related DE102007024900B4 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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