DE102012112253A1 - Method for improving performance of event-based distributed analysis system, involves distributing changed distribution suggested by event detectors on computing node if fitness value is met with predesignated decision criterion - Google Patents

Method for improving performance of event-based distributed analysis system, involves distributing changed distribution suggested by event detectors on computing node if fitness value is met with predesignated decision criterion Download PDF

Info

Publication number
DE102012112253A1
DE102012112253A1 DE201210112253 DE102012112253A DE102012112253A1 DE 102012112253 A1 DE102012112253 A1 DE 102012112253A1 DE 201210112253 DE201210112253 DE 201210112253 DE 102012112253 A DE102012112253 A DE 102012112253A DE 102012112253 A1 DE102012112253 A1 DE 102012112253A1
Authority
DE
Germany
Prior art keywords
event
fitness value
detectors
distribution
event detectors
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.)
Granted
Application number
DE201210112253
Other languages
German (de)
Other versions
DE102012112253B4 (en
Inventor
Christopher Mutschler
Christoffer Loeffler
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE102012112253.9A priority Critical patent/DE102012112253B4/en
Publication of DE102012112253A1 publication Critical patent/DE102012112253A1/en
Application granted granted Critical
Publication of DE102012112253B4 publication Critical patent/DE102012112253B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The method involves determining a measure of efficiency of an analysis system indicating fitness value and determining a proposal for a modified distribution of event detectors (22a-22g) to computing nodes (20a-20c). The fitness value is compared with a predetermined decision criterion. A measure for efficiency of indicating fitness value of the analysis system is determined. Changed distribution suggested by the event detectors is distributed on the computing node if the fitness value is met with a predesignated decision criterion. Independent claims are also included for the following: (1) a power conditioner for improving performance of an event-based distributed analysis system (2) a computer program comprising a set of instructions for improving performance of event-based distributed analysis system.

Description

Ausführungsbeispiele der vorliegenden Erfindung betreffen Vorrichtungen, Verfahren und Computerprogramme zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten verteilten Analysesystems.Embodiments of the present invention relate to apparatus, methods, and computer programs for improving performance of an event-based distributed analysis system.

Ereignisbasierte Verarbeitung ist eine Technik der Informatik. Sie eignet sich, um flexible, skalierbare Systeme mit autonomen, heterogenen Komponenten zu betreiben und zu erweitern. Die Anwendungsgebiete sind vielfältig. Von der automatischen Informationsverteilung über Netzwerkmonitoring in der IT-Sicherheit und Module zur Softwareinteroperabilität bis hin zu mobilen und allgegenwärtigen Systemen und Sensornetzwerken.Event-based processing is a technique of computer science. It is suitable for operating and expanding flexible, scalable systems with autonomous, heterogeneous components. The fields of application are manifold. From automatic information distribution to network monitoring in IT security and software interoperability modules to mobile and ubiquitous systems and sensor networks.

Der ereignisbasierte Ansatz ist, allgemein gesprochen, ein Lösungsansatz für das Problem beschränkter Skalierbarkeit und Flexibilität von klassischen sogenannten „Middlewares“. Das Konzept der Middleware dient dazu, zwischen heterogenen Systemen zu vermitteln. Bei wachsender Größe und Dynamik eines Systems ist eine enge Kopplung, wie sie Request/Reply Architekturen mit Polling aufweisen ein großer Nachteil. Eine geeignetere Lösung sollte asynchrone und entkoppelte Methoden bereitstellen. Statt dem mit Request/Reply verbundenen Polling ist ein autonomes Pushing erwünscht, das konzeptionell in etwa einem Publish/Subscribe entspricht. Die ereignis-basierte Verarbeitung leistet dies. Die Komponenten, Ereignis-Detektoren genannt, kommunizieren untereinander über Benachrichtigungen, die signalisieren, dass ein Ereignis aufgetreten ist. Ist ein Detektor auf eine spezielle Benachrichtigung angewiesen, so kann er sie abonnieren („subscribe“). Die sogenannte Middleware hat die Aufgabe, zwischen Produzent („producer“) und Konsument („consumer“) der Benachrichtigungen („Notification“) transparent zu vermitteln. Das heißt, ein Produzent hat keine Kenntnis über seine Konsumenten, und evtl. umgekehrt, ganz im Gegensatz zum Pollingbetrieb.The event-based approach, generally speaking, is a solution to the problem of limited scalability and flexibility of classic so-called middleware. The concept of middleware serves to mediate between heterogeneous systems. As the size and dynamics of a system grow, tight coupling, such as polling request / reply architectures, is a major drawback. A more appropriate solution should provide asynchronous and decoupled methods. Instead of the polling associated with request / reply, an autonomous pushing is desired, which conceptually corresponds approximately to a publish / subscribe. Event-based processing accomplishes this. The components, called event detectors, communicate with each other via notifications that signal that an event has occurred. If a detector relies on a special notification, it can subscribe to it. The so-called middleware has the task of transparently communicating between the producer ("producer") and the consumer ("consumer") of the notifications ("noti fi cation"). That is, a producer has no knowledge about its consumers, and possibly vice versa, in contrast to the polling mode.

Diese Middleware wird im Folgenden auch als „EventCore“ bezeichnet. Die von den Ereignisdetektoren bzw. den Event-Detektoren generierten Nachrichten oder Notifications werden nachfolgend Ereignisse bzw. Events genannt.This middleware is also referred to below as "EventCore". The messages or notifications generated by the event detectors or the event detectors are subsequently called events.

In einer beispielhaften Anwendung wird ein Ereignisverarbeitungssystem (Event Processing System) zur verteilten Auswertung des Positionsdatenstroms eines Lokalisierungssystems einer Sportveranstaltung verwendet. Dabei werden pro Sekunde Tausende von Positionen oder Positionsdaten verarbeitet. Mehr als 140 drahtlose Sensoren übertragen dabei jeweils 200 Positionen per Funk, manche sogar 2000. In der Summe ergibt dies über 50000 Positionen pro Sekunde. Ein Ziel der Auswertung des Positionsdatenstroms ist es, bestimmte Interaktionen der Spieler in einem Fußballspiel, die mit solchen Sensoren ausgestattet sind, automatisch zu erkennen und so beispielsweise einem Reporter Analysen bereit zu stellen oder weiche Kamerafahrten zu automatisieren. Um insbesondere letzteres Ziel zu erreichen sollten annähernd in Echtzeit Ereignisse bestimmt bzw. berechnet werden.In an exemplary application, an event processing system is used for distributed evaluation of the positional data stream of a sports event location system. Thousands of positions or position data are processed per second. More than 140 wireless sensors transmit 200 positions per radio, some even 2000. In total, this results in more than 50,000 positions per second. A goal of the evaluation of the positional data stream is to automatically detect certain interactions of the players in a football game that are equipped with such sensors and thus, for example, to provide analyzes to a reporter or to automate soft camera shots. In order to achieve the latter goal in particular, events should be determined or calculated approximately in real time.

Zum Erzeugen des Positionsdatenstroms selbst kann ein drahtloses Sensornetzwerk unterschiedlicher Technologie verwendet werden, um beispielsweise die Spieler einer Sportveranstaltung und/oder andere Objekte wie beispielsweise Bälle oder dergleichen zu lokalisieren. Lokalisieren meint in diesem Zusammenhang die Bestimmung einer geografischen Position, wobei das "Tracking" bedeutet, die Lokalisierung in kurzen Zeitintervallen vorzunehmen, um in der Lage zu sein, die Position oder andere kinematische Eigenschaften des beobachteten observierten Objektes bestimmen und zeitlich verfolgen zu können. Die mittels des Ansatzes der ereignisbasierten Verarbeitung analysierten Positionsdaten können also dazu verwendet werden, Spieler oder andere Objekte bei einer Sportveranstaltung, wie beispielsweise einem Fußballspiel, einem American Footballspiel, Rugby, Tennis o. ä. zu beobachten oder zu charakterisieren. Durch die Analyse der Positionsdaten der Spieler und/oder der Spielgeräte wird es möglich, statistische Informationen über das gesamte Sportereignis abzuleiten. Diese können beispielsweise ein gesamtes Spiel oder einzelne Spieler betreffen. To generate the position data stream itself, a wireless sensor network of different technology may be used to locate, for example, the players of a sporting event and / or other objects such as balls or the like. Localization in this context means the determination of a geographical position, whereby the "tracking" means to perform the localization in short time intervals in order to be able to determine the position or other kinematic properties of the observed object observed and temporally tracked. The position data analyzed by means of the event-based processing approach can thus be used to observe or characterize players or other objects in a sporting event, such as a soccer game, an American football game, rugby, tennis or the like. By analyzing the position data of the players and / or the game devices, it becomes possible to derive statistical information about the entire sporting event. These can, for example, affect an entire game or individual players.

Wenngleich die genaue Bestimmung der reinen Positionsdaten für die nachfolgenden Überlegungen zur Auswertung derselben mittels eines ereignisbasierten Systems von untergeordneter Bedeutung ist, versteht es sich von selbst, dass diese basierend auf unterschiedlichsten Technologien gewonnen werden können. Zum Beispiel kann die Positionsinformation durch Auswertung eines drahtlosen Signals oder eines magnetischen Feldes erfolgen. Um diese zu erzeugen, können Transmitter und/oder Receiver, allgemein gesprochen Sensoren, an den zu beobachteten Objekten befestigt werden. Dazu korrespondierende Empfänger oder Transmitter können beispielsweise an vorbestimmten Positionen um das Spielfeld bzw. die interessierende Fläche herum angeordnet werden. Beispielsweise die Auswertung von Signalstärken, Signallaufzeiten und/oder Phasen kann dazu verwendet werden, einen Sensordatenstrom zu erzeugen, der die geografische Position von individuellen Spielern oder Objekten zu unterschiedlichen Zeitpunkten angibt. Ein solches Positionsdatentelegramm kann beispielsweise mit einem Zeitstempel versehen sein, der angibt, zu welchem Zeitpunkt das Objekt an dem beobachteten Ort war. Als zusätzliche oder davon abgeleitete Information können beispielsweise auch andere kinematische Informationen, wie die Geschwindigkeit, die Beschleunigung und so weiter gewonnen werden, die die beispielsweise in Form von X-, Y- und Z-Koordinaten angegebenen Positionen ergänzen. In den nachfolgenden Betrachtungen wird diese Art der Information, also die Positionsangabe und/oder die dazu korrespondierenden kinematischen Daten, die von dem Sensorsystem geliefert werden, als rohe Sensordaten oder als primitive Ereignisse bezeichnet, auf denen Ereignisse oder abgeleitete Ereignisse basieren.Although the precise determination of the pure position data is of secondary importance for the subsequent considerations for the evaluation of the same by means of an event-based system, it goes without saying that these can be obtained on the basis of a wide variety of technologies. For example, the position information may be obtained by evaluating a wireless signal or a magnetic field. In order to generate these, transmitters and / or receivers, generally speaking sensors, can be attached to the objects to be observed. For this purpose, corresponding receivers or transmitters can be arranged, for example, at predetermined positions around the playing field or the area of interest. For example, the evaluation of signal strengths, signal propagation times and / or phases can be used to generate a sensor data stream that indicates the geographical position of individual players or objects at different times. Such For example, the position data telegram may be provided with a timestamp indicating when the object was at the observed location. As additional or derived information, for example, other kinematic information, such as the speed, the acceleration, and so on, can be obtained, supplementing the positions given in the form of X, Y, and Z coordinates, for example. In the following considerations, this type of information, that is, the position information and / or the corresponding kinematic data supplied by the sensor system, are referred to as raw sensor data or as primitive events on which events or derived events are based.

Das Tracking von Objekten in einer Sportveranstaltung bzw. in einem Spiel wie Fußball mit angemessener Genauigkeit erzeugt also ohne weiteres eine extrem hohe Anzahl von Sensordaten. Als Beispiel mag hier das Verfolgen eines Fußballs gelten, das, sofern eine Genauigkeit von ungefähr 3 cm gefordert ist, es erfordert, die Position des Balles 2.000 Mal pro Sekunde zu bestimmen, wenn angenommen wird, dass der Ball eine maximale Geschwindigkeit von 150 km/h erreichen kann. Zusätzlich zu dieser hohen Anzahl von Samples pro Sekunde muss noch die Position der Spieler mit angemessener Zeitauflösung bestimmt werden, sodass beispielsweise im Fall eines Fußballspiels ein mit einer angemessenen Anzahl von Sensoren ausgestattetes Team ohne Weiteres die bereits erwähnten 50.000 Positionsdaten oder Roh-Datentelegramme pro Sekunde produzieren kann. Das Analysieren dieser Daten in angenäherter Echtzeit kann durch einen ereignisbasierten Ansatz verhindern, dass jedes ein solches Ereignis bestimmendes Element in dem Analysenetz Zugriff auf alle zu einem Zeitpunkt erhobenen Positionsdaten haben muss. The tracking of objects in a sports event or in a game such as football with reasonable accuracy so easily generates an extremely high number of sensor data. By way of example, tracking football may be considered as requiring, if an accuracy of approximately 3 cm is required, to determine the position of the ball 2,000 times per second, assuming that the ball has a maximum speed of 150 km / s. h can reach. In addition to this high number of samples per second, the position of the players must still be determined with appropriate time resolution, so that, for example, in the case of a football match, a team equipped with a reasonable number of sensors will readily produce the already mentioned 50,000 position data or raw data telegrams per second can. Analyzing this data in approximate real-time can prevent, by an event-based approach, that any element determining such an event in the analytic network must have access to all positional data collected at a time.

Die Events oder Ereignisse selbst können komplex sein und auf der Basis von Abhängigkeitshierarchien generiert werden. Beispielsweise muss sich ein Ball erst in der Nähe eines Spielers befinden, bevor ein Schussdetektor seine Arbeit aufnehmen kann und weitere Berechnungen anstellt. Durch einen Echtzeitanspruch und die hierarchischen Abhängigkeiten ergeben sich neue Aufgabenstellungen. Beispielsweise sollte die Latenz des Netzwerks, das die EventCores verbindet, so gering wie möglich sein, da sich sonst die Verzögerungen durch die Hierarchie hinweg ausbreiten. Außerdem dürfen die Berechnungsknoten selbst nicht durch Detektoren überlastet werden, da so die Latenz bei der Eventgenerierung selbst steigt und im Extremfall das komplette System blockiert werden könnte. The events or events themselves can be complex and generated on the basis of dependency hierarchies. For example, a ball must first be in the vicinity of a player before a shot detector can begin its work and make further calculations. Real-time demands and hierarchical dependencies result in new tasks. For example, the latency of the network connecting the EventCores should be as low as possible, otherwise the delays will spread through the hierarchy. In addition, the calculation nodes themselves must not be overloaded by detectors, as this increases the latency in the event generation itself and in extreme cases, the entire system could be blocked.

Außer dieser sog. „event broker congestion“ (Ereignisdetektor-Überlastung), bei der einzelne Rechenknoten überlastet sind, kann es auch zur sog. „network congestion“ (Netzwerk-Überlastung) kommen. Wenn dessen Bandbreite ein limitierender Faktor ist oder wird, steigt ebenfalls die Latenz des Systems. Der Zeitpunkt der Ereigniserkennung verschiebt sich dann nach hinten und kann auch für Probleme und Mehraufwand bei der Verwaltung der Reihenfolge der ankommenden Events bei Ereignisdetektoren höherer hierarchischer Stufen führen.Apart from this so-called "event broker congestion", in which individual compute nodes are overloaded, so-called "network congestion" can also occur. If its bandwidth is or becomes a limiting factor, the latency of the system also increases. The timing of the event detection then shifts backwards and may also lead to problems and overhead in managing the order of incoming events in event detectors of higher hierarchical levels.

In einem homogenen Gigabit-Clusternetzwerk kann vor allem die „event broker congestion“ und die „Latenzminimierung“ eine zentrale Rolle spielen. Sobald aber beispielsweise Smartphones über Wireless LAN (WiFi) als Berechnungsknoten hinzu kommen, kann auch die Datenrate des Netzwerkes ein wichtiges Problem oder sogar ein limitierender Faktor werden.In a homogeneous gigabit cluster network, "event broker congestion" and "latency minimization" can play a central role. But as soon as, for example, smartphones are added via Wireless LAN (WiFi) as a calculation node, the data rate of the network can also become an important problem or even a limiting factor.

Durch die oben beschriebene komplexe Abhängigkeit der einzelnen Ereignisse voneinander und durch unterschiedliche, im Verlauf eines Spiels zu detektierende Ereignisse ergibt sich beispielsweise bei der Analyse eines Sportereignisses ein besonderes Anforderungsprofil. Während in anderen Szenarien bei gegebener Anzahl von Rechenknoten die Verteilung der einzelnen Ereignisdetektoren auf die Rechenknoten durch ein a priori Wissen der Auftrittswahrscheinlichkeiten einzelner Ereignisse einmalig im Vorhinein optimal ermittelt werden kann, ist dies bei der Analyse eines Positionsdatenstromes eines Sportereignisses nicht möglich.By the above-described complex dependency of the individual events on each other and by different events to be detected in the course of a game, for example, when analyzing a sports event, a special requirement profile arises. While in other scenarios, given a given number of computational nodes, the distribution of the individual event detectors to the computational nodes can be optimally determined in advance by an a priori knowledge of the occurrence probabilities of individual events, this is not possible when analyzing a positional data stream of a sporting event.

Dadurch kann es sein, dass bei Verwendung eines ereignisbasierten verteilten Analysesystems die Leistungsfähigkeit des Systems mit zunehmender Laufzeit variiert oder sinkt, beispielsweise durch eine Erhöhung der Gesamtlatenz des Systems, also derjenigen Zeit, die vergeht, bis eine Aussage über ein gewünschtes Ereignis getroffen werden kann. Dies kann beispielsweise dadurch hervorgerufen werden, dass der Netzwerkverkehr zwischen einzelnen Knoten bzw. zwischen einzelnen Rechenknoten dazu führt, dass das Netzwerk überlastet ist und dadurch eine deutliche Erhöhung der Signallaufzeiten bzw. der Detektionszeiten eintritt, wenn die statistischen Abhängigkeiten zwischen den einzelnen Ereignis-Detektoren nicht vorhersagbar sind oder sich zeitlich verändern.Thus, using an event-based distributed analysis system, the performance of the system may vary or decrease with increasing delay, for example, by increasing the overall latency of the system, that is, the time that elapses until a statement about a desired event can be made. This can be caused, for example, by the fact that the network traffic between individual nodes or between individual compute nodes causes the network to be overloaded and thereby significantly increases the signal propagation times or the detection times, if the statistical dependencies between the individual event detectors do not are predictable or change over time.

Es besteht also das Bedürfnis, die Leistungsfähigkeit bzw. die Stabilität eines ereignisbasierten, verteilten Analysesystems zu verbessern.There is therefore a need to improve the performance or the stability of an event-based, distributed analysis system.

Diese Aufgabe wird durch Vorrichtungen, Verfahren und Computerprogramme mit den Merkmalen der unabhängigen Patentansprüche gelöst. This object is achieved by devices, methods and computer programs with the features of the independent claims.

Ausführungsbeispiele der vorliegenden Erfindung ermöglichen dies für ein ereignisbasiertes verteiltes Analysesystem, bei dem eine Mehrzahl von jeweils das Auftreten eines Ereignisses ermittelnden Ereignisdetektoren auf einer Mehrzahl von unterschiedlichen, über ein Netzwerk verbundenen Rechenknoten ausgeführt werden können. Um dies zu ermöglichen, wird gemäß einigen Ausführungsbeispielen der vorliegenden Erfindung zunächst für eine gegebene Verteilung der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten ein Fitnesswert bestimmt, der ein Maß für eine Leistungsfähigkeit des Analysesystems angibt. Ferner wird ein Vorschlag für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten und ein weiterer Fitnesswert wird für die vorgeschlagene geänderte Verteilung bestimmt. Ein darauf folgender Vergleich des weiteren Fitnesswertes mit einem vorbestimmten Entscheidungskriterium ermöglicht es, eine Aussage über die Leistungsfähigkeit eines auf der vorgeschlagenen Verteilung der Ereignisdetektoren auf die Rechenknoten basierenden ereignisbasierten Analysesystems für die momentan vorliegende statistische Abhängigkeit zwischen den Ereignisdetektoren zu treffen. Insofern der weitere Fitnesswert das vorbestimmte Entscheidungskriterium erfüllt, wird die Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten gemäß der vorgeschlagenen geänderten Verteilung verteilt. D. h., wenn die vorgeschlagene geänderte Verteilung ein durch die Definition des Fitnesswertes und durch das Entscheidungskriterium vorgegebenes, die Leistungsfähigkeit des Analysesystems wiedergebendes Kriterium erfüllt, wird die Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten gemäß der vorgeschlagenen geänderten Verteilung verteilt.Embodiments of the present invention make this possible for an event-based distributed analysis system in which a plurality of event detectors each detecting the occurrence of an event can be executed on a plurality of different computing nodes connected via a network. To facilitate this, in accordance with some embodiments of the present invention, first, for a given distribution of the plurality of event detectors to the plurality of compute nodes, a fitness value is determined that indicates a measure of performance of the analysis system. Furthermore, a proposal for a changed distribution of the plurality of event detectors to the plurality of computational nodes and a further fitness value is determined for the proposed modified distribution. A subsequent comparison of the further fitness value with a predetermined decision criterion makes it possible to make a statement about the performance of an event-based analysis system based on the proposed distribution of the event detectors on the computation nodes for the instantaneous statistical dependence between the event detectors. Inasmuch as the further fitness value satisfies the predetermined decision criterion, the plurality of event detectors are distributed to the plurality of compute nodes according to the proposed modified distribution. That is, if the proposed changed distribution satisfies a criterion dictated by the fitness value definition and the decision criterion representing the performance of the analysis system, the plurality of event detectors are distributed to the plurality of compute nodes according to the proposed changed distribution.

Dabei versteht es sich von selbst, dass gemäß den Ausführungsbeispielen der Erfindung nicht lediglich ein einziger Fitnesswert für eine einzige vorgeschlagene geänderte Verteilung während einer Iteration der Verbesserung der Leistungsfähigkeit bestimmt werden kann. Vielmehr kann je Iteration auch für eine Mehrzahl von vorgeschlagenen geänderten Verteilungen der Ereignisdetektoren auf die Mehrzahl von Rechenknoten jeweils ein Fitnesswert bestimmt werden, der mit den übrigen Fitnesswerten und mit dem Fitnesswert für die momentane bzw. die gegebene Verteilung verglichen wird, bevor eine Entscheidung über eine mögliche Umverteilung der Ereignisdetektoren getroffen wird.It goes without saying that, according to the embodiments of the invention, not only a single fitness value for a single proposed changed distribution can be determined during an iteration of performance improvement. Rather, for each iteration for a plurality of proposed modified distributions of the event detectors to the plurality of computational nodes one fitness value can be determined which is compared with the remaining fitness values and with the fitness value for the current or the given distribution, before a decision on one possible redistribution of the event detectors is made.

Weitere vorteilhafte Ausgestaltungen und Weiterbildungen sind Gegenstand der abhängigen Patentansprüche. Further advantageous embodiments and further developments are the subject of the dependent claims.

Ein Fitnesswert im Sinne des oben beschriebenen Verfahrens kann dabei eine Aussage über jedwede eine Leistungsfähigkeit des ereignisbasierten verteilten Analysesystems betreffende Größe einer oder aller Komponenten des Systems enthalten. Gemäß einigen Ausführungsbeispielen umfasst der Fitnesswert eine Information über eine von den Ereignisdetektoren auf den einzelnen Rechenknoten verursachte Rechenlast, um verhindern zu können, dass durch die Überlast eines einzelnen Rechenknotens das System funktionsunfähig wird bzw. die Leistungsfähigkeit des Systems einbricht.A fitness value in the sense of the above-described method can contain a statement about any size of one or all components of the system that affects a performance of the event-based distributed analysis system. According to some embodiments, the fitness value includes information about a computational load caused by the event detectors on the individual compute nodes to prevent the overload of a single compute node from rendering the system inoperable or degrading the performance of the system.

Gemäß einem weiteren Ausführungsbeispiel umfasst der Fitnesswert eine Information über eine Auslastung der Netzwerkverbindungen des Netzwerkes, mittels dessen die Rechenknoten des Analysesystems verbunden sind, um die Möglichkeit zu schaffen, einen Stillstand bzw. eine vergrößerte Latenz des Analysesystems durch eine Überlast des Netzwerkes zu verhindern.According to a further embodiment, the fitness value comprises information about a utilization of the network connections of the network, by means of which the computing nodes of the analysis system are connected, in order to be able to prevent a standstill or an increased latency of the analysis system by an overload of the network.

Gemäß weiteren Ausführungsbeispielen der Erfindung umfasst der Fitnesswert eine Information über eine Signallaufzeit der über das Netzwerk übertragenen Ereignisse, um zu verhindern, dass bei zu großen Laufzeiten die Latenz des Gesamtsystems so stark ansteigt, dass die gewünschten Informationen nicht mehr in dem geforderten Zeitraum zur Verfügung gestellt werden können. Die Information über die Signallaufzeit kann beispielsweise von der Konfiguration des gesamten Systems abhängen. Insbesondere Ereignisse, die von einem Rechenknoten auf einen anderen Rechenknoten übertragen werden müssen, da die miteinander kommunizierenden Ereignisdetektoren auf unterschiedlichen Rechenknoten laufen, führen zu einer Erhöhung der Signallaufzeit bzw. der Latenz einzelner Ereignisse und/oder des Gesamtsystems.According to further embodiments of the invention, the fitness value comprises information about a signal propagation time of the events transmitted over the network in order to prevent the latency of the overall system from increasing so much that the desired information is no longer provided in the required period of time can be. The information about the signal propagation time may depend, for example, on the configuration of the entire system. In particular, events which have to be transmitted from one computing node to another computing node, since the event detectors which communicate with one another run on different computing nodes, lead to an increase in the signal propagation time or the latency of individual events and / or of the overall system.

Einige Ausführungsbeispiele der Erfindung können einen Fitnesswert verwenden, der einen der oben beschriebenen Parameter beschreibt, um die Leistungsfähigkeit des Analysesystems auf diesen speziellen Parameter zu optimieren. Bei alternativen Ausführungsbeispiele bzw. Definitionen von Fitnesswerten besteht auch die Möglichkeit, Information über mehrere oder über alle der obengenannten Parameter in die Berechnung bzw. Bestimmung des Fitnesswertes einfließen zu lassen, um beispielsweise je nach relativer Gewichtung der einzelnen Aspekte die Leistungsfähigkeit des Analysesystems im Hinblick auf alle der obengenannten Parameter gleichzeitig zu verbessern.Some embodiments of the invention may use a fitness value that describes one of the parameters described above to optimize the performance of the analysis system for that particular parameter. In alternative embodiments or definitions of fitness values, it is also possible to incorporate information about several or all of the abovementioned parameters into the calculation or determination of the fitness value, for example depending on the relative Weighting of the individual aspects to simultaneously improve the performance of the analytical system with respect to all of the above parameters.

Gemäß einigen Ausführungsbeispielen der Erfindung wird der Fitnesswertes derart bestimmt, dass dieser bei einem zwischen einzelnen Ereignisdetektoren auf demselben Rechenknoten übertragenen Ereignis erhöht wird, da dann typischerweise keine Erhöhung der Signallaufzeit durch die Übertragung im Netzwerk auftritt und darüber hinaus keine zusätzliche Netzwerklast generiert wird. Diese Aussage gilt, wenn die Definition des Fitnesswertes derart ist, dass ein hoher Fitnesswert eine günstigere Systemkonfiguration widerspiegelt. Bei alternativen Ausführungsformen kann die Definition oder Bestimmung des Fitnesswertes auch so erfolgen, dass ein niedriger Fitnesswert eine bessere Systemleistung widerspiegelt.According to some embodiments of the invention, the fitness value is determined to be increased at an event transmitted between individual event detectors on the same compute node, since then typically there is no increase in signal propagation time due to transmission in the network and, moreover, no additional network load is generated. This statement applies when the definition of the fitness value is such that a high fitness value reflects a more favorable system configuration. In alternative embodiments, the definition or determination of the fitness value may also be such that a low fitness score reflects better system performance.

Während gemäß einiger Ausführungsbeispiele der Erfindung das Entscheidungskriterium erfüllt ist, wenn der weitere Fitnesswert größer ist als der Fitnesswert, ist das Entscheidungskriterium gemäß weiterer Ausführungsbeispiele erst erfüllt, wenn der weitere Fitnesswert größer ist als eine Summe des Fitnesswerts und eines Lastfaktors, der ein Maß für eine vorläufige Leistungsverminderung bei einem Verteilen der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten gemäß der vorgeschlagenen geänderten Verteilung umfasst. Diese Ausführungsbeispiele können somit der Tatsache Rechnung tragen, dass durch eine Umverteilung der Ereignisdetektoren zunächst eine zusätzliche Netzwerklast oder Latenz entsteht.While according to some embodiments of the invention, the decision criterion is satisfied when the further fitness value is greater than the fitness value, the decision criterion according to further embodiments is only satisfied if the further fitness value is greater than a sum of the fitness value and a load factor, which is a measure of one includes preliminary performance degradation in distributing the plurality of event detectors to the plurality of compute nodes according to the proposed modified distribution. These exemplary embodiments can thus take into account the fact that a redistribution of the event detectors initially results in an additional network load or latency.

Gemäß einigen Ausführungsbeispielen der vorliegenden Erfindung wird der Vorschlag für eine neue Verteilung der Ereignisdetektoren auf die Rechenknoten unter Verwendung einer Heuristik bestimmt, beispielsweise unter Verwendung eines Algorithmus aus der Gruppe genetischer Algorithmus, „Cuckoo Search“, modifizierter Cuckoo search, Partikelschwarm und hybrider „Cuckoo Search“/Partikelschwarm Algorithmus. Die Auswahl eines der genannten Algorithmen kann, je nach den Randbedingungen, zu einer schnellen Konvergenz des Verfahrens bzw. zu einem schnellen Auffinden einer optimalen Lösung für die Verteilung der Ereignisdetektoren auf die Rechenknoten führen.According to some embodiments of the present invention, the proposal for redistributing the event detectors to the compute nodes is determined using a heuristic, for example using an algorithm from the group of genetic algorithm, "cuckoo search", modified cuckoo search, particle swarm and hybrid "cuckoo search "/ Particle swarm algorithm. The selection of one of the mentioned algorithms can, depending on the boundary conditions, lead to a rapid convergence of the method or to a rapid finding of an optimal solution for the distribution of the event detectors to the computational nodes.

Bei der Anwendung des Verfahrens zur Verbesserung der Leistungsfähigkeit eines ereignisbasierten Analysesystems zur Analyse von Ereignissen, die während einer Sportveranstaltung auftreten, können Ereignisse entweder primitive Ereignisse sein, die direkt auf Positionsdaten eines Sensornetzwerkes basieren oder aber auch abgeleitete Ereignisse, die auf primitiven Ereignissen basieren.In applying the method to improve the performance of an event-based analysis system to analyze events occurring during a sporting event, events may be either primitive events directly based on position data of a sensor network or derived events based on primitive events.

Um gemäß einigen Ausführungsbeispiele die Information zu erhalten, die zur Bestimmung eines Fitnesswertes für die gegebene Verteilung und auch für die vorgeschlagenen Verteilungen erforderlich ist, wird von jedem der Ereignisdetektoren und/oder der Rechenknoten eine Information über die Anzahl der von dem betreffenden Ereignisdetektor an jeden der anderen Ereignisdetektoren übermittelten Ereignisse ermittelt. Gemäß alternativen Ausführungsbeispielen wird zusätzlich oder alternativ eine Information über eine Datenmenge, die der betreffende Ereignisdetektor an jeden der anderen Ereignisdetektoren übermittelt hat, empfangen, um eine Information bzw. eine Prognose der aufgetretenen bzw. auftretenden Netzwerklast möglicherweise noch zu verbessern.In accordance with some embodiments, to obtain the information necessary to determine a fitness value for the given distribution and also for the proposed distributions, each of the event detectors and / or the compute node will provide information about the number of event detectors to each of the event detectors other event detectors transmitted events determined. Additionally or alternatively, according to alternative embodiments, information about an amount of data that the respective event detector has transmitted to each of the other event detectors is received to possibly further improve information or prognosis of the network load that has occurred.

Gemäß einigen Ausführungsbeispielen der Erfindung wird zum Verteilen der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten gemäß der vorgeschlagenen geänderten Verteilung von einem Leistungsverbesserer bzw. einer auf einer unabhängigen Entität ablaufenden Software bzw. einem dort ablaufenden Verfahren eine Kontrollnachricht erzeugt, die die Verteilung der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten gemäß der vorgeschlagenen geänderten Verteilung bewirkt. Dies kann es ermöglichen, das Verfahren zum Verbessern der Leistungsfähigkeit auf einer von den übrigen Komponenten des Analysesystems unabhängigen Komponente, beispielsweise einer CPU oder einer in einem unabhängigen Prozess laufenden Software durchzuführen.According to some embodiments of the invention, for distributing the plurality of event detectors to the plurality of compute nodes in accordance with the proposed modified distribution, a control message generating a distribution of the plurality of computation is generated by a performance enhancer or a process running on an independent entity Event detectors on the plurality of compute nodes according to the proposed modified distribution causes. This may make it possible to perform the method for improving the performance on a component independent of the other components of the analysis system, for example a CPU or a software running in an independent process.

Einige Ausführungsbeispiele der vorliegenden Erfindung werden nun nachfolgend Bezug nehmend auf die beiliegenden Figuren näher erläutert. Es zeigen:Some embodiments of the present invention will now be explained in more detail below with reference to the attached figures. Show it:

1: Ein Beispiel für die relativen Abhängigkeiten der von unterschiedlichen Ereignisdetektoren erzeugten Ereignisse bei einem Fußballspiel; 1 : An example of the relative dependencies of the events produced by different event detectors in a football game;

2: Ein Beispiel für ein ereignisbasiertes Analysesystem; 2 : An example of an event-based analysis system;

3: Ein schematisches Blockdiagramm eines Ausführungsbeispiels eines Verfahrens zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten Analysesystems; 3 : A schematic block diagram of an embodiment of a method for improving performance of an event-based analysis system;

4: Eine graphische Illustration einer relativen Abhängigkeit unterschiedlicher Ereignisdetektoren zur Illustration der mathematischen Darstellung deren Abhängigkeit; 4 : A graphic illustration of a relative dependence of different event detectors to illustrate the mathematical representation of their dependence;

5: Ein Beispiel für unterschiedliche Abhängigkeiten zwischen acht Ereignisdetektoren einer Beispielkonfiguration eines ereignisbasierten verteilten Analysesystems; 5 : An example of different dependencies between eight event detectors of an example configuration of an event-based distributed analysis system;

6: Ein Beispiel für zwei Verteilungen der in 5 gezeigten Ereignisdetektoren auf zwei unterschiedliche Rechenknoten; 6 : An example of two distributions of in 5 shown event detectors on two different computational nodes;

7: Eine Illustration der in Bezug auf die Latenz des Systems optimalen Verteilung der Ereignisdetektoren der in den 5 und 6 gezeigten Konfigurationen auf die beiden Rechenknoten; 7 : An illustration of the optimal distribution of event detectors in relation to the latency of the system 5 and 6 configurations shown on the two compute nodes;

8: Ein Beispiel einer Simulation, die die Verbesserung der Leistungsfähigkeit des anhand der 5 bis 7 schematisch illustrierten ereignisbasierten Analysesystems bei Anwendung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens zeigt; 8th : An example of a simulation that improves the performance of the 5 to 7 schematically illustrates event-based analysis system when using an embodiment of the method according to the invention;

9: Eine Illustration zum Verständnis eines genetischen Algorithmus; 9 : An illustration to understand a genetic algorithm;

10: Eine Illustration zum besseren Verständnis eines „Cuckoo Search“ Algorithmus; 10 : An illustration for a better understanding of a "cuckoo search"algorithm;

11: Eine graphische Illustration einer Abhängigkeit zwischen verschiedenen Ereignisdetektoren; 11 : A graphic illustration of a dependence between different event detectors;

12a–d: Eine Mehrzahl von Graphen, die die Annäherung des Fitnesswertes an ein theoretisches Maximum für unterschiedliche Heuristiken zur Bestimmung einer geänderten Verteilung von Eregnisdetektoren illustriert; und 12a -D: a plurality of graphs illustrating the approximation of the fitness value to a theoretical maximum for different heuristics for determining a changed distribution of Eregnisdetektoren; and

13: Ein Ausführungsbeispiel eines Leistungsverbesserers zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten Analysesystems. 13 : An embodiment of a performance enhancer for improving performance of an event-based analysis system.

Beispielhafte Ausführungsbeispiele werden nun in Bezugnahme auf die beigefügten Figuren beschrieben. Dabei wird vorab darauf hingewiesen, dass die Figuren nicht notwendigerweise maßstabsgetreu gezeichnet sind und dass, um gewisse Merkmale oder Eigenschaften hervorzuheben, bestimmte Komponenten durch Verwendung einer anderen Strichstärke oder Schraffur künstlich hervorgehoben sein können.Exemplary embodiments will now be described with reference to the accompanying figures. It should be understood in advance that the figures are not necessarily drawn to scale and that in order to highlight certain features or properties, certain components may be artificially emphasized using a different line width or hatching.

Es wird explizit darauf hingewiesen, dass weitere Ausführungsbeispiele durch die in den nachfolgenden Figuren gezeigten speziellen Implementierungen nicht eingeschränkt werden sollen. Insbesondere soll die Tatsache, dass bestimmte Funktionalitäten in den folgenden Figuren bezüglich spezieller Entitäten, spezifischer Funktionsblöcke oder spezifischer Vorrichtungen beschrieben werden, nicht so ausgelegt werden, dass diese Funktionalitäten in weiteren Ausführungsbeispielen auf dieselbe Art und Weise verteilt sein sollen oder gar müssen. In weiteren Ausführungsbeispielen mögen bestimmte, nachfolgend getrennten Bauteilen oder Einheiten zugeordnete Funktionalitäten in einem einzigen Bauteil bzw. in einem einzigen funktionalen Element zusammengefasst sein oder hierin als in einem einzigen Element vereinte Funktionalitäten können in getrennten funktionalen Einheiten oder durch mehrere separate Bauteile ausgeführt werden. It is explicitly pointed out that further exemplary embodiments should not be restricted by the specific implementations shown in the following figures. In particular, the fact that certain functionalities are described in the following figures with respect to specific entities, specific functional blocks or specific devices should not be construed to be or even need to be distributed in other embodiments in the same manner. In other embodiments, certain functionalities associated with subsequently separate components or units may be grouped together in a single component or in a single functional element, or as functionalities unified in a single element may be implemented in separate functional units or by a plurality of separate components.

Ferner wird darauf hingewiesen, dass, wenn ein spezielles Element oder Bauteil als mit einem anderen Element verbunden, mit diesem gekoppelt oder an dieses angebunden bezeichnet wird, damit nicht notwendigerweise gemeint ist, dass dieses unmittelbar und direkt mit dem anderen Bauteil verbunden, gekoppelt oder an dieses angebunden sein soll. Sofern dies gemeint ist, wird darauf explizit hingewiesen, indem beschrieben ist, dass das Element mit dem weiteren Element direkt verbunden, direkt gekoppelt oder direkt an dieses angebunden ist. Dies bedeutet, dass keine dazwischenliegenden, eine indirekte Kopplung bzw. Verbindung oder Anbindung vermittelnde weiteren Elemente vorhanden sind. Darüber hinaus bezeichnen in den nachfolgenden Figuren identische Bezugszeichen identische, funktionsidentische oder funktionsähnliche Komponenten, die also zwischen den unterschiedlichen nachfolgend beschriebenen exemplarischen Ausführungsbeispielen einander substituierend ausgetauscht werden können. Daher kann zur detaillierten Beschreibung eines solchen Bauteils, das in einer Figur dargestellt ist, auf die Beschreibung des dazu korrespondierenden Bauteils bzw. Bauelements in einer anderen Figur zurückgegriffen werden.It is further to be understood that when a particular element or component is referred to, coupled to, or connected to another element, it is not necessarily meant to be directly, directly connected, coupled or attached to the other component this should be connected. If this is meant, it is explicitly pointed out by describing that the element is directly connected, directly coupled or directly connected to the further element. This means that there are no intervening, an indirect coupling or connection or connection mediating further elements. In addition, in the following figures, identical reference numerals designate identical, functionally identical or functionally similar components, which can therefore be exchanged substitutionally between the different exemplary embodiments described below. Therefore, for a detailed description of such a component, which is shown in a figure, the description of the corresponding component or component in another figure can be used.

Vor der nun folgenden Diskussion sei angemerkt, dass wenngleich in den nachfolgenden Abschnitten ein Ausführungsbeispiel eines Verfahrens zum Verbessern der Leistungsfähigkeit eines ereignisbasierten Analysesystems im Hinblick auf eine Anwendung in einem Fußballspiel diskutiert werden wird, weitere Ausführungsbeispiele der Verfahren selbstverständlich ohne weiteres in anderen Anwendungsszenarien für ereignisbasierte Analysesysteme verwendet werden können.Before the discussion that follows, it should be noted that although an embodiment of a method for improving the performance of an event-based analysis system with respect to an application in a football game will be discussed in the following sections, there are others Of course, embodiments of the methods may be readily used in other application scenarios for event-based analysis systems.

Weiter sei angemerkt, das nachfolgend die Begriffe Verbessern einer Leistungsfähigkeit und Optimierung weitestgehend synonym verwendet werden und so verstanden werden sollen.It should also be noted that the following terms the improvement of performance and optimization are used largely synonymous and should be understood.

1 zeigt zum besseren allgemeinen Verständnis ein Beispiel für eine Abhängigkeit zwischen Ereignisdetektoren in einem System zur Analyse der Ereignisse in einem Fußballspiel. Basierend auf einem Strom von primitiven Ereignissen 2, die im wesentlichen Information über eine Position eines Objekts und evtl. zusätzlich über weitere kinematische Größen des Objekts beinhalten, kann beispielsweise ein erster Ereignisdetektor 4 ein abgeleitetes Ereignis 6 bestimmen, wenn der Ball seine Richtung gewechselt hat. Dieses Ereignis kann von einem zweiten Ereignisdetektor 8 empfangen werden. Ein dritter Ereignisdetektor 10 kann ein weiteres Ereignis 12 detektieren, dass anzeigt, dass ein bestimmter Spieler sich in der Nähe des Balles befindet. Sofern der zweite Ereignisdetektor 8 in einer vorbestimmten zeitlichen Korrelation beide der vorgenannten Ereignisse 6 und 12 detektiert, kann dieser darauf schließen, dass der dem Ereignisdetektor 10 zugeordnete Spieler den Ball getroffen hat. 1 shows for better general understanding an example of a dependence between event detectors in a system for analyzing the events in a football game. Based on a stream of primitive events 2 , Which essentially contain information about a position of an object and possibly additionally about further kinematic variables of the object, may for example be a first event detector 4 a derived event 6 determine when the ball has changed direction. This event may be from a second event detector 8th be received. A third event detector 10 can be another event 12 detect that indicates that a particular player is near the ball. Unless the second event detector 8th in a predetermined temporal correlation both of the aforementioned events 6 and 12 detected, this may indicate that the event detector 10 assigned player hit the ball.

2 zeigt schematisch ein stark vereinfachtes Beispiel eines ereignisbasierten verteilten Analysesystems, in dem sieben Ereignisdetektoren auf drei unterschiedlichen Rechenknoten ausgeführt werden. Die drei Rechenknoten 20a bis 20c sind über ein Netzwerk 22 miteinander verbunden. Wenngleich in 2 ein Ethernet mit einem schematisch dargestellten zentralen Switch 24 als Netzwerk gezeigt ist, in welchem die einzelnen Rechenknoten jeweils direkt mit dem Switch 24 verbunden sind, versteht es sich von selbst, dass in alternativen Ausführungsbeispielen beliebige andere Arten von Netzwerken verwendet werden können, um die Rechenknoten miteinander zu verbinden, insbesondere auch über unterschiedliche Netzwerktechnologien in einem heterogenen System. 2 schematically shows a highly simplified example of an event-based distributed analysis system in which seven event detectors are executed on three different compute nodes. The three compute nodes 20a to 20c are over a network 22 connected with each other. Although in 2 an Ethernet with a schematically illustrated central switch 24 is shown as a network in which the individual compute nodes each directly to the switch 24 It should be understood that in alternative embodiments, any other types of networks may be used to interconnect the compute nodes, and in particular, over different network technologies in a heterogeneous system.

Die Ereignisdetektoren 22a und 22b werden in der gegebenen Verteilung der Ereignisdetektoren auf dem Rechenknoten 20a ausgeführt, die Ereignisdetektoren 22c und 22d auf dem Rechenknoten 20b und die Ereignisdetektoren 22e bis 22g auf dem Rechenknoten 20c. Eine die Leistungsfähigkeit des Systems verringernde Konfiguration kann beispielsweise auftreten, wenn zu viele Ereignisdetektoren auf einem einzelnen Rechenknoten ausgeführt werden, sodass dieser überlastet ist und die Ergebnisse nur mit einer durch die Überlast der CPU begründeten zeitlichen Verzögerung liefern kann. Ein anderes Szenario, gemäß dem eine Überlast bzw. eine Verschlechterung der Leistungsfähigkeit des Systems eintreten kann ist, wenn zu viele Ereignisse über das Netzwerk zwischen den einzelnen Ereignisdetektoren übertragen werden müssen. Führt dies zu einer Überlastung des Netzwerks oder einer einzelnen Verbindung im Netzwerk, hat dies ebenfalls eine erhöhte Bearbeitungszeit oder sogar einen Zusammenbruch des Systems zur Folge. Auch ohne Überlastung des Netzwerks kann es zu ungünstigen, die Leistungsfähigkeit beeinträchtigenden Situationen kommen, da jede über das Netzwerk übermittelte Nachricht bzw. jedes über das Netzwerk von einem Ereignisdetektor zu einem anderen Ereignisdetektor übermitteltes Ereignis eine Laufzeit bzw. eine gewisse Signallaufzeit zur Übermittlung über das Netzwerk benötigt. Die beispielsweise anhand von 1 illustrierte hierarchische Abhängigkeit der Ereignisdetektoren führt dazu, dass sich im Extremfall diese unterschiedlichen Signallaufeiten zu einer möglicherweise unakzeptablen großen Gesamtlatenz addieren. The event detectors 22a and 22b be in the given distribution of event detectors on the compute node 20a executed, the event detectors 22c and 22d on the compute node 20b and the event detectors 22e to 22g on the compute node 20c , For example, a configuration degrading the performance of the system may occur when too many event detectors are executed on a single compute node, so that it is overloaded and can only provide the results with a time delay due to CPU overload. Another scenario in which system performance or degradation may occur is when too many events have to be transmitted over the network between the individual event detectors. If this results in an overload of the network or a single connection in the network, this also leads to an increased processing time or even a breakdown of the system. Even without congestion of the network, unfavorable performance degrading situations may occur, as any message transmitted over the network, or any event transmitted over the network from one event detector to another event detector, will propagate a run time or signal propagation time over the network needed. For example, based on 1 illustrated hierarchical dependence of the event detectors means that in extreme cases, these different signal occurrences add up to a possibly unacceptable large total latency.

Mit dem Wort Optimierung soll, wie bereits erwähnt, nachfolgend derjenige Vorgang bezeichnet werden, bei dem eine optimale bzw. leistungsverbessernde Verteilung der Ereignisdetektoren bzw. Event-Detektoren auf die Rechner bzw. Rechenknoten im Netzwerk berechnet wird. Dies kann erforderlich sein, da suboptimale Verteilungen im Extremfall die Ergebnisse der Berechnungen nutzlos machen können. Abgesehen von der Vorbeugung von Worst-Case-Szenarien kann durch eine gute Arbeitsteilung auch die Effzienz des Systems verbessert werden. Datenabhängigkeiten unter den Detektoren benötigen, wegen der Echtzeitanforderung des Systems, möglichst geringe Latenzen bei der Berechnung und Auslieferung von Ergebnissen. Kommen Ereignismitteilungen zu spät bei einem Detektor an, dann steigt beispielsweise auch der interne Verwaltungsaufwand und mithin eventuell die Rechenlast.As already mentioned, the word optimization should be used below to denote that process in which an optimal or performance-improving distribution of the event detectors or event detectors to the computers or computational nodes in the network is calculated. This may be necessary because, in extreme cases, suboptimal distributions can render the results of the calculations useless. Apart from the prevention of worst-case scenarios, a good division of labor can also improve the efficiency of the system. Due to the real-time requirement of the system, data dependencies among the detectors require the lowest possible latencies in the calculation and delivery of results. If event messages arrive too late at a detector, for example, the internal administration effort and thus possibly the computational load also increases.

Werden zwei abhängige Detektoren auf demselben Rechner ausgeführt, dann können die Event-Notifications bzw. die Ereignisse lokal übertragen werden, und brauchen nicht über das Netzwerk verschickt zu werden. Eine Überlastung des Netzwerks und der Prozessoren ist also zu vermeiden und die Latenzen zwischen den abhängigen Detektoren zu minimieren.If two dependent detectors are running on the same computer, the event notifications or events can be transmitted locally and do not need to be sent over the network. Overloading of the network and the processors must therefore be avoided and the latencies between the dependent detectors minimized.

Konkret kann ein Optimierungsalgorithmus auf Basis der folgenden Informationen arbeiten:

  • • Die maximale Anzahl der Eventdetektoren pro Gerät, um die Überlastung des Prozessors zu vermeiden,
  • • die Anzahl der versendeten Events, die die Netzwerklast repräsentieren, und
  • • die Netzwerklatenz der Geräte.
Specifically, an optimization algorithm can work on the basis of the following information:
  • • The maximum number of event detectors per device to avoid overloading the processor
  • • the number of sent events representing the network load, and
  • • the network latency of the devices.

Die Wahrscheinlichkeit der zu erkennenden Events sind in der Regel nicht vorhersagbar, also a-priori unbekannt. Ein Ereignis ist beispielsweise, dass ein Fußballspieler gegen einen Ball tritt und ein Tor schießt. Wenn die Positionsströme des Fußballers, des Balls und des Tors in der richtigen Reihenfolge Werte liefern, die nah genug aneinander liegen, werden Events generiert und verschickt. Diese Erkenntnis ist wichtig für die Wahl des Berechnungszeitpunktes. Am sinnvollsten ist hier ein stetiges beobachten und neu verteilen, da sich unvorhersehbar Lastverteilungen und Latenzen verändern können.The probability of the events to be recognized are generally unpredictable, ie a priori unknown. An event is, for example, that a soccer player kicks a ball and scores a goal. When the soccer player, ball and goal positions deliver values that are close enough to each other in the correct order, events are generated and sent. This knowledge is important for the choice of the calculation time. The most sensible thing here is to constantly monitor and redistribute, since unpredictable load distributions and latencies can change.

Die Abhängigkeiten der Event-Detektoren untereinander entsprechen einem gerichteten Graphen, der in speziellen Fällen auch Schleifen beinhalten kann. Es erreichen mehrere Zehntausend Positionen pro Sekunde die Detektoren, die auf der zum Event gehörenden Multicastadresse lauschen. Diese Detektoren bestimmen jeweils auf der Datengrundlage, ob ihr zu veröffentlichendes Ereignis aufgetreten ist oder nicht. Falls ja, dann senden sie selbst ein Datenpaket (Ereignis) ins Netzwerk.The dependencies of the event detectors with each other correspond to a directed graph, which in special cases can also include loops. Several tens of thousands of positions per second reach the detectors listening on the multicast address associated with the event. These detectors determine on the data basis whether or not their event to be published has occurred. If yes, then you send a data packet (event) to the network yourself.

Teil der Aufgabe ist somit, die Detektoren basierend auf ihren Abhängigkeiten auf den einzelnen Rechenknoten so zu gruppieren, dass möglichst wenige Pakete außerhalb der Gruppen verschickt werden. Dabei ist die Gruppengröße geeignet zu wählen, um keine Überlastung einzelner Knotenpunkte zu verursachen, wodurch die Latenz stiege. Die bereits diskutierte 1 zeigt ein Beispiel für eine solche Abhängigkeit zwischen möglichen Gruppen bei einer Gruppengröße von zwei. Neben den drei gezeigten Möglichkeiten 14a, 14b und 14c, je zwei Ereignisdetektoren auf jeweils einem Rechenknoten laufen zu lassen, gibt es theoretisch auch noch die Möglichkeit jeden Detektor auf einem eigenen Knoten laufen zu lassen, oder alle auf einem einzigen Knoten. Beim ersten Fall wäre der Grund eine extrem hohe CPU-Auslastung durch jeden Detektor, beim zweiten Fall eine geringe zugunsten minimalen Latenzen und Netzwerkverkehrs.Part of the task is thus to group the detectors based on their dependencies on the individual compute nodes in such a way that as few packets as possible are sent out of the groups. The group size is appropriate to avoid overloading individual nodes, increasing latency. The already discussed 1 shows an example of such a dependency between possible groups for a group size of two. Besides the three possibilities shown 14a . 14b and 14c In order to run two event detectors on a respective computational node, theoretically there is also the possibility to run each detector on its own node, or all on a single node. In the first case, the reason would be an extremely high CPU utilization by each detector, in the second case a low in favor of minimal latencies and network traffic.

Da jeder Detektor auf jedem Knoten ausgeführt werden kann, und heterogene Knoten erlaubt sind, gibt es KnotenDetektoren verschiedene Kombinationen. Dadurch wächst der Suchraum mit der Größe des Abhängigkeitsgraphen exponentiell zu einer Basis, die mit der Anzahl der im Cluster verfügbaren Maschinen bzw. Rechenknoten übereinstimmt. Ein typischer Abhängigkeitsgraph des Systems zur Eventerkennung bei Fußballspielen kann beispielsweise aus 482 Eventtypen bestehen (mehrere pro Detektor) und soll in einem Cluster mit 12 Hosts à zwei Quadcore-CPUs, also insgesamt 96 Rechenknoten, ausgeführt werden.Since each detector can run on each node, and heterogeneous nodes are allowed, there are node detectors of different combinations. As a result, the search space grows exponentially with the size of the dependency graph to a base that matches the number of machines or compute nodes available in the cluster. For example, a typical dependency graph of the event detection system at football matches may consist of 482 event types (multiple per detector) and should be executed in a cluster of 12 hosts of two quad-core CPUs, for a total of 96 compute nodes.

Unter Berücksichtigung der die Leistungsfähigkeit möglicherweise verringernden Einflüsse lässt sich das Optimierungsproblem zur Verbesserung der Leistungsfähigkeit in allgemeiner Form als gemischt-ganzzahlige Programmierung (Mixed-Integer Nonlinear Programming, MINLP) ausdrücken. Dies bedeutet, es kommen sowohl binäre als auch ganzzahlige Variablen vor. Integer Programming ist zur Klasse der NP-Vollständigen Probleme zu zählen. Sollen, wie oben beschrieben, CPU-Last, Datenübertragung und Latenz minimiert werden, können die benötigten Größen bzw. Variablen wie folgt definiert werden:

n
Anzahl der Detektor bzw. der Ereignisetektoren
m
Anzahl der Hosts bzw. Rechenknoten
xi,k, x ∈ {0, 1}
Detektor i ist Host k zugeordnet
ti,j
Anzahl der Events, die von Detektor i zu Detektor j geschickt werden
li,j
Latenz zwischen Host i und j
pi
Ressourcenauslastung (CPU, evtl. Speicher ..) durch Detektor i
Pk
Verfügbare Ressourcen von Host k
M
Konstante obere Grenze der Detektoranzahl je Host
c1, c2
Gewichtungskonstanten
Taking into account the potentially degrading effects, the optimization problem for improving performance can be expressed in general terms as mixed-integer nonlinear programming (MINLP). This means there are both binary and integer variables. Integer Programming belongs to the class of NP-Complete Problems. If, as described above, CPU load, data transfer and latency are to be minimized, the required variables or variables can be defined as follows:
n
Number of detectors or event detectors
m
Number of hosts or compute nodes
x i, k , x ∈ {0, 1}
Detector i is assigned to host k
t i, j
Number of events sent from detector i to detector j
l i, j
Latency between host i and j
p i
Resource utilization (CPU, possibly memory ..) by detector i
P k
Available resources from host k
M
Constant upper limit of the number of detectors per host
c 1 , c 2
weighting constants

Dabei werde nachfolgend vereinfachend angenommen, die Datenmengen bei der Übertragung eines einzigen Ereignisses seien konstant, und die Signallaufzeit zwischen den einzelnen Rechenknoten bzw. Hosts sei zeitlich unveränderlich. Als Alternative einer expliziten Berechnung bzw. eines expliziten Beobachtens der Rechenlast auf den einzelnen Rechenknoten wird darüber hinaus bei der nachfolgenden, ohne Beschränkung der Allgemeinheit vereinfachend Betrachtung des Problems eine maximale erlaubte Anzahl von Ereignisdetektoren pro Rechenknoten angenommen.In the following, for simplicity's sake, it is assumed that the data volumes in the transmission of a single event are constant, and the signal transit time between the individual computational nodes or hosts is fixed in time. In addition, as an alternative to an explicit calculation or an explicit observation of the computational load on the individual computational nodes, a maximum permitted number of event detectors per computational node is assumed in the subsequent simplistic consideration of the problem without restricting the general public.

Die Formulierung als MINLP lautet wie folgt.

Figure DE102012112253A1_0002
The formulation as MINLP is as follows.
Figure DE102012112253A1_0002

Die erste Summe summiert die im Netzwerk zwischen Detektor i und j übertragenen Events ti,j auf:The first sum sums up the events t i, j transmitted in the network between detector i and j:

Figure DE102012112253A1_0003
Figure DE102012112253A1_0003

Die zweite Summe summiert die Latenz l auf. Zu finden ist die minimale Summe bezüglich verschiedener Werte für xi,j. Die erste Nebenbedingung lautet:

Figure DE102012112253A1_0004
The second sum adds up the latency l. Find the minimum sum with respect to different values for x i, j . The first constraint is:
Figure DE102012112253A1_0004

Sie beschränkt die Anzahl der Detektoren desselben Typs, die zeitgleich im Netzwerk ausgeführt werden dürfen, auf einen. Durch die Vereinfachungen in Bezug auf die Rechenlast gilt anstelle der Nebenbedingung:It limits the number of detectors of the same type that are allowed to run simultaneously in the network to one. Due to the simplifications in terms of the workload, instead of the constraint:

Figure DE102012112253A1_0005
Figure DE102012112253A1_0005

Die ersetzte Nebenbedingung würde die Konfigurationen von Detektoren auf den Rechnern unter ein vorgegebenes Maß von verfügbaren Ressourcen je Rechner zwingen. Die neue Nebenbedingung vereinfacht dies insofern, als dass nur noch eine Höchstgrenze M von aktiven Detektoren auf dem Rechner zu beachten ist.The superseded constraint would force the con fi gurations of detectors on the computers to a given level of available resources per computer. The new constraint simplifies this insofar as only a maximum limit M of active detectors on the computer has to be taken into account.

Bevor auf ein spezielles Beispiel zur Repräsentierung der möglichen Lösungen sowie auf eine dazu korrespondierende Fitnessfunktion näher eingegangen wird, wird anhand von 3 noch einmal schematisch ein Ausführungsbeispiel eines Verfahrens zum Verbessern einer Leistungsfähigkeit eines schematisch ereignisbasierten verteilten Analysesystems gezeigt. Before a specific example for the representation of the possible solutions as well as a corresponding fitness function is discussed in more detail, it is explained by means of 3 once again schematically shows an embodiment of a method for improving a performance of a schematically event-based distributed analysis system.

In einem Bewertungsschritt 42 wird für eine gegebene Verteilung der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten ein Fitnesswert bestimmt, der ein Maß für eine Leistungsfähigkeit des Analysesystems angibt. In an evaluation step 42 For example, for a given distribution of the plurality of event detectors to the plurality of compute nodes, a fitness value is determined indicative of a measure of performance of the analysis system.

In einem Suchschritt 44 wird ein Vorschlag für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten bestimmt.In a search step 44 a proposal is made for a changed distribution of the plurality of event detectors to the plurality of compute nodes.

In einem erneuten Bewertungsschritt 46 wird ein weiterer Fitnesswert für die geänderte vorgeschlagene Verteilung bestimmt.In a new evaluation step 46 another fitness value is determined for the changed proposed distribution.

In einem Vergleichsschritt 48 wird der weitere Fitnesswert mit einem vorbestimmten Entscheidungskriterium verglichen. In einem Verteilungsschritt 50 wird die Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten gemäß der vorgeschlagenen geänderten Verteilung verteilt, insofern der weitere Fitnesswert das vorbestimmte Entscheidungskriterium erfüllt. Wie in 3 gezeigt, kann das Verfahren auch in mehreren Iterationen hintereinander ausgeführt werden, wobei eine tatsächliche Umverteilung im Verteilungsschritt 50 erst nach einer vorbestimmten Anzahl von Iterationen erfolgt.In a comparison step 48 the further fitness value is compared with a predetermined decision criterion. In a distribution step 50 the plurality of event detectors is distributed to the plurality of compute nodes in accordance with the proposed changed distribution insofar as the further fitness value satisfies the predetermined decision criterion. As in 3 The method can also be carried out successively in several iterations, with an actual redistribution in the distribution step 50 only after a predetermined number of iterations.

Bei der nun folgenden Darstellung einer konkreten Implementierung bzw. eines konkreten Beispiels wird zuerst die Darstellung der möglichen Lösungen beschrieben. Darauf aufbauend wird die allen Heuristiken gemeine Fitnessfunktion vorgestellt, die die Lösungen während des Verfahrens bewertet bzw. einen Fitnesswert je möglicher Lösung errechnet. In the following presentation of a concrete implementation or a concrete example, the presentation of the possible solutions is described first. Based on this, the heuristics common fitness function is presented, which evaluates the solutions during the procedure or calculates a fitness value for each possible solution.

Die verwendete Darstellung von Lösungen (von möglichen Verteilungen der Ereignisdetektoren) als Integer Vektor X → abstrahiert von der Ebene der tatsächlichen Namen der Detektoren und ermöglicht durch die kompakte Speicherung eine effiziente Verarbeitung.

Figure DE102012112253A1_0006
The representation of solutions (of possible distributions of the event detectors) used as integer vector X → abstracts from the level of the actual names of the detectors and enables efficient processing due to the compact storage.
Figure DE102012112253A1_0006

Jede Zeile i in X → entspricht einem Event Detektor bzw. einem Ereignisdetektor. Der Eintrag xi ist eine Zahl, die einem Hostrechner bzw. Rechenknoten zugeordnet ist, auf dem ein EventCore läuft.

Figure DE102012112253A1_0007
Each line i in X → corresponds to an event detector or an event detector. The entry x i is a number associated with a host or compute node running an EventCore.
Figure DE102012112253A1_0007

Ein Lösungsvektor X → = {0, 0,5}T bedeutet also, dass die Ereignisdetektoren bzw. die Detektoren #1 und #2 auf dem EventCore 0 laufen und der Detektor #3 dem EventCore 5 zugeordnet ist. Die Abhängigkeiten unter den Detektoren sind ähnlich modelliert:

Figure DE102012112253A1_0008
Figure DE102012112253A1_0009
A solution vector X → = {0, 0.5} T thus means that the event detectors or the detectors # 1 and # 2 run on the EventCore 0 and the detector # 3 is assigned to the EventCore 5. The dependencies among the detectors are modeled similarly:
Figure DE102012112253A1_0008
Figure DE102012112253A1_0009

Für jeden Detektor wird der Index der Nachfolger- und der Vorgängerdetektoren gespeichert.For each detector, the index of successor and predecessor detectors is stored.

Der erste Detektor, repräsentiert durch den ersten Vector der Matrix N, hat die n-vielen Nachfolger x0,i.

Figure DE102012112253A1_0010
der in 4 gezeigten Abhängigkeit zwischen den Ereignisdetektoren 0, 1 und 2.The first detector, represented by the first vector of the matrix N, has the n-many successors x 0, i .
Figure DE102012112253A1_0010
the in 4 shown dependency between the event detectors 0, 1 and 2.

Die Anzahl der empfangenen Ereignissen wird pro Ereignisdetektor separat in eine Tabelle eingetragen, die Latenz wird in ein einfaches Array je Host bzw. Rechenknoten geschrieben.

Figure DE102012112253A1_0011
The number of received events is entered separately per event detector in a table, the latency is written into a simple array per host or compute node.
Figure DE102012112253A1_0011

Die Berechnung der Fitness der unterschiedlichen Lösungen wird in evolutionären Algorithmen bzw. Heuristiken extrem oft ausgeführt, und sollte daher effizient zu berechnen sein.The calculation of the fitness of the different solutions is performed extremely often in evolutionary algorithms or heuristics, and should therefore be calculated efficiently.

Die problemangepasste Fitnessfunktion hat folgende Form für den Lösungsvektor X →:

Figure DE102012112253A1_0012
wobei ti,j die Anzahl der innerhalb eines Beobachtungszeitraumes vom Rechenknoten i zum Rechenknoten j übertragenen Ereignisse angibt,
ai,j = 1 wenn der Ereignisdetektor i und der Ereignisdetektor j auf demselben Rechenknoten laufen, 0 sonst;
bi,j = 0 wenn der Ereignisdetektor i und der Ereignisdetektor j auf demselben Rechenknoten laufen, 1 sonst;
li,j = ein die zusätzlich Latenz bei der Übertragung eines Ereignisses vom Rechenknoten des Ereignisdetektors i zu dem Rechenknoten des Ereignisdetektors j angebender Faktor; und
c1 und c2 statistische Gewichte sind.The problem-adapted fitness function has the following form for the solution vector X →:
Figure DE102012112253A1_0012
where t i, j indicates the number of events transmitted from the computing node i to the computing node j within an observation period,
a i, j = 1 if the event detector i and the event detector j are running on the same computational node, 0 otherwise;
b i, j = 0 if the event detector i and the event detector j are running on the same compute node, 1 otherwise;
l i, j = a factor indicating the additional latency in the transmission of an event from the computational node of the event detector i to the computational node of the event detector j; and
c 1 and c 2 are statistical weights.

Die Konstanten c1 und c2 gewichten die übertragenen Daten und die Latenzen zwischen den Hosts. Wenn eine CPU-Last explizit erfasst werden soll, so kann man die Funktion f(X →) erweitern. Bislang wird das Maximum der Detektoren bzw. Ereignisdetektoren pro Host bzw. Rechenknoten vorgegeben und bei Überschreitung ein sog. Penalty-Wert vom Fitnesswert abgezogen. Der Fitnessbetrag steigt, je mehr Detektoren ihre Events lokal von ihrem Produzenten erhalten mit der Anzahl der so vermiedenen Event-Übertragungen über das Netzwerk und sinkt, je mehr Events von anderen Detektoren (auf mit Latenz behafteten Hosts) abonniert werden. Die Gewichtung der drei Kriterien Netzwerklast, CPU-Last und Netzwerklatenz kann beispielsweise so ausgelegt werden, dass die Anzahl der Detektoren je Host das meiste Gewicht hat. Das Zweitwichtigste ist die Netzwerklast, die bei steigender Paketzahl stärker als die Latenz berücksichtigt wird.The constants c 1 and c 2 weight the transmitted data and the latencies between the hosts. If a CPU load is to be detected explicitly, then you can extend the function f (X →). So far, the maximum of the detectors or event detectors per host or computational node is specified and deducted when exceeding a so-called penalty value from the fitness value. The amount of fitness increases as more detectors receive their events locally from their producer, with the number of event transmissions avoided over the network, and decrease as more events are subscribed to by other detectors (on latency hosts). For example, the weighting of the three criteria, network load, CPU load, and network latency, can be interpreted to mean that the number of detectors per host has the most weight. The second most important is the network load, which is considered stronger than the latency as the packet rate increases.

Die Fitnessfunktion lässt sich in Form eines Pseudocode beispielsweise so darstellen:

Figure DE102012112253A1_0013
Figure DE102012112253A1_0014
The fitness function can be represented in the form of a pseudocode, for example:
Figure DE102012112253A1_0013
Figure DE102012112253A1_0014

Der vorstehende Algorithmus der Fitnessfunktion untersucht bzw. bestimmt einen Fitnesswert für eine mögliche Lösung. Dabei werden bei jedem Eintrag des Konfigurationsvektors config zwei Fälle unterschieden, einerseits, dass sich der Vorgänger-Detektor auf demselben Host befindet, oder auf einem anderen. Der Konfigurationsvektors config ist der Repräsentant eines Lösungsvektors X →. Es werden alle Vorgänger des Detektors Nummer i im Vektor prev analysiert. Falls einer von ihnen denselben Eintrag in config hat, dann sind sie demselben Host zugeordnet. Die Besonderheit, die zusätzlich in den Code aufgenommen ist, ist, dass es besondere Abhängigkeiten geben kann. Bei den sog. Secure Subscriptions (sec) bestätigt der Empfänger B dem Sender A, dass das Event angekommen ist. Es entsteht also mehr Verkehr, der auch mit bedacht wird.The above algorithm of the fitness function examines or determines a fitness value for a possible solution. For each entry of the configuration vector config, two cases are distinguished, on the one hand, that the predecessor detector is located on the same host, or on another. The con fi guration vector con fi g is the representative of a solution vector X →. All predecessors of the detector number i are analyzed in the vector prev. If one of them has the same entry in con fi g, then they are assigned to the same host. The peculiarity that is additionally included in the code is that there can be special dependencies. In the so-called secure subscriptions (sec), the receiver B confirms to the transmitter A that the event has arrived. This creates more traffic, which is also considered.

Anhand der 5 bis 8 wird nachfolgend illustriert, wie ein Ausführungsbeispiel der vorliegenden Erfindung dazu führt, dass die Leistungsfähigkeit eines ereignisbasierten Analysesystems verbessert werden kann. Um ein dynamisches Analysesystem zu simulieren werden nachfolgen Event Detektoren implementiert, die im zeitlichen Verlauf unterschiedliche aktive Abhängigkeiten haben. Auf diese Art wird eine Änderung der Lastverteilung simuliert. Eine vormals optimale Verteilung kann so suboptimal werden. Das Ziel ist, zu zeigen, dass das Modul in der Lage ist, stets bessere Verteilungen im Hinblick auf die globale Netzwerklast zu konfigurieren.Based on 5 to 8th is illustrated below how an embodiment of the present invention results in that the performance of an event-based analysis system can be improved. To simulate a dynamic analysis system, subsequent event detectors are implemented, which have different active dependencies over time. In this way a change of the load distribution is simulated. A previously optimal distribution can be so suboptimal. The goal is to show that the module is able to con fi gure ever better distributions in terms of global network load.

Konkret werden in einer Simulationsumgebung zwei Rechner angelegt, die über Ethernet miteinander verbunden sind. Beide führen einen EventCore aus, der wiederum je vier Ereignisdetektoren startet. Einer von diesen Ereignisdetektoren sendet alle 200ms insgesamt 1500 Events aus und ist das Wurzelelement einer Abhängigkeitskette, die in 5 dargestellt ist. Die Phasen I und II unterschiedlicher Abhängigkeit wechseln sich alle 500 vom Detektor 0 versendeten. Events ab. Konkret versenden die Detektoren 1 und 4, nachdem sie 500 Events vom Detektor 0 empfangen haben, andere Events und verändern so den Verlauf der Verarbeitungskette. Nach 1000 empfangenen Events von Detektor 0 kehren beide Detektoren 1 und 4 wieder in ihren ursprünglichen Modus zurück.Specifically, two computers are created in a simulation environment, which are interconnected via Ethernet. Both execute an EventCore, which in turn starts four event detectors each. One of these event detectors sends a total of 1500 events every 200ms and is the root element of a dependency chain that is in 5 is shown. The phases I and II of different dependency alternate every 500 sent by the detector 0. Events off. Specifically, detectors 1 and 4, after receiving 500 events from detector 0, send out other events, thus changing the course of the processing chain. After 1000 received events from detector 0 both detectors 1 and 4 return to their original mode.

Für die Simulation existiert keine globale, vorab extern einlesbare Karte der Abhängigkeiten der Detektoren, weshalb sich das Verfahren an den im Netzwerk aktivierten Detektoren und deren Subscriptions bzw. deren Abhängigkeiten orientiert. Dafür werden alle bekannten EventCores nacheinander über eine TCP-Verbindung nach ihren aktuell aktiven Detektoren gefragt. Danach wird über einen ähnlichen Mechanismus die Anzahl der versendeten Events pro Event-ID abgerufen. Da nun bekannt ist, wie viele Ereignisse versendet wurden, kann man Rückschlüsse auf die Anzahl der empfangenen Pakete bei den abonnierenden Detektoren ziehen. Sind alle aktiven Detektoren bekannt, dann werden über lokale Datenstrukturen des EventCores die Abhängigkeiten der Detektoren aufgelöst. Die Heuristik sucht anschließend basierend auf der aktuellen Verteilung und der beschafften Informationen eine bessere Verteilung. Ist eine gefunden, dann werden die Detektoren auf die günstigere Konfiguration migriert.For the simulation, there is no global, externally readable map of the dependencies of the detectors, which is why the method is based on the detectors activated in the network and their subscriptions or their dependencies. For this, all known EventCores are successively asked about their currently active detectors via a TCP connection. After that, a similar mechanism retrieves the number of events sent per event ID. Since it is now known how many events have been sent, one can draw conclusions about the number of received packets at the subscribing detectors. If all active detectors are known, then the dependencies of the detectors are resolved via local data structures of the EventCore. The heuristic then searches for a better distribution based on the current distribution and the information provided. If one is found, then the detectors are migrated to the more favorable con fi guration.

6 zeigt durch unterschiedliche Schraffuren die Verteilung der unterschiedlichen Ereignisdetektoren 1 bis 7 auf die zwei Rechenknoten A und B zu Beginn jeder Phase. 6 shows by different hatching the distribution of the different event detectors 1 to 7 on the two computational nodes A and B at the beginning of each phase.

Wie aus 6 ersichtlich, wurde die initiale Verteilung der Detektoren auf die Event-Cores A und B möglichst ineffizient gewählt, um die Anpassungsfähigkeit des Verfahrens zu demonstrieren. 6 zeigt die Gruppen bzw. die Verteilung der Ereignisdetektoren 0 bis 7 auf die Rechenknoten A und B, mit denen die EventCores jeweils gestartet werden. In dieser Konfiguration muss jedes Event über das Netzwerk an einen anderen EventCore übertragen werden, um zu seinem Subscriber zu gelangen. Hier kann keine Lokalität auf den EventCores ausgenutzt werden. How out 6 As can be seen, the initial distribution of the detectors on the event cores A and B was chosen as inefficient as possible in order to demonstrate the adaptability of the method. 6 shows the groups or the distribution of the event detectors 0 to 7 on the computing nodes A and B, with which the EventCores are respectively started. In this con fi guration, each event must be transmitted over the network to another EventCore to get to its Subscriber. Here, no location can be exploited on the EventCores.

In 7 sind die optimalen Verteilungen bei einer maximalen Gruppengröße von 4 abgebildet. Es muss nur das Event des Detektors 0 an die andere Gruppe des Versuchaufbaus weitergeleitet werden, die restlichen Datenpakete werden lokal durch den jeweiligen EventCore verteilt.In 7 the optimal distributions are shown with a maximum group size of 4. Only the event of the detector 0 has to be forwarded to the other group of the test setup, the remaining data packets are distributed locally by the respective EventCore.

Zum Test des Verfahrens in diesem Versuchsaufbau wurde der nachfolgend noch genauer beschriebene CS/PSO-Algorithmus zum Ermitteln eines Vorschlags für eine geänderte Verteilung der Eventdetektoren 0 bis 7 auf die Rechenknoten A und B auf 10000 Iterationen gesetzt. Bei dieser Problemgröße entsprach das im Testsystem einer Laufzeit des Verfahrens von circa einer Sekunde. Nach jedem Durchlauf des Verfahrens (jeder Berechnung) und einer eventuellen Neuverteilung, wurde 4 Sekunden gewartet, ehe eine neue Datenerhebung (im Polling-Verfahren) gestartet wird. In diesem Zeitraum, der also etwas mehr als 5 Sekunden beträgt, laufen Zähler in jedem EventCore und registrieren neue Event-Übertragungen. Auf Basis dieser Zähler kann das Verfahren bzw. ein das Verfahren implementierender Leistungsverbesserer im Anschluss an die Datenerhebung neue Berechnungen starten.To test the method in this experimental set-up, the CS / PSO algorithm described below for determining a proposed change of the distribution of event detectors 0 to 7 to computing nodes A and B was set to 10,000 iterations. With this problem size, this corresponded in the test system to a running time of the method of about one second. After each run of the procedure (each calculation) and a possible redistribution, 4 seconds were waited before a new data collection (in the polling procedure) is started. In this period, which is just over 5 seconds, counters run in each EventCore and register new event transmissions. On the basis of these counters, the method or a performance improver implementing the method can start new calculations following the data collection.

8 zeigt in auf der y-Achse den Input und Output aller Eventübertragungen des gesamten Netzwerks. Die Übertragungen aller Netzwerkschnittstellen sind zusammengefasst, um auf einen Blick die globale Last zu zeigen, die von der Übertragung der Events verursacht wird. Der Test dauerte 300 Sekunden und alle 100 Sekunden schaltete das Event processing system (EPS) zwischen den Phasen I und II um. Der Graph 60 steht für die statische und der Graph 62 für die vom Ausführungsbeispiel des Verfahrens dynamisch vorgenommene Verteilung. Der Graph 64 zeigt die Netzwerklast für die jeweils optimale Verteilung der Ereignisdetektoren 0 bis 7 auf die Rechenknoten A und B, die von dem Verfahren zum Verbessern einer Leistungsfähigkeit regelmäßig erreicht wird. Zu sehen ist insbesondere, dass nach einer kurzen Übergangszeit, die den oben genannten, strukturellen Voraussetzungen geschuldet ist, eine bessere bzw. optimale Konfiguration erreicht wird. 8th shows in the y-axis the input and output of all event transmissions of the entire network. The transmissions of all network interfaces are summarized to show at a glance the global load caused by the transmission of the events. The test lasted 300 seconds and every 100 seconds the Event processing system (EPS) switched between phases I and II. The graph 60 stands for the static and the graph 62 for the distribution made dynamically by the exemplary embodiment of the method. The graph 64 FIG. 12 shows the network load for each optimal distribution of the event detectors 0 through 7 on the compute nodes A and B, which is regularly achieved by the method for improving performance. It can be seen, in particular, that after a short transitional period, which is due to the above-mentioned structural prerequisites, a better or optimal con fi guration is achieved.

Die Neuverteilung bei Sekunde 100 ist in 8 rechts im Detail dargestellt. Dort ist auch die Übergangszeit sichtbar. Der Graph 66 (Polling) in der rechten Darstellung von 8 illustriert die Datenübertragungen, die bei Abfragen der Zählerstände und bei Umzügen der Detektoren zwischen den EventCores anfallen. Das Polling zum Abfragen der verschiedenen Zählerstände der EventCores findet regelmäßig statt, so auch um Sekunde 100. Dieses Polling liefert also noch die Zahlenwerte der Abhängigkeiten aus Phase I. Eine Berechnung der Fitnessfunktion basierend auf diesen Daten ergibt daher zunächst keinen Hinweis auf die Notwendigkeit einer Umsortierung der Ereignisdetektoren. Die Konfiguration ist deshalb bis zur nächsten Abfrage ab der 105. Sekunde stabil. The redistribution at second 100 is in 8th shown in detail on the right. There is also the transitional period visible. The graph 66 (Polling) in the right hand representation of 8th illustrates the data transfers that occur when querying the counter readings and when relocating the detectors between the EventCores. The polling for querying the various counter counts of the EventCores takes place regularly, so also by 100 second. So this polling still provides the numerical values of the dependencies from phase I. A calculation of the fitness function based on these data therefore initially gives no indication of the need for re-sorting the event detectors. The con fi guration is therefore stable until the next interrogation from the 105th second.

Das etwas geringere Aufkommen an Event-Übertragungen in dieser Phase ist allein den unterschiedlich aktiven Abhängigkeiten zwischen den Ereignisdetektoren geschuldet. Das Polling ab Sekunde 105 liefert nun eine Mischung von Zählerständen aus beiden Phasen, was Auswirkungen auf die berechnete Verteilung hat, die ab der 110. Sekunde gilt. Erst die Abfrage um die 112. Sekunde liefert die Zahlenwerte, die rein für die Verteilung der zweiten Phase gelten. Das optimale Minimum ist ab der 116. Sekunde erreicht.The slightly lower amount of event transmissions in this phase is due solely to the different active dependencies between the event detectors. The polling from second second 105 now provides a mix of meter readings from both phases, which affects the calculated distribution, which applies from the 110th second. Only the query for the 112th second provides the numerical values that apply purely to the distribution of the second phase. The optimum minimum is reached from the 116th second.

Nachdem die vorhergehenden Überlegungen anhand der 5 bis 8 gezeigt haben, dass mittels der Ausführungsbeispiele erfindungsgemäßer Verfahren die Leistungsfähigkeit eines ereignisbasierten verteilten Analysesystems signifikant verbessert werden kann, wird nachfolgend noch auf einige mögliche Verfahren eingegangen, wie ein Vorschlag für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten ermittelt werden kann.After the previous considerations based on the 5 to 8th have shown that the performance of an event-based distributed analysis system can be significantly improved by means of embodiments of inventive method, will be discussed below some possible methods how a proposal for a modified distribution of the plurality of event detectors can be determined on the plurality of computational nodes.

Das Problem des Findens neuer möglicher Konfigurationen bzw. neuer möglicher Verteilungen der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten kann unter ständiger Beobachtung des Problems beispielsweise mit einem heuristischen Algorithmus gelöst werden. In den nun folgenden Abschnitten werden unterschiedliche Verfahren vorgestellt, die zum Ermitteln eines Vorschlag für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren auf die Mehrzahl von Rechenknoten verwendet werden können, die also als heuristische Suchalgorithmen in Frage kommen, um unterschiedlich zu testende Konfigurationen des Analysesystems im zur Verfügung stehenden Suchraum aufzufinden.The problem of finding new possible configurations or new possible distributions of the plurality of event detectors on the plurality of computational nodes can be solved by constantly observing the problem with, for example, a heuristic algorithm. In the sections that follow, various methods are presented that can be used to determine a proposed change in the distribution of the plurality of event detectors to the plurality of computational nodes, which may be heuristic search algorithms, for different configurations of the analysis system to be tested Find available search space.

Wenngleich nachfolgend ohne Anspruch auf Vollständigkeit ein kurzer Überblick über verschiedene Heuristiken gegeben wird, können in weiteren Ausführungsbeispielen der Erfindung selbstverständlich auch andere Implemetierungen verwendet werden.Although a brief overview of various heuristics is given below without any claim to completeness, it is of course also possible to use other implements in further exemplary embodiments of the invention.

Eine Möglichkeit ist die Verwendung eines genetischen Algorithmus. Genetische Algorithmen orientieren sich, wie der Name vermuten lässt, an der Evolution. Genauer gesagt an den Dingen, die die Evolution im Kern voran treiben, der DNS und dem „survival of the fittest“. Über viele Generationen hinweg kommt es bei der Entwicklung der Lösungssequenzen zu Mutationen. Schwächere Elemente sterben im Zuge der Auslese und die stärksten kombinieren ihre Gene neu. Der einfachste Genetischer Algorithmus (GA) besteht aus Schritten, die durch den folgenden Pseudo-Code dargestellt werden.

Figure DE102012112253A1_0015
One possibility is the use of a genetic algorithm. Genetic algorithms are based, as the name suggests, on evolution. Specifically, the things that drive evolution at its core, DNA and the survival of the fi ttest. Over many generations mutations develop in the development of solution sequences. Weaker elements die in the course of selection and the strongest ones recombine their genes. The simplest Genetic Algorithm (GA) consists of steps represented by the following pseudo-code.
Figure DE102012112253A1_0015

Ein genetischer Algorithmus soll speziell große, nicht lineare und komplexe Suchräume durch sein Random Searching gut abtasten können. Mutationen einzelner Chromosome bedeuten eine lokale Suche, Kreuzungen können dem Ausbrechen aus lokalen Optima dienen.A genetic algorithm should be able to sample especially large, non-linear and complex search spaces by random search. Mutations of single chromosomes mean a local search, junctions can serve to break out of local optima.

9 stellt den Vorgang der Kreuzung und Mutation schematisch anhand von Chromosomen dar, die aus Reihen von binären Zahlen bestehen. Das Beispiel für Kreuzungen zeigt, wie eine Umsetzung implementiert werden könnte. Ein Abschnitt zweier Chromosomen, hier also des Zahlenvektors, wird ausgetauscht. Die Mutation kann beispielsweise durch das vertauschen zwei benachbarter Zahlen geschehen. Wie die Mechanismen konkret für ein Optimierungsproblem umgesetzt werden, ist von der Wahl der Darstellung eines Chromosoms abhängig. 9 schematically illustrates the process of crossing and mutation using chromosomes consisting of series of binary numbers. The example of intersections shows how an implementation could be implemented. A section of two chromosomes, here the number vector, is exchanged. The mutation can be done, for example, by swapping two adjacent numbers. How the mechanisms are actually implemented for an optimization problem depends on the choice of the representation of a chromosome.

Eine weitere Möglichkeit ist die Verwendung eines „Cuckoo Search“ Algorithmus. Cuckoo Search (CS) basiert auf zwei in der Natur anzutreffenden Konzepten, dem Brutverhalten mancher Kuckucksarten und dem Flugverhalten von einigen Vogelarten und Fruchtfliegen. Das Brutverhalten bestimmter Kuckucksarten ist parasitär. Das heißt, sie legen ihre Eier in die Nester fremder Vögel und entfernen eventuell sogar deren Eier, um die Überlebenschancen der eigenen Brut zu erhöhen. Entdeckt ein so hintergangener Vogel das Kuckucksei, dann schmeißt er es entweder aus dem Nest oder gibt das komplette Nest auf. Another possibility is the use of a "cuckoo search" algorithm. Cuckoo Search (CS) is based on two concepts that can be found in nature, the breeding behavior of some cuckoo species, and the flight behavior of some bird species and fruit flies. The breeding behavior of certain cuckoo species is parasitic. That is, they lay their eggs in the nests of foreign birds and may even remove their eggs to increase the chances of survival of their own brood. If a bird so deceived discovers the cuckoo's egg, it either throws it out of the nest or gives up the entire nest.

Das Flugverhalten der Drosophila melanogaster (Fruchtfliege) weißt typische Charakteristiken des Lévy Flight auf, einer Art des Random Walk. Gegenüber der Brownschen Bewegung, für die eine maximale Varianz zwischen den Schritten definiert ist, ist die Varianz des Lévy Flight unendlich. Die Lévy-Verteilung hat größere Ausläufer als die Normalverteilung. Symmetrische α-Verteilungen, wie einige Lévy Varianten, haben im positiven und negativen Achsenabschnitt gleich große Ausläufer. Sie sind vom Exponenten α abhängig, der die erlaubte „Schwere“ angibt. Je schwerer, umso wilder ist die Verteilung. Es lässt sich kein Mittelwert mehr angeben. Diese Art der zufälligen Pfadbestimmung ist sogar bei Urzeit-Menschen nachgewiesen worden, bevor sie sesshaft wurden. Der Vorteil großer Varianz ist, dass man den Suchraum effizienter erkunden und somit lokale Optima überwinden kann. Beschränkte Varianz bedeutet vornehmlich lokalere Routen.The flight behavior of the Drosophila melanogaster (fruit flies) shows typical characteristics of the Lévy Flight, a kind of Random Walk. Compared to the Brownian motion, for which a maximum variance between steps is defined, the variance of the Lévy Flight is infinite. The Lévy distribution has larger extensions than the normal distribution. Symmetrical α distributions, like some Lévy variants, have equally large extensions in the positive and negative intercept. They depend on the exponent α, which indicates the allowed "severity". The heavier, the wilder the distribution. You can no longer specify an average value. This type of random pathfinding has been proven even in prehistoric humans before they settled down. The advantage of large variance is that you can explore the search space more efficiently and thus overcome local optima. Limited variance means primarily more local routes.

Der Cuckoo Search Algorithmus basiert auf drei einfachen Regeln:

  • (i) Ein Kuckuck legt ein einziges Ei in ein zufällig gewähltes Nest.
  • (ii) Die Nester mit den besten Eiern bleiben für die nächste Iteration.
  • (iii) Die schlechtesten Nester und Eier werden aufgegeben und durch neue ersetzt.
The Cuckoo Search algorithm is based on three simple rules:
  • (i) A cuckoo lays a single egg in a randomly chosen nest.
  • (ii) The nests with the best eggs stay for the next iteration.
  • (iii) The worst nests and eggs are abandoned and replaced with new ones.

Die Güte eines Eis entspricht dem Fitnesswert der Lösung, durch die es repräsentiert wird. Ausgehend von den vorhandenen Eiern in den Nestern wird per Lévy-Flight ein neues Kuckucksei generiert: xt+1 = xt + α·Lvy(λ) x ist eine Lösung des Minimierungsproblems zum Zeitschritt t, α sei 1 und Lvy ~ u = t–λ, (1 < λ ≤ 3). Der Faktor α beeinflusst die Schrittgröße und kann an den Suchraum angepasst werden.The quality of an ice cream corresponds to the fitness value of the solution by which it is represented. Based on the existing eggs in the nests, a new cuckoo's egg is generated by Lévy-Flight: x t + 1 = x t + α · L vy (λ) x is a solution of the minimization problem to the time step t, α is 1 and Lvy ~ u = t , (1 <λ ≤ 3). The factor α influences the step size and can be adapted to the search space.

Ein prozentualer Anteil (pa ∈ [0, 1]) der schlechtesten Nester wird durch zufällige neue Lösungen ersetzt. Durch diese Regeln werden neue Lösungen um die besten Nester herum gesucht und neue Bereiche durch die Aufgabe schlechter Lösungen erkundet. Dadurch kann der Algorithmus aus lokalen Optima ausbrechen. Die obigen Schritte werden iterativ durchlaufen, bis ein Haltekriterium, wie eine bestimmte Anzahl von Iterationen oder ausbleibende Verbesserung einer Nestgruppe, erreicht wird.A percentage (p a ∈ [0, 1]) of the worst nests is replaced by random new solutions. These rules seek new solutions around the best nests and explore new areas by giving up bad solutions. This allows the algorithm to break out of local optima. The above steps are iterated until a holding criterion, such as a certain number of iterations or non-improvement of a nest group, is achieved.

Durch folgenden Pseudo-Code kann der Cuckoo Search Algorithmus beschrieben werden:The following pseudo-code describes the Cuckoo Search algorithm:

Figure DE102012112253A1_0016
Figure DE102012112253A1_0016

Eine weitere Möglichkeit ist die Verwendung eines auf dem „Cuckoo Search“ Algorithmus basierenden modifizierten „Cuckoo Search“ Algorithmus, der um eine Kommunikation in der Gruppe der besten Nester erweitert ist. Die Begründung ist, dass der „Cuckoo Search“ mit genügend viel Zeit zwar immer ein Optimum findet, bei rechenintensiven Evaluierungsfunktionen aber zu langsam sein kann. Die Erweiterung erhöht die Konvergenzrate und vergrößert die Einsatzgebiete, ohne die gute Abtastung des Suchraumes zu verlieren.Another possibility is the use of a modified "Cuckoo Search" algorithm based on the "Cuckoo Search" algorithm, which is extended by a communication in the group of the best nests. The reason is that the "cuckoo search" always finds an optimum with sufficient time but can be too slow for computation-intensive evaluation functions. The extension increases the convergence rate and increases the application areas without losing the good scan of the search space.

Dabei werden die Nester wie beim „Cuckoo Search“ Algorithmus in zwei Gruppen eingeteilt: gute und schlechte Lösungen. Doch nun wird der Lévy-Flight hauptsächlich nur noch bei den schlechten Nestern angewandt. Die Schrittweite α nimmt außerdem mit der Anzahl der Generationen ab, um lokaleres Abtasten zu fördern:

Figure DE102012112253A1_0017
Here are the nests as in the "Cuckoo Search" algorithm divided into two groups: good and bad solutions. But now the Lévy-Flight is mainly used only in the bad nests. The step size α also decreases with the number of generations to promote more local sampling:
Figure DE102012112253A1_0017

Bei der besseren Gruppe wird ein dem partikelschwarm-ähnliches Verfahren verwendet. Zu jedem Nest wird ein zufälliges anderes aus der Gruppe gewählt, und ein neues Ei generiert, das auf der Verbindungslinie zwischen den beiden Lösungen liegt. Statt eines zufälligen Abstandes verwendet man die Inverse des Goldenen Schnittes

Figure DE102012112253A1_0018
sodass das generierte Ei näher an der fitteren bzw. der besseren der beiden Lösungen liegt. In Ausnahmefällen, bei denen das neue Ei dem älteren gleicht, soll ein Lévy Flight des neuen Eies mit der Schrittweite
Figure DE102012112253A1_0019
angewendet werden, um den Konflikt zu lösen.The better group uses a particle swarm-like method. For each nest, a random one from the group is selected, and a new egg is generated that lies on the connecting line between the two solutions. Instead of a random distance one uses the inverse of the golden section
Figure DE102012112253A1_0018
so that the generated egg is closer to the fi rst or the better of the two solutions. In exceptional cases, in which the new egg is similar to the older, should be a Lévy Flight of the new egg with the step size
Figure DE102012112253A1_0019
be used to solve the conflict.

Eine weitere Möglichkeit ist die Verwendung eines Partikelschwarm Algorithmus, dessen Idee es ist, das Schwarmverhalten von Fischen und Vögeln zu imitieren und Optimierungsprobleme zu lösen. Konzeptuell lässt sich dieser Algorithmus etwa zwischen genetischen und evolutionären Algorithmen einordnen. Genetisch deshalb, weil jeder Partikel andere Partikel zur Generierung neuer Lösungen verwendet. Genauer: Er repräsentiert eine Lösung und erinnert sich an seine persönliche und an die global bisher beste gefundene Lösung. Wie in der Natur bewegt sich der Partikel jetzt von seiner Position aus, angepasst an seine Wahrnehmung des Schwarms, zu einer neuen Position. Diese Schwarmintelligenz kann man auch statt durch das globale Beste mit mehreren lokalen Optima implementieren, zu denen die Partikel streben. Evolutionär deshalb, weil der Partikelschwarmoptimierer iterativ über viele Generationen hinweg sucht. Zu jedem Evolutionsschritt fliegt jeder Partikel zu einer hoffentlich besseren Stelle des Lösungsraumes.Another possibility is the use of a particle-swarming algorithm whose idea is to mimic the flock behavior of fish and birds and to solve optimization problems. Conceptually, this algorithm can be classified between genetic and evolutionary algorithms. Genetically, because each particle uses different particles to generate new solutions. More precisely: He represents a solution and remembers his personal and globally best solution. As in nature, the particle now moves from its position, adapted to its swarm perception, to a new position. This swarm intelligence can also be implemented through the global best with multiple local optima that the particles strive for. Evolutionary because the particle swarm optimizer searches iteratively over many generations. For each evolutionary step, each particle will fly to a better place in the solution space.

Der Ansatz unterscheidet sich also stark von der ursprünglichen Variante des „Cuckoo Search“, der hauptsächlich auf Random Walks basiert. Der „Modified Cuckoo Search“ bedient sich hingegen an den Konzepten des Partikelschwarms und kann durch folgenden Pseudo-Code kompakt repräsentiert werden:

Figure DE102012112253A1_0020
The approach is so different from the original version of the "Cuckoo Search", which is mainly based on random walks. The "Modi fi ed Cuckoo Search", on the other hand, uses the concepts of the particle swarm and can be represented compactly by the following pseudo-code:
Figure DE102012112253A1_0020

Jeder Partikel Pi bewegt sich abhängig von seiner Geschwindigkeit vi fort. Diese berechnet man wie folgt.

Figure DE102012112253A1_0021
Each particle P i moves depending on its velocity v i . These are calculated as follows.
Figure DE102012112253A1_0021

Die Konstanten c1, c2 tragen maßgeblich dazu bei, dass sich die Partikel nicht in lokalen Minima verfangen und r1, r2 sind Zufallszahlen zwischen null und eins. Personalbesti steht für den persönliche Bestwert des Partikels i, Globalbestt für das globale Optimum. Der neue Partikel P t+1 / i ist schließlich P t / i + v t+1 / i .The constants c 1 , c 2 contribute significantly to the fact that the particles do not get caught in local minima and r 1 , r 2 are random numbers between zero and one. PERSONALBEST i represents the personal best value of the particle i, t Globalbest for the global optimum. The new particle P t + 1 / i is finally P t / i + v t + 1 / i ,

Eine weitere Möglichkeit ist die Verwendung einer hybriden Heuristik, die mehrere der Oben genannten Konzepte vereint. Beispielsweise kann die „Vanilla-Variante“ des Partikelschwarm Optimierers durch Kombinationen mit anderen Heuristiken noch erheblich verbessert werden. Durch eine Kombination mit einem Hill-Climbing Algorithmus kann der lokale Raum um die einzelnen Partikel zusätzlich abgetastet werden. Dabei wird die Umgebung des Partikels durch Schritte fester Länge bei jedem Iterationsschritt des Algorithmus abermals erkundet. Es wird dann überprüft, ob der neue Partikel besser ist und den alten ersetzen sollte.Another option is to use a hybrid heuristic that combines several of the above concepts. For example, the "vanilla variant" of the particle swarm optimizer can be considerably improved by combinations with other heuristics. In combination with a hill-climbing algorithm, the local space around the individual particles can be additionally scanned. The environment of the particle is explored again by steps of fixed length at each iteration step of the algorithm. It is then checked if the new particle is better and should replace the old one.

Ein Beispiel für einen solchen hybriden Algorithmus ist ein hybrider CS/Partikelschwarm Optimierer (PSO). Dabei handelt es sich im Grunde um einen Cuckoo Search Algorithmus, dessen Cuckoos als Schwarm agieren und so die Schwarmintelligenz an Stelle von Random Walks nutzen um bessere Brutgebiete zu finden. Wenn die Cuckoos ein Ei legen führt ein Zufälliger Vogel aus dem Schwarm einen Lévy Flight durch. Der restliche Code ähnelt dem des Cuckoo Search, es gibt also eine untere Nestgruppe, dessen Eier neu ausgewürfelt werden, und eine obere, die erhalten bleibt. Der Pseudocode einer möglichen Implementierung lautet wie folgt:

Figure DE102012112253A1_0022
An example of such a hybrid algorithm is a hybrid CS / Particle Swarm Optimizer (PSO). Basically, this is a Cuckoo Search algorithm whose cuckoos act as a swarm, using swarm intelligence instead of random walks to find better breeding grounds. When the cuckoos lay an egg, a random bird from the swarm performs a Lévy flight. The rest of the code is similar to the Cuckoo Search, so there is a bottom nest group whose eggs are re-diced, and an upper one that is preserved. The pseudocode of a possible implementation is as follows:
Figure DE102012112253A1_0022

In den nachfolgenden Absätzen werden die oben beschriebenen Algorithmen bzw. Heuristiken zum Finden neuer potenzieller Lösungen für das Problem bzw. für die Verteilung der Ereignisdetektoren auf die Mehrzahl von Rechenknoten anhand eines synthetischen Benchmarks überprüft. Es ist eine große Problemgröße gewählt, also eine hohe Anzahl an Hosts und Detektoren. Zudem wird Gruppengröße der Aufgaben je Host variiert und dadurch die Parametrisierung der Algorithmen getestet. Hier sollen die Algorithmen und die Darstellung auf ihre Eignung für das System geprüft werden.In the following paragraphs, the algorithms and heuristics described above for finding new potential solutions to the problem or for the distribution of the event detectors to the plurality of computational nodes are checked by means of a synthetic benchmark. There is a large problem size chosen, so a large number of hosts and detectors. In addition, group size of the tasks per host is varied, thereby testing the parameterization of the algorithms. Here, the algorithms and the representation are to be checked for their suitability for the system.

Durch die Benchmarks kann die Gruppengröße auf ein empirisches Fundament gestellt werden. Die Vereinfachung des Benchmarks ist, dass statt beliebiger Eventübertragungen jeder Detektor nur eine Subscription besitzt und auch nur ein einzelnes Event je Public tion verschickt. Die daraus resultierende Hierarchie der Abhängigkeiten zwischen den Ereignisdetektoren entspricht einem binären Baum, wie in 11 dargestellt ist.The benchmarks allow the group size to be based on an empirical foundation. The simplification of the benchmark is that instead of any event transmissions, each detector has only one subscription and also sends only one event per publication. The resulting hierarchy of dependencies between the event detectors corresponds to a binary tree as in 11 is shown.

In sind die Ergebnisse der Benchmarks des CS/PSO- und des H/PSO-Algorithmus zu sehen. Die Topologie der Abhängigkeiten entspricht dem binären Baum aus 11, als Gruppengröße wurde 4 gewählt und die Anzahl der Detektoren auf 20 festgelegt, die auf 5 Hosts verteilt werden. Die relative Qualität (Fitness) der Lösungen ist abgetragen über die Anzahl der dafür benötigten Iterationen. Die Fitness symbolisiert die Kosten, die die Zuordnung von Detektor zu Rechner verursacht. Hierbei gilt, je höher die Fitness, desto niedriger die Kosten. In den Graphen ist das exakte Optimum 70 sowie das Maximum 72, das Minimum 74 und der Durchschnittswert 76 von 10 Durchläufen zu sehen, die je 200000 Generationen durchlebten. Das Optimum 70 wurde a-priori mit einem exakten Löser berechnet.In The results of the benchmarks of the CS / PSO and H / PSO algorithms can be seen. The topology of the dependencies corresponds to the binary tree 11 , the group size was 4 and the number of detectors was set to 20, spread over 5 hosts. The relative quality (fitness) of the solutions is plotted against the number of iterations needed. Fitness symbolizes the costs that the assignment from detector to computer causes. The higher the fitness, the lower the cost. In the graphs is the exact optimum 70 as well as the maximum 72 , the minimum 74 and the average 76 out of 10 runs, each experiencing 200,000 generations. The optimum 70 was calculated a-priori with an exact solver.

Ebenso wie in 12a werden in 12b links die Fitnesswerte des Modified Cuckoo Search-Algorithmus und rechts die des PSO-Algorithmus mit Höchstwert 72, Durchschnittswert 76 und dem niedrigsten Fitnesswert 74 nach einer wachsenden Zahl von Iterationen dargestellt. Dasselbe ist in der linken Abbildung der 12c für den genetischen Algorithmus dargestellt, wohingegen in der rechten Abbildung der 12c unterschiedliche Varianten eines Partikelschwarmalgorithmus einander gegenübergestellt sind.As well as in 12a be in 12b on the left the fitness values of the Modified Cuckoo Search algorithm and on the right the PSO algorithm with maximum value 72 , Average value 76 and the lowest fitness score 74 represented by an increasing number of iterations. The same is in the left picture of the 12c for the genetic algorithm, whereas in the right figure the 12c different variants of a particle swarming algorithm are compared.

In sind die Durchschnittswerte von 10 Durchläufen mit je 200000 Iterationen der verglichenen Algorithmen bei unterschiedlichen Gruppengrößen im direkten Vergleich zusammengefasst. Es ist aus den Graphen zu entnehmen, dass der genetische Algorithmus und der hybride Cuckoo-Search-Partikelschwarmalgorithmus bei einer Gruppengröße von 4 den restlichen Heuristiken überlegen ist. Bei einer Gruppengröße von 3 erzielt der CS/PSO bessere Ergebnisse als der GA. Dies ist darauf zurück zu führen, dass eine kleinere Gruppengröße bedeutet, dass es mehr Möglichkeiten gibt, die Detektoren auf Rechner zu verteilen. Der Suchraum ist also größer und das Finden einer korrekten Lösung schwieriger. Die Suchraumabdeckung bei schwierigen Problemen scheint beim CS/PSO besser zu sein als beim GA. Die Werte in der nachfolgenden Tabelle zeigen, dass der CS/PSO auch bei größeren Problemstellungen besser skaliert, als die anderen Heuristiken. Je höher der Wert in der Tabelle ist, desto besser ist die gefundene Verteilung, und je mehr Detektoren maximal auf einem EventCore gestartet werden dürfen, desto einfacher wird das Finden einer solchen. Zu sehen ist dort auch, dass der Algorithmus zudem bei Vereinfachungen, also einer höheren Grenze von Detektoren je EventCore, besser skaliert. Am größten ist der Sprung zwischen der Gruppengröße 6 und 7. Wie in den vorherigen Benchmarks stellen die Werte in der Tabelle den Mittelwert von 10 Durchgängen nach jeweils 200000 Iterationen dar. Algorithmus 6 max 7 max 8 max 9 max CS/PSO –8 13 14 16 H/PSO –22 –10 –5 0 PSO –27 –9 –6 –3 MCS –38 –18 –14 –7 CS - –36 –28 –26 GA –18 –13 –12 –5 In the average values of 10 runs with 200,000 iterations of the compared algorithms for different group sizes are summarized in a direct comparison. It can be seen from the graphs that the genetic algorithm and the hybrid Cuckoo Search particle swarm algorithm, with a group size of 4, are superior to the remaining heuristics. With a group size of 3, the CS / PSO achieves better results than the GA. This is due to the fact that a smaller group size means that there are more possibilities to distribute the detectors on computers. The search space is thus larger and finding a correct solution more difficult. The search space coverage for difficult problems seems to be better for the CS / PSO than for the GA. The values in the table below show that the CS / PSO scales better than the others, even for larger problems Heuristics. The higher the value in the table, the better the distribution found, and the more detectors allowed to start on an EventCore at maximum, the easier it will be to find one. It can also be seen there that the algorithm also scales better with simplifications, ie a higher limit of detectors per EventCore. The largest jump is between group size 6 and 7. As in the previous benchmarks, the values in the table represent the average of 10 passes after every 200,000 iterations. algorithm 6 max 7 max 8 max 9 max CS / PSO -8th 13 14 16 H / PSO -22 -10 -5 0 PSO -27 -9 -6 -3 MCS -38 -18 -14 -7 CS - -36 -28 -26 GA -18 -13 -12 -5

Die besseren Durchschnittsergebnisse und die stetige Verbesserung der besten gefundenen Lösung des CS/PSO gegenüber den anderen PSO-Algorithmen und dem GA (bei schwierigeren Problemen) lassen sich durch der größeren Varianz, und damit der besseren Suchraumabdeckung des Schwarms erklären. Die Ergebnisse der anderen PSO-Varianten zeigen hingegen sehr früh ein Verharren in bereits gefundenen lokalen Optima. Der CS/-PSO tastet zusätzlich durch Levy-Flights und durch die Bestimmung neuer, zufälliger Lösungen in seinem Schwarm einen größeren Bereich des Suchraums ab und scheint sich mithin für die untersuchte Problemstellung eines ereignisbasierten verteilten Analysesystems besonders zu eignen.The better average results and the continuous improvement of the best found solution of the CS / PSO compared to the other PSO algorithms and the GA (for more difficult problems) can be explained by the greater variance, and thus the better search space coverage of the swarm. The results of the other PSO variants, however, show very early a persistence in already found local Optima. In addition, the CS / PSO scans a larger area of the search space through levy flights and the determination of new, random solutions in its swarm and thus seems to be particularly suitable for the investigated problem of an event-based distributed analysis system.

Die Varianz unter den Partikeln bleibt durch stetiges Resampling groß, was den Schwarm in Bewegung hält. Dieser Mechanismus ist beim Modified Cuckoo Search auch zu sehen. In sind rechts die Verläufe eines separaten Tests von CS/PSO, HPSO und PSO zu sehen. Es sind die Werte von der 5. bis zur 200. Generation abgetragen. An ihnen wird deutlich, wie stark sich lokale Optima in diesem konkreten Optimierungsproblem auswirken. Während der CS/PSO auch nach 200 Iterationen noch bessere Lösungen findet stagnieren HPSO und PSO sehr früh. Ohne Mechanismen, um aus lokalen Optima zu entkommen, scheinen diese Algorithmen daher zur Integration in den EventCore zunächst eher weniger geeignet.The variance among the particles remains high due to continuous resampling, which keeps the swarm in motion. This mechanism can also be seen in the Cuckoo Search mode. In on the right are the progressions of a separate test of CS / PSO, HPSO and PSO. The values from the 5th to the 200th generation have been removed. They show how strongly local optima have an effect on this specific optimization problem. While the CS / PSO finds even better solutions after 200 iterations, HPSO and PSO stagnate very early. Without mechanisms to escape from local optima, these algorithms initially seem less suitable for integration into the EventCore.

Wenngleich der HS/PSO Algorithmus für die gegebene Problemstellung schneller zu optimalen Lösungen zu konvergieren scheint, hat die vorherstehende Betrachtung gezeigt, dass prinzipiell alle der Algorithmen geeignet sind, bei der Leistungsverbesserung eines verteilten ereignisbasierten Analysesystems verwendet zu werden.While the HS / PSO algorithm appears to converge to optimal solutions faster for the given problem, the foregoing consideration has shown that, in principle, all of the algorithms are suitable for use in the performance improvement of a distributed event-based analysis system.

13 zeigt ein Ausführungsbeispiel eines Leistungsverbesserers 100 zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten Analysesystems. Der Leistungsverbesserer 100 umfasst einen Lösungssucher 102 der ausgebildet ist, um, basierend auf einer gegebenen Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c), einen Vorschlag für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) zu ermitteln. 13 shows an embodiment of a performance enhancer 100 for improving the performance of an event-based analysis system. The performance enhancer 100 includes a solution finder 102 configured to, based on a given distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ), a proposal for a modified distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) to investigate.

Ein Leistungsschätzer 104 ist ausgebildet, um für die gegebene Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) einen ein Maß für eine Leistungsfähigkeit des Analysesystems angebenden Fitnesswertes zu bestimmen und um einen weiteren Fitnesswert für die vorgeschlagene geänderte Verteilung zu bestimmen.A performance appraiser 104 is designed to be suitable for the given distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) to determine a fitness value indicative of a measure of a performance of the analysis system and to determine another fitness value for the proposed changed distribution.

Ein Leistungsbewerter 106 ist ausgebildet, um den weiteren Fitnesswertes mit einem vorbestimmten Entscheidungskriterium zu vergleichen.A performance appraiser 106 is designed to compare the further fitness value with a predetermined decision criterion.

Ein Kontroller 108 ist ausgebildet, um zumindest eine Kontrollnachricht 110 zu erzeugen, die eine Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) gemäß der vorgeschlagenen geänderten Verteilung bewirkt, wenn der weitere Fitnesswert das vorbestimmte Entscheidungskriterium erfüllt.A controller 108 is designed to receive at least one control message 110 generate a distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) according to the proposed changed distribution if the further fitness value satisfies the predetermined decision criterion.

Obwohl manche Aspekte der vorliegenden Erfindung im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung eines entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Steuervorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschritts zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details bzw. Merkmals einer entsprechenden Vorrichtung dar.Although some aspects of the present invention have been described in the context of a device, it should be understood that these aspects also constitute a description of a corresponding method such that a block or device of a controller is also to be understood as a corresponding method step or feature of a method step is. Similarly, aspects described in connection with or as a method step also represent a description of a corresponding block or detail or feature of a corresponding device.

Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einer programmierbaren Hardwarekomponente derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird.Depending on particular implementation requirements, embodiments of the invention may be implemented in hardware or in software. The implementation may be performed using a digital storage medium, such as a floppy disk, a DVD, a Blu-ray Disc, a CD, a ROM, a PROM, an EPROM, an EEPROM or FLASH memory, a hard disk, or other magnetic disk or optical memory are stored on the electronically readable control signals, which can cooperate with a programmable hardware component or cooperate such that the respective method is performed.

Eine programmierbare Hardwarekomponente kann durch ein Steuergerät, einen Prozessor, ein Computerprozessor (CPU = Central Processing Unit) einen Computer, ein Computersystem, einen anwendungsspezifischen integrierten Schaltkreis (ASIC = Application-specific Integrated Circuit), einen integrierten Schaltkreis (IC = Integrated Circuit), ein Ein-Chip-System (SOC = System on Chip), ein programmierbares Logikelement oder ein feldprogrammierbares Gatterarray mit einem Mikroprozessor (FPGA = Field Programmable Gate Array) gebildet sein. A programmable hardware component may include, by a controller, a processor, a central processing unit (CPU), a computer, a computer system, an application-specific integrated circuit (ASIC), an integrated circuit (IC), a system on chip (SOC) system, a programmable logic element or a field programmable gate array with a microprocessor (FPGA = Field Programmable Gate Array) may be formed.

Das digitale Speichermedium kann daher maschinen- oder computerlesbar sein. Manche Ausführungsbeispiele umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computer-system oder einer programmierbare Hardwarekomponente derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird. Ein Ausführungsbeispiel ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Programm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.The digital storage medium may therefore be machine or computer readable. Thus, some embodiments include a data carrier having electronically readable control signals capable of interacting with a programmable computer system or a programmable hardware component such that one of the methods described herein is performed. One embodiment is thus a data carrier (or a digital storage medium or a computer readable medium) on which the program is recorded for performing any of the methods described herein.

Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Programm, Firmware, Computerprogramm oder Computerprogrammprodukt mit einem Programmcode oder als Daten implementiert sein, wobei der Programmcode oder die Daten dahin gehend wirksam ist bzw. sind, eines der Verfahren durchzuführen, wenn das Programm auf einem Prozessor oder einer programmierbare Hardwarekomponente abläuft. Der Programmcode oder die Daten kann bzw. können beispielsweise auch auf einem maschinenlesbaren Träger oder Datenträger gespeichert sein. Der Programmcode oder die Daten können unter anderem als Quellcode, Maschinencode oder Byte-code sowie als anderer Zwischencode vorliegen.In general, embodiments of the present invention may be implemented as a program, firmware, computer program, or computer program product having program code or data, the program code or data operative to perform one of the methods when the program resides on a processor or a computer programmable hardware component expires. The program code or the data can also be stored, for example, on a machine-readable carrier or data carrier. The program code or the data may be present, inter alia, as source code, machine code or byte code as well as other intermediate code.

Ein Programm gemäß einem Ausführungsbeispiel kann eines der Verfahren während seiner Durchführung beispielsweise dadurch umsetzen, dass dieses Speicherstellen ausliest oder in diese ein Datum oder mehrere Daten hinein schreibt, wodurch gegebenenfalls Schaltvorgänge oder andere Vorgänge in Transistorstrukturen, in Verstärkerstrukturen oder in anderen elektrischen, optischen, magnetischen oder nach einem anderen Funktionsprinzip arbeitenden Bauteile hervorgerufen werden. Entsprechend können durch ein Auslesen einer Speicherstelle Daten, Werte, Sensorwerte oder andere Informationen von einem Programm erfasst, bestimmt oder gemessen werden. Ein Programm kann daher durch eine Auslesen von einer oder mehreren Speicherstellen Größen, Werte, Messgrößen und andere Informationen erfassen, bestimmen oder messen, sowie durch ein Schreiben in eine oder mehrere Speicherstellen eine Aktion bewirken, veranlassen oder durchführen sowie andere Geräte, Maschinen und Komponenten ansteuern.For example, a program according to one embodiment may implement one of the methods during its execution by, for example, reading or writing one or more data into memory locations, optionally switching operations or other operations in transistor structures, amplifier structures, or other electrical, optical, magnetic or caused by another operating principle working components. Accordingly, by reading a memory location, data, values, sensor values or other information can be detected, determined or measured by a program. A program can therefore acquire, determine or measure quantities, values, measured variables and other information by reading from one or more storage locations, as well as effect, initiate or execute an action by writing to one or more storage locations and control other devices, machines and components ,

Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele präsentiert wurden, beschränkt ist.The embodiments described above are merely illustrative of the principles of the present invention. It will be understood that modifications and variations of the arrangements and details described herein will be apparent to others of ordinary skill in the art. Therefore, it is intended that the invention be limited only by the scope of the appended claims and not by the specific details presented with the description and explanation of the embodiments.

Claims (19)

Verfahren zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten verteilten Analysesystems, bei dem eine Mehrzahl von jeweils das Auftreten eines Ereignisses ermittelnden Ereignisdetektoren (22a22g) auf einer Mehrzahl von unterschiedlichen, über ein Netzwerk (22) verbundenen, Rechenknoten (20a20c) ausgeführt werden können, umfassend: für eine gegebene Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c), Bestimmen eines ein Maß für eine Leistungsfähigkeit des Analysesystems angebenden Fitnesswertes; Ermitteln eines Vorschlags für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c); Bestimmen eines weiteren Fitnesswertes für die geänderte Verteilung; Vergleichen des weiteren Fitnesswertes mit einem vorbestimmten Entscheidungskriterium; und Verteilen der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) gemäß der vorgeschlagenen geänderten Verteilung, wenn der weitere Fitnesswert das vorbestimmte Entscheidungskriterium erfüllt.Method for improving the performance of an event-based distributed analysis system, in which a plurality of event detectors, which respectively determine the occurrence of an event ( 22a - 22g ) on a plurality of different, over a network ( 22 ), computing nodes ( 20a - 20c ), comprising: for a given distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c Determining a fitness value indicative of a measure of performance of the analysis system; Determining a proposal for a changed distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ); Determining another fitness value for the changed distribution; Comparing the further fitness value with a predetermined decision criterion; and distributing the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) according to the proposed changed distribution if the further fitness value satisfies the predetermined decision criterion. Verfahren nach Anspruch 1, bei dem der Fitnesswert eine Information über eine von den Ereignisdetektoren (22a22g) auf dem Rechenknoten (20a20c) verursachte Rechenlast umfasst.The method of claim 1, wherein the fitness value comprises information about one of the event detectors ( 22a - 22g ) on the compute node ( 20a - 20c ) includes computational load. Verfahren nach Anspruch 1 oder 2, bei dem der Fitnesswert eine Information über eine Auslastung der Netzwerkverbindungen des Netzwerkes (22) umfasst. Method according to Claim 1 or 2, in which the fitness value contains information about a utilization of the network connections of the network ( 22 ). Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Fitnesswert eine Information über eine Signallaufzeit der über das Netzwerk (22) übertragenen Ereignisse umfasst.Method according to one of the preceding claims, wherein the fitness value contains information about a signal propagation time of the over the network ( 22 ) events transmitted. Verfahren nach einem der vorhergehenden Ansprüche, bei dem bei dem Bestimmen des Fitnesswertes der Fitnesswert bei einem zwischen einzelnen Ereignisdetektoren (22a22g) auf demselben Rechenknoten (20a20c) übertragenen Ereignis erhöht wird. Method according to one of the preceding claims, in which, in determining the fitness value, the fitness value at a between individual event detectors ( 22a - 22g ) on the same compute node ( 20a - 20c ) event is increased. Verfahren nach einem der vorhergehenden Ansprüche, bei dem bei dem Bestimmen des Fitnesswertes der Fitnesswert bei einem zwischen einzelnen Ereignisdetektoren (22a22g) auf unterschiedlichen Rechenknoten (20a20c) übertragenen Ereignis erniedrigt wird.Method according to one of the preceding claims, in which, in determining the fitness value, the fitness value at a between individual event detectors ( 22a - 22g ) on different compute nodes ( 20a - 20c ) transmitted event is lowered. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Bestimmung des Fitnesswertes f bei einem Analysesystem mit n Ereignisdetektoren (22a22g) gemäß der folgenden Rechenvorschrift erfolgt:
Figure DE102012112253A1_0023
wobei ti,j die Anzahl der innerhalb eines Beobachtungszeitraumes vom Rechenknoten i zum Rechenknoten j übertragenen Ereignisse angibt, ai,j = 1 wenn der Ereignisdetektor i und der Ereignisdetektor j auf demselben Rechenknoten ausgeführt werden, 0 sonst; bi,j = 0 wenn der Ereignisdetektor i und der Ereignisdetektor j auf demselben Rechenknoten ausgeführt werden, 1 sonst; li,j = ein die zusätzlich Latenz bei der Übertragung eines Ereignisses vom Rechenknoten des Ereignisdetektors i und dem Rechenknoten des Ereignisdetektors j angebender Faktor; und c1 und c2 statistische Gewichte sind.
Method according to one of the preceding claims, in which the determination of the fitness value f in an analysis system with n event detectors ( 22a - 22g ) according to the following calculation rule:
Figure DE102012112253A1_0023
where t i, j indicates the number of events transmitted from the compute node i to the compute node j within an observation period, a i, j = 1 if the event detector i and the event detector j are executed on the same compute node, 0 otherwise; b i, j = 0 if the event detector i and the event detector j are executed on the same compute node, 1 otherwise; l i, j = a factor indicating the additional latency in the transmission of an event from the computational node of the event detector i and the computational node of the event detector j; and c 1 and c 2 are statistical weights.
Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Bestimmen des Vorschlags für eine geänderte Verteilung unter Verwendung eines Algorithmus aus der Gruppe genetischer Algorithmus, Cuckoo Search, modifizierter Cuckoo Search, Partikelschwarm und Hybrider Cuckoo Search/Partikelschwarm Algorithmus (CS/PSO) erfolgt. The method of any one of the preceding claims, wherein determining the modified distribution proposal is performed using an algorithm from the group of genetic algorithm, Cuckoo Search, modified Cuckoo Search, Particle Swarm, and Hybrid Cuckoo Search / Particle Swarm Algorithm (CS / PSO). Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Entscheidungskriterium erfüllt ist, wenn der weitere Fitnesswert größer ist als der Fitnesswert.Method according to one of the preceding claims, in which the decision criterion is fulfilled if the further fitness value is greater than the fitness value. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Entscheidungskriterium erfüllt ist, wenn der weitere Fitnesswert größer ist als eine Summe des Fitnesswerts und eines Lastfaktors, der ein Maß für eine vorläufige Leistungsverminderung bei einem Verteilen der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) gemäß der vorgeschlagenen geänderten Verteilung umfasst. Method according to one of the preceding claims, wherein the decision criterion is satisfied if the further fitness value is greater than a sum of the fitness value and a load factor, which is a measure for a preliminary performance reduction in a distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) according to the proposed modified distribution. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein Ereignis ein primitives Ereignis oder ein abgeleitetes Ereignis ist, wobei ein primitives Ereignis direkt von Sensordaten eines Sensornetzwerkes abgeleitet ist und ein abgeleitetes Ereignis auf primitiven Ereignissen basiert.The method of any preceding claim, wherein an event is a primitive event or a derived event, wherein a primitive event is derived directly from sensor data of a sensor network and a derived event is based on primitive events. Verfahren nach einem der vorhergehenden Ansprüche, bei dem mittels des ereignisbasierten Analysesystems das Auftreten von Ereignissen in einer Sportveranstaltung ermittelt werden.  Method according to one of the preceding claims, in which the occurrence of events in a sports event is determined by means of the event-based analysis system. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Empfangen, von jedem der Ereignisdetektoren (22a22g), eine Information über die Anzahl der von dem betreffenden Ereignisdetektor (22a22g) an jeden der anderen Ereignisdetektoren (22a22g) übermittelten Ereignisse. The method of any one of the preceding claims, further comprising: receiving, from each of the event detectors ( 22a - 22g ), information about the number of event detectors ( 22a - 22g ) to each of the other event detectors ( 22a - 22g ) transmitted events. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Empfangen, von jedem der Ereignisdetektoren (22a22g), eine Information über eine Datenmenge, die der betreffende Ereignisdetektor (22a22g) an jeden der anderen Ereignisdetektoren (22a22g) übermittelt hat.The method of any one of the preceding claims, further comprising: receiving, from each of the event detectors ( 22a - 22g ), information about an amount of data that the respective event detector ( 22a - 22g ) to each of the other event detectors ( 22a - 22g ). Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Empfangen, von jedem der Rechenknoten (20a20c), eine Information über eine Rechenlast oder Auslastung, die auf dem betreffenden Rechenknoten (20a20c) von den dort ausgeführten Ereignisdetektoren (22a22g) verursacht wird.The method of any one of the preceding claims, further comprising: receiving, from each of the compute nodes ( 20a - 20c ), an information about a work load or utilization, which is stored on the respective compute node ( 20a - 20c ) from the event detectors ( 22a - 22g ) is caused. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der weitere Fitnesswertes für die geänderte Verteilung basierend auf den zwischen den Ereignisdetektoren (22a22g) der gegebenen Verteilung während eines vorbestimmten Zeitraums ausgetauschten Ereignissen erfolgt.Method according to one of the preceding claims, in which the further fitness value for the changed distribution is based on the information between the event detectors ( 22a - 22g ) the given distribution is exchanged during a predetermined period of time. Verfahren zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten verteilten Analysesystems, bei dem eine Mehrzahl von jeweils das Auftreten eines Ereignisses ermittelnden Ereignisdetektoren (22a22g) auf einer Mehrzahl von unterschiedlichen, über ein Netzwerk verbundenen, Rechenknoten (20a20c) ausgeführt werden können, umfassend: für eine gegebene Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c), Bestimmen eines ein Maß für eine Leistungsfähigkeit des Analysesystems angebenden Fitnesswertes; Ermitteln eines Vorschlags für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c); Bestimmen eines weiteren Fitnesswertes für die geänderte Verteilung; Vergleichen des weiteren Fitnesswertes mit einem vorbestimmten Entscheidungskriterium; und Erzeugen von zumindest einer Kontrollnachricht, die eine Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) gemäß der vorgeschlagenen geänderten Verteilung bewirkt, wenn der weitere Fitnesswert das vorbestimmte Entscheidungskriterium erfüllt.Method for improving the performance of an event-based distributed analysis system, in which a plurality of event detectors, which respectively determine the occurrence of an event ( 22a - 22g ) on a plurality of different, network-connected, computational nodes ( 20a - 20c ) can be performed, comprising: for a given distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c Determining a fitness value indicative of a measure of performance of the analysis system; Determining a proposal for a changed distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ); Determining another fitness value for the changed distribution; Comparing the further fitness value with a predetermined decision criterion; and generating at least one control message indicating a distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) according to the proposed changed distribution if the further fitness value satisfies the predetermined decision criterion. Leistungsverbesserer (100) zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten verteilten Analysesystems, bei dem eine Mehrzahl von jeweils das Auftreten eines Ereignisses ermittelnden Ereignisdetektoren (22a22g) auf einer Mehrzahl von unterschiedlichen, über ein Netzwerk verbundenen, Rechenknoten (20a20c) ausgeführt werden können, umfassend: Einen Lösungssucher (102) der ausgebildet ist, um, basierend auf einer gegebenen Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c), einen Vorschlag für eine geänderte Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) zu ermitteln; Einen Leistungsschätzer (104), der ausgebildet ist, um für die gegebene Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) einen ein Maß für eine Leistungsfähigkeit des Analysesystems angebenden Fitnesswertes zu bestimmen und um einen weiteren Fitnesswert für die vorgeschlagene geänderte Verteilung zu bestimmen; Einem Leistungsbewerter (106), der ausgebildet ist, um den weiteren Fitnesswertes mit einem vorbestimmten Entscheidungskriterium zu vergleichen; und Einem Kontroller (108), der ausgebildet ist um zumindest eine Kontrollnachricht zu erzeugen, die eine Verteilung der Mehrzahl von Ereignisdetektoren (22a22g) auf die Mehrzahl von Rechenknoten (20a20c) gemäß der vorgeschlagenen geänderten Verteilung bewirkt, wenn der weitere Fitnesswert das vorbestimmte Entscheidungskriterium erfüllt.Performance Enhancer ( 100 ) for improving a performance of an event-based distributed analysis system, in which a plurality of event detectors respectively determining the occurrence of an event ( 22a - 22g ) on a plurality of different, network-connected, computational nodes ( 20a - 20c ), comprising: a solution finder ( 102 ) configured to, based on a given distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ), a proposal for a modified distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) to investigate; A performance appraiser ( 104 ), which is designed to be suitable for the given distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) to determine a fitness value indicative of a measure of performance of the analysis system and to determine another fitness value for the proposed altered distribution; A performance evaluator ( 106 ) configured to compare the further fitness value with a predetermined decision criterion; and a controller ( 108 ) configured to generate at least one control message indicating a distribution of the plurality of event detectors ( 22a - 22g ) to the plurality of compute nodes ( 20a - 20c ) according to the proposed changed distribution if the further fitness value satisfies the predetermined decision criterion. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 17, wenn das Computerprogramm auf einer programmierbaren Hardwarekomponente abläuft. Computer program with a program code for performing the method according to one of claims 1 to 17, when the computer program runs on a programmable hardware component.
DE102012112253.9A 2012-12-13 2012-12-13 Apparatus, method and computer program for improving the performance of an event-based distributed analysis system Expired - Fee Related DE102012112253B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102012112253.9A DE102012112253B4 (en) 2012-12-13 2012-12-13 Apparatus, method and computer program for improving the performance of an event-based distributed analysis system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012112253.9A DE102012112253B4 (en) 2012-12-13 2012-12-13 Apparatus, method and computer program for improving the performance of an event-based distributed analysis system

Publications (2)

Publication Number Publication Date
DE102012112253A1 true DE102012112253A1 (en) 2014-07-03
DE102012112253B4 DE102012112253B4 (en) 2019-04-25

Family

ID=50928392

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012112253.9A Expired - Fee Related DE102012112253B4 (en) 2012-12-13 2012-12-13 Apparatus, method and computer program for improving the performance of an event-based distributed analysis system

Country Status (1)

Country Link
DE (1) DE102012112253B4 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111144308A (en) * 2019-12-25 2020-05-12 中国冶金地质总局矿产资源研究院 Kaolin mineral information extraction model and building method and application thereof

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
KUMAR, Anil; CHAKARVERTY, Shampa. Design optimization for reliable embedded system using Cuckoo Search. In: Electronics Computer Technology (ICECT), 2011, S. 264-268. doi: 10.1109/ICECTECH.2011.5941602 *
KUMAR, Anil; CHAKARVERTY, Shampa. Design optimization using genetic algorithm and Cuckoo Search. In: Electro/Information Technology (EIT), 2011, S. 1-5. doi: 10.1109/EIT.2011.5978616 *
MARCHAL, Loris, et al. A realistic network/application model for scheduling divisible loads on large-scale platforms. In: Parallel and Distributed Processing Symp. 2005. S. 48b-48b. doi: 10.1109/IPDPS.2005.63 *
XU, Tianyin, et al. Scaling microblogging services with divergent traffic demands. In: Proc.12th Int. Middleware Conf. 2011. S. 20-39. doi: 10.1007/978-3-642-25821-3_2 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111144308A (en) * 2019-12-25 2020-05-12 中国冶金地质总局矿产资源研究院 Kaolin mineral information extraction model and building method and application thereof
CN111144308B (en) * 2019-12-25 2023-06-16 中国冶金地质总局矿产资源研究院 Kaolin mineral information extraction model and establishment method and application thereof

Also Published As

Publication number Publication date
DE102012112253B4 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
DE602005001883T2 (en) Overlay data, self-organized overlay metadata, and application-level multicast
Bitsakos et al. DERP: A deep reinforcement learning cloud system for elastic resource provisioning
DE102020204464A1 (en) MACHINE CONTROL USING A REAL-TIME MODEL
Edwards et al. Optimised schedules for sequential agricultural operations using a Tabu Search method
Silva et al. odNEAT: An algorithm for distributed online, onboard evolution of robot behaviours
DE112019004943T5 (en) Automated generation of neural networks
DE102009006560B4 (en) Method and sensor network for feature selection for event detection
DE112020007085T5 (en) METHOD AND APPARATUS FOR WORKLOAD FEEDBACK MECHANISM ENABLING CLOSED LOOP ARCHITECTURE
CN109471847B (en) I/O congestion control method and control system
Bomblies Agent-based modeling of malaria vectors: the importance of spatial simulation
Reynolds et al. Optimization problem solving with auctions in Cultural Algorithms
Jabir et al. Digital agriculture in Morocco, opportunities and challenges
Lugnot et al. Biodiversity provides ecosystem services: scientific results versus stakeholders’ knowledge
DE102012112253B4 (en) Apparatus, method and computer program for improving the performance of an event-based distributed analysis system
Rao et al. Integration of cloud computing, IoT, and Big Data for the development of a novel smart agriculture model
CN107315671A (en) Application state monitoring method, device and its equipment
Peralta et al. Scale‐dependent effects of landscape structure on pollinator traits, species interactions and pollination success
Chowdhury et al. An empirical study on mushroom disease diagnosis: a data mining approach
EP3672200B1 (en) Method for collaboration of multiple devices in a local network
Mbarek et al. Load balancing algorithms in heterogeneous web cluster
CN108171538A (en) User data processing method and system
CN114582439B (en) Application scene-based soil saline-alkali soil conditioner screening method and system
Padmapriya et al. IoT Based Energy Optimization in Smart Farming Using AI
Reynolds et al. Problem solving using social networks in Cultural Algorithms with auctions
Alaiso et al. Ant colony optimization for scheduling of agricultural contracting work

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee