EP4720856A1 - Rechensystem und diesbezügliches verfahren - Google Patents
Rechensystem und diesbezügliches verfahrenInfo
- Publication number
- EP4720856A1 EP4720856A1 EP24721125.3A EP24721125A EP4720856A1 EP 4720856 A1 EP4720856 A1 EP 4720856A1 EP 24721125 A EP24721125 A EP 24721125A EP 4720856 A1 EP4720856 A1 EP 4720856A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- computing
- units
- unit
- task
- request
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
Ein Rechensystem (100) und ein diesbezügliches Verfahren (200) werden offenbart, wobei das Rechensystem (100) einen Prozessor (102) aufweist, der eingerichtet ist: eine Rechenanforderung (106) zu empfangen, die eine Rechenaufgabe (108) und zugehörige Bedingungen (110) aufweist, wobei die Bedingungen (110) eine Energieverbrauchsbedingung sowie eine Latenzbedingung und/oder eine Genauigkeitsbedingung aufweisen; aus einer Vielzahl von Recheneinheiten (104(n = 1 bis N)) mindestens eine Recheneinheit auszuwählen, wobei jede Recheneinheit der Vielzahl von Recheneinheiten eine Rechenarchitektur aufweist, wobei zumindest eine Recheneinheit der Vielzahl von Recheneinheiten eine von zumindest einer anderen Recheneinheit der Vielzahl von Recheneinheiten (104(n = 1 bis N)) verschiedene Rechenarchitektur aufweist, wobei jeder Recheneinheit (104(n)) eine Rechenarchitektur-Information (112(n)) zugeordnet ist, welche Informationen über Eigenschaften der n Recheneinheit hinsichtlich des Energieverbrauchs sowie mindestens einer Latenz und/oder Genauigkeit bei einer Ausführung einer Rechenaufgabe (108) enthält; wobei die mindestens eine Recheneinheit ausgewählt wird unter Verwendung der Rechenarchitektur-Informationen (112(n = 1 bis N)).
Description
Beschreibung
Rechensystem und diesbezügliches Verfahren
Verschiedene Ausführungsbeispiele betreffen ein Rechensystem und ein diesbezügliches Verfahren.
Herkömmlicherweise werden siliziumbasierte Rechenarchitekturen (auch als Computerarchitekturen bezeichnet) zur Berechnung verschiedenster Rechenaufgaben eingesetzt.
Allerdings erfordert die Berechnung mancher Rechenaufgaben mittels einer siliziumbasierten Rechenarchitektur einen hohen Zeitaufwand und andere Rechenaufgaben können mittels einer siliziumbasierten Rechenarchitektur gar nicht berechnet werden. Zum Beispiel wurde in Boche, Holger et al., „On the Need of Neurom orphic Twins to Detect Denial-of-Service Attacks on Communication Networks“, arXiv:2210.16690, 2022 und Boche, Holger et al., „Non- Computability of the Pseudoinverse on Digital Computers“, arXiv:2212.02940, 2022 nachgewiesen, dass digitale Recheneinheiten (auch als Computer bezeichnet) nicht in der Lage sind, das inverse Problem in Anwendungen der künstlichen Intelligenz (KI- Anwendungen) zu berechnen. Einige solcher Rechenaufgaben können aber von anderen Rechenarchitekturen berechnet werden. Allerdings können diese wiederum andere Rechenaufgaben mit geringerer Effizienz berechnen als die digitalen Recheneinheiten.
Gemäß verschiedenen Ausführungsformen wird ein Rechensystem bereitgestellt, in welchem voneinander verschiedene Rechenarchitekturen verwendet werden können und in welchem in Abhängigkeit verschiedenster Kriterien mindestens eine dieser Rechenarchitekturen ausgewählt wird, um eine Rechenaufgabe zu lösen. Hierbei können einer Rechenaufgabe beispielsweise mehrere Bedingungen zugehörig sein und die mindestens eine Rechenarchitektur kann derart ausgewählt werden, dass einerseits die mehreren Bedingungen erfüllt werden und dass andererseits ein für das Berechnen der Rechenaufgabe erforderlicher Energiebedarf reduziert (z.B. minimiert) wird.
Auf diese Weise werden beispielsweise geringere Latenzen für zeitkritische Rechenaufgaben ermöglicht, da für die zeitkritische Rechenaufgabe eine Recheneinheit ausgewählt werden kann, welche die Rechenaufgabe mit der geringeren Latenz berechnen kann. Liegt eine zeitunkritische Rechenaufgabe vor, so kann eine Recheneinheit ausgewählt werden kann, welche die Rechenaufgabe mit einem geringsten Energiebedarf berechnen kann.
Verschiedene Ausführungsbeispiele betreffen eine Rechensystem, aufweisend: einen Prozessor, der eingerichtet ist: eine Rechenanforderung zu empfangen, die eine Rechenaufgabe und zugehörige Bedingungen aufweist, wobei die Bedingungen eine Energieverbrauchsbedingung sowie mindestens eine der Bedingungen Latenzbedingung und/oder Genauigkeitsbedingung aufweisen; aus einer Vielzahl von Recheneinheiten mindestens eine Recheneinheit auszuwählen, wobei jede Recheneinheit der Vielzahl von Recheneinheiten eine Rechenarchitektur aufweist, wobei zumindest eine Recheneinheit der Vielzahl von Recheneinheiten eine von zumindest einer anderen Recheneinheit der Vielzahl von Recheneinheiten verschiedene Rechenarchitektur aufweist, wobei jeder Recheneinheit eine Rechenarchitektur-Information zugeordnet ist, welche Informationen über Eigenschaften der n Recheneinheit hinsichtlich des Energieverbrauchs sowie mindestens einer Latenz und/oder Genauigkeit bei einer Ausführung einer Rechenaufgabe enthält; wobei die mindestens eine Recheneinheit ausgewählt wird unter Verwendung der Rechenarchitektur-Informationen.
Es zeigen
Figuren 1A bis ID jeweils ein Rechensystem gemäß verschiedenen Ausführungsformen;
Figur 2 ein Ablaufdiagramm eines Verfahrens zum Zuweisen von Rechenaufgaben gemäß verschiedenen Ausführungsformen;
Figur 3 ein beispielhaftes Ablaufdiagramm zum Erzeugen von Rechenarchitektur- Informationen gemäß verschiedenen Ausführungsformen;
Figuren 4A bis 4C ein beispielhaftes Ablaufdiagramm zum Auswählen mindestens einer Recheneinheit für die Berechnung einer Rechenaufgabe gemäß verschiedenen Ausführungsformen;
Figur 5 ein beispielhaftes Ablaufdiagramm zum Unterteilen einer Rechenaufgabe in mehrere Teilaufgaben in Übereinstimmung mit einer Sicherheitsanforderung gemäß verschiedenen Ausführungsformen;
Figur 6 ein beispielhaftes Ablaufdiagramm zum Unterteilen einer Rechenaufgabe in mehrere Teilaufgaben zur Verringerung einer Berechnungszeit gemäß verschiedenen Ausführungsformen; und
Figur 7 ein beispielhaftes Ablaufdiagramm zum Berechnen einer Rechenaufgabe durch eine Recheneinheit gemäß verschiedenen Ausführungsformen.
In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die Teil dieser bilden und in denen zur Veranschaulichung spezifische Ausführungsformen gezeigt sind, in denen die Erfindung ausgeübt werden kann.
Allgemein kann ein Rechensystem mehrere Recheneinheiten mit einer siliziumbasierten Rechenarchitektur aufweisen und zu berechnende Rechenaufgaben können diesen Recheneinheiten zur Berechnung zugewiesen werden. Allerdings können Recheneinheiten mit siliziumbasierter Rechenarchitektur manche Rechenaufgaben nicht lösen und andere Rechenaufgabe nur mit einem vergleichsweise hohen Zeitaufwand. Für manche Anwendungen kann es jedoch wünschenswert und/oder erforderlich sein, Rechenaufgaben mit einem geringen Zeitaufwand (also mit geringer Latenz) zu berechnen. Hierfür können andere Rechenarchitekturen verwendet werden, welche allerdings wiederum andere Rechenaufgaben nur mit geringerer Effizienz berechnen können. Verschiedene Aspekte betreffen ein Rechensystem, in welchem voneinander verschiedene Rechenarchitekturen verwendet werden können und in welchem in Abhängigkeit verschiedenster Kriterien mindestens eine dieser Rechenarchitekturen ausgewählt wird, um eine Rechenaufgabe zu berechnen. Auf diese Weise können Energieeffizienz und Berechnungszeit anwendungsspezifisch (z.B. je nachdem, ob es sich um eine zeitkritische oder zeitunkritische Rechenaufgabe handelt) eingestellt (z.B. optimiert) werden.
FIG. 1A bis FIG. ID zeigen jeweils ein Rechensystem 100 gemäß verschiedenen Ausführungsformen. Das Rechensystem 100 kann einen Prozessor 102 aufweisen. Obgleich hierin zur Veranschaulichung ein Prozessor 102 beschrieben wird, wird verstanden, dass es sich hierbei auch mehrere Prozessoren handeln kann. Der Prozessor 102 (oder die mehreren Prozessoren) können zum Beispiel Teil einer Auswahleinheit (auch als Selektor-Einheit bezeichnet) sein.
Das Rechensystem 100 kann eine Vielzahl von Recheneinheiten 104(n = 1 bis N) aufweisen. Hierbei kann „N“ eine Ganzzahl größer als oder gleich zwei sein. Zur Veranschaulichung wird das Rechensystem 100 im Folgenden dahingehend beschrieben, dass dieses die Vielzahl von Recheneinheiten 104(n = 1 bis N) aufweist. Es wird verstanden, dass der Prozessor 102 auch wie hierin beschrieben eingerichtet sein kann, ohne dass das Rechensystem 100 die Vielzahl von Recheneinheiten 104(n = 1 bis N) zwangsläufig aufweist.
In manchen Ausgestaltungen kann das hierin beschriebene Rechensystem 100 ein eingebettetes System sein. In anderen Ausgestaltungen kann der Prozessor 102 und die Vielzahl von
Recheneinheiten 104(n = 1 bis N) Teil eines Netzwerks sein. Das Netzwerk kann beispielsweise ein physikalisches Netzwerk oder ein virtuelles Netzwerk sein.
Eine Recheneinheit, wie hierin beschrieben, kann jede Art von Recheneinheit sein, die imstande ist, Rechenaufgaben zu berechnen (z.B. zu lösen). Eine Recheneinheit kann ein Rechenwerk (auch als Ausführungseinheit bezeichnet) aufweisen oder sein. Das Rechenwerk kann allgemein eine Einheit zur Ausführung entsprechender Maschinenbefehle sein. Es wird verstanden, dass dieses Rechenwerk spezifisch für eine bestimmte Rechenarchitektur der Recheneinheit sein kann. Zum Beispiel kann das Rechenwerk einer Recheneinheit mit digitaler Rechenarchitektur eingerichtet zur Ausführung digitaler Maschinenbefehle. Das Rechenwerk einer Recheneinheit mit quantenbasierter Rechenarchitektur kann eingerichtet sein zur Ausführung von Quanten-Maschinenbefehlen; das Rechenwerk einer Recheneinheit mit biologischer Rechenarchitektur kann eingerichtet sein zur Ausführung organischer Maschinenbefehle; etc.
Jede Recheneinheit kann eine jeweilige Rechenarchitektur aufweisen. Eine Rechenarchitektur (kann auch als Computerarchitektur bezeichnet werden) kann eine Struktur der Recheneinheit angeben. Die Struktur der Recheneinheit kann beispielsweise einen Überbegriff (z.B. Kategoriebegriff) der Art und Weise, wie bzw. mit welchen Mitteln eine Rechenaufgabe berechnet wird, angeben, und Details der expliziten Implementierung außer Acht lassen. So kann eine Rechenarchitektur beispielsweise eine (z.B. siliziumbasierte oder galliumnitridbasierte) digitale Rechenarchitektur, eine analoge (z.B. neuromorphe) Rechenarchitektur, eine quantenbasierte Rechenarchitektur, eine biologische Rechenarchitektur, oder eine molekularbasierte Rechenarchitektur sein. Es wird verstanden, dass dies beispielhafte Rechenarchitekturen sind und dass die hierin beschriebenen Prinzipien entsprechend auf alle anderen Rechenarchitekturen zutreffen können. Wird beispielsweise zukünftig eine neue oder andere Rechenarchitektur entwickelt, so kann zum Beispiel mindestens eine Recheneinheit des Rechensystems 100 diese Rechenarchitektur aufweisen.
Gemäß verschiedenen Aspekten haben zumindest zwei Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) eine voneinander verschiedene Rechenarchitektur. Folglich kann in manchen Ausgestaltungen jede Recheneinheit der Vielzahl von Recheneinheiten 104(n = 1 bis N) eine jeweilige Rechenarchitektur aufweisen, die von den Rechenarchitekturen aller anderen Recheneinheiten der der Vielzahl von Recheneinheiten 104(n = 1 bis N) verschiedenen ist. In anderen Ausgestaltungen können mindestens zwei Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) die gleiche Rechenarchitektur haben, solange mindestens eine andere Recheneinheit der Vielzahl von Recheneinheiten 104(n = 1 bis N) eine davon verschiedene Rechenarchitektur hat.
Eine Recheneinheit kann je nach Rechenarchitektur für eine bestimmte Rechenaufgabe eine gewisse Rechenlatenz (auch als Berechnungszeit bezeichnet) und einen gewissen Energiebedarf (auch als Energieverbrauch bezeichnet) benötigen. Auch kann eine Genauigkeit, mit der eine Rechenaufgabe berechnet werden kann, von der Art der Rechenarchitektur abhängen.
Daher kann das Rechensystem 100 auch als heterogenes Rechensystem bezeichnet werden.
Die Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) können sich optional ferner hinsichtlich anderer Bauelemente, Eigenschaften, etc. unterscheiden.
Gemäß verschiedenen Aspekten kann der Prozessor 102 eingerichtet sein, eine Rechenanforderung 106 zu empfangen. Die Rechenanforderung 106 kann eine Rechenaufgabe 108 und mindestens eine zugehörige Bedingung (beispielsweise mehrere Bedingungen 110) aufweisen. Zum Beispiel kann eine Rechenanforderung 106 ein Tupel (Ti, Ci) aus Rechenaufgabe 108, Ti , und Bedingungen 110, Ci, sein.
Die Bedingungen 110 können beispielsweise eine Energieverbrauchsbedingung aufweisen. Die Energieverbrauchsbedingung (kann auch als Energiebedarfsbedingung bezeichnet werden) kann einen maximalen Energieverbrauch, der für das Berechnen der Rechenaufgabe 108 aufzubringen ist, angeben.
Die Bedingungen 110 können eine Latenzbedingung aufweisen. Die Latenzbedingung kann eine maximale Latenz für das Berechnen der Rechenaufgabe 108 und das Bereitstellen des Ergebnisses angeben. Die Latenz kann von einer Rechenlatenz (auch als Berechnungszeit oder Rechenzeit bezeichnet) für das Berechnen der Rechenaufgabe 108 durch eine Recheneinheit 104(n) und von Übertragungszeiten (z.B. zwischen dem Prozessor 102 und der Recheneinheit 104(n)) abhängen. Sind der Prozessor 102 und die Vielzahl von Recheneinheiten 104(n = 1 bis N) beispielsweise Teil eines physikalischen Netzwerkes, so kann die Übertragungsstrecke zwischen dem Prozessor 102 und einer jeweiligen Recheneinheit 104(n) die Übertragungszeiten und damit die Latenz beeinflussen.
Die Bedingungen 110 können eine Genauigkeitsbedingung aufweisen. Die Genauigkeitsbedingung kann eine minimale Genauigkeit angeben, mit der die Rechenaufgabe 108 zu berechnen ist.
Der Prozessor 102 kann eingerichtet sein, für die Berechnung der Rechenaufgabe 108 mindestens eine Recheneinheit 104* aus der Vielzahl von Recheneinheiten 104(n = 1 bis N) auszuwählen. Der Prozessor 102 kann eingerichtet sein, die mindestens eine Recheneinheit 104* unter Verwendung von Rechenarchitektur-Informationen 112(n = 1 bis N) auszuwählen. Hierbei kann jeder Recheneinheit 104(n) der Vielzahl von Recheneinheiten 104(n = 1 bis N) eine jeweilige Rechenarchitektur-Information 112(n) der Rechenarchitektur-Informationen 112(n = 1 bis N) zugeordnet sein. Die Rechenarchitektur-Informationen 112(n = 1 bis N) können beispielsweise in einem dem Prozessor 102 zugeordneten Speicher gespeichert sein.
Die Rechenarchitektur-Information 112(n) einer Recheneinheit 104(n) kann Informationen über Eigenschaften der Recheneinheit 104(n) hinsichtlich des Energieverbrauchs bei einer Ausführung einer Rechenaufgabe enthalten. Die Rechenarchitektur-Information 112(n) kann Informationen über Eigenschaften der Recheneinheit 104(n) hinsichtlich einer Latenz (z.B. einer Rechenlatenz und/oder Übertragungslatenz) und/oder einer Genauigkeit bei einer Ausführung einer Rechenaufgabe enthalten. Zum Beispiel kann die Rechenarchitektur- Information 112(n) einer jeweiligen Recheneinheit 104(n) die voranstehenden Informationen jeweils für jede Rechenaufgabe einer Vielzahl von (z.B. vordefinierten) Rechenaufgaben aufweisen. So kann zum Beispiel die Rechenarchitektur der Recheneinheit 104(n) eine Rechenaufgabe mit einem ersten Energieverbrauch, einer ersten Rechenlatenz und einer ersten Genauigkeit und eine andere Rechenaufgabe mit einem zweiten Energieverbrauch, einer zweiten Rechenlatenz und einer zweiten Genauigkeit berechnen, wobei sich beispielsweise der erste Energieverbrauch und der zweite Energieverbrauch voneinander unterscheiden und/oder die erste Rechenlatenz und die zweite Rechenlatenz voneinander unterscheiden und/oder die erste Genauigkeit und die zweite Genauigkeit voneinander unterscheiden.
Optional können die Bedingungen 110 eine Sicherheitsbedingung aufweisen. Die Sicherheitsbedingung (kann auch als Sicherheitsanforderung bezeichnet werden) kann eine Anzahl angeben, auf wie viele verschiedene Recheneinheiten die Rechenanforderung mindestens aufzuteilen ist. Die Sicherheitsbedingung kann optional ferner angeben, in welcher Region (z.B. Land, Bereich auf den sich ein oder mehrere Gesetze erstrecken, etc.) die Berechnung durchzuführen ist.
In manchen Ausgestaltungen können die Bedingungen 110 zusätzliche Bedingungen aufweisen und die Rechenarchitektur-Informationen 112(n = 1 bis N) können gegebenenfalls für jede Recheneinheit 104(n) entsprechende zugehörige Informationen hinsichtlich dieser zusätzlichen Bedingung aufweisen.
Zum Beispiel können die Bedingungen 110 eine Plattformbedingung aufweisen. Eine Recheneinheit 104(n) kann Teil einer Plattform sein. Die Plattformbedingung können Bedingungen hinsichtlich der Plattform angeben.
Zum Beispiel können die Bedingungen 110 gesetzgeberische Anforderungen (z.B. zur Einhaltung von Gesetzen) oder unternehmensspezifischen Anforderungen aufweisen. In manchen Aspekten können die gesetzgeberischen Anforderungen in dem dem Prozessor 102 zugehörigen Speicher gespeichert sein und beispielsweise nicht Teil der Rechenanforderung 106 sein. Eine solche Anforderung kann zum Beispiel eine algorithmische Transparenz und/oder ein Recht auf Erklärung der Algorithmen sein.
In manchen Ausgestaltungen kann die jeweilige Rechenarchitektur-Information 112(n) angeben, welche Rechenarchitektur die Recheneinheit 104(n) hat und die Rechenarchitektur- Informationen können ferner für jede Rechenarchitektur (z.B. die mindestens eine der Recheneinheiten aufweist) die hierin beschriebenenjeweiligen Informationen aufweisen.
In manchen Ausgestaltungen können die Rechenarchitektur-Informationen 112(n = 1 bis N) dynamisch angepasst werden. Folglich kann der Prozessor 102 mittels der Abbildungsfunktion, f, auf der Grundlage der Rechenarchitektur-Informationen 112 und der i-ten Rechenanforderung 106, (Ti , Ci), die Auswahl der mindestens eine Recheneinheit 104*vornehmen. Hierbei kann der Prozessor 102 beispielsweise eine Zuordnungstabelle erstellen, welche als i-ten Eintrag fi (Ti , Ci, erforderliche Rechenzeit, Energiebedarf, etc.) aufweisen kann, also eine Abbildung in Abhängigkeit von der angeforderten Rechenanforderung 106, der Bedingungen 110 (diese können auch als Zielkosten bezeichnet werden) und der Rechenarchitektur-Informationen (z.B. aufweisend eine Kostentabelle der Recheneinheiten und7oder Rechenarchitekturen).
Gemäß verschiedenen Aspekten kann der Prozessor 102 eingerichtet sein, eine Abbildungsfunktion, f, zu implementieren. Diesbezügliche Informationen (z.B. Code) können beispielsweise in dem zugehörigen Speicher gespeichert sein. Die Abbildungsfunktion, f, kann die Rechenanforderung 106, (Ti, Ci), auf die mindestens eine Recheneinheit 104* abbilden (um diese so auszuwählen).
Gemäß verschiedenen Aspekten kann der Prozessor 102 eingerichtet sein, (zum Auswählen der mindestens einen Recheneinheit 104* für die Berechnung der Rechenaufgabe 108) für jede Recheneinheit 104(n) der Vielzahl von Recheneinheiten 104(n = 1 bis N) unter Verwendung der jeweiligen Rechenarchitektur-Information 112(n) einen jeweiligen Erwartungswert für jede der Bedingungen 110 ermitteln. Zum Beispiel können die Bedingungen 110 die
Energieverbrauchsbedingung und die Rechenarchitektur-Information 112(n) kann die Informationen hinsichtlich des Energieverbrauchs bei der Ausführung der Rechenaufgabe 108 aufweisen und der Prozessor 102 kann einen erwarteten Energieverbrauch für die Berechnung der Rechenaufgabe 108 der Rechenanforderung 106 ermitteln. Zum Beispiel können die Bedingungen 110 die Latenzbedingung aufweisen und die Rechenarchitektur-Information 112(n) kann die Informationen hinsichtlich der Latenz bei der Ausführung der Rechenaufgabe 108 aufweisen und der Prozessor 102 kann eine erwartete Rechenlatenz für die Berechnung der Rechenaufgabe 108 der Rechenanforderung 106 ermitteln. Zum Beispiel können die Bedingungen 110 die Genauigkeitsbedingung aufweisen und die Rechenarchitektur- Information 112(n) kann die Informationen hinsichtlich der Genauigkeit bei der Ausführung der Rechenaufgabe 108 aufweisen und der Prozessor 102 kann eine erwartete Rechengenauigkeit für die Berechnung der Rechenaufgabe 108 der Rechenanforderung 106 ermitteln.
Die Prozessor 102 kann dann anhand der ermittelten Erwartungswerte (z.B. der erwarteten Rechengenauigkeit und/oder der erwarteten Rechenlatenz und/oder des erwarteten Energieverbrauchs) ermitteln, ob eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) die Bedingungen 110 erfüllen können. Gemäß verschiedenen Aspekten kann der Prozessor 102 eingerichtet sein, beim Ermitteln der erwarteten Rechenlatenz einer jeweiligen Recheneinheit 104(n) die an diese Recheneinheit 104(n) bereits übermittelten Rechenaufgaben zu berücksichtigen. Es wird verstanden, dass die Auslastung einer Recheneinheit die Latenz, also die Zeit bis zum Bereitstellen des Ergebnisses der Berechnung, direkt beeinflusst. Gemäß verschiedenen Aspekten kann der Prozessor 102 eingerichtet sein, beim Ermitteln der erwarteten Rechenlatenz einer jeweiligen Recheneinheit 104(n) zu berücksichtigen, ob die Recheneinheit 104(n) die Rechenaufgabe 108 (überhaupt) berechnen kann oder nicht. Diese Information kann beispielsweise in der zugehörigen Rechenarchitektur- Information 112(n) enthalten sein. In manchen Ausgestaltungen kann diese Information Teil der Informationen hinsichtlich Latenz sein. Es wird verstanden, dass, wenn eine Recheneinheit 104(n) eine bestimmte Rechenaufgabe nicht berechnen kann, die Rechenlatenz und/oder die Genauigkeit gegen unendlich läuft. Daher kann in diesem Fall beispielsweise die Latenzbedingung und/oder die Genauigkeitsbedingung nicht erfüllt sein.
Wird ermittelt, dass eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) die Bedingungen 110 erfüllen können, so kann der Prozessor 102 die mindestens eine Recheneinheit 104* von diesen auswählen. Zum Beispiel kann der Prozessor 102 eingerichtet sein, die mindestens eine Recheneinheit 104* von diesen ein oder mehreren Recheneinheiten auszuwählen, die den niedrigsten erwarteten Energieverbrauch hat. Auf diese Weise kann die Energieeffizienz des Rechensystems 100 erhöht werden.
Wie in FIG. IB gezeigt, kann der Prozessor 102 eingerichtet sein, eine (z.B. jeweilige) Anweisung 114 an die mindestens eine Recheneinheit 104* zu erzeugen. Die Anweisung 114 kann die mindestens eine Recheneinheit 104* anweisen, die Rechenaufgabe 108 der Rechenanforderung 106 auszuführen. Der Prozessor 102 kann eingerichtet sein, die (z.B. jeweilige) Anweisung 114 an die mindestens eine Recheneinheit 104* zu übermitteln.
In manchen Ausgestaltungen kann die Anweisung 114 die Rechenaufgabe 108 der Rechenanforderung 106 aufweisen.
In anderen Ausgestaltungen kann die Rechenaufgabe 108 der Rechenanforderung 106 eine generische Beschreibung der Rechenaufgabe aufweisen. Die Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) können je nach jeweiliger Rechenarchitektur eingerichtet sein, einen bestimmten Maschinencode zu lesen. Der Prozessor 102 kann eingerichtet sein, die (jeweilige) Anweisung 114 derart zu erzeugen, dass diese eine von der mindestens einen Recheneinheit 104* (jeweils) lesbare Beschreibung der Rechenaufgabe aufweist.
Gemäß verschiedenen Aspekten kann der Prozessor 102 eingerichtet sein, eine Anfrage an die mindestens eine Recheneinheit 104* zu übermitteln, ob diese erwartet, die Rechenaufgabe 108 berechnen und die zugehörigen Bedingungen 110 erfüllen zu können. Die mindestens eine Recheneinheit 104* kann dann zum Beispiel mitteilen, dass diese die Bedingungen 110 nicht oder (nur) vielleicht erfüllen kann. Ist dies der Fall (oder reagiert die mindestens eine Recheneinheit 104* nicht auf die Anfragen), so kann der Prozessor 102 eingerichtet sein, eine andere Recheneinheit 104(n) als die mindestens eine Recheneinheit 104* auszuwählen. Optional kann der Prozessor 102 dann an diese Recheneinheit 104* erneut eine entsprechende Anfrage übermitteln, ob diese erwartet, die Rechenaufgabe 108 berechnen und die zugehörigen Bedingungen 110 erfüllen zu können.
Mit Bezug auf FIG. IC kann die ausgewählte mindestens eine Recheneinheit 104* eingerichtet sein, ein Ergebnis 118 der Berechnung der Rechenaufgabe 108 an den Prozessor 102 bereitzustellen (z.B. übermitteln). Der Prozessor 102 kann die Rechenanforderung 106 beispielsweise von einer Einheit 116 empfangen, die Rechenanforderung 106 dann an die ausgewählte mindestens eine Recheneinheit 104* zuweisen, und das von der mindestens einen Recheneinheit 104* bereitgestellte Ergebnis 118 an die Einheit 116 bereitstellen (z.B. übermitteln).
Gemäß verschiedenen Aspekten kann der Prozessor 102 eingerichtet sein, eine Rückmeldung an die Einheit 116 zu übermitteln. Ermittelt der Prozessor 102 beispielsweise, dass keine Recheneinheit der Vielzahl von Recheneinheiten 104(n = 1 bis N) die Rechenanforderung 106
erfüllen kann (z.B. da keine der Recheneinheiten die Rechenaufgabe 108 berechnen kann oder da keine der Recheneinheiten die Bedingungen 110 der Rechenanforderung 106 erfüllen kann), kann der Prozessor 102 eine entsprechende Rückmeldung an die Einheit 116 übermitteln. In diesem Fall kann die Rückmeldung beispielsweise angeben, dass keine der Recheneinheiten die Rechenanforderung 106 erfüllen kann. Optional kann die Rückmeldung darüber informieren, mit welchen Bedingungen die Rechenaufgabe berechnet werden könnte. Dadurch kann die Einheit 116, wenn gewünscht, eine neue Rechenanforderung mit geänderten Bedingungen an den Prozessor 102 bereitstellen.
Eine hierin beschriebene Rückmeldung von einer Recheneinheit 104(n) an den Prozessor 102 kann auch als interne Rückmeldung bezeichnet werden. Eine hierin beschriebene Rückmeldung von dem Prozessor 102 an die Einheit 116 kann auch als externe Rückmeldung bezeichnet werden. Die Einheit 116 kann auch als anfragende Einheit (kurz Anforderer) bezeichnet werden.
In manchen Ausgestaltungen kann der Prozessor 102 eingerichtet sein, nach Übermitteln der Anweisung 114 an die mindestens eine Recheneinheit 104* (z.B. nach Start und vor Abschluss der Berechnung der Rechenaufgabe 108 durch die ausgewählte mindestens eine Recheneinheit 104*) von der mindestens einen Recheneinheit 104* Vorhersage-Informationen zu empfangen, die anzeigen, ob die ausgewählte mindestens eine Recheneinheit 104* die Bedingungen 110 der Rechenanforderung 106 voraussichtlich erfüllt oder nicht. In manchen Ausgestaltungen können die Vorhersage-Informationen direkt angeben, ob die Bedingungen 110 voraussichtlich erfüllt werden. In anderen Ausgestaltungen können die Vorhersage-Informationen Informationen hinsichtlich einer erwarteten Rechenzeit und/oder einer erwarteten Genauigkeit und/oder einem erwarteten Energieverbrauch angeben und der Prozessor 102 kann eingerichtet sein, anhand davon zu ermitteln, ob die ausgewählte mindestens eine Recheneinheit 104* die Bedingungen 110 der Rechenanforderung 106 voraussichtlich erfüllt oder nicht.
In manchen Ausgestaltungen kann der Prozessor 102 ermitteln, dass mehrere Recheneinheiten die Rechenaufgabe 108 berechnen und die Bedingungen 110 erfüllen können. In diesem Fall kann der Prozessor 102 beispielsweise die Recheneinheit als die mindestens eine Recheneinheit aus den mehreren Recheneinheiten auswählen, die einen niedrigsten erwarteten Energieverbrauch hat. Wenn die Vorhersage-Informationen anzeigen, dass die ausgewählte mindestens eine Recheneinheit 104* die Bedingungen 110 der Rechenanforderung 106 voraussichtlich nicht erfüllt, kann der Prozessor 102 eingerichtet sein, unter Verwendung der Rechenarchitektur-Informationen 112 zu ermitteln, ob mindestens eine andere Recheneinheit der zuvor ermittelten mehrere Recheneinheiten die Rechenaufgabe 108 berechnen kann und die Bedingungen 110 der Rechenanforderung 106 in der verbleibenden Zeit erfüllen kann. Wird
ermittelt, dass mindestens eine andere Recheneinheit die Rechenaufgabe 108 berechnen kann und die Bedingungen 110 der Rechenanforderung 106 in der verbleibenden Zeit erfüllen kann, kann der Prozessor 102 diese auswählen und beispielsweise eine entsprechende Anweisung 114 an diese übermitteln.
Mit Bezug auf FIG. ID kann der Prozessor 102 eingerichtet sein, in Reaktion auf das Empfangen der Rechenanforderung 106, die Rechenaufgabe 108 und die zugehörigen Bedingungen 110 in mehrere Teilaufgaben 108(m = 1 bis M) mit jeweiligen Bedingungen 110(m = 1 bis M) zu unterteilen. Hierbei kann M jede Ganzzahl größer als oder gleich zwei sein. Wird die Rechenaufgabe 108 nicht in Teilaufgaben unterteilt, so ist M = 1.
Der Prozessor 102 kann eingerichtet sein, unter Verwendung der Rechenarchitektur- Informationen für jede Teilaufgabe 108(m) der mehreren Teilaufgaben 108(m = 1 bis M) jeweils mindestens eine Recheneinheit 104*(m) aus der Vielzahl von Recheneinheiten 104(n = 1 bis N) auszuwählen.
Der Prozessor 102 kann eingerichtet sein, für jede Teilaufgabe 108(m) eine jeweilige Anweisung 114(m), die jeweilige Teilaufgabe 108(m) auszuführen, an die jeweils ausgewählte mindestens eine Recheneinheit 104*(m) zu erzeugen (und optional ferner zu übermitteln).
Gemäß verschiedenen Aspekten kann der Prozessor 102 Teil einer Auswahl einheit sein und diese kann einen Multiplexer aufweisen, welcher eingerichtet sein kann, die Anweisungen 114 an die Recheneinheiten mittels Multiplexens zu übermitteln.
Wie voranstehend beschrieben, kann die Sicherheitsbedingung eine Anzahl angeben, auf wie viele verschiedene Recheneinheiten die Rechenanforderung mindestens aufzuteilen ist. Weist die Rechenanforderung 106 die Sicherheitsbedingung auf, so kann der Prozessor 102 eingerichtet sein, die Rechenaufgabe 108 und die zugehörigen Bedingungen 110 unter Verwendung der Rechenarchitektur-Informationen 112 derart in mehrere Teilaufgaben 108(m) mit jeweiligen Bedingungen 110(m) zu unterteilen, dass die mehreren Teilaufgaben 108(m = 1 bis M) mindestens auf die durch die Sicherheitsbedingung angegebene Anzahl verschiedener Recheneinheiten aufgeteilt werden können, um so für jede der mehreren Teilaufgaben jeweils mindestens eine Recheneinheit aus der Vielzahl von Recheneinheiten auszuwählen und damit die Sicherheitsbedingung zu erfüllen. Folglich kann in diesem Fall M größer als oder gleich der durch die Sicherheitsbedingung angegebenen Anzahl sein.
FIG.2 zeigt ein Ablaufdiagramm eines Verfahrens 200 zum Zuweisen von Rechenaufgaben gemäß verschiedenen Ausführungsformen.
Das Verfahren 200 kann ein Empfangen einer Rechenanforderung aufweisen (in 202). Die Rechenanforderung kann eine Rechenaufgabe und zugehörige Bedingungen aufweisen. Die Bedingungen können eine Energieverbrauchsbedingung sowie mindestens eine der Bedingungen Latenzbedingung und/oder Genauigkeitsbedingung aufweisen.
Das Verfahren 200 kann ein Auswählen mindestens einer Recheneinheit aus einer Vielzahl von Recheneinheiten aufweisen (in 204). Jede Recheneinheit der Vielzahl von Recheneinheiten kann eine jeweilige Rechenarchitektur aufweisen. Zumindest eine Recheneinheit der Vielzahl von Recheneinheiten kann eine von zumindest einer anderen Recheneinheit der Vielzahl von Recheneinheiten verschiedene Rechenarchitektur aufweisen. Jeder Recheneinheit kann eine Rechenarchitektur-Information zugeordnet sein, welche Informationen über Eigenschaften der jeweiligen Recheneinheit hinsichtlich des Energieverbrauchs sowie mindestens einer Latenz und/oder Genauigkeit bei einer Ausführung einer Rechenaufgabe enthält. Das Auswählen der mindestens einen Recheneinheit kann unter Verwendung der Rechenarchitektur-Informationen erfolgen.
Im Folgenden werden verschiedene Aspekte dieses Verfahrens 200 und des Rechensystems 100 anhand von Ablaufdiagrammen einer beispielhaften Ausgestaltung beschrieben. Es wird verstanden, dass das Rechensystem 100 und das Verfahren 200 auch einzelne dieser Aspekte aufweisen kann, ohne dass zwangsläufig die gesamte Ausgestaltung realisiert ist. Vielmehr wird verstanden, dass diese Aspekte verschiedene beispielhafte Ausgestaltungen der in Bezug auf FIG.1 A bis FIG. ID beschriebenen Vorgänge (bzw. des Verfahrens 200) darstellen. Daher können einzelne im Folgenden beschriebenen Vorgänge Teil des Verfahrens 200 sein oder die jeweilige Einheit (z.B. der Prozessor 102 oder eine der Recheneinheiten 104) des Rechensystem 100 kann eingerichtet sein, einen jeweiligen Vorgang auszuführen.
Nichtsdestotrotz wird verstanden, dass das Rechensystem 100 und/oder das Verfahren 200 aber auch gemäß genau dieser beispielhaften Ausgestaltung implementiert sein kann.
FIG.3 zeigt ein beispielhaftes Ablaufdiagramm 300 zum Erzeugen der Rechenarchitektur- Informationen 112(n = 1 bis N) gemäß verschiedenen Ausführungsformen. Dies kann ein Initialisierungsvorgang sein. In 302 kann der Initialisierungsvorgang starten. Der Prozessor 102 (z.B. als Teil der Auswahleinheit) kann (in 304) eine Verbindung zu den Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) herstellen. Hierbei kann die Vielzahl von Recheneinheiten 104(n = 1 bis N) eine verfügbare Rechenhardware sein. Der Prozessor 102 kann eingerichtet sein, die Rechenarchitektur-Informationen 112(n = 1 bis N) (in 306) zu erzeugen. Hierzu kann der Prozessor 102 die jeweilige Rechenarchitektur-Information 112(n) für jede Recheneinheit 104(n) der Vielzahl von Recheneinheiten 104(n = 1 bis N) erzeugen.
Der Prozessor 102 kann eingerichtet sein, die jeweilige Rechenarchitektur-Information 112(n) unter Verwendung Meta-Informationen (308) zu erzeugen. Zum Beispiel kann der Prozessor 102 zum Erzeugen der jeweiligen Rechenarchitektur-Information 112(n) Informationen von Dritten (z.B. die die jeweilige Recheneinheit 104(n) hosten (z.B. in dem Fall, dass das Rechensystem 100 Teil eines Netzwerks ist)), Hardware-Fähigkeiten, Eigenschaften, Latenzen, Hardware-Metriken, etc. der jeweiligen Recheneinheit 104(n) verwenden. Die Informationen von Dritten können Informationen bezüglich einer Sicherheit enthalten und können in Bezug auf die Sicherheitsbedingung berücksichtigt werden. Zum Beispiel kann bei Unterteilen der Rechenaufgabe 108 in mehrere Teilaufgaben durch den Prozessor 102 beim Auswählen der jeweiligen Recheneinheit 104(n) berücksichtigt werden, dass die mehreren Teilaufgaben 108(m = 1 bis M) auf Recheneinheiten unterschiedlicher Drittparteien (z.B. Drittanbieter) aufgeteilt werden. Auf diese Weise kann verhindert werden, dass eine Drittpartei Zugang zu den Ergebnissen aller Teilaufgaben hat und so das Gesamtergebnis ableiten kann. Dadurch kann nicht nur die Sicherheit erhöht werden, sondern es kann auch eine Anonymität sichergestellt werden.
FIG.4A zeigt ein beispielhaftes Ablaufdiagramm 400 zum Auswählen der mindestens einen Recheneinheit 104* für die Berechnung der Rechenaufgabe 108 gemäß verschiedenen Ausführungsformen. Der Prozessor 102 kann (in 402) auf Rechenanforderungen warten. Der Prozessor 102 kann eingerichtet sein, (in 404) zu ermitteln, ob eine Rechenanforderung 106 empfangen wurde. Wird die Rechenanforderung 106 empfangen, so kann der Prozessor 102 (in 406) ermitteln, ob zumindest eine Recheneinheit 104(n) der Vielzahl von Recheneinheiten 104(n = 1 bis N) die Rechenanforderung 106 erfüllen (also die Rechenaufgabe 108 gemäß den Bedingungen 110 berechnen) kann. Wenn (in 406) ermittelt wird, dass keine Recheneinheit der Vielzahl von Recheneinheiten 104(n = 1 bis N) die Rechenanforderung 106 erfüllen kann, kann der Prozessor 102 (in 408) eine entsprechende Rückmeldung an die Einheit 116 erzeugen und optional übermitteln. Wenn (in 406) ermittelt wird, dass zumindest eine Recheneinheit der Vielzahl von Recheneinheiten 104(n = 1 bis N) die Rechenanforderung 106 erfüllen kann, kann der Prozessor 102 (in 410) ermitteln, ob mehrere Recheneinheiten der Vielzahl von Recheneinheiten 104(n = 1 bis N) die Rechenanforderung 106 erfüllen können. Wird ermittelt, dass nur eine Recheneinheit die Rechenanforderung 106 erfüllen kann („Nein“ in 410), kann der Prozessor 102 diese Recheneinheit als die mindestens eine Recheneinheit 104* auswählen und optional ferner (in 412) die Anweisung 114 erzeugen (und optional an die mindestens eine Recheneinheit 104* übermitteln).
Wird ermittelt, dass mehrere Recheneinheiten die Rechenanforderung 106 erfüllen können („Ja“ in 410), kann der Prozessor 102 (in 414) eine oder mehreren dieser Recheneinheiten
auswählen. Mit Bezug auf FIG.4B und FIG.4C kann der Prozessor 102 eingerichtet sein, hierzu (in 416) zu ermitteln, ob Sicherheitsanforderungen (z.B. als Sicherheitsbedingung der Bedingungen 110 und/oder als allgemeine Sicherheitsanforderung, die beispielsweise in dem dem Prozessor 102 zugehörigen Speicher gespeichert ist) zum Unterteilen der Rechenaufgabe 108 in mehrere Teilaufgaben 108(m = 1 bis M) vorliegen.
Liegen keine Sicherheitsanforderungen vor („Nein“ in 416), so kann der Prozessor 102 in manchen Ausgestaltungen (siehe zum Beispiel FIG.4B) eingerichtet sein, (in 420) eine Recheneinheit 104* aus den mehreren Recheneinheiten, die die Rechenanforderung 106 erfüllen können, auszuwählen. In anderen Ausgestaltungen (siehe zum Beispiel FIG.4C) kann der Prozessor 102 eingerichtet sein, zu ermitteln, ob die Rechenaufgabe 108 eine hohe Komplexität aufweist oder nicht. Unter einer Rechenaufgabe mit hoher Komplexität kann verstanden werden, dass diese in Teilprobleme zerlegt werden kann. Wird ermitteln, dass die Rechenaufgabe 108 eine hohe Komplexität hat („Nein“ in 418), so kann (in 420) die eine Recheneinheit 104* aus den mehreren Recheneinheiten, die die Rechenanforderung 106 erfüllen können, ausgewählt werden.
Liegen Sicherheitsanforderungen vor („Ja“ in 416), so kann die Rechenaufgabe 108 wie hierin beschriebene in mehrere Teilaufgaben 108(m) mit jeweiligen Bedingungen 110(m) unterteilt. Ein beispielhaftes Ablaufdiagramm 500 hierzu ist in FIG.5 gezeigt. Optional kann der Prozessor 102 eingerichtet sein, die Rechenaufgabe 108 wie hierin beschriebene in mehrere Teilaufgaben 108(m = 1 bis M) mit jeweiligen Bedingungen 110(m) zu unterteilen, wenn die Rechenaufgabe 108 eine hohe Komplexität aufweist („Ja“ in 418). Ein beispielhaftes Ablaufdiagramm 600 hierzu ist in FIG.6 gezeigt.
Mit Bezug auf FIG.5 kann der Prozessor 102 eingerichtet sein, die Rechenaufgabe 108 (in 502) in die mehreren Teilaufgaben 108(m = 1 bis M) zu unterteilen. Der Prozessor 102 kann eingerichtet sein, für jede Teilaufgabe 108(m) eine jeweilige Recheneinheit 104(n, m) auszuwählen. Der Prozessor 102 kann dann die jeweilige Anweisung 114(m) erzeugen und optional an die ausgewählte Recheneinheit 104(n, m) übermitteln. Das Auswählen der Recheneinheiten für die mehreren Teilaufgaben 108(m = 1 bis M) kann ein Verteilen der Teilaufgaben auf mehrere Recheneinheiten sein (in 504).
Der Prozessor 102 kann eingerichtet sein, (in 506) zu ermitteln, ob ein paralleles Berechnen der mehreren Teilaufgaben 108(m = 1 bis M) möglich ist oder nicht. Als paralleles Berechnen kann ein zeitlich zumindest teilweise überschneidendes Berechnen verstanden werden.
Wenn ein paralleles Berechnen der mehreren Teilaufgaben 108(m = 1 bis M) möglich ist („Ja“ in 506) kann (in 508) das parallele Berechnen durch die mehreren Recheneinheiten (also die für
jede Teilaufgabe 108(m) jeweils ausgewählte Recheneinheit 104(n, m)) erfolgen. Jede ausgewählte Recheneinheit 104(n, m) kann ein jeweiliges Ergebnis 118(m) der Berechnung der jeweiligen Teilaufgabe 108(m) an den Prozessor 102 bereitstellen. Der Prozessor 102 kann eingerichtet sein, diese Ergebnisse 118(m = 1 bis M) zu einem Gesamtergebnis 514 zusammenzufassen.
Wenn kein paralleles Berechnen der mehreren Teilaufgaben 108(m = 1 bis M) möglich ist („Nein“ in 506) kann der Prozessor 102 (in 510) die jeweilige Teilaufgabe 108(m) (z.B. als Anweisung 114(m)) der zugehörigen ausgewählten Recheneinheit 104(n, m)) bereitstellen. Jede ausgewählte Recheneinheit 104(n, m) kann dann das jeweiliges Ergebnis 118(m) der Berechnung der jeweiligen Teilaufgabe 108(m) an den Prozessor 102 bereitstellen. Der Prozessor 102 kann eingerichtet sein, (in 512) zu ermitteln, ob alle Teilaufgaben berechnet wurden. Sobald alle Teilaufgaben berechnet wurden, kann der Prozessor 102 die Ergebnisse 118(m = 1 bis M) zu dem Gesamtergebnis 514 zusammenzufassen.
Der Prozessor 102 kann eingerichtet sein, (in 516) eine Rückmeldung gemäß dem Gesamtergebnis 514 zu erzeugen und optional ferner an die Einheit 116 zu übermitteln. Dadurch kann das Berechnen der Rechenanforderung 106 abgeschlossen sein und der Prozessor 102 kann (gemäß 402) auf weitere Rechenanforderungen warten.
Das Ablaufdiagramm 600 kann sich von dem Ablaufdiagramm 500 dahingehend unterscheiden, dass bei Ablaufdiagramm 600 keine Sicherheitsanforderungen vorliegen („Nein“ in 416). Daher können die mehreren Teilaufgaben 108(m = 1 bis M) zwar auf verschiedene Recheneinheiten aufgeteilt werden (z.B. unterschiedlicher Drittparteien), aber dies ist nicht erforderlich. Zum Beispiel kann auch einer Recheneinheit mehr als eine Teilaufgabe zugewiesen werden, sofern die zugehörigen Bedingungen 110(m) erfüllt sind. Daher kann der Prozessor 102 eingerichtet sein, (in 602) zu ermitteln, ob eine Verteilung der Teilaufgaben erfolgen soll oder nicht.
FIG.7 zeigt ein beispielhaftes Ablaufdiagramm 700 zum Berechnen der Rechenaufgabe 108 durch die Recheneinheit gemäß verschiedenen Ausführungsformen. Dies kann entsprechend auch für das Berechnen einer Teilaufgabe 108(m) gelten.
In Reaktion auf das Empfangen der Anweisung 114 (bzw. 114(m)) kann die ausgewählte Recheneinheit 104* die Rechenaufgabe 108 (in 702) berechnen. Die Recheneinheit 104*kann eine Rückmeldung an den Prozessor 102 bereitstellen. Diese Rückmeldung kann zum Beispiel das Ergebnis der Berechnung aufweisen. Kann die Recheneinheit 104* die Rechenaufgabe 108 nicht berechnen, so kann die Rückmeldung eine entsprechende Information aufweisen.
Der Prozessor 102 kann eingerichtet sein, (in 704) zu ermitteln, ob die Recheneinheit 104* die Rechenaufgabe 108 erfolgreich berechnet (also ein Ergebnis der Rechenaufgabe 108 bereitgestellt) hat. Hat die Recheneinheit 104* die Rechenanforderung 106 nicht erfolgreich berechnet („Nein“ in 704), kann der Prozessor 102 diese Recheneinheit 104* ausschließen. Dann kann der Prozessor 102 (in 708) ermitteln, ob die Rechenaufgabe 108 erneut berechnet werden soll. Soll die Rechenaufgabe 108 erneut berechnet werden und hat die Recheneinheit 104* die Rechenanforderung 106 nicht erfolgreich berechnet, so kann gemäß 410 ermittelt werden, ob mindestens eine andere Recheneinheit die Rechenanforderung 106 erfüllen kann. Folglich kann hierbei die Recheneinheit 104*, die die Rechenanforderung 106 nicht erfolgreich berechnet hat, ausgeschlossen werden. Soll die Rechenaufgabe 108 nicht erneut berechnet werden („Nein“ in 708) kann der Prozessor 102 eine entsprechende Rückmeldung gemäß dem Ergebnis der Berechnung erzeugen (z.B. Informationen hinsichtlich des Ergebnisses, wenn die Recheneinheit 104* die Rechenaufgabe 108 erfolgreich berechnet hat, oder andernfalls Informationen dahingehend, dass die Rechenaufgabe 108 nicht berechnet werden konnte) und optional an die Einheit 116 übermitteln.
Der hierin beschriebene Prozessor 102 kann Teil einer Auswahleinheit sein, welche in einem (z.B. virtuellen oder physikalischen) Netzwerk oder als Teil eines eingebetteten Systems verwendet werden kann. Der Prozessor 102 kann hierbei eine Rechenanforderung 106 mit einer Rechenaufgabe 108 und Bedingungen 110 empfangen und dann aus einer Vielzahl von Recheneinheiten 104(n = 1 bis N) mindestens eine Recheneinheit 104* auswählen, die die Rechenaufgabe 108 berechnen soll. Hierzu kann der Prozessor 102 Rechenarchitektur- Informationen 112 verwenden, die für jede Recheneinheit 104(n) der Vielzahl von Recheneinheiten 104(n = 1 bis N) eine jeweilige Rechenarchitektur-Information 112(n) bezüglich Energieverbrauch und optional ferner bezüglich Latenz und/oder Genauigkeit und/oder Sicherheit und/oder Plattform enthalten. Hierbei kann zumindest eine Recheneinheit 104(n) der Vielzahl von Recheneinheiten 104(n = 1 bis N) eine von zumindest einer anderen Recheneinheit verschiedene Rechenarchitektur aufweisen. Als Beispiel kann die Vielzahl von Recheneinheiten 104(n = 1 bis N) mindestens eine Recheneinheit mit digitaler Rechenarchitektur und mindestens eine Recheneinheit mit einer davon verschiedenen Rechenarchitektur (z.B. eine analoge (z.B. neuromorphe) Rechenarchitektur, eine quantenbasierte Rechenarchitektur, eine biologische Rechenarchitektur und/oder eine molekularbasierte Rechenarchitektur) aufweisen.
Jede Rechenarchitektur kann hierbei gewisse Vorteile und Nachteile gegenüber anderen Rechenarchitekturen haben. Zum Beispiel können molekularbasierte Rechenarchitekturen im Vergleich zu digitalen Rechenarchitekturen Berechnungen mit einem signifikant geringeren Energiebedarf durchführen, aber benötigen hierfür längere Rechenzeiten (also haben eine
höhere Rechenlatenz). Zum Beispiel können quantenbasierte Rechenarchitekturen im Vergleich zu digitalen Rechenarchitekturen Berechnungen mit einem signifikant geringeren Zeitaufwand (also einer geringeren Rechenlatenz) berechnen, aber haben hierfür einen höheren Energieverbrauch (z.B. für die Kühlung, da quantenbasierte Rechenarchitekturen üblicherweise bei niedrigeren Temperaturen arbeiten). Diesbezüglich können beispielsweise Rechenaufgaben, bei denen die Rechenzeit in digitalen Rechenarchitekturen exponentiell mit der Größe der Aufgabe skaliert, in quantenbasieren Rechenarchitekturen mit linear skalierender Zeit berechnet werden. Wie hierin beschriebene können manche Rechenaufgaben von digitalen Rechenarchitekturen gar nicht gelöst werden, wie beispielsweise das inverse Problem in KI- Anwendungen, wohingegen dieses Problem durch analoge (z.B. neuromorphe) Rechenarchitekturen gelöst werden kann. Andere Probleme wiederum können von digitalen Rechenarchitekturen mit geringerem Energiebedarf und/oder geringerem Rechenaufwand im Vergleich zu analogen Rechenarchitekturen gelöst werden.
Daher kann der Prozessor 102 beispielsweise eine latenzkritisches Rechenaufgabe einer Recheneinheit 104(n) mit quantenbasierter Rechenarchitektur zuweisen, um die Rechenaufgabe schneller zu berechnen, und eine (z.B. quantitativ großes) zeitunkritisches Rechenaufgabe einer Recheneinheit 104(n) mit molekularbasierter Rechenarchitektur (auch als Molekül arcomputer bezeichnet) zuweisen, um Energie zu sparen.
Es wird verstanden, dass die hierin beschriebenen Rechenarchitekturen beispielhaft sind und dass zumindest eine Recheneinheit 104(n) auch eine andere Rechenarchitektur haben kann.
In einem das hierin beschriebene Prinzip veranschaulichenden Beispiel kann der Prozessor 102 Teil einer Auswahleinheit an einer Schnittstelle zwischen einem Rechenzentrum mit mehreren, heterogenen Rechensystemen und der Außenwelt sein. Der Prozessor 102 kann eine erste Rechenanforderung (Ti , Ci ) und eine zweite Rechenanforderung (T2 , C2 ) empfangen. In diesem Beispiel kann die erste Rechenaufgabe, Ti , mit einer latenzkritischen Anwendung Zusammenhängen (z. B. einer Steuerung und/oder Kontrolle von cyber-physischen Systemen) und die ersten Bedingungen, Ci , können eine Berechnung mit niedriger Latenz erfordern, ohne Rücksicht auf den Energieverbrauch des Prozesses. In diesem Beispiel kann die zweite Rechenaufgabe, T2 , nicht latenzkritisch sein; daher können sich die zweiten Bedingungen, C2 , auf einen geringeren Energieverbrauch beziehen. Der Prozessor 102 kann beispielsweise mit drei Recheneinheiten (also N = 3) verbunden sein, einer ersten Recheneinheit 104(1) mit einer molekularbasierten Rechenarchitektur, einer zweiten Recheneinheit 104(2) mit einer quantenbasierten Rechenarchitektur, und einer dritten Recheneinheit 104(3) mit einer siliziumbasierten digitalen Rechenarchitektur. Wie hierin beschrieben, ist die molekularbasierten Rechenarchitektur sehr energieeffizient, aber auch sehr langsam; die
siliziumbasierte digitale Rechenarchitektur gehört zu den traditionellen, modernen elektrischen Computern mit mittlerem Energieverbrauch; und die quantenbasierten Rechenarchitektur ist sehr ineffizient bezogen auf den Energieaufwand, aber es ist in der Lage, einige Probleme in praktischer Zeit zu lösen, die die siliziumbasierte digitale Rechenarchitektur nicht lösen kann. Der Prozessor 102 kann für die erste Rechenaufgabe, Ti , dann die zweite Recheneinheit 104(2) oder die dritte Recheneinheit 104(3) auswählen, um das latenzkritische Problem zu lösen (z.B. der dritten Recheneinheit 104(3), wenn das Problem praktisch mit klassischen Mitteln gelöst werden kann, oder der zweiten Recheneinheit 104(2), falls nicht-klassische Ansätze erforderlich sind). Für die zweite Rechenaufgabe, T2 , kann der Prozessor 102 die erste Recheneinheit 104(1) auswählen, da die molekularbasierten Rechenarchitektur den geringsten Energiebedarf hat.
Wenn alles erfolgreich verläuft, geben die Recheneinheiten die Berechnungsergebnisse an den Prozessor 102 zurück. Die erste Rechenaufgabe Ti wäre schnell abgeschlossen, und die Ergebnisse der Berechnung mit geringer Latenzzeit würden dem Anforderer mitgeteilt werden. Der langsamere Prozess des molekularen Rechnens hingegen würde dem Anforderer mitgeteilt werden, sobald er abgeschlossen ist. Die zweite Recheneinheit 104(2) könnte über eine interne Rückmeldung einen Schätzwert für den Zeitbedarf übermitteln, welcher für den Abschluss der Berechnungen benötigt würde. Diese Information könnte auch dem Anforderer über eine externe Rückmeldung ausgegeben werden.
Im Folgenden werden verschiedene Beispiele bereitgestellt, welche ein oder mehrere Aspekte des Rechensystems 100 und des Verfahrens 200 beschreiben. Es wird verstanden, dass Aspekte, welche in Bezug auf das Rechensystem beschrieben sind, ebenfalls auf das Verfahren zutreffen können, und vice versa. Zum Beispiel können in Bezug auf das Rechensystem beschriebene Vorgänge entsprechend als Verfahren ausgeführt werden. Entsprechend kann das Rechensystem (zum Beispiel der Prozessor) eingerichtet sein, einen hierin beschriebenen Vorgang auszuführen.
Beispiel 1 ist eine Rechensystem, aufweisend: einen Prozessor, der eingerichtet ist: eine Rechenanforderung zu empfangen, die eine Rechenaufgabe und zugehörige Bedingungen aufweist, wobei die Bedingungen eine Energieverbrauchsbedingung sowie mindestens eine der Bedingungen Latenzbedingung und/oder Genauigkeitsbedingung aufweisen; aus einer Vielzahl von Recheneinheiten mindestens eine Recheneinheit auszuwählen, wobei jede Recheneinheit der Vielzahl von Recheneinheiten eine jeweilige Rechenarchitektur aufweist, wobei zumindest eine Recheneinheit der Vielzahl von Recheneinheiten eine von zumindest einer anderen Recheneinheit der Vielzahl von Recheneinheiten verschiedene Rechenarchitektur aufweist, wobei jeder Recheneinheit eine Rechenarchitektur-Information zugeordnet ist, welche Informationen über Eigenschaften der jeweiligen Recheneinheit hinsichtlich des
Energieverbrauchs sowie mindestens einer Latenz und/oder Genauigkeit bei einer Ausführung einer Rechenaufgabe enthält; wobei die mindestens eine Recheneinheit ausgewählt wird unter Verwendung der Rechenarchitektur-Informationen.
Beispiel 2 ist eingerichtet gemäß Beispiel 1, wobei der Prozessor ferner eingerichtet ist, eine Anweisung an die mindestens eine Recheneinheit zu erzeugen, die Rechenaufgabe der Rechenanforderung auszuführen.
Beispiel 3 ist eingerichtet gemäß Beispiel 2, wobei die Anweisung die Rechenaufgabe der Rechenanforderung aufweist.
Beispiel 4 ist eingerichtet gemäß Beispiel 2, wobei die Rechenaufgabe der Rechenanforderung eine generische Beschreibung der Rechenaufgabe aufweist; und wobei die Anweisung eine von der ausgewählten mindestens einen Recheneinheit lesbare Beschreibung der Rechenaufgabe aufweist.
Beispiel 5 ist eingerichtet gemäß einem der Beispiele 1 bis 4, wobei der Prozessor ferner eingerichtet ist, zum Auswählen der mindestens einen Recheneinheit für mehrere (z.B. alle) Recheneinheiten der Vielzahl von Recheneinheiten unter Verwendung einer jeweiligen Rechenarchitektur-Information jeweils zu ermitteln: eine erwartete Rechenlatenz für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder eine erwartete Rechengenauigkeit für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder einen erwarteten Energieverbrauch für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder Plattformanforderungen für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder Sicherheitsanforderungen für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder gesetzgeberische Anforderungen bezüglich der Berechnung von Rechenanforderungen; und wobei der Prozessor ferner eingerichtet ist, unter Verwendung der jeweils erwarteten Rechenlatenz und/oder der jeweils erwarteten Rechengenauigkeit und/oder des jeweils erwarteten Energieverbrauchs und/oder der Plattformanforderungen und/oder der Sicherheitsanforderungen und/oder der gesetzgeberischen Anforderungen zu ermitteln, ob eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können.
Beispiel 6 ist eingerichtet gemäß Beispiel 5, wobei der Prozessor eingerichtet ist: für die mehreren Recheneinheiten unter Verwendung der jeweiligen Rechenarchitektur-Information jeweils den erwarteten Energieverbrauch für die Berechnung der Rechenaufgabe der Rechenanforderung zu ermitteln; und wenn ermittelt wird, dass mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können, von
diesen die Recheneinheit als die mindestens eine Recheneinheit auszuwählen, die den niedrigsten erwarteten Energieverbrauch hat.
Beispiel 7 ist eingerichtet gemäß Beispiel 5 oder 6, wobei der Prozessor eingerichtet ist: für die mehreren Recheneinheiten eine jeweilige Auslastung zu ermitteln unter Verwendung von an die jeweilige Recheneinheit übermittelten Rechenaufgaben; und für die mehreren Recheneinheiten unter Verwendung der jeweiligen Rechenarchitektur-Information jeweils die erwartete Rechenlatenz für die Berechnung der Rechenaufgabe unter Verwendung der jeweiligen Auslastung zu ermitteln.
Beispiel 8 ist eingerichtet gemäß einem der Beispiele 1 bis 7, wobei sich die Rechenarchitektur der zumindest einen Recheneinheit und die davon verschiedene Rechenarchitektur der zumindest einen anderen Recheneinheit für die Rechenaufgabe bezüglich Energieverbrauch und/oder Rechenzeit und/oder Rechenkapazität unterscheiden.
Beispiel 9 ist eingerichtet gemäß einem der Beispiele 1 bis 8, wobei die Vielzahl von Recheneinheiten eine oder mehrere der folgenden Rechenarchitekturen aufweist: eine (z.B. siliziumbasierte oder galliumnitridbasierte) digitale Rechenarchitektur, eine analoge (z.B. neuromorphe) Rechenarchitektur, eine quantenbasierte Rechenarchitektur, eine biologische Rechenarchitektur und/oder eine molekularbasierte Rechenarchitektur.
Beispiel 10 ist eingerichtet gemäß einem der Beispiele 1 bis 9, wobei die Rechenarchitektur- Information einer jeweiligen Recheneinheit ferner angibt, ob die Recheneinheit die Rechenaufgabe berechnen kann oder nicht.
Beispiel 11 ist eingerichtet gemäß Beispiel 10, wobei der Prozessor ferner eingerichtet ist, beim Auswählen der mindestens einen Recheneinheit zu berücksichtigen, ob die Recheneinheit die Rechenaufgabe berechnen kann.
Beispiel 12 ist eingerichtet gemäß einem der Beispiele 1 bis 11, wobei der Prozessor eingerichtet ist: in Reaktion auf das Empfangen der Rechenanforderung, die Rechenaufgabe und die zugehörigen Bedingungen der Rechenanforderung in mehrere Teilaufgaben mit jeweiligen Bedingungen zu unterteilen; und unter Verwendung der Rechenarchitektur- Informationen, für jede Teilaufgabe der mehreren Teilaufgaben jeweils mindestens eine Recheneinheit aus der Vielzahl von Recheneinheiten auszuwählen.
Beispiel 13 ist eingerichtet gemäß Beispiel 12, wobei der Prozessor ferner eingerichtet ist, für jede Teilaufgabe eine jeweilige Anweisung an die jeweils ausgewählte mindestens eine Recheneinheit zu erzeugen, die jeweilige Teilaufgabe auszuführen.
Beispiel 14 ist eingerichtet gemäß Beispiel 13, wobei die jeweilige Anweisung die jeweilige Teilaufgabe der Rechenanforderung aufweist.
Beispiel 15 ist eingerichtet gemäß Beispiel 13, wobei die Rechenaufgabe der Rechenanforderung eine generische Beschreibung der Rechenaufgabe aufweist; und wobei die jeweilige Anweisung eine von der jeweils ausgewählten mindestens einen Recheneinheit lesbare Beschreibung der jeweiligen Teilaufgabe aufweist.
Beispiel 16 ist eingerichtet gemäß einem der Beispiele 1 bis 15, wobei die Bedingungen der Rechenanforderung ferner eine Sicherheitsbedingung aufweisen, die eine Anzahl angibt, auf wie viele verschiedene Recheneinheiten die Rechenanforderung mindestens aufzuteilen ist.
Beispiel 17 ist eingerichtet gemäß Beispiel 16, wobei der Prozessor eingerichtet ist, in Reaktion auf das Empfangen der Rechenanforderung, die Rechenaufgabe und die zugehörigen Bedingungen unter Verwendung der Rechenarchitektur-Informationen derart in mehrere Teilaufgaben mit jeweiligen Bedingungen zu unterteilen, dass die mehreren Teilaufgaben mindestens auf die durch die Sicherheitsbedingung angegebene Anzahl verschiedener Recheneinheiten aufgeteilt werden können, um so für jede der mehreren Teilaufgaben jeweils mindestens eine Recheneinheit aus der Vielzahl von Recheneinheiten auszuwählen und damit die Sicherheitsbedingung zu erfüllen.
Beispiel 18 ist eingerichtet gemäß einem der Beispiele 1 bis 17, sofern in Kombination mit Beispiel 2 oder 13, wobei der Prozessor eingerichtet ist, die (jeweilige) Anweisung an die ausgewählte mindestens eine Recheneinheit zu übermitteln.
Beispiel 19 ist eingerichtet gemäß einem der Beispiele 1 bis 17, wobei der Prozessor eingerichtet ist, nach Übermitteln der Anweisung an die mindestens eine Recheneinheit (z.B. nach Start und vor Abschluss der Berechnung der Rechenaufgabe durch die ausgewählte mindestens eine Recheneinheit) (z.B. von dieser) Vorhersage-Informationen zu empfangen, die anzeigen, ob die ausgewählte mindestens eine Recheneinheit die Bedingungen der Rechenanforderung voraussichtlich erfüllt oder nicht (z.B. direkt angibt, ob die Bedingungen voraussichtlich erfüllt werden; oder eine erwartete Rechenzeit und/oder eine erwartete Genauigkeit und/oder einen erwarteten Energieverbrauch angibt, wobei der Prozessor
eingerichtet sein kann, anhand davon zu ermitteln, ob die ausgewählte mindestens eine Recheneinheit die Bedingungen der Rechenanforderung voraussichtlich erfüllt oder nicht).
Beispiel 20 ist eingerichtet gemäß Beispiel 19, wobei der Prozessor eingerichtet ist: wenn die Vorhersage-Informationen anzeigen, dass die ausgewählte mindestens eine Recheneinheit die Bedingungen der Rechenanforderung voraussichtlich nicht erfüllt, unter Verwendung der Rechenarchitektur-Informationen zu ermitteln, ob eine oder mehrere andere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung in der verbleibenden Zeit erfüllen können; und wenn ermittelt wird, dass eine oder mehrere andere Recheneinheiten die Bedingungen der Rechenanforderung in der verbleibenden Zeit erfüllen können, aus den ein oder mehreren anderen Recheneinheiten mindestens eine Recheneinheit auszuwählen.
Beispiel 21 ist eingerichtet gemäß einem der Beispiele 1 bis 20, wobei das Rechensystem ein eingebettetes Rechensystem ist; oder wobei die Vielzahl von Recheneinheiten Teil eines (physikalischen oder virtuellen) Netzwerks sind.
Beispiel 22 ist eingerichtet gemäß einem der Beispiele 1 bis 21, sofern in Kombination mit Beispiel 2 oder 13, wobei die (jeweilige) Anweisung eine Anfrage aufweist, ob die ausgewählte mindestens eine Recheneinheit erwartet, die Rechenaufgabe berechnen und die zugehörigen Bedingungen erfüllen zu können.
Beispiel 23 ist eingerichtet gemäß den Beispielen 18 und 21, wobei der Prozessor eingerichtet ist: wenn die ausgewählte mindestens eine Recheneinheit in Reaktion auf die Anfrage der Anweisung nicht mitteilt, dass diese erwartet, die Rechenaufgabe berechnen und die zugehörigen Bedingungen erfüllen zu können (z.B., wenn diese mitteilt, dass diese die Bedingungen nicht oder vielleicht erfüllen kann), mindestens eine andere Recheneinheit aus der Vielzahl von Recheneinheiten auszuwählen (und optional eine Anweisung mit Anfrage an diese zu übermitteln).
Beispiel 24 ist eingerichtet gemäß einem der Beispiele 1 bis 23, wobei die Rechenarchitektur der zumindest einen Recheneinheit eingerichtet ist, mindestens eine Rechenaufgabe einer Vielzahl von Rechenaufgaben mit einem niedrigeren Energieverbrauch zu berechnen als die davon verschiedene Rechenarchitektur der zumindest einen anderen Recheneinheit, wohingegen die Rechenarchitektur der zumindest einen anderen Recheneinheit eingerichtet ist, mindestens eine andere Rechenaufgabe der Vielzahl von Rechenaufgaben mit einem niedrigeren Energieverbrauch zu berechnen als die davon verschiedene Rechenarchitektur der zumindest einen Recheneinheit.
Beispiel 25 ist eingerichtet gemäß einem der Beispiele 1 bis 24, wobei der Prozessor eingerichtet ist: unter Verwendung der Rechenarchitektur-Informationen zu ermitteln, ob eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können; und wenn ermittelt wird, dass eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können, die mindestens eine Recheneinheit aus den ein oder mehreren Recheneinheiten auszuwählen.
Beispiel 26 ist eingerichtet gemäß Beispiel 25, wobei der Prozessor eingerichtet ist, wenn ermittelt wird, dass mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können, von diesen die Recheneinheit als die mindestens eine Recheneinheit auszuwählen, die einen niedrigsten erwarteten Energieverbrauch hat.
Beispiel 27 ist eingerichtet gemäß Beispiel 25 oder 26, wobei der Prozessor eingerichtet ist, wenn ermittelt wird, dass keine Recheneinheit der Vielzahl von Recheneinheiten die Rechenanforderung erfüllen kann (z.B. da keine Recheneinheit die Rechenaufgabe lösen kann oder da keine Recheneinheit die Bedingungen der Rechenanforderung erfüllen kann), eine Mitteilung an eine Einheit, von welcher der Prozessor die Rechenanforderung empfangen hat, zu erzeugen (und optional zu übermitteln), welche angibt, dass keine Recheneinheit der Vielzahl von Recheneinheiten die Rechenanforderung erfüllen kann (z.B. dass keine Recheneinheit die Rechenaufgabe lösen kann oder welche Bedingungen der Rechenanforderung nicht erfüllt werden können).
Beispiel 28 ist eingerichtet gemäß einem der Beispiele 1 bis 27, ferner aufweisend die Vielzahl von Recheneinheiten.
Beispiel 29 ist eingerichtet gemäß Beispiel 28, wobei jede Recheneinheit der Vielzahl von Recheneinheiten eingerichtet ist, ein Ergebnis der Berechnung einer an diese übermittelten Rechenaufgabe an den Prozessor bereitzustellen.
Beispiel 30 ist eingerichtet gemäß Beispiel 29, wobei der Prozessor eingerichtet ist, das Ergebnis der Berechnung an eine Einheit, von welcher der Prozessor die Rechenanforderung empfangen hat, zu übermitteln.
Beispiel 31 ist ein Verfahren, aufweisend: Empfangen einer Rechenanforderung, die eine Rechenaufgabe und zugehörige Bedingungen aufweist, wobei die Bedingungen eine Energieverbrauchsbedingung sowie mindestens eine der Bedingungen Latenzbedingung
und/oder Genauigkeitsbedingung aufweisen; Auswählen mindestens einer Recheneinheit aus einer Vielzahl von Recheneinheiten, wobei jede Recheneinheit der Vielzahl von Recheneinheiten eine jeweilige Rechenarchitektur aufweist, wobei zumindest eine Recheneinheit der Vielzahl von Recheneinheiten eine von zumindest einer anderen Recheneinheit der Vielzahl von Recheneinheiten verschiedene Rechenarchitektur aufweist, wobei jeder Recheneinheit eine Rechenarchitektur-Information zugeordnet ist, welche Informationen über Eigenschaften der jeweiligen Recheneinheit hinsichtlich des Energieverbrauchs sowie mindestens einer Latenz und/oder Genauigkeit bei einer Ausführung einer Rechenaufgabe enthält; wobei die mindestens eine Recheneinheit ausgewählt wird unter Verwendung der Rechenarchitektur-Informationen.
Beispiel 32 ist eingerichtet gemäß Beispiel 31, ferner aufweisend: Erzeugen einer Anweisung an die mindestens eine Recheneinheit, die Rechenaufgabe der Rechenanforderung auszuführen.
Beispiel 33 ist eingerichtet gemäß Beispiel 32, wobei die Anweisung die Rechenaufgabe der Rechenanforderung aufweist.
Beispiel 34 ist eingerichtet gemäß Beispiel 32, wobei die Rechenaufgabe der Rechenanforderung eine generische Beschreibung der Rechenaufgabe aufweist; und wobei die Anweisung eine von der ausgewählten mindestens einen Recheneinheit lesbare Beschreibung der Rechenaufgabe aufweist.
Beispiel 35 ist eingerichtet gemäß einem der Beispiele 31 bis 34, wobei das Auswählen der mindestens einen Recheneinheit für mehrere (z.B. alle) Recheneinheiten der Vielzahl von Recheneinheiten unter Verwendung einer jeweiligen Rechenarchitektur-Information aufweist, jeweils zu ermitteln: eine erwartete Rechenlatenz für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder eine erwartete Rechengenauigkeit für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder einen erwarteten Energieverbrauch für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder Plattformanforderungen für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder Sicherheitsanforderungen für die Berechnung der Rechenaufgabe der Rechenanforderung, und/oder gesetzgeberische Anforderungen bezüglich der Berechnung von Rechenanforderungen; und wobei das Verfahren ferner aufweist: Ermitteln unter Verwendung der jeweils erwarteten Rechenlatenz und/oder der jeweils erwarteten Rechengenauigkeit und/oder des jeweils erwarteten Energieverbrauchs und/oder der Plattformanforderungen und/oder der Sicherheitsanforderungen und/oder der gesetzgeberischen Anforderungen, ob eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können.
Beispiel 36 ist eingerichtet gemäß Beispiel 35, ferner aufweisend: Ermitteln eines jeweils erwarteten Energieverbrauchs für die Berechnung der Rechenaufgabe der Rechenanforderung für die mehreren Recheneinheiten unter Verwendung der jeweiligen Rechenarchitektur- Information; und wenn ermittelt wird, dass mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können, Auswählen der Recheneinheit als die mindestens eine Recheneinheit von diesen, die den niedrigsten erwarteten Energieverbrauch hat.
Beispiel 37 ist eingerichtet gemäß Beispiel 35 oder 36, ferner aufweisend: für die mehreren Recheneinheiten, Ermitteln einer jeweiligen Auslastung unter Verwendung von an die jeweilige Recheneinheit übermittelten Rechenaufgaben; und für die mehreren Recheneinheiten, Ermitteln der jeweils erwarteten Rechenlatenz für die Berechnung der Rechenaufgabe unter Verwendung der jeweiligen Rechenarchitektur-Information und der jeweiligen Auslastung.
Beispiel 38 ist eingerichtet gemäß einem der Beispiele 31 bis 37, wobei sich die Rechenarchitektur der zumindest einen Recheneinheit und die davon verschiedene Rechenarchitektur der zumindest einen anderen Recheneinheit für die Rechenaufgabe bezüglich Energieverbrauch und/oder Rechenzeit und/oder Rechenkapazität unterscheiden.
Beispiel 39 ist eingerichtet gemäß einem der Beispiele 31 bis 38, wobei die Vielzahl von Recheneinheiten eine oder mehrere der folgenden Rechenarchitekturen aufweist: eine (z.B. siliziumbasierte oder galliumnitridbasierte) digitale Rechenarchitektur, eine analoge (z.B. neuromorphe) Rechenarchitektur, eine quantenbasierte Rechenarchitektur, eine biologische Rechenarchitektur und/oder eine molekularbasierte Rechenarchitektur.
Beispiel 40 ist eingerichtet gemäß einem der Beispiele 31 bis 39, wobei die Rechenarchitektur- Information einer jeweiligen Recheneinheit ferner angibt, ob die Recheneinheit die Rechenaufgabe berechnen kann oder nicht.
Beispiel 41 ist eingerichtet gemäß Beispiel 40, wobei beim Auswählen der mindestens einen Recheneinheit berücksichtigt wird, ob die Recheneinheit die Rechenaufgabe berechnen kann.
Beispiel 42 ist eingerichtet gemäß einem der Beispiele 31 bis 41, ferner aufweisend: in Reaktion auf das Empfangen der Rechenanforderung, Unterteilen der Rechenaufgabe und der zugehörigen Bedingungen der Rechenanforderung in mehrere Teilaufgaben mit jeweiligen Bedingungen; und für jede Teilaufgabe der mehreren Teilaufgaben, Auswählen jeweils
mindestens einer Recheneinheit aus der Vielzahl von Recheneinheiten unter Verwendung der Rechenarchitektur-Informationen.
Beispiel 43 ist eingerichtet gemäß Beispiel 42, ferner aufweisend: für jede Teilaufgabe, Erzeugen einer jeweiligen Anweisung an die jeweils ausgewählte mindestens eine Recheneinheit, die jeweilige Teilaufgabe auszuführen.
Beispiel 44 ist eingerichtet gemäß Beispiel 43, wobei die jeweilige Anweisung die jeweilige Teilaufgabe der Rechenanforderung aufweist.
Beispiel 45 ist eingerichtet gemäß Beispiel 43, wobei die Rechenaufgabe der Rechenanforderung eine generische Beschreibung der Rechenaufgabe aufweist; und wobei die jeweilige Anweisung eine von der jeweils ausgewählten mindestens einen Recheneinheit lesbare Beschreibung der jeweiligen Teilaufgabe aufweist.
Beispiel 46 ist eingerichtet gemäß einem der Beispiele 31 bis 45, wobei die Bedingungen der Rechenanforderung ferner eine Sicherheitsbedingung aufweisen, die eine Anzahl angibt, auf wie viele verschiedene Recheneinheiten die Rechenanforderung mindestens aufzuteilen ist.
Beispiel 47 ist eingerichtet gemäß Beispiel 46, ferner aufweisend: in Reaktion auf das Empfangen der Rechenanforderung, Unterteilen der Rechenaufgabe und der zugehörigen Bedingungen unter Verwendung der Rechenarchitektur-Informationen derart in mehrere Teilaufgaben mit jeweiligen Bedingungen, dass die mehreren Teilaufgaben mindestens auf die durch die Sicherheitsbedingung angegebene Anzahl verschiedener Recheneinheiten aufgeteilt werden können, um so für jede der mehreren Teilaufgaben jeweils mindestens eine Recheneinheit aus der Vielzahl von Recheneinheiten auszuwählen und damit die Sicherheitsbedingung zu erfüllen.
Beispiel 48 ist eingerichtet gemäß einem der Beispiele 31 bis 47, sofern in Kombination mit Beispiel 32 oder 43, ferner aufweisend: Übermitteln der (jeweiligen) Anweisung an die ausgewählte mindestens eine Recheneinheit.
Beispiel 49 ist eingerichtet gemäß einem der Beispiele 31 bis 47, ferner aufweisend: nach Übermitteln der Anweisung an die mindestens eine Recheneinheit (z.B. nach Start und vor Abschluss der Berechnung der Rechenaufgabe durch die ausgewählte mindestens eine Recheneinheit) (z.B. von dieser) Empfangen von Vorhersage-Informationen, die anzeigen, ob die ausgewählte mindestens eine Recheneinheit die Bedingungen der Rechenanforderung voraussichtlich erfüllt oder nicht (z.B. direkt angibt, ob die Bedingungen voraussichtlich erfüllt
werden; oder eine erwartete Rechenzeit und/oder eine erwartete Genauigkeit und/oder einen erwarteten Energieverbrauch angibt, wobei der Prozessor eingerichtet sein kann, anhand davon zu ermitteln, ob die ausgewählte mindestens eine Recheneinheit die Bedingungen der Rechenanforderung voraussichtlich erfüllt oder nicht).
Beispiel 50 ist eingerichtet gemäß Beispiel 49, ferner aufweisend: wenn die Vorhersage- Informationen anzeigen, dass die ausgewählte mindestens eine Recheneinheit die Bedingungen der Rechenanforderung voraussichtlich nicht erfüllt, Ermitteln unter Verwendung der Rechenarchitektur-Informationen, ob eine oder mehrere andere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung in der verbleibenden Zeit erfüllen können; und wenn ermittelt wird, dass eine oder mehrere andere Recheneinheiten die Bedingungen der Rechenanforderung in der verbleibenden Zeit erfüllen können, Auswählen mindestens einer Recheneinheit aus den ein oder mehreren anderen Recheneinheiten.
Beispiel 51 ist eingerichtet gemäß einem der Beispiele 31 bis 50, wobei das Rechensystem ein eingebettetes Rechensystem ist; oder wobei die Vielzahl von Recheneinheiten Teil eines (physikalischen oder virtuellen) Netzwerks sind.
Beispiel 52 ist eingerichtet gemäß einem der Beispiele 31 bis 51, sofern in Kombination mit Beispiel 32 oder 43, wobei die (jeweilige) Anweisung eine Anfrage aufweist, ob die ausgewählte mindestens eine Recheneinheit erwartet, die Rechenaufgabe berechnen und die zugehörigen Bedingungen erfüllen zu können.
Beispiel 53 ist eingerichtet gemäß Beispielen 48 und 51, ferner aufweisend: wenn die ausgewählte mindestens eine Recheneinheit in Reaktion auf die Anfrage der Anweisung nicht mitteilt, dass diese erwartet, die Rechenaufgabe berechnen und die zugehörigen Bedingungen erfüllen zu können (z.B., wenn diese mitteilt, dass diese die Bedingungen nicht oder vielleicht erfüllen kann), Auswählen mindestens einer anderen Recheneinheit aus der Vielzahl von Recheneinheiten (und optional eine Anweisung mit Anfrage an diese zu übermitteln).
Beispiel 54 ist eingerichtet gemäß einem der Beispiele 31 bis 53, wobei die Rechenarchitektur der zumindest einen Recheneinheit eingerichtet ist, mindestens eine Rechenaufgabe einer Vielzahl von Rechenaufgaben mit einem niedrigeren Energieverbrauch zu berechnen als die davon verschiedene Rechenarchitektur der zumindest einen anderen Recheneinheit, wohingegen die Rechenarchitektur der zumindest einen anderen Recheneinheit eingerichtet ist, mindestens eine andere Rechenaufgabe der Vielzahl von Rechenaufgaben mit einem niedrigeren Energieverbrauch zu berechnen als die davon verschiedene Rechenarchitektur der zumindest einen Recheneinheit.
Beispiel 55 ist eingerichtet gemäß einem der Beispiele 31 bis 54, ferner aufweisend: Ermitteln unter Verwendung der Rechenarchitektur-Informationen, ob eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können; und wenn ermittelt wird, dass eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können, Auswählen der mindestens einen Recheneinheit aus den ein oder mehreren Recheneinheiten.
Beispiel 56 ist eingerichtet gemäß Beispiel 55, ferner aufweisend: wenn ermittelt wird, dass mehrere Recheneinheiten der Vielzahl von Recheneinheiten die Bedingungen der Rechenanforderung erfüllen können, Auswählen der Recheneinheit als die mindestens eine Recheneinheit von diesen, die einen niedrigsten erwarteten Energieverbrauch hat.
Beispiel 57 ist eingerichtet gemäß Beispiel 55 oder 56, ferner aufweisend: wenn ermittelt wird, dass keine Recheneinheit der Vielzahl von Recheneinheiten die Rechenanforderung erfüllen kann (z.B. da keine Recheneinheit die Rechenaufgabe lösen kann oder da keine Recheneinheit die Bedingungen der Rechenanforderung erfüllen kann), Erzeugen einer Mitteilung an eine Einheit, von welcher der Prozessor die Rechenanforderung empfangen hat, (und optional zu übermitteln), welche angibt, dass keine Recheneinheit der Vielzahl von Recheneinheiten die Rechenanforderung erfüllen kann (z.B. dass keine Recheneinheit die Rechenaufgabe lösen kann oder welche Bedingungen der Rechenanforderung nicht erfüllt werden können).
Beispiel 58 ist eingerichtet gemäß einem der Beispiele 31 bis 57, ferner aufweisend: Bereitstellen eines Ergebnisses der Berechnung der Rechenaufgabe durch die mindestens eine (ausgewählte) Recheneinheit.
Der Begriff "Prozessor", wie hierin verwendet, kann als jede Art von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen erlaubt. Die Daten oder Signale können beispielsweise gemäß zumindest einer (d.h. einer oder mehr als einer) spezifischen Funktion behandelt werden, die vom Prozessor ausgeführt wird. Ein Prozessor kann eine analoge Schaltung, eine digitale Schaltung, eine Mischsignalschaltung, eine Logikschaltung, einen Mikroprozessor, eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen digitalen Signalprozessor (DSP), eine programmierbare Gatter-Anordnung (FPGA), eine integrierte Schaltung oder eine beliebige Kombination davon aufweisen oder daraus gebildet sein. Es wird verstanden, dass die voranstehenden Schaltungen beispielhafte Arten der Implementierung eines Prozessors sind und dass der hierin beschriebene Prozessor auch auf jede andere geeignete Art und Weise implementiert sein kann, um Daten oder Signale zu verarbeiten. So kann das hierin beschriebene Prinzip der Auswahl einer oder mehrerer
Recheneinheiten unabhängig von der Art und Weise der Implementierung des Prozessors sein. Jede andere Art der Implementierung der jeweiligen Funktionen, die nachstehend ausführlicher beschrieben werden, kann auch als Prozessor oder Logikschaltung verstanden werden. Es versteht sich, dass einer oder mehrere der hierin detailliert beschriebenen Verfahrensschritte von einem Prozessor ausgeführt (z.B. realisiert) werden können, durch eine oder mehrere spezifische Funktionen, die von dem Prozessor ausgeführt werden. Der Prozessor kann daher eingerichtet sein, eines der hierin beschriebenen Verfahren oder dessen Komponenten zur Inform ati onsverarb eitung durchzuführen .
Ein in den Ausführungsformen verwendeter Speicher kann ein flüchtiger Speicher, zum Beispiel ein DRAM (dynamischer Direktzugriffsspeicher), oder ein nichtflüchtiger Speicher, zum Beispiel ein PROM (programmierbarer Festwertspeicher), ein EPROM (löschbarer PROM), ein EEPROM (elektrisch löschbarer PROM) oder ein Flash-Speicher, wie beispielsweise eine Speichereinrichtung mit schwebendem Gate, eine ladungsabfangende Speichereinrichtung, ein MRAM (magnetoresi stiver Direktzugriffsspeicher) oder ein PCRAM (Phasenwechsel-Direktzugriffsspeicher), sein. Es wird verstanden, dass dies Beispiele für einen in den Ausführungsformen verwendeten Speicher sind und dass der Speicher auf jede andere geeignete Art implementiert sein kann, um Daten zu speichern.
Claims
1. Rechensystem (100), aufweisend: einen Prozessor (102), der eingerichtet ist:
• eine Rechenanforderung (106) zu empfangen, die eine Rechenaufgabe (108) und zugehörige Bedingungen (110) aufweist, wobei die Bedingungen (110) eine Energieverbrauchsbedingung sowie mindestens eine der Bedingungen (110) Latenzbedingung und/oder Genauigkeitsbedingung aufweisen;
• aus einer Vielzahl von Recheneinheiten (104(n = 1 bis N)) mindestens eine Recheneinheit (104*) auszuwählen, wobei jede Recheneinheit (104(n)) der Vielzahl von Recheneinheiten (104(n = 1 bis N)) eine jeweilige Rechenarchitektur aufweist, wobei zumindest eine Recheneinheit der Vielzahl von Recheneinheiten
(104(n = 1 bis N)) eine von zumindest einer anderen Recheneinheit der Vielzahl von Recheneinheiten (104(n = 1 bis N)) verschiedene Rechenarchitektur aufweist, wobei jeder Recheneinheit (104(n)) eine Rechenarchitektur-Information (112(n)) zugeordnet ist, welche Informationen über Eigenschaften der jeweiligen Recheneinheit hinsichtlich des Energieverbrauchs sowie mindestens einer Latenz und/oder Genauigkeit bei einer Ausführung einer Rechenaufgabe (108) enthält;
• wobei die mindestens eine Recheneinheit (104*) ausgewählt wird unter Verwendung der Rechenarchitektur-Informationen (112(n = 1 bis N)).
2. Rechensystem (100) gemäß Anspruch 1, wobei der Prozessor (102) ferner eingerichtet ist, eine Anweisung (114) an die mindestens eine Recheneinheit (104*) zu erzeugen, die Rechenaufgabe (108) der Rechenanforderung (106) auszuführen.
3. Rechensystem (100) gemäß Anspruch 1 oder 2, wobei der Prozessor (102) ferner eingerichtet ist, zum Auswählen der mindestens einen Recheneinheit (104*) für mehrere Recheneinheiten der Vielzahl von Recheneinheiten (104(n = 1 bis N)) unter Verwendung einer jeweiligen Rechenarchitektur-Information (112(n)) jeweils zu ermitteln:
• eine erwartete Rechenlatenz für die Berechnung der Rechenaufgabe (108) der Rechenanforderung (106), und/oder
• eine erwartete Rechengenauigkeit für die Berechnung der Rechenaufgabe (108) der Rechenanforderung (106), und/oder
• einen erwarteten Energieverbrauch für die Berechnung der Rechenaufgabe (108) der Rechenanforderung (106), und/oder
• Plattformanforderungen für die Berechnung der Rechenaufgabe (108) der Rechenanforderung (106), und/oder
• Sicherheitsanforderungen für die Berechnung der Rechenaufgabe (108) der Rechenanforderung (106), und/oder
• gesetzgeberische Anforderungen bezüglich der Berechnung von Rechenanforderungen; und wobei der Prozessor (102) ferner eingerichtet ist, unter Verwendung der jeweils erwarteten Rechenlatenz und/oder der jeweils erwarteten Rechengenauigkeit und/oder des jeweils erwarteten Energieverbrauchs und/oder der Plattformanforderungen und/oder der Sicherheitsanforderungen und/oder der gesetzgeberischen Anforderungen zu ermitteln, ob eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten (104(n = 1 bis N)) die Bedingungen (110) der Rechenanforderung (106) erfüllen können.
4. Rechensystem (100) gemäß Anspruch 3, wobei der Prozessor (102) eingerichtet ist:
• für die mehreren Recheneinheiten unter Verwendung der jeweiligen Rechenarchitektur-Information (112(n)) jeweils den erwarteten Energieverbrauch für die Berechnung der Rechenaufgabe (108) der Rechenanforderung (106) zu ermitteln; und
• wenn ermittelt wird, dass mehrere Recheneinheiten der Vielzahl von Recheneinheiten (104(n = 1 bis N)) die Bedingungen (110) der Rechenanforderung (106) erfüllen können, von diesen die Recheneinheit als die mindestens eine Recheneinheit (104*) auszuwählen, die den niedrigsten erwarteten Energieverbrauch hat.
5. Rechensystem (100) gemäß Anspruch 3 oder 4, wobei der Prozessor (102) eingerichtet ist: für die mehreren Recheneinheiten eine jeweilige Auslastung zu ermitteln unter Verwendung von an die jeweilige Recheneinheit übermittelten Rechenaufgaben; und
• für die mehreren Recheneinheiten unter Verwendung der jeweiligen Rechenarchitektur-Information (112(n)) jeweils die erwartete Rechenlatenz für die Berechnung der Rechenaufgabe (108) unter Verwendung der jeweiligen Auslastung zu ermitteln.
6. Rechensystem (100) gemäß einem der Ansprüche 1 bis 5, wobei die Vielzahl von Recheneinheiten (104(n = 1 bis N)) eine oder mehrere der folgenden Rechenarchitekturen aufweist: eine digitale Rechenarchitektur, eine analoge Rechenarchitektur, eine quantenbasierte Rechenarchitektur, eine biologische Rechenarchitektur und/oder eine molekularbasierte Rechenarchitektur.
7. Rechensystem (100) gemäß einem der Ansprüche 1 bis 6, wobei die Bedingungen (110) der Rechenanforderung (106) ferner eine Sicherheitsbedingung aufweisen, die eine Anzahl angibt, auf wie viele verschiedene Recheneinheiten die Rechenanforderung (106) mindestens aufzuteilen ist.
8. Rechensystem (100) gemäß Anspruch 7, wobei der Prozessor (102) eingerichtet ist, in Reaktion auf das Empfangen der Rechenanforderung (106), die Rechenaufgabe (108) und die zugehörigen Bedingungen (110) unter Verwendung der Rechenarchitektur-Informationen derart in mehrere Teilaufgaben mit jeweiligen Bedingungen (110) zu unterteilen, dass die mehreren Teilaufgaben mindestens auf die durch die Sicherheitsbedingung angegebene Anzahl verschiedener Recheneinheiten aufgeteilt werden können, um so für jede der mehreren Teilaufgaben jeweils mindestens eine Recheneinheit aus der Vielzahl von Recheneinheiten (104(n = 1 bis N)) auszuwählen und damit die Sicherheitsbedingung zu erfüllen.
9. Rechensystem (100) gemäß einem der Ansprüche 1 bis 8, sofern in Kombination mit Anspruch 2, wobei der Prozessor (102) eingerichtet ist:
• die Anweisung (114) an die ausgewählte mindestens eine Recheneinheit zu übermitteln;
• nach Übermitteln der Anweisung (114) an die mindestens eine Recheneinheit Vorhersage-Informationen zu empfangen, die anzeigen, ob die ausgewählte
mindestens eine Recheneinheit die Bedingungen (110) der Rechenanforderung (106) voraussichtlich erfüllt oder nicht;
• wenn die Vorhersage-Informationen anzeigen, dass die ausgewählte mindestens eine Recheneinheit die Bedingungen (110) der Rechenanforderung (106) voraussichtlich nicht erfüllt, unter Verwendung der Rechenarchitektur-Informationen (112(n = 1 bis N)) zu ermitteln, ob eine oder mehrere andere Recheneinheiten der Vielzahl von Recheneinheiten (104(n = 1 bis N)) die Bedingungen (110) der Rechenanforderung (106) in der verbleibenden Zeit erfüllen können; und
• wenn ermittelt wird, dass eine oder mehrere andere Recheneinheiten die Bedingungen (110) der Rechenanforderung (106) in der verbleibenden Zeit erfüllen können, aus den ein oder mehreren anderen Recheneinheiten mindestens eine Recheneinheit auszuwählen.
10. Rechensystem (100) gemäß einem der Ansprüche 1 bis 9, wobei das Rechensystem (100) ein eingebettetes Rechensystem (100) ist; oder wobei die Vielzahl von Recheneinheiten (104(n = 1 bis N)) Teil eines Netzwerks sind.
11. Rechensystem (100) gemäß einem der Ansprüche 1 bis 10, wobei der Prozessor (102) eingerichtet ist:
• unter Verwendung der Rechenarchitektur-Informationen (112(n = 1 bis N)) zu ermitteln, ob eine oder mehrere Recheneinheiten der Vielzahl von Recheneinheiten (104(n = 1 bis N)) die Bedingungen (110) der Rechenanforderung (106) erfüllen können; und
• wenn ermittelt wird, dass mehrere Recheneinheiten der Vielzahl von Recheneinheiten (104(n = 1 bis N)) die Bedingungen (110) der Rechenanforderung (106) erfüllen können, von diesen die Recheneinheit als die mindestens eine Recheneinheit auszuwählen, die einen niedrigsten erwarteten Energieverbrauch hat.
12. Rechensystem (100) gemäß einem der Ansprüche 1 bis 11, ferner aufweisend die Vielzahl von Recheneinheiten (104(n = 1 bis N)).
13. Rechensystem (100) gemäß Anspruch 12,
wobei jede Recheneinheit der Vielzahl von Recheneinheiten (104(n = 1 bis N)) eingerichtet ist, ein Ergebnis der Berechnung einer an diese übermittelten Rechenaufgabe (108) an den Prozessor (102) bereitzustellen.
14. Verfahren (200), aufweisend:
• Empfangen (202) einer Rechenanforderung (106), die eine Rechenaufgabe (108) und zugehörige Bedingungen (110) aufweist, wobei die Bedingungen (110) eine Energieverbrauchsbedingung sowie mindestens eine der Bedingungen (110) Latenzbedingung und/oder Genauigkeitsbedingung aufweisen;
• Auswählen (204) mindestens einer Recheneinheit aus einer Vielzahl von Recheneinheiten (104(n = 1 bis N)), wobei jede Recheneinheit der Vielzahl von Recheneinheiten (104(n = 1 bis N)) eine jeweilige Rechenarchitektur aufweist, wobei zumindest eine Recheneinheit der Vielzahl von Recheneinheiten (104(n = 1 bis N)) eine von zumindest einer anderen Recheneinheit der Vielzahl von Recheneinheiten (104(n = 1 bis N)) verschiedene Rechenarchitektur aufweist, wobei jeder Recheneinheit (104(n)) eine Rechenarchitektur-Information (112(n)) zugeordnet ist, welche Informationen über Eigenschaften der jeweiligen Recheneinheit hinsichtlich des Energieverbrauchs sowie mindestens einer Latenz und/oder Genauigkeit bei einer Ausführung einer Rechenaufgabe (108) enthält;
• wobei die mindestens eine Recheneinheit ausgewählt wird unter Verwendung der Rechenarchitektur-Informationen (112(n = 1 bis N)).
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102023114253.4A DE102023114253B3 (de) | 2023-05-31 | 2023-05-31 | Rechensystem und diesbezügliches Verfahren |
| PCT/EP2024/061052 WO2024245646A1 (de) | 2023-05-31 | 2024-04-23 | Rechensystem und diesbezügliches verfahren |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4720856A1 true EP4720856A1 (de) | 2026-04-08 |
Family
ID=90829003
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24721125.3A Pending EP4720856A1 (de) | 2023-05-31 | 2024-04-23 | Rechensystem und diesbezügliches verfahren |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4720856A1 (de) |
| DE (1) | DE102023114253B3 (de) |
| WO (1) | WO2024245646A1 (de) |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7412353B2 (en) | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
| US20130185581A1 (en) | 2012-01-18 | 2013-07-18 | Qualcomm Incorporated | Efficient Code Dispatch Based on Performance and Energy Consumption |
| US11302055B2 (en) * | 2019-04-01 | 2022-04-12 | Apple Inc. | Distributed processing in computer generated reality system |
| EP4042279A4 (de) | 2019-10-10 | 2023-11-01 | Channel One Holdings Inc. | Verfahren und systeme für die zeitgemässe ausführung von rechnerablaufen |
| US20220035684A1 (en) | 2020-08-03 | 2022-02-03 | Nvidia Corporation | Dynamic load balancing of operations for real-time deep learning analytics |
| US20220327005A1 (en) | 2022-06-22 | 2022-10-13 | Intel Corporation | Methods and apparatus to load balance edge device workloads |
-
2023
- 2023-05-31 DE DE102023114253.4A patent/DE102023114253B3/de active Active
-
2024
- 2024-04-23 EP EP24721125.3A patent/EP4720856A1/de active Pending
- 2024-04-23 WO PCT/EP2024/061052 patent/WO2024245646A1/de not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| DE102023114253B3 (de) | 2024-08-08 |
| WO2024245646A1 (de) | 2024-12-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102018125728B3 (de) | Verfahren und System zur parallelen Schalttabellen-Optimierung für Multilevelkonverter | |
| DE112016001075B4 (de) | Verteiltes speichern und abrufen von datensätzen | |
| DE102020110143B4 (de) | Standortbasierte virtualisierungs-workload-platzierung | |
| DE112020000748B4 (de) | Adresserzeugung zur hochleistungsverarbeitung von vektoren | |
| DE112019002981T5 (de) | Parallelberechnungsarchitektur mit rekonfigurierbarer kernebenen- und vektorebenen-parallelität | |
| DE102010044531B4 (de) | Autonome Speicherarchitektur | |
| DE60224432T2 (de) | Dynamische und automatische speicherverwaltung | |
| DE102010044529B4 (de) | Autonomes speicher-sub-system mit hardwarebeschleuniger | |
| DE102018006894A1 (de) | Technologien zum Auslagern von Beschleunigungsaufgaben-Ablaufplanungsoperationen an Beschleunigerschlitten | |
| DE112016002296T5 (de) | Vektor-recheneinheit in einem neuronalen netzwerkprozessor | |
| DE102019103114B4 (de) | Speichersteuereinrichtung und Anwendungsprozessor für eine gesteuerte Auslastung und Leistung einer Eingabe/Ausgabe-Vorrichtung und Verfahren zur Betätigung der Speichersteuereinrichtung | |
| DE102013017509A1 (de) | Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten | |
| DE112013000752T5 (de) | Verwalten von Verarbeitungselementen in einem Streaming-Datensystem | |
| DE102013017511A1 (de) | Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten | |
| DE102020112826A1 (de) | Verfahren zur effizienten durchführung von datenreduktionen in parallelverarbeitungseinheiten | |
| DE10296959T5 (de) | System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen | |
| DE102017213160B4 (de) | Kompilierung für knotenvorrichtungs-GPU-basierte Parallelverarbeitung | |
| DE112014002754T5 (de) | Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus | |
| DE112019000676T5 (de) | Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor | |
| DE102020132767A1 (de) | Verwaltung der Dienstgüte (QoS) eines Speichersystems | |
| DE112017000302T5 (de) | Hierarchisches autonomes Kapazitätsmanagement | |
| DE102015116036A1 (de) | Dezentrale Realzeitrechenstruktur, die eine speicherinterne Verarbeitung verwendet | |
| DE102019113874A1 (de) | Hochpräzises niedrigbit-convolutional-neural-network | |
| DE102022121767A1 (de) | In-memory-assoziativverarbeitung für vektoren | |
| DE102019101853B4 (de) | Dynamische Partitionierung von Ausführungsressourcen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20251201 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |