DE102012112253B4 - Apparatus, method and computer program for improving the performance of an event-based distributed analysis system - Google Patents
Apparatus, method and computer program for improving the performance of an event-based distributed analysis system Download PDFInfo
- Publication number
- DE102012112253B4 DE102012112253B4 DE102012112253.9A DE102012112253A DE102012112253B4 DE 102012112253 B4 DE102012112253 B4 DE 102012112253B4 DE 102012112253 A DE102012112253 A DE 102012112253A DE 102012112253 B4 DE102012112253 B4 DE 102012112253B4
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
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
Verfahren zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten verteilten Analysesystems, bei dem eine Mehrzahl von jeweils das Auftreten eines Ereignisses ermittelnden Ereignisdetektoren (22a-22g) auf einer Mehrzahl von unterschiedlichen, über ein Netzwerk (22) verbundenen, Rechenknoten (20a-20c) ausgeführt werden können, umfassend:
für eine gegebene Verteilung der Mehrzahl von Ereignisdetektoren (22a-22g) auf die Mehrzahl von Rechenknoten (20a-20c), 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 (22a-22g) auf die Mehrzahl von Rechenknoten (20a-20c);
Bestimmen eines weiteren Fitnesswertes für die geänderte Verteilung;
Vergleichen des weiteren Fitnesswertes mit einem vorbestimmten Entscheidungskriterium; und
Verteilen der Mehrzahl von Ereignisdetektoren (22a-22g) auf die Mehrzahl von Rechenknoten (20a-20c) 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 (22a-22g) each detecting the occurrence of an event can be executed on a plurality of different computing nodes (20a-20c) connected via a network (22) , full:
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 modified 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.
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 ("notification"). 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 reasonable time resolution, so that, for example, in the case of a soccer 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, especially the "event broker congestion" and the "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.
Die folgenden Veröffentlichungen befassen sich mit der Lastverteilung in verteilten Systemen.The following publications deal with load distribution in distributed systems.
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. MARCHAL, Loris, et al. A realistic network / application model for scheduling divisible loads on large-scale platforms. In: Parallel and Distributed Processing Symp. 2005. p. 48b-48b. doi: 10.1109 / IPDPS.2005.63.
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 above parameters into the calculation or determination of the fitness value, for example, depending on the relative weighting of the individual aspects, the performance of the analysis system with regard to to improve all of the above parameters simultaneously.
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 can be it allow performing 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:
-
1 : Ein Beispiel für die relativen Abhängigkeiten der von unterschiedlichen Ereignisdetektoren erzeugten Ereignisse bei einem Fußballspiel; -
2 : Ein Beispiel für ein ereignisbasiertes Analysesystem; -
3 : Ein schematisches Blockdiagramm eines Ausführungsbeispiels eines Verfahrens zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten Analysesystems; -
4 : Eine graphische Illustration einer relativen Abhängigkeit unterschiedlicher Ereignisdetektoren zur Illustration der mathematischen Darstellung deren Abhängigkeit; -
5 : Ein Beispiel für unterschiedliche Abhängigkeiten zwischen acht Ereignisdetektoren einer Beispielkonfiguration eines ereignisbasierten verteilten Analysesystems; -
6 : Ein Beispiel für zwei Verteilungen der in5 gezeigten Ereignisdetektoren auf zwei unterschiedliche Rechenknoten; -
7 : Eine Illustration der in Bezug auf die Latenz des Systems optimalen Verteilung der Ereignisdetektoren der inden 5 und6 gezeigten Konfigurationen auf die beiden Rechenknoten; -
8 : Ein Beispiel einer Simulation, die die Verbesserung der Leistungsfähigkeit des anhand der5 bis 7 schematisch illustrierten ereignisbasierten Analysesystems bei Anwendung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens zeigt; -
9 : Eine Illustration zum Verständnis eines genetischen Algorithmus; -
10 : Eine Illustration zum besseren Verständnis eines „Cuckoo Search“ Algorithmus; -
11 : Eine graphische Illustration einer Abhängigkeit zwischen verschiedenen Ereignisdetektoren; -
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 -
13 : Ein Ausführungsbeispiel eines Leistungsverbesserers zum Verbessern einer Leistungsfähigkeit eines ereignisbasierten Analysesystems.
-
1 : An example of the relative dependencies of the events produced by different event detectors in a football game; -
2 : An example of an event-based analysis system; -
3 : A schematic block diagram of an embodiment of a method for improving performance of an event-based analysis system; -
4 : A graphic illustration of a relative dependence of different event detectors to illustrate the mathematical representation of their dependence; -
5 : An example of different dependencies between eight event detectors of an example configuration of an event-based distributed analysis system; -
6 : An example of two distributions of in5 shown event detectors on two different computational nodes; -
7 : An illustration of the optimal distribution of event detectors in relation to the latency of thesystem 5 and6 configurations shown on the two compute nodes; -
8th : An example of a simulation that improves the performance of the5 to7 schematically illustrates event-based analysis system when using an embodiment of the method according to the invention; -
9 : An illustration to understand a genetic algorithm; -
10 : An illustration for a better understanding of a "cuckoo search"algorithm; -
11 : A graphic illustration of a dependence between different event detectors; -
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 : 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 Thus, between the different exemplary embodiments described below can be substitutively replaced each other. 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 discussing now, although in the following paragraphs an embodiment of a method for improving the performance of an event-based analysis system will be discussed with respect to an application in a football game, other embodiments of the methods will of course readily be used in other application scenarios for event-based analysis systems can be used.
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.
Die Ereignisdetektoren
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.
- • 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
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
- n number of detectors or event detectors
- m number of hosts or compute nodes
- x i, k , x ∈ {0, 1} The 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 of 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.
Die erste Summe summiert die im Netzwerk zwischen Detektor i und j übertragenen Events ti,j auf:
Die zweite Summe summiert die Latenz l auf. Zu finden ist die minimale Summe bezüglich verschiedener Werte für xi,j.The second sum adds up the latency l. Find the minimum sum with respect to different values for x i, j .
Die erste Nebenbedingung lautet:
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:
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 configurations of detectors on the computers below a given level of available resources per machine. 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
In einem Bewertungsschritt
In einem Suchschritt
In einem erneuten Bewertungsschritt
In einem Vergleichsschritt
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
Jede Zeile i in
Ein Lösungsvektor
vector< vector<unsigned int> > next; vector< vector<unsigned int> > previous; // next.size() == previous[i].size() == #Detektoren // next[i].size() == #Nachfolger // previous[i].size() == #VorgängerA solution vector
vector <vector <unsigned int>>next; vector <vector <unsigned int>>previous; // next.size () == previous [i] .size () == detectors // next [i] .size () == #follower // previous [i] .size () == predecessor
Für jeden Detektor wird der Index der Nachfolger- und der Vorgängerdetektoren gespeichert.
Der erste Detektor, repräsentiert durch den ersten Vector der Matrix N, hat die n -vielen Nachfolger x0,i.The first detector, represented by the first vector of the matrix N, has the n-many successors x 0, i .
Zum Beispiel entspricht die Matrix
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.
vector< map<unsigned int, unsigned int> > count; // count[i][otherDetektor] entspricht den übertragenen Paketen // von otherDetektor zu Detektor Nr. i vector< float > latency; // latency enthaelt den Delay zwischen den Hosts in msThe 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.
vector <map <unsigned int, unsigned int>>count; // count [i] [otherDetector] matches the transmitted packets // from other detector to detector # i vector <float>latency; // latency contains the delay between the hosts in ms
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
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
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
Die Fitnessfunktion lässt sich in Form eines Pseudocode beispielsweise so darstellen:
int fitness(vector< unsigned int> &config) { // Fitness und Penalty Zähler int f = 0, p = 0; int c1 = 1, c2 = 1; int nodes[n_nodes]; for (int i = 0; i < n_nodes; ++i) nodes[i] = 0; for (int i = 0; i < n_tasks; ++i) { // Höchstens max_tasks_per_node Detektoren pro Host if (++nodes[config[i]] > max_tasks_per_node) ++p; // Grenze Überschritten! for (unsigned int j = 0; j < prev[i].size(); ++j) // Ein Vorgänger auf selbem Host wie Detektor i if (config[prev[i][j]] == config[i]) f += c1 * recvd[i][prev[i][j]] * (1.0 + sec[i][prev[i][j]])); // Ein Vorgänger auf anderem Host wie Detektor i else f -= c1 * recvd[i][prev[i][j]] * (1.0 + sec[i][prev[i][j]]) - c2 * (lat[config[prev[i][j]]] + lat[config[i]]); } // Strafe bei Clustering if (p != 0) f -= p* 10000000; return f; }The fitness function can be represented in the form of a pseudocode, for example:
int fitness (vector <unsigned int>& config) { // fitness and penalty counters int f = 0, p = 0; int c1 = 1, c2 = 1; intnodes [n_nodes]; for (int i = 0; i <n_nodes; ++ i) nodes [i] = 0; for (int i = 0; i <n_tasks; ++ i) { // max_tasks_per_node detectors per host if (++ nodes [config [i]]> max_tasks_per_node) ++ p; // Crossed the border! for (unsigned int j = 0; j <prev [i] .size (); j ++) // A predecessor on the same host as detector i if (config [prev [i] [j]] == config [i]) f + = c1 * recvd [i] [prev [i] [j]] * (1.0 + sec [i] [prev [i] [j]])); // a predecessor on another host like detector i else f - = c1 * recvd [i] [prev [i] [j]] * (1.0 + sec [i] [prev [i] [j]]) - c2 * (lat [config [prev [i] [j]]] + lat [config [i]]); } // penalty in clustering if (p! = 0) f - = p * 10000000; return f; }
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
Anhand der
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
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 looks for a better distribution based on the current distribution and the information obtained. If one is found, then the detectors are migrated to the cheaper configuration.
Wie aus
In
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
Die Neuverteilung bei Sekunde 100 ist in
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
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 differently configured analyzer system configurations 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. 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 survival of the fittest. 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.
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.
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 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 Levy 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 Levy Flight unendlich. Die Levy-Verteilung hat größere Ausläufer als die Normalverteilung. Symmetrische α -Verteilungen, wie einige Levy 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 flying behavior of the Drosophila melanogaster (fruit fly) shows typical characteristics of the Levy Flight, a kind of Random Walk. Compared to the Brownian motion, for which a maximum variance between the steps is defined, the variance of the Levy Flight is infinite. The Levy distribution has larger extensions than the normal distribution. Symmetrical α distributions, like some Levy 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.
- (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 Levy-Flight ein neues Kuckucksei generiert:
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:
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 computationally 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 Levy-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:
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
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 flies to a hopefully better spot 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: The approach is so different from the original version of the "Cuckoo Search", which is mainly based on random walks. The "Modified Cuckoo Search", on the other hand, uses the concepts of the particle swarm and can be represented compactly by the following pseudo-code:
Jeder Partikel Pi bewegt sich abhängig von seiner Geschwindigkeit vi fort. Diese berechnet man wie folgt.
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
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 Levy 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: 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 levy 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:
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
In
Ebenso wie in
In
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
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.
Ein Leistungsschätzer
Ein Leistungsbewerter
Ein Kontroller
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 a computer, a computer system, an application specific integrated circuit (ASIC), an integrated circuit 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 ,
Claims (19)
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 DE102012112253A1 (en) | 2014-07-03 |
DE102012112253B4 true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144308B (en) * | 2019-12-25 | 2023-06-16 | 中国冶金地质总局矿产资源研究院 | Kaolin mineral information extraction model and establishment method and application thereof |
-
2012
- 2012-12-13 DE DE102012112253.9A patent/DE102012112253B4/en not_active Expired - Fee Related
Non-Patent Citations (6)
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 * |
KUMAR, Anil; CHAKARVERTY, Shampa. Design optimization using genetic algorithm and Cuckoo Search. In: Electro/lnformation 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. 8. 20-39. doi: 10.1007/978-3-642-25821-3_2 |
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 * |
Also Published As
Publication number | Publication date |
---|---|
DE102012112253A1 (en) | 2014-07-03 |
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 | |
E. Benjamin et al. | Pollinator body size mediates the scale at which land use drives crop pollination services | |
Magrach et al. | Plant–pollinator networks in semi‐natural grasslands are resistant to the loss of pollinators during blooming of mass‐flowering crops | |
DE112016006786T5 (en) | Resource Orchestration Brokerage for Internet Der Dinge networks | |
DE112019004943T5 (en) | Automated generation of neural networks | |
DE102009006560B4 (en) | Method and sensor network for feature selection for event detection | |
Silva et al. | odNEAT: An algorithm for distributed online, onboard evolution of robot behaviours | |
CN109471847B (en) | I/O congestion control method and control system | |
DE202018101366U1 (en) | Build models for wireless LAN access points using clustering techniques | |
Reynolds et al. | Optimization problem solving with auctions in Cultural Algorithms | |
CN107180088A (en) | News based on Fuzzy C-Means Cluster Algorithm recommends method | |
CN105933932A (en) | Real-time fault diagnosis method and method for wireless sensor network in complex environment | |
Duarte et al. | A dynamic migration policy to the island model | |
CN112948123A (en) | Spark-based grid hydrological model distributed computing method | |
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 | |
CN107688660B (en) | Parallel execution plan execution method and device | |
CN108171538A (en) | User data processing method and system | |
EP3672200B1 (en) | Method for collaboration of multiple devices in a local network | |
Padmapriya et al. | IoT Based Energy Optimization in Smart Farming Using AI | |
Mbarek et al. | Load balancing algorithms in heterogeneous web cluster |
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 |