-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft das technische Gebiet der Multiprozessor-Steuergeräte für KI-Anwendungen und insbesondere das technische Gebiet des Lastausgleichs („Load Balancing“) auf einem solchen Multiprozessor-Steuergerät. Solche Multiprozessor-Steuergeräte werden insbesondere für autonome oder teilautonome Fahrzeuge eingesetzt.
-
TECHNISCHER HINTERGRUND
-
Modulare Domänen-Steuergeräte, die auf mehreren Prozessoren basieren, ermöglichen die Berechnung intensiver autonomer Fahranwendungen durch verteilte Berechnung der Funktionen des autonomen Fahrens in mehreren Kernen. Dadurch können unterschiedliche Funktionen auf unterschiedlichen Prozessoren ausgeführt werden, was zu einer ungleichmäßigen Verschlechterung der ECU-Komponenten durch ungleiche Belastung führen kann.
-
Sehr häufig sind einzelne Prozessoren eines Multiprozessor-Steuergerätes in dieses festverbaut und schwer bis gar nicht zu wechseln. Dies bedeutet, dass der Ausfall eines einzelnen Prozessors zum Ausfall des kompletten Multiprozessor-Steuergerätes führen kann.
-
Die Verschlechterung einer Multiprozessor-ECU muss nicht notwendigerweise innerhalb ihrer Komponenten liegen. Wenn ein Prozessor mehr beansprucht wird, als die anderen, kann sich die verbleibende Nutzungsdauer (auch bekannt als „Remaining Useful Lifetime“ - RUL) dieses Prozessors aufgrund einer physischen Verschlechterung verkürzen, die beispielsweise durch thermische Beanspruchung verursacht wird.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es ist wünschenswert die Anwendungen, die auf den einzelnen Prozessoren laufen, und diese ungleich abnutzen, so zu verteilen, dass es zu einer ähnlichen Abnutzung der einzelnen Prozessoren im Laufe des Betriebs kommt.
-
Diese Aufgabe wird durch die Steuereinheit nach Anspruch 1 und das Verfahren nach Anspruch 11 gelöst. Weitere vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen und der folgenden Beschreibung bevorzugter Ausführungsbeispiele der vorliegenden Erfindung.
-
Die Ausführungsbeispiele zeigen eine Steuereinheit, die dazu eingerichtet ist, eine oder mehrere Aufgaben auf mehrere Prozessoren einer Multiprozessor-Steuerungseinheit zu verteilen, wobei jeder Aufgabe Abnutzungskosten zugeordnet sind, die mit dem Abarbeiten der jeweiligen Aufgabe verbunden sind und jedem Prozessor ein Abnutzungsgrad zugeordnet ist, und wobei die Steuereinheit dazu ausgelegt ist, die Aufgaben auf Grundlage der Abnutzungskosten und auf Grundlage der Abnutzungsgrade auf die mehreren Prozessoren zu verteilen. Eine solche erfindungsgemäße Steuereinheit erlaubt eine Lastverteilungsoptimierung, bei der anstehende Berechnungsaufgaben an alle Prozessoren der Steuerungseinheit derart zugeteilt werden, dass die Prozessoren gleichmäßig verteilt verschleißen. Dies verlängert die Lebensdauer des Steuergeräts signifikant und trägt so zu Kostensenkung und Ausfallsicherheit bei.
-
Bevorzugt sind die Aufgaben ein oder mehreren Aufgabengruppen zugeordnet und die Steuereinheit ist dazu ausgelegt, die Aufgaben ferner auf Grundlage der den jeweiligen Aufgaben zugeordnet Aufgabengruppen auf die Prozessoren zu verteilen. In Steuergeräten gibt es spezialisierte Professoren, die nur Aufgaben bestimmter Aufgabengruppen bearbeiten können. Die erfindungsgemäße Lastverteilungsoptimierung ermöglicht eine optimale Lastverteilung, die berücksichtig, dass ein Prozessor des Steuergerätes nur Aufgaben bestimmter Aufgabengruppenausführen kann.
-
Die Steuereinheit kann ferner dazu eingerichtet sein, die Abnutzungskosten einer Aufgabe zu ermitteln. Die Abnutzungskosten erlauben eine Quantifizierung der Voraussage, wie sehr eine Aufgabe einen Prozessor abnutzen wird. Hierdurch wird es möglich eine quantitative Bewertung des Aufgabenaufwands durchzuführen auf deren Basis die Lastoptimierung durchgeführt werden kann.
-
Die Steuereinheit kann ferner dazu eingerichtet sein, basierend auf von einem Prozessor empfangenen Messdaten einen Abnutzungsgrad des Prozessors zu bestimmen. Die Bestimmung des Abnutzungsgrads erlaubt eine Abschätzung der Restlebensdauer eines Prozessors. Hierdurch wird es möglich, eine quantitative Bewertung des Prozessorzustands durchzuführen, auf deren Basis die Lastoptimierung durchgeführt wird.
-
Die Steuereinheit kann ferner dazu eingerichtet sein, basierend auf den Abnutzungsgraden der Prozessoren den abgeschätzten Abnutzungskosten der Aufgaben der Fähigkeit der jeweiligen Prozessoren, Aufgaben der Aufgabengruppen auszuführen und den bestimmten Aufgabengruppen der Aufgaben, die Aufgaben den Prozessoren zur Ausführung zuzuweisen. Dies ermöglicht eine Lastenoptimierung, die sowohl den Zustand der Prozessoren, den Aufwand einer Aufgabe und eine mögliche Spezialisierung der einzelnen Prozessoren berücksichtigt. Hierdurch kann die Auslastung und damit die Abnutzung der einzelnen Prozessoren gleichmäßig gehalten werden, was die Lebensdauer und Ausfallsicherheit des erfindungsgemäßen Steuergerätes erhöht.
-
Die Steuereinheit kann beispielsweise ein mathematisches Verfügbarkeitsmodell verwenden, um die einzelnen Aufgaben den einzelnen Prozessoren zuzuweisen. Ein mathematisches Verfügbarkeitsmodell ermöglicht hierbei eine optimale Lastenverteilung, welche die Lebensdauer und Ausfallsicherheit des erfindungsgemäßen Steuergerätes erhöht.
-
Die Steuereinheit kann ein künstliches neuronales Netz umfassen, das dazu ausgelegt ist, die Aufgaben auf die Prozessoren der Multiprozessor-Steuerungseinheit zu verteilen. Künstliche neuronale Netze sind besonders dazu geeignet, um Muster einer Aufgabenverteilung zu erkennen, welche zu einer optimalen Lastverteilung von Aufgaben auf Prozessoren führen. Das künstliche neuronale Netz kann insbesondere dazu trainiert sein, basierend auf den Abnutzungsgraden der Prozessoren, den abgeschätzten Abnutzungskosten der Aufgaben, der Fähigkeit der jeweiligen Prozessoren, Aufgaben der Aufgabengruppen auszuführen und den bestimmten Aufgabengruppen der Aufgaben, die Aufgaben den Prozessoren zur Ausführung zuzuweisen.
-
Das künstliche neuronale Netz ist vorzugsweise ein künstliches neuronale Netz mit Constraints. Die Constraints können die Beschränkungen der Prozessoren abbilden, nur Aufgaben bestimmter Aufgabengruppen ausführen zu können. Constraint-Netze haben den Vorteil, dass sie besonders gut Randbedingungen realisieren können.
-
Die Ausführungsbeispiele zeigen auch ein Multiprozessor-Steuergerät, umfassend eine Steuereinheit nach einem der vorigen Ansprüche, sowie die Prozessoren. Die Verwendung eines solchen erfindungsgemäßen Steuergeräts erlaubt eine optimale Lastenverteilung auf die Prozessoren des Steuergeräts, was dessen Lebensdauer und Ausfallsicherheit erhöht.
-
Die Ausführungsbeispiele zeigen auch ein Verfahren, umfassend das Verteilen einer oder mehrere Aufgaben auf mehrere Prozessoren einer Multiprozessor-Steuerungseinheit, wobei jeder Aufgabe Abnutzungskosten zugeordnet sind, die mit dem Abarbeiten der jeweiligen Aufgabe verbunden sind und jedem Prozessor ein Abnutzungsgrad zugeordnet ist, und wobei die Aufgaben auf Grundlage der Abnutzungskosten und auf Grundlage der Abnutzungsgrade auf die mehreren Prozessoren verteilt werden. Bei dem Verfahren kann es sich insbesondere um ein computerimplementiertes Verfahren handeln.
-
BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
-
Ausführungsformen werden nun beispielhaft und unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
- 1 zeigt ein Blockdiagramm, das eine beispielhafte Konfiguration einer Multiprozessor-Steuerungseinheit darstellt.
- 2 visualisiert den ungleichen Verschleiß mehrere Prozessoren in einem Multiprozessor-Steuerungsgerät bei unterschiedlicher Auslastung der einzelnen Prozessoren, sofern kein Lastausgleich zwischen den einzelnen Prozessoren stattfindet.
- 3a zeigt einen bespielhaften Satz an Aufgabengruppe, die von verschiedenen Prozessoren eines Multiprozessor-Steuergeräts übernommen werden können.
- 3b zeigt eine beispielhafte tabellarische Darstellung der Fähigkeiten von Prozessoren, Aufgaben der Aufgabengruppen der 3a ausführen zu können.
- 3c zeigt einen beispielhaften Satz an Aufgaben und deren Zuordnung zu den verschiedenen Aufgabengruppen der 3a.
- 4 zeigt schematisch einen erfindungsgemäßen Algorithmus zur Lastverteilungsoptimierung auf einem künstlichen Neuronalen Netzwerk mit mehreren Schichten.
- 5 visualisiert den gleichmäßigen Verschleiß mehrere Prozessoren in einem Multiprozessor-Steuerungsgerätes bei unterschiedlicher Auslastung der einzelnen Prozessoren, wobei ein externer Lastausgleich durch Neu-/Umverteilung der Berechnungsaufgaben (Tasks) zwischen den einzelnen Prozessoren P1-Pn stattfindet.
-
Im Folgenden werden Ausführungsbeispiele anhand dieser Figuren näher beschrieben.
-
1 zeigt ein Blockdiagramm, das eine beispielhafte Konfiguration einer erfindungsgemäßen Multiprozessor-Steuerungseinheit 100 darstellt. Bei der Multiprozessor-Steuerungseinheit 100 kann es sich beispielsweise um ein Steuergerät („Electronic Control Unit“ ECU oder „Electronic Control Module“ ECM) für ein Kraftfahrzeug handeln. Die Multiprozessor-Steuerungseinheit umfasst mehrere Prozessoren P1 bis Pn. Bei diesen Prozessoren P1-Pn kann es sich beispielsweise um Recheneinheiten wie eine zentrale Verarbeitungseinheit (CPU = „Central Processing Unit“) handeln, die Programminstruktionen ausführen.
-
Ferner umfasst die Multiprozessor-Steuerungseinheit 100 eine Steuereinheit 110 (CU = Control Unit), die in der Lage ist Berechnungsaufgaben (engl. „Tasks“) in Aufgabengruppen zu klassifizieren; Abnutzungskosten einer Aufgabe für einen der Prozessoren P1-Pn abzuschätzen; Messdaten, zum Beispiel Temperaturdaten, von den Prozessoren P1-Pn zu empfangen; basierend auf den empfangenen Messdaten einen Abnutzungsgrad für die einzelnen Prozessoren P1 - Pn zu bestimmen und die Berechnungsaufgaben den Prozessoren P1-Pn zuzuweisen. Die Steuereinheit 110 kann wiederum eine oder mehrere CPUs oder ein künstliches neuronales Netz umfassen, das die Zuweisung der Berechnungsaufgaben an die Prozessoren P1-Pn übernimmt.
-
Die Multiprozessor-Steuerungseinheit 100 umfasst ferner einen Nur-Lese-Speicher ROM 130 (ROM = „Read-Only Memory“) und einen Direktzugriffsspeicher RAM 120 (RAM = „Random Access Memory“) (z. B. dynamischer RAM („DRAM“), synchron DRAM („SDRAM“) usw.), die als Programmspeicherbereich und als Datenspeicherbereich dienen. Ferner umfasst die Steuerungseinheit zur Speicherung von Daten und Programmen ein Speicherlaufwerk 160, wie beispielsweise ein Festplattenlaufwerk („Hard Disk Drive“: HDD), ein Flashspeicher-Laufwerk oder ein nicht flüchtiges Festkörperlaufwerk („Solid State Drive“: SSD). Die Multiprozessor-Steuerungseinheit 100 kann zum Beispiel in einem Fahrzeug verbaut werden. Ferner umfasst die Multiprozessor-Steuerungseinheit 100 eine Kommunikationsschnittstelle 140 (I/O Interface), über welches die Multiprozessor-Steuerungseinheit 100 mit einem äußeren Kommunikationsnetzwerk, zum Beispiel einem Fahrzeugkommunikationsnetzwerk, kommunizieren kann, um beispielsweise Messdaten von beispielsweise Umfeldsensoren zu empfangen, und Messdaten an ein empfangendes System wie beispielsweise ein Fahrerassistenzsystem auszugeben. Die Anwendung des erfindungsgemäßen Steuergerätes ist nicht auf Fahrzeuge beschränkt. So könnte die Kommunikationsschnittstelle 140 auch mit anderen Kommunikationsnetzwerken, zum Beispiel dem Internet, verbunden sein. Die Komponenten der Multiprozessor-Steuerungseinheit 100 können über ein internes Kommunikationsnetzwerk 150 untereinander kommunizieren. Dieses interne Kommunikationsnetzwerk 150 kann durch jede dem Fachmann bekannte Technologie zur Verbindung mehrere Computer- oder Digitalelektronikbauteilen realisiert werden, zum Beispiel via Ethernet-Verbindung, einem internen System-Datenbus wie 12C, oder dergleichen.
-
2 visualisiert den ungleichen Verschleiß mehrere Prozessoren P1-Pn in einem Multiprozessor-Steuerungsgerät 100 bei unterschiedlicher Auslastung der einzelnen Prozessoren P1-Pn sofern kein Lastausgleich zwischen den einzelnen Prozessoren P1-Pn stattfindet. Ein solch ungleicher Verschleiß kann zum vorzeitigen Ausfall des Prozessors P2 und damit zum vorzeitigen Ausfall des kompletten Multiprozessor-Steuerungsgeräts 100 führen.
-
Das Multiprozessor-Steuerungsgerät 100 („Domain ECU“) umfasst mehrere Prozessoren P1, P2, ..., Pn. Jeder Prozessor verfügt über ein Thermometer, das die aktuelle Temperatur des jeweiligen Prozessors misst. Links stellt ein Balkendiagram den aktuellen Abnutzungsgrad der einzelnen Prozessoren P1-Pn, sowie den maximalen Abnutzungsgrad vor Systemausfall durch eine gestrichelte Linie dar. Die Angabe „Load x%“ gibt an, zu welchem Anteil der Gesamtleistungskapazität ein jeweiliger Prozessor beansprucht wird. So wird zum Beispiel der erste Prozessor P1 zu 10% ausgelastet, während der zweite Prozessor P2 zu 100% ausgelastet wird.
-
Gezeigt sind der Abnutzungsgrad der jeweiligen Prozessoren P1-Pn für drei Zeitpunkte t=0, t=t1 und t=t2. Mit dem Abnutzungsgrad eines jeweiligen Prozessors wird hierbei der geschätzte Grad der Abnutzung des Prozessors verstanden. Der Abnutzungsgrad eines Prozessors kann beispielsweise unter Betrachtung des bisherigen Lebenszyklus unter Berücksichtigung des Verlaufes der Betriebstemperatur des Prozessors P1-P10, dessen Stromverbrauchs und/oder der bisher angefallenen Rechnerlast über die Zeit bestimmt werden. Der Abnutzungsgrad kann mit einem erwarteten Ausfallschwellwert in Relation gesetzt werden, der jenem maximalen Abnutzungsgrad entspricht, ab dem ein Systemausfall zu erwarten ist („maximaler Abnutzungsgrad vor Systemausfall“ aus 2). Der Abnutzungsgrad kann beispielsweise in Prozent des Ausfallschwellwerts angegeben werden.
-
Wie in 2 dargestellt beginnen alle Prozessoren P1-Pn eines Multiprozessor-Steuergerätes 100 gewöhnlich mit demselben Abnutzungsgrad. D.h., zum ersten Zeitpunkt t=0 sind die Prozessoren P1-Pn nur geringfügig gleichmäßig abgenutzt. Da keine Lastenumverteilung unter den einzelnen Prozessoren P1-Pn stattfindet, ist Prozessor P2 die gesamte Zeit t=0 bis t=t2 zu 100% ausgelastet, während Prozessor P1 nur zu 10% ausgelastet ist. Die höhere Auslastung von Prozessor P2 führt zu einer deutlich erhöhten Temperatur des Prozessors P2 im Vergleich zu den anderen Prozessoren, zum Beispiel Prozessor P1.
-
Zum zweiten Zeitpunkt t=t1 ist bereits ein deutlicher Unterschied zwischen den einzelnen Abnutzungsgraden der Prozessoren P1-Pn zu erkennen. Die erhöhte Temperatur des Prozessors P2 führt zu einem erhöhten thermischen Verschleiß, sodass zu einem Zeitpunkt t=t1 der Prozessor P2 im Vergleich zu den anderen Prozessoren einen deutlich erhöhten Abnutzungsgrad aufweist. D.h. während des täglichen Einsatzes des Multiprozessor-Steuerungsgerätes 100 verschlechtern sich diejenigen Prozessoren, hier P2, zu einem größeren Grad, die aufwändigere Aufgaben („Tasks“) ausführen, als die anderen Prozessoren, was dazu führen kann, dass das Multiprozessor-Steuergerät 100 frühzeitig ausgetauscht werden muss.
-
Zum dritten Zeitpunkt t=t2 überschreitet der zweite Prozessor P2 einen maximalen Abnutzungsgrad vor Systemausfall und fällt folglich aus. Meist ist der Prozessor P2 fest im Multiprozessor-Steuerungsgerät 100 verbaut, sodass der Ausfall des Prozessors P2 zu einem dauerhaften Ausfall des Multiprozessor-Steuerungsgerätes 100 führt, obwohl die verbleibenden Prozessoren P1, P3 ... Pn noch weit vom maximalen Abnutzungsgrad entfernt sind.
-
Es sei an dieser Stelle darauf hingewiesen, dass Belastung eines Prozessors nicht allein zu thermischem Verschleiß führt, sondern auch Effekte wie Elektromigration, Spannungsdegradation und Materialalterung zu Verschleiß führen können. Im Allgemeinen kann aber festgestellt werden, dass eine erhöhte Auslastung eines Prozessors dessen Verschleißrate erhöht.
-
Diesem Problem des vorzeitigen Ausfalls eines Multiprozessor-Steuergerätes durch ungleiche Belastung der eingebauten Prozessoren begegnet die vorliegende Erfindung mit einer intelligenten Einteilung und Umverteilung der Rechenaufgaben („Tasks“) an die einzelnen Prozessoren.
-
Beim Versuch die Auslastung zwischen den Prozessoren P1- Pn besser zu verteilen, muss beachtet werden, dass verschiedene Prozessoren des Multiprozessor-Steuergeräts (100 in 2) teilweise nur bestimmte Funktionen umsetzen können, beispielsweise aufgrund der Verbindung zwischen Schnittstellen und Prozessoren. Dies bedeutet, dass ein Prozessor möglicherweise nicht dieselben Aufgaben wie ein anderer Prozessor ausführen kann. Beispielsweise sind ein Prozessor für Sicherheitsfunktionen und ein Prozessor für die Sensordatenverarbeitung mit verschiedenen Komponenten im Steuergerät (100 in 2) verbunden und können daher möglicherweise nicht einfach die Aufgaben austauschen, die sie ausführen können.
-
3a zeigt einen bespielhaften Satz an Aufgabengruppe, die von verschiedenen Prozessoren eines Multiprozessor-Steuergeräts übernommen werden können. Eine erste Aufgabengruppe FG1 bezieht sich auf Aufgaben (Tasks) der allgemeinen Datenverarbeitung. Eine zweite Aufgabengruppe FG2 bezieht sich auf Aufgaben im Rahmen von Sicherheitsprozessen FG2. Eine dritte Aufgabengruppe FG3 bezieht sich auf Aufgaben des Routings. Eine vierte Aufgabengruppe FG4 bezieht sich auf Aufgaben der Sensordatenverarbeitung.
-
3b zeigt eine beispielhafte tabellarische Darstellung der Fähigkeiten von Prozessoren, Aufgaben (Tasks) bestimmter Aufgabengruppen ausführen zu können. 3a zeigt insbesondere eine beispielhafte Gegenüberstellung von zehn Prozessoren P1-P10 eines erfindungsgemäßen Multiprozessor-Steuergeräts (100 in 2) und den vier verschiedenen Aufgabengruppen FG1-FG4 der 3a. Die Prozessoren P1-P10 können nicht alle Aufgaben aus den vier Aufgabengruppen FG1-FG4 übernehmen. Dies kann wie oben beschrieben bedingt sein durch eine Spezialisierungen der einzelnen Prozessoren P1-P10. Die Prozessoren P1, P2 und P3 können Aufgaben der Aufgabengruppen FG1 und FG4 übernehmen. Die Prozessoren P4, P5, P6, P9 und P10 können Aufgaben der Aufgabengruppen FG1 und FG2 übernehmen. Die Prozessoren P7, P8 können Aufgaben der Aufgabengruppen FG1 und FG3 übernehmen.
-
3c zeigt einen beispielhaften Satz an Aufgaben (Tasks) T1-T9 und deren Zuordnung zu den verschiedenen Aufgabengruppen der 3a. Aufgaben T1, T3, T8 und T9 sind der Aufgabengruppe FG1 zugeordnet und beziehen sich damit auf eine allgemeine Datenverarbeitung. Aufgaben T2 und T7 sind der Aufgabengruppe FG2 zugeordnet und beziehen sich damit auf Aufgaben im Rahmen von Sicherheitsprozesse. Aufgaben T5 und T6 sind der Aufgabengruppe FG3 zugeordnet und beziehen sich damit auf Aufgaben des Routings. Aufgabe T4 ist der Aufgabengruppe FG4 zugeordnet und betrifft damit eine Sensordatenverarbeitung.
-
Ziel ist es nun, die Aufgaben T1-T9 derart auf die Prozessoren P1-P10 zu verteilen, das einerseits jeder Prozessor nur Aufgaben bearbeitet, die zu einer Aufgabengruppe gehören, für die der Prozessor geeignet ist, und andererseits, sodass eine möglichst gleichmäßige Belastung aller Prozessoren P1-P10 erreicht wird.
-
Im Folgenden ist ein Ausführungsbeispiel eines Prozesses der Optimierung der Lastenverteilung auf die Prozessoren P1 -P10, wie sie von der Steuereinheit 110 der Multiprozessor-Steuereinheit der 1 ausgeführt wird. Bei dem Optimierungsprozess werden die Aufgaben (Tasks) periodisch auf die Prozessoren verteilt, basierend auf den abgeschätzten Abnutzungskosten jeder einzelnen Aufgabe und einem zuvor bestimmten Abnutzungsgradjedes einzelnen Prozessors. Der Optimierungsprozess hat das Ziel, die Abnutzung der einzelnen Prozessoren über die Lebenszeit der Multiprozessor-Steuereinheit gleichmäßig zu halten und so die Gesamtproduktlebenszeit insgesamt zu verlängern.
-
Unter den Abnutzungskosten einer Aufgabe wird hierbei eine geschätzte Abnutzung des Prozessors verstanden, die eine bestimmte Aufgabe voraussichtlich verursachen wird. Diese Abnutzungskosten können beispielsweise basierend auf der erwarteten Rechenlast und/oder der erwarteten benötigten Rechenzeit unter Kenntnis der Prozessorstruktur der einzelnen Prozessoren abgeschätzt werden. Diese Abnutzungskosten einer Aufgabe entsprechen der erwarteten Änderung des Abnutzungsgrades des Prozessors durch eine ausgeführte Aufgabe. Beispielsweise kann der Abnutzungsgrad eines Prozessors P1- P10 mit anfänglichem Abnutzungsgrad 5, der eine Aufgabe mit Abnutzungskosten 3 ausführt, nach dieser Aufgabe einen Abnutzungsgrad von 5+3 = 8 aufweisen.
-
Vorzugsweise werden die Einheiten der Abnutzungskosten und des Abnutzungsgrades so gewählt, dass die beide Größen addiert werden können, also insbesondere gleich gewählt. Beide Größen können beispielsweise, wie im obigen Beispiel, ohne (physikalische) Einheiten gewählt werden.
-
Die Aufgaben (Tasks) werden auf Grundlage einer Vorkonfiguration verteilt, wie sie in den Tabellen der 3a, b und c gezeigt sind. Der vorgeschlagene Optimierungsalgorithmus kann mit modernsten Algorithmen wie einem mathematischen Verfügbarkeitsmodell oder einem neuronalen Netzwerk erreicht werden. Eine Realisierung des vorgeschlagenen Optimierungsalgorithmus mit Hilfe eines neuronalen Netzwerks wird weiter unten in der Beschreibung von 4 näher erläutert.
-
4 zeigt schematisch eine erfindungsgemäße Lastverteilungsoptimierung durch ein künstliches neuronales Netz mit mehreren Schichten („Deep Neural Network“ DNN) 30. Das neuronale Netz 30 wurde vorab mit Trainingsdaten derart trainiert, dass es stets die optimale Aufgabenverteilung basierend auf gleichmäßiger Prozessorauslastung und Aufgabengruppe-Einschränkung der einzelnen Prozessoren P1-P3 ausgibt. Um sicherzustellen, dass die Lösung den Einschränkungen des Systems, nämlich der Zuordnung der Prozessoren und der Funktionsgruppen, zu denen sie gehört, folgt, wird ein neuronales Netz verwendet. Diese Art von Netzwerk verwendet während des Trainings eine Verlustfunktion, die eine Reihe von Einschränkungen im Ausgaberaum optimiert. Das eingeschränkte neuronale Netz 30 ist dazu eingerichtet, basierend auf Eingangsdaten eine Lastverteilung zu bestimmen.
-
Im Beispiel der 4 nimmt das neuronale Netz 30 als Eingangsdaten eine Liste der anstehenden Aufgaben („Tasks“) entgegen. Eine erste Aufgabe „Task 1“ ist der Aufgabengruppe FG4 zugehörig und bezieht sich damit auf Aufgaben der Sensordatenverarbeitung. Die Abnutzungskosten der Aufgabe „Task 1“ belaufen sich auf den Wert 2. Eine zweite Aufgabe „Task 2“ ist der Aufgabengruppe FG1 zugehörig und bezieht sich damit auf eine allgemeine Datenverarbeitung. Die Abnutzungskosten der Aufgabe „Task 2“ belaufen sich auf den Wert 6. Eine dritte Aufgabe „Task 3“ ist der Aufgabengruppe FG3 zugehörig und bezieht sich damit auf sich auf Aufgaben des Routings. Die Abnutzungskosten der Aufgabe „Task 3“ belaufen sich auf den Wert 5. Eine vierte Aufgabe „Task 4“ ist der Aufgabengruppe FG1 zugehörig und bezieht sich damit auf eine allgemeine Datenverarbeitung. Die Abnutzungskosten der Aufgabe „Task 4“ belaufen sich auf den Wert 3.
-
Das eingeschränkte neuronale Netz 30 nimmt ferner als Eingangsdaten jeweilige beispielhafte aktuelle Abnutzungsgrade der Prozessoren entgegen. Prozessor 1 weist einen aktuellen Abnutzungsgrad von 4 auf. Prozessor 2 weist einen aktuellen Abnutzungsgrad von 1 auf. Prozessor 3 weist einen aktuellen Abnutzungsgrad von 7 auf.
-
Das neuronale Netz 30 verarbeitet diese Informationen, um eine optimale Taskverteilung zu errechnen. Die Ausgabe des neuronalen Netzwerks weist jede der Aufgaben automatisch einem geeigneten Prozessor zu, wobei die Systemeinschränkungen beachtet werden, also die Beschränkungen der einzelnen Prozessoren hinsichtlich ihrer Fähigkeit, bestimmte Aufgabengruppen bearbeiten zu können (siehe 3b).
-
Aufgabe „Task 3“ ist die aufwendigste Aufgabe und wird durch das neuronale Netz 30 dem am wenigsten abgenutzten Prozessor zugewiesen, also Prozessor P2. Da Task 3 zur Aufgabengruppe FG3 gehört und nur der Prozessor P2 aus der Gruppe P1, P2, P3 diese Aufgabengruppe ausführen kann, weist das neuronale Netz 30 Task 3 dem Prozessor P7 zu. Aufgabe „Task 1“ hat geringe Abnutzungskosten von 2 und ist aus der Aufgabengruppe FG4, könnte also von beiden Prozessoren P1 und P3 durchgeführt werden. Aufgrund der geringen Abnutzungskosten weist das neuronale Netz die Aufgabe „Task 1“ dem stark abgenutzten Prozessor P3 zu. Die Aufgaben „Task 2“ und „Task 4“ sind beide aus der Aufgabengruppe FG1, den alle drei Prozessoren P1, P2 und P3 ausführen können. Das neuronale Netz 30 weist diese Aufgaben daher alleine aufgrund der Abnutzungskosten der Aufgaben und der Abnutzungsgrade der Prozessoren zu. Insbesondere weist das Das neuronale Netz 30 hier Aufgabe „Task 2“ dem Prozessor P2 zu und Aufgabe „Task 4“ dem Prozessor P1 zu.
-
Dies ergibt nach der Ausführung der Aufgaben einen erwarteten Abnutzungsgrad von 7 für P1, 12 für P2 und 9 für P3. Diese Verteilung entspricht einer möglichst gleichmäßigen Abnutzungsgradverteilung, die bei den vier gestellten Aufgaben „Task 1“, „Task 2“, „Task 3“ und „Task 4“ unter Berücksichtigung der Fähigkeiten der Prozessoren möglich ist.
-
Die weiter oben beschriebenen Eingangsdaten Aufgaben und Abnutzungskosten werden an die Eingangsneuronen 31 der Eingabeschicht (engl. Input Layer) übergeben. Das neuronale Netz ist darauf trainiert die optimale Aufgabenverteilung an die Prozessoren zu bestimmen und diese über die Ausgabeneuronen 34 der Ausgabeschicht (engl. Output Layer) auszugeben. Beginnend mit der Eingabeschicht fließen Informationen über die Neuronen 32, 33 der Zwischenschichten (engl. „Hidden Layers“) bis hin zur Ausgabeschicht. Jedem Neuron ist ein Gewicht für die durchfließende Information zugewiesen und es gibt diese dann entsprechend gewichtet an die Neuronen der nächsten Schicht weiter. Diese Gewichte beschreiben somit die Intensität des Informationsflusses entlang der Verbindungen des neuronalen Netzwerks.
-
5 zeigt ein beispielhaftes künstliches neuronales Netz, wie es in 4 genutzt wird. Bei dem neuronalen Netzwerk kann es sich beispielsweise um ein Deep neuronal Networks (DNN) handeln. Dieses neuronale Netz kann beispielsweise durch die Steuereinheit 110 aus 1 implementiert werden. Das künstliche neuronale Netz 30 kann beispielsweise mittels Software, oder auch mittels Hardware realisiert werden, beispielsweise durch eine GPU, die auf die Implementierung neuronaler Netzwerke spezialisiert ist. Ein Deep neuronal Networks (DNN) zeichnen sich durch eine oder mehrere versteckte Schichten (engl. Hidden Layers) von Neuronen zwischen Eingangsneuronen und Ausgangsneuronen aus. Künstliche DNN erlauben eine deutlich tiefere Optimierung von komplexen Eingangsdaten. Die Eigenschaften und die Implementierung von DNNs sind dem Fachmann bekannt und kann der Fachliteratur zu dem Aufbau, den Netztypen, Lernregeln und bekannten Anwendungen von neuronalen Netzen entnommen werden.
-
Das gezeigte künstliche neuronale Netz 30 umfasst beispielhaft vier Eingangsneuronen 31 in einem Input-Layer. An diese Neuronen werden die Eingangsdaten übergeben. Ferner umfasst das gezeigte künstliche neuronale Netz 30 fünf Neuronen 32 eines ersten Hidden Layers. Diese Neuronen 32 sind jeweils jeder mit jedem Eingangsneuron 31 verbunden. Ferner umfasst das gezeigte künstliche neuronale Netz 30 sieben Neuronen 33 eines zweiten Hidden Layers. Diese Neuronen 33 sind jeweils jeder mit jedem Neuron 32 der ersten Hidden Layers verbunden. Die Neuronen 32, 33 der Hidden Layers ermöglichen die oben erwähnte tiefere Optimierung von komplexen Eingangsdaten. Ferner umfasst das gezeigte künstliche neuronale Netz 30 drei Ausgangsneuronen 34 eines Output Layers. Diese Ausgangsneuronen 34 sind jeweils jeder mit jedem Neuron 33 des zweiten Hidden Layers verbunden. Die Ausgangsneuronen geben das Ergebnis der Lastverteilungsoptimierung innerhalb des künstlichen neuronalen Netzwerks 30 aus. Das neuronale Netz ist darauf trainiert die optimale Aufgabenverteilung an die Prozessoren zu bestimmen und diese über die Ausgabeneuronen 34 der Ausgabeschicht (engl. Output Layer) auszugeben. Beginnend mit der Eingabeschicht fließen Informationen über die Neuronen 32, 33 der Zwischenschichten (engl. Hidden Layers) bis hin zur Ausgabeschicht. Jeder Neuronenverbindung ist durch das Training ein Gewicht für die durchfließende Information zugewiesen und es gibt diese dann entsprechend gewichtet an die Neuronen der nächsten Schicht weiter. Diese Gewichte beschreiben somit die Intensität des Informationsflusses entlang der Verbindungen des neuronalen Netzwerks.
-
Das neuronale Netz ist vorzugsweise als ein neuronales Netz mit „Constraints“ ausgeführt. Mittels der „Constraints“ werden die Systemeinschränkungen realisiert, also die Beschränkungen der einzelnen Prozessoren hinsichtlich ihrer Fähigkeit, bestimmte Aufgabengruppen bearbeiten zu können (siehe 3b).
-
Die Anzahl der Neuronen ist in der 5 lediglich beispielhaft zu verstehen. In der Praxis wird das neuronale Netz hinsichtlich des Einsatzgebietes dimensioniert sein. So wird die Eingangsschicht und die Ausgangsschicht hinsichtlich der Zahl der Eingangsneuronen beispielsweise so dimensioniert werden, dass sie für die Verarbeitung einer bestimmten Maximalzahl an Aufgaben dimensioniert ist.
-
Das neuronale Netz 30 wird so eingerichtet („trainiert“), dass es für bestimmte bekannte Eingangswerte erwartete Antworten erzeugt. Indem das neuronale Netz 30 in einer Trainingsphase mit einem Trainingssatz an Aufgabendatengruppen, Abnutzungsgrads und optimalen Aufgabenverteilungen trainiert wird, wird das neuronale Netz 30 dazu ausgelegt, für beliebige Aufgabendatengruppen und Abnutzungsgrade durch künstliche Intelligenz eine passende Aufgabenverteilung zu bestimmen. Ist ein derartiges neuronales Netz einmal eingerichtet und sind seine Parameter eingestellt, so wird das Netz regelmäßig im Anwendungsfall als eine Art „Black-Box“ verwendet, welche auch für gegebene Eingangswerte zugehörige und passende Ausgangswerte erzeugt.
-
Das neuronale Netz kann durch die zusätzliche bzw. ergänzende Nutzung anderer Typen neuronaler Netzwerke, wie zum Beispiel Convolutional Neuronal Networks (CNN) oder rekurrente Neuronale Netze (RNN), verbessert werden. Hierbei kann ein Hybridnetzwerk erschaffen werden oder die Arbeitsleistung von mehreren unterschiedlichen Netzwerken zusammengeschaltet werden.
-
6 visualisiert den gleichmäßigen Verschleiß mehrere Prozessoren P1-Pn in einem erfindungsgemäßen Multiprozessor-Steuerungsgerätes 100 bei unterschiedlicher Auslastung der einzelnen Prozessoren P1-Pn, wobei ein externer Lastausgleich ausgeführt von einer Steuereinheit 110 durch Neu-/Umverteilung der Berechnungsaufgaben (Tasks) zwischen den einzelnen Prozessoren P1-Pn stattfindet. Der Lastausgleich führt zu einem gleichzeitigen Ausfall aller Prozessoren P1-Pn und damit des kompletten Multiprozessor-Steuerungsgeräts 100. Wie in 6 dargestellt ist, wird durch den erfindungsgemäßen Optimierungsprozess eine gleichmäßige Degradation der Prozessoren möglich, sodass der Gesamtlebenszyklus des Steuergerätes im Vergleich zu 2 signifikant erhöht ist.
-
Dargestellt sind, wie in 2, ein Steuergerät 100 mit Prozessoren P1-Pn und der Abnutzungsgrad der Prozessoren P1-Pn in einem Säulendiagram zu den Zeitpunkten t=0, t=t1 und t=t2. Ferner ist das Steuergerät 100 und der Abnutzungsgrad der Prozessoren P1-Pn in einem Säulendiagram zu einem späteren Zeitpunkt t=tm dargestellt. Elemente, die bereits in 2 erläutert wurden, werden hier nicht näher erläutert.
-
Wie bereits in 2 dargestellt, beginnen auch in 6 alle Prozessoren P1-Pn zum Zeitpunkt t=0 mit dem gleichen Abnutzungsgrad. Anfänglich führt wieder eine ungleiche Belastung der Prozessoren zu einer stärkeren Abnutzung von Prozessor P2. Zum Zeitpunkt t=t1 verteilt der erfindungsgemäße Optimierungsprozess die Aufgaben innerhalb der Prozessoren P1-Pn neu/um, wie dies weiter oben erläutert wurde. Hierdurch kommt es zu einer Entlastung des Prozessors P2 und zu einer stärkeren Belastung der anderen Prozessoren. Dies führt dazu, dass zum Zeitpunkt t=t2 (der Zeitpunkt zu dem Prozessor P2 im Falle des Beispiels der 2 bereits versagte) die Prozessoren P1-Pn einen ähnlichen Abnutzungsgrad aufweisen und alle Prozessoren noch weiter voll funktionsfähig sind. Die erfindungsgemäße optimale Verteilung der Aufgaben führt dazu, dass erst zu einem Zeitpunkt t =tm > t2 die Prozessoren P1-Pn nahezu gleichzeitig die Grenze maximaler Abnutzung erreichen, wodurch alle Prozessoren gemeinsam die Funktion einstellen. Damit wird die Lebenszeit des Multiprozessor-Steuerungsgeräts 100 optimal ausgeschöpft.
-
Bezugszeichenliste
-
- 100
- Multiprozessor-Steuerungsgerät
- 110
- Steuereinheit
- P1-Pn
- Prozessor (CPU)
- 120
- RAM
- 130
- ROM
- 140
- Interface-Schnittstelle
- 150
- Internes Kommunikationssystem
- 160
- Speichermodul (SSD/HDD)
- P1-Pn
- Prozessor (CPU)
- FG1
- Aufgabengruppe Generelle Datenverarbeitung
- FG2
- Aufgabengruppe Sicherheit
- FG3
- Aufgabengruppe Routing
- FG4
- Aufgabengruppe Sensordatenverarbeitung
- 30
- Künstliches Neuronales Netz
- 31
- Eingangsneuronen
- 32
- Hidden-Layer-Neuronen
- 33
- Hidden-Layer-Neuronen
- 34
- Ausgabeneuronen