DE102022204713A1 - Verfahren zum Durchführen von Datenverarbeitungsaufgaben - Google Patents

Verfahren zum Durchführen von Datenverarbeitungsaufgaben Download PDF

Info

Publication number
DE102022204713A1
DE102022204713A1 DE102022204713.3A DE102022204713A DE102022204713A1 DE 102022204713 A1 DE102022204713 A1 DE 102022204713A1 DE 102022204713 A DE102022204713 A DE 102022204713A DE 102022204713 A1 DE102022204713 A1 DE 102022204713A1
Authority
DE
Germany
Prior art keywords
data processing
task
data
devices
distribution
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
Application number
DE102022204713.3A
Other languages
English (en)
Inventor
Ivan Marinov
Sven Erik Jeroschewski
Alexander Artemenko
Eugen Volk
Vimalanandan Selva Vinayagam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022204713.3A priority Critical patent/DE102022204713A1/de
Priority to PCT/EP2023/052408 priority patent/WO2023217419A1/de
Publication of DE102022204713A1 publication Critical patent/DE102022204713A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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 the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems beschrieben, aufweisend Ermitteln von mindestens einer Anforderung an die Durchführung von mindestens einer Datenverarbeitungsaufgabe, Aufteilen jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und Verteilen der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, sodass die ermittelte mindestens eine Anforderung erfüllt wird, wobei das Datenverarbeitungssystem die Datenverarbeitungsvorrichtungen und Datenübertragungsvorrichtungen zur Datenübertragung zwischen den Datenverarbeitungsvorrichtungen aufweist und Durchführen der mindestens einen Datenverarbeitungsaufgabe gemäß der Aufteilung und der Verteilung. Die Aufteilung und Verteilung wird gegebenenfalls geändert, falls Änderungen detektiert werden, durch die die Erfüllung der mindestens einen Anforderung an die Durchführung der Datenverarbeitungsaufgabe beeinträchtigt ist.

Description

  • Stand der Technik
  • Die vorliegende Offenbarung bezieht sich auf Verfahren zum Durchführen von Datenverarbeitungsaufgaben und Datenverarbeitungssysteme.
  • Da Datenverarbeitungsaufgaben häufig zu komplex für einzelne lokal bereitgestellte Datenverarbeitungsvorrichtungen, z.B. zur Steuerung eines Roboters, sind, können Datenverarbeitungsaufgaben auf mehrere Datenverarbeitungsvorrichtungen verteilt werden, insbesondere von einer lokalen Datenverarbeitungsvorrichtung (z.B. in einer Fabrik) in eine Edge-Cloud oder eine Cloud verschoben werden. Datenverarbeitungsaufgaben wie eine Robotersteuerung haben jedoch Anforderungen, die erfüllt werden müssen. Beispielsweise muss ein Roboter eine bestimmte Tätigkeit in einer bestimmten Zeit ausführen, um nicht eine Produktionslinie aufzuhalten oder zu Fehlern in der Produktion zu führen. Da sich solche Anforderungen auch ändern können oder auch die Leistungsfähigkeit der Datenverarbeitungsvorrichtungen und deren Verbindungen untereinander schwanken kann, sind Herangehensweisen wünschenswert, die es ermöglichen, dass Datenverarbeitungsaufgaben so ausgeführt werden, dass an deren Durchführung gestellte Anforderungen zuverlässig erfüllt werden.
  • Offenbarung der Erfindung
  • Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems bereitgestellt, aufweisend Ermitteln von mindestens einer Anforderung an die Durchführung von mindestens einer Datenverarbeitungsaufgabe, Aufteilen jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und Verteilen der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, sodass die ermittelte mindestens eine Anforderung erfüllt wird, wobei das Datenverarbeitungssystem die Datenverarbeitungsvorrichtungen und Datenübertragungsvorrichtungen zur Datenübertragung zwischen den Datenverarbeitungsvorrichtungen aufweist, und Durchführen der mindestens einen Datenverarbeitungsaufgabe gemäß der Aufteilung und der Verteilung. Bei der Durchführung erfolgt: Messen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zur Verfügung stehen, und Detektieren von Änderungen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zu Verfügung stehen, sowie von Änderungen der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe; wiederholtes Ermitteln, für jede der mindestens einen Datenverarbeitungsaufgaben, ob im Hinblick auf detektierte und/oder vorhergesagte Änderungen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zu Verfügung stehen, und Änderungen der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe die Erfüllung der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe beeinträchtigt ist, Änderung der Aufteilung jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und/oder Änderung der Verteilung der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, falls für die Datenverarbeitungsaufgabe ermittelt wurde, dass die Erfüllung der mindestens einen Anforderung an die Durchführung der Datenverarbeitungsaufgabe beeinträchtigt ist.
  • Das oben beschriebene Verfahren ermöglicht eine optimierte Bereitstellung komplexer Anwendungen in einer dynamischen Umgebung unter Berücksichtigung aller relevanten Aspekte (z.B. lokale und entfernte CPUs, ausgelastetes Netzwerk, Anzahl der Benutzer inkl. deren Aktivität und Mobilität, usw.), insbesondere für eine Optimierung aus End-to-End-QoS-Sicht sowie unter Berücksichtigung von Kosten, Datenschutz, Sicherheit, Verfügbarkeit, usw.
  • Gemäß verschiedenen Ausführungsformen erfolgt eine kontinuierliche Optimierung der verteilten Durchführung von (z.B. generischer, komplexer und/oder mobiler) Anwendungen in einem Datenverarbeitungssystem, das sich kontinuierlich verändern kann (d.h. in einer dynamischen Umgebung) und verschiedene Datenverarbeitungsvorrichtungen (z.B. lokale Datenverarbeitungsvorrichtungen, Datenverarbeitungsvorrichtungen in einer Edge-Cloud und Datenverarbeitungsvorrichtungen in einer Cloud) aufweist, unter Berücksichtigung von Anforderungen, die von mehreren Interessengruppen stammen können (d. h. Entwickler, Systemingenieure, Provider, Betreiber, Geschäftsmanager usw.), wobei mehrere Kriterien berücksichtigt werden, darunter die z.B. die Leitungsfähigkeit der Anwendung in Bezug auf Garantien in Bezug auf vorgegebene Leistungsmetriken und Ende-zu-Ende-Dienstqualität (QoS). Um sicherzustellen, dass die ein oder mehreren Anforderungen erfüllt sind, können beispielsweise essentielle Unteraufgaben (z.B. Programmteile) priorisiert werden.
  • Es werden die Anwendungen kontinuierlich neu verteilt, wenn sich die Ressourcensituation ändert (z. B. Verschlechterung der Netzleistung). Eine Neuverteilung bedeutet hier eine Neuverteilung oder Verschiebung von Anwendungsteilen über und innerhalb eines Datenverarbeitungssystems mit lokalen Datenverarbeitungsvorrichtungen, Datenverarbeitungsvorrichtungen in einer Edge-Cloud und Datenverarbeitungsvorrichtungen in einer Cloud. Es können also anwendungsspezifische QoS-Anforderungen und/oder Netzwerkeigenschaften bei der Aufteilung der Datenverarbeitungsaufgabe (d.h. der Anwendung), entsprechend den Anforderungen berücksichtigt werden.
  • Das oben beschriebene Verfahren ermöglicht insbesondere die zuverlässige und effiziente Durchführung von Datenverarbeitungsaufgaben in dynamischen Umgebungen für Cyber-Physische Systeme, die verteilt, dynamisch, komplex, sich verändernd (z.B. sich entwickelnd und/oder wachsend), nicht-deterministisch und/oder zumindest zum Teil mobil sind.
  • Eine Änderung der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung kann sich insbesondere dadurch ergeben, dass ein oder mehrere weitere Datenverarbeitungsaufgaben hinzugekommen sind, die das Datenverarbeitungssystem bearbeitet. Dieses Hinzukommen von ein oder mehreren weiteren Datenverarbeitungsaufgaben kann bei dem Verfahren detektiert werden.
  • Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
  • Ausführungsbeispiel 1 ist ein Verfahren zum Durchführen einer Datenverarbeitungsaufgabe, wie oben beschrieben.
  • Ausführungsbeispiel 2 ist das Verfahren nach Ausführungsbeispiel 1, wobei für jede Datenübertragungsaufgabe das Verteilen und das Ändern der Verteilung derart erfolgt, dass eine in Hinblick auf ein oder mehrere Optimalitätskriterien der Durchführung der Datenübertragungsaufgabe optimale Verteilung gesucht wird.
  • Damit wird nicht nur sichergestellt, dass die ein oder mehreren Anforderungen erfüllt werden, sondern gleichzeitig wird eine besonders gute Leistungsfähigkeit erzielt.
  • Ausführungsbeispiel 3 ist das Verfahren nach Ausführungsbeispiel 2, wobei für jede Datenübertragungsaufgabe das Aufteilen und die Änderung der Aufteilung derart erfolgen, dass die in Hinblick auf das Optimalitätskriterium optimale Aufteilung mit zugehöriger Verteilung gesucht wird.
  • Die Hinzunahme der Aufteilung bei der Optimierung erhöht die Freiheitsgrade für Bereitstellungsoptionen für die Durchführung der Datenübertragungsaufgabe und ermöglicht es so, noch höhere Leistungsfähigkeiten zu erzielen.
  • Ausführungsbeispiel 4 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 3, aufweisend Detektieren, bei der Durchführung der mindestens einen Datenverarbeitungsaufgabe, dass zusätzliche Datenverarbeitungsvorrichtungen und/oder zusätzliche Datenverarbeitungsübertragungsvorrichtungen zu dem Datenverarbeitungssystem hinzugekommen sind, und Änderung der Aufteilung jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und Änderung der Verteilung der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, falls durch die zusätzliche Datenverarbeitungsvorrichtungen und/oder zusätzliche Datenverarbeitungsübertragungsvorrichtungen das Optimalitätskriterium der Durchführung der mindestens einen Datenübertragungsaufgabe besser erfüllt werden kann.
  • Somit ist gewährleistet, dass sich die Ausführung der Datenverarbeitungsaufgabe(n), wenn die Leistungsfähigkeit des Datenverarbeitungssystems durch Hinzunahme weiterer Komponenten verbessert.
  • Ausführungsbeispiel 5 ist das Verfahren gemäß einem der Ausführungsbeispiele 1 bis 4, wobei die mindestens eine Anforderung an die mindestens eine Datenverarbeitungsaufgabe eine Latenz zwischen einer Erfassung von Eingabedaten für die Datenverarbeitungsaufgabe und einer Ausgabe eines Ergebnisses der Datenverarbeitungsaufgabe ist, eine Sicherheit der Verarbeitung von den Eingabedaten zu den Ausgabedaten oder eine Genauigkeit der Ausgabedaten ist.
  • Es wird somit eine Ende-zu-Ende-Betrachtung der Leistungsfähigkeit der Durchführung der Datenverarbeitungsaufgabe als Anforderung (oder auch Optimalitätskriterium) zu Grunde gelegt. Ein Benutzer kann also aus seiner Sicht Anforderungen oder Optimalitätskriterien spezifizieren, während die internen Eigenschaften der Durchführung und insbesondere die Leistungsfähigkeit der Durchführung der Unteraufgaben für ihn transparent sein können.
  • Ausführungsbeispiel 6 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 5, wobei die Datenverarbeitungsaufgabe die Verarbeitung von Sensordaten zu Steuerungsbefehlen für eine Robotervorrichtung ist.
  • Insbesondere in so einem Kontext ermöglicht die beschriebene Herangehensweise eine Verteilung und insbesondere Auslagerung von Verarbeitungsaufgaben, hier für eine Steuerung, auf unterschiedliche Datenverarbeitungsvorrichtungen und ermöglicht somit eine zuverlässige Steuerung, auch wenn z.B. lokal nur wenig Ressourcen zur Verfügung stehen.
  • Ausführungsbeispiel 7 ist eine Steuerungseinrichtung, die eingerichtet ist, das Ermitteln, das Aufteilen und Verteilen und die Änderung von Aufteilung und/oder Verteilung gemäß dem Verfahren nach einem der Ausführungsbeispiele 6 durchzuführen und von dem Datenverarbeitungssystem anzufordern, die Datenverarbeitungsaufgabe gemäß der Aufteilung und Verteilung durchzuführen. Die Steuereinrichtung kann auch Ressourcen auf den Datenverarbeitungsvorrichtungen und Datenübertragungsvorrichtungen für die Durchführung der Datenverarbeitungsaufgabe reservieren.
  • Ausführungsbeispiel 8 ist ein Datenverarbeitungssystem, das eingerichtet ist, ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchzuführen.
  • Ausführungsbeispiel 9 ist ein Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchführt.
  • Ausführungsbeispiel 10 ist ein Computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchführt.
  • In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen auf dieselben Teile in den ganzen verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstäblich, wobei die Betonung stattdessen im Allgemeinen auf die Darstellung der Prinzipien der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben.
    • 1 zeigt ein Datenverarbeitungssystem.
    • 2 zeigt ein Ablaufdiagramm, das ein Verfahren zur verteilten Durchführung von Datenverarbeitungsaufgaben veranschaulicht.
    • 3 zeigt ein Ablaufdiagramm, das ein Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems gemäß einer Ausführungsform darstellt.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Erläuterung spezielle Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden und strukturelle, logische und elektrische Änderungen können durchgeführt werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
  • Im Folgenden werden verschiedene Beispiele genauer beschrieben.
  • 1 zeigt ein Datenverarbeitungssystem 100.
  • Mittels des Datenverarbeitungssystems 100 können verschiedene Datenverarbeitungsaufgaben durchgeführt werden, beispielsweise die Steuerung einer Robotervorrichtung wie eines (z.B. autonomen) Fahrzeugs 101 oder eines Roboterarms 102 aber auch eine Berechnungsaufgabe, deren Ergebnis auf einem Endgerät 103 (z.B. einem Personal Computer oder einem Smartphone) ausgegeben wird.
  • Für die Durchführung der Datenverarbeitungsaufgaben weist das Datenverarbeitungssystem eine Vielzahl von Datenverarbeitungsvorrichtungen 104, die Datenverarbeitungsressourcen (insbesondere Prozessoren, Hardware-Logikschaltungen, etc.) bereitstellen, und Datenübertragungsvorrichtungen 105 wie Sender/Empfänger und ggf. Leitungen von drahtlosen und drahtbasierte Netzwerken (z.B. Basisstationen von Mobilfunknetzen, Access points oder Netzwerkkarten für drahtlose oder drahtbasierte lokale Netze, (Computer-)Busse, Speicher etc.), die Datenübertragungsressourcen (z.B. Kommunikationskanäle) bereitstellen, auf. Die Datenverarbeitungsvorrichtungen 104 können Datenverarbeitungsvorrichtungen beinhalten, die lokal bei einer zu steuernden Vorrichtung (z.B. in einer Steuerungsvorrichtung eines Roboters), in der steuernden Vorrichtung selbst (z.B. in einem Fahrzeug, z.B. eine ECU (Electronic Control Unit), in einer Edge-Cloud (im Sinne von Edge Computing) 108, oder in einer Cloud 109 angeordnet sind. Das Datenverarbeitungssystem 100 kann also als verteiltes Datenverarbeitungssystem angesehen werden.
  • Das Datenverarbeitungssystem 100 ist beispielsweise ein Cyber-physisches System (CPS) und beinhaltet z.B. eine Vernetzung von Maschinen und Abläufen in der Industrie mit Hilfe von Informations- und Kommunikationstechnologie im Sinne von Industrie 4.0 (14.0), also z.B. die Steuerung von 14.0-Produktionsprozessen, die Steuerung von Fahrzeugen und/oder kombiniert Vernetzung (z.B. im Sinne des Internet of Things) mit künstlicher Intelligenz (z.B. können ein oder mehrere Datenverarbeitungsvorrichtungen ein maschinelles Lernmodell implementieren).
  • Derzeit nimmt die Komplexität von CPS-Datenverarbeitungsvorrichtungen, die in I4.0-Produktionsprozessen, in der Automobilindustrie oder im AloT zum Einsatz kommen, exponentiell zu. Darüber hinaus verändern (z.B. entwickeln) sich die die Datenverarbeitungssysteme, die solche Datenverarbeitungsvorrichtungen einsetzen (die Umgebungen, in denen solche Produkte eingesetzt werden) kontinuierlich, wobei zunehmend an Stelle von Cloud-gestützten CPS-Datenverarbeitungsvorrichtungen auch dynamisch verteilte CPS-Datenverarbeitungsvorrichtungen eingesetzt werden, bei denen Zeit- und Sicherheitskritische Teile der Funktionalität einer komplexen Datenverarbeitungsaufgabe (d.h. Anwendung des Datenverarbeitungssystems) über den Device-Edge-Cloud-Stack verlagert werden können, d.h. die Implementierung der Funktionalität kann durch Datenverarbeitungsvorrichtungen in einer lokalen Vorrichtung, durch eine Edge-Cloud oder durch eine Cloud bereitgestellt werden.
  • Anwendungen, die mit „Dingen“ wie Robotervorrichtungen interagieren, z.B. Steuerungsanwendungen für solche Vorrichtungen, gehen in der Regel mit strengen QoS(Quality of Service)- und insbesondere Echtzeitanforderungen einher. Daher erfordern dynamische, verteilte CPS-Datenverarbeitungssysteme eine erhöhte Konnektivität zwischen Geräten und Edge-Clouds mit End-to-End-QoS-Garantien für die Realisierung neuer Anwendungsfälle in Bereichen wie: AloT, Automotive, 14.0 und darüber hinaus. Folglich erfordern Komponenten für verteilte Datenverarbeitungssysteme eine erhöhte Flexibilität und eine Optimierung, bei der Zeit-, Sicherheits-, Datenschutz-kritische oder rechenintensive Teile der Funktionalität in Edges oder Clouds bereitgestellt oder ausgelagert werden können, wobei Edges und Clouds näher an die Endnutzer bzw. Endgeräte herangerückt werden und ein Ende-zu-Ende-QoS-Verhalten (z.B. von der Erfassung von Sensordaten bis zum Steuerungsbefehl für einen Aktuator eine Robotervorrichtung) gewährleistet wird. Andererseits sind die Anforderungen an Anwendungen oft nicht fix und werden häufig in mehreren Kriterien ausgedrückt, die sich sehr schnell ändern können.
  • Es besteht ein dringender Bedarf an einer ganzheitlichen Optimierung verteilter CPS-Datenverarbeitungssystem auf der Grundlage einer ausgefeilten Orchestrierung und Verwaltung dieser komplexen Systeme, um die oben genannten Herausforderungen zu bewältigen.
  • Gemäß verschiedenen Ausführungsformen wird eine Datenverarbeitungsaufgabe 106 in Unteraufgaben (oder Teilaufgaben) 107 aufgeteilt. Die Unteraufgaben 107 implementieren (zumindest teilweise) interagierende funktionale Einheiten (d.h. Komponenten der Datenverarbeitungsaufgabe 106).
  • Die Unteraufgaben 107 werden zu ihrer Durchführung je nach Art und Anforderungen einer jeweiligen Unteraufgabe auf die Datenverarbeitungsvorrichtungen 104 verteilt.
  • Beispielsweise werden manche Unteraufgaben auf lokale CPS-Ressourcen verteilt (z.B. auf eine lokal bei einem Roboter vorhandene Datenverarbeitungsvorrichtung) und andere Unteraufgaben werden dezentral auf Datenverarbeitungsvorrichtungen einer Edge-Cloud oder Cloud ausgeführt.
  • Gemäß verschiedenen Ausführungsformen wird die Datenverarbeitungsaufgabe 106 unter Berücksichtigung der zu Verfügung stehenden Ressourcen (Datenverarbeitungsvorrichtungen 104 und Datenübertragungsvorrichtungen 105 bzw. der in diesen enthaltenden und von diesen bereitgestellten Ressourcen) in die Unteraufgaben 107 aufgeteilt und die Unteraufgaben auf die Datenverarbeitungsvorrichtungen 104 verteilt, sodass Anforderungen an die Durchführung der Datenverarbeitungsaufgabe 106 erfüllt werden. Diese Anforderungen beinhalten gemäß verschiedenen Ausführungsformen insbesondere Anforderungen an ein Ende-zu-Ende-Anwendungsverhalten, d.h. Anforderung an Eigenschaften einer Verarbeitung zwischen der Eingabe und einer Ausgabe bzw. eines Ergebnisses der Datenverarbeitungsaufgabe. Ein Beispiel hierfür ist eine Latenz zwischen einer Erfassung von Sensordaten und der Ausgabe einer Steuerungsaktion an einen Aktuator einer Robotervorrichtung.
  • Die Aufteilung der Datenverarbeitungsaufgabe 106 in Unteraufgaben 107 und deren Verteilung kann auf der Grundlage einer Optimierung einer Zielfunktion erfolgen, wobei die Anforderungen z.B. Nebenbedingungen der Optimierung sind und die Zielfunktion durch festgelegte Kriterien und Ziele gegeben ist (z.B. möglichst wenig Auslagerung in eine Cloud (z.B. um Kosten zu sparen), möglichst geringe Latenz, etc.).
  • Die Aufteilung jeder Datenverarbeitungsaufgabe 106 in Unteraufgaben 107 und deren Verteilung beinhaltet beispielsweise Folgendes:
    • - Einen Anfangsprozess zur Sammlung oder Erfassung und Erstellung eines entsprechenden Anwendungsprofils der Datenverarbeitungsaufgabe 106 auf der Grundlage ihrer Anforderungen (inkl. Einschränkungen an ihre Durchführung) wie beispielsweise Datenschutz, Latenz, Rechenleistung, Speicher, Netzwerk, Energieverbrauch usw.) und ihrem Verhalten (z.B. wie sie sich verhält, wenn sie auf einem bestimmten Typ von Datenverarbeitungsvorrichtung durchgeführt wird)
    • - Eine Identifizierung mehrerer Optimierungskriterien individuell für jede Datenverarbeitungsaufgabe 106 auf der Grundlage ihres Anwendungsprofils.
    • - Kumulative Gewichtung der verschiedenen Optimierungskriterien, z.B. auf der Grundlage von Benutzereingaben (durch die relevanten Interessengruppen Entwickler, Anbieter, Geschäftsleiter, Betreiber usw.).
    • - Formale, einheitliche Beschreibung der Datenverarbeitungsaufgabe 106 unter Einbeziehung von Randbedingungen, Anforderungen, Optimierungskriterien und Optimierungszielen.
    • - Erkennung verfügbarer Datenverarbeitungsvorrichtungen 104 und Datenübertragungsvorrichtungen 105 bzw. von diesen bereitgestellten Datenverarbeitungsressourcen und Datenübertragungsressourcen, ihre Beschreibung (z.B. in Form von Ressourcenprofielen) und kontinuierliche Aktualisierung der Ressourcenprofile, z.B. in Bezug auf Kapazität, Fähigkeit, Verfügbarkeit, Datenschutz, Sicherheit, QoS-Garantien und Ressourcenzustände (z. B. durch kontinuierliche Überwachung des Datenverarbeitungssystems 100).
    • - Ermittlung gültiger Aufteilungen der Datenverarbeitungsaufgabe 106 in mehrere Teile (Unteraufgaben 107) und zugehöriger gültiger Verteilungen der Unteraufgaben 107 auf die Datenverarbeitungsvorrichtungen 104 (Ermittlung von Aufteilungs- und/oder Verteilungsplänen bzw. -optionen). Dabei sind eine Aufteilung und eine zugehörige Verteilung gültig, wenn die Anforderungen an die Durchführung der Datenverarbeitungsaufgabe bei dieser Aufteilung und Verteilung erfüllt werden (für jede Unteraufgabe 107) und insgesamt). Die Gültigkeit kann auf der Grundlage der Übereinstimmung von Anwendungsprofilen mit Ressourcenprofilen ermittelt werden. Auf diese Weise kann die Leistungsfähigkeit der jeweiligen Anwendung (die die Datenverarbeitungsaufgabe beinhaltet) auf der Grundlage der Projektion der Anwendung auf die Ressourcen der betrachteten Datenübertragungsvorrichtungen vorhersagt werden (z.B. mittels Modellen für das Verhalten von Unteraufgaben auf Datenverarbeitungsvorrichtungen). Diese Zuordnung von Kombination aus Aufteilung und Verteilung auf die Leistungsfähigkeit der jeweiligen Anwendung kann aus bisherigem Systemverhalten gelernt werden (insbesondere mittels eines maschinellen Lernmodells). Sie kann somit das Ergebnis einer langfristigen Profilierung der Ressourcen sein.
    • - Bewertung verschiedener Optionen der Aufteilung und Verteilung und Auswahl einer Möglichkeit (idealerweise der besten Möglichkeit, z.B. durch heuristische Auswahl bei vielen Optionen), für den aktuellen Zustand des Datenverarbeitungssystems und die jeweils gültigen Optionen.
    • - Reservierung von Ressourcen (z. B. über Verwaltungsmechanismen für Dienstgütevereinbarungen) gemäß der gewählten Aufteilungs- und Verteilungsoption und Bereitstellung der Unteraufgaben 107 auf den reservierten Ressourcen.
    • - Kontinuierliche Anwendungsüberwachung (d.h. Überwachung der Durchführung der Datenverarbeitungsaufgabe) und kontinuierliche QoS-Bewertung der Datenverarbeitungsaufgabe.
    • - Neu-Aufteilung in Unteraufgaben 107 und/oder Neu-Verteilung (Redeployment) der in Unteraufgaben 107, falls die aktuelle Durchführung der Datenverarbeitungsaufgabe (mit der aktuellen Aufteilung und Verteilung) den Anforderungen nicht mehr genügt und eine bessere Aufteilungs- und/oder Verteilungsoption existiert.
  • 2 zeigt ein Ablaufdiagramm 200, das ein Verfahren zur verteilten Durchführung von Datenverarbeitungsaufgaben (d.h. Durchführung von Unteraufgaben (z.B. Funktionen) einer Datenverarbeitungsaufgabe auf mehreren Datenverarbeitungseinrichtungen) veranschaulicht.
  • In 201 werden Profile verteilt durchzuführender Anwendungen (d.h. Datenverarbeitungsaufgaben) auf der Grundlage von Anwendungsbeschränkungen und -Anwendungsanforderungen (z. B. Datenschutz, Latenz, CPU-Leistung, Speicherplatz, Energieverbrauch usw.) gesammelt oder erfasst und erstellt.
  • Das Profil einer Anwendung wird beispielsweise zur Entwicklungszeit erfasst (und während der Ausführungszeit (d.h. während der Durchführung der Datenverarbeitungsaufgabe ständig aktualisiert), wobei die Abhängigkeiten zwischen den Anwendungsteilen (Unteraufgaben, deren Anzahl im Allgemeinen nicht begrenzt ist) und deren Ressourcenanforderungen an die Datenverarbeitungsvorrichtungen und deren Komponenten und an die Datenübertragungsvorrichtungen und deren Komponenten (z.B. an CPU, Speicher, Netzwerk, Eingabe/Ausgabe usw.) berücksichtigt werden, z. B. in Bezug auf die Anzahl der Anweisungen (pro Sekunde - MIPS), Gleitkommaoperationen (pro Sekunde - FLOPS) usw., die Menge der zwischen den Anwendungsteilen zu übertragenden Daten, die erforderliche minimale/maximale Bandbreite, die Latenz usw.
  • In 202 werden ein oder mehrere Optimierungskriterien für jede Datenverarbeitungsaufgabe identifiziert.
  • Beispielsweise werden zum Zeitpunkt der Anpassung und Konfiguration beim Benutzer (der die Datenverarbeitungsaufgabe durchführen will, z.B. dem Betreiber einer Fabrik mit zu steuerenden Roboterarmen) die garantierte Gesamtzykluszeit und die Latenzzeit der Anwendung vom Benutzer festgelegt, z.B. um die Taktzeit eines Fließbandes einzuhalten. Darüber hinaus werden weitere Randbedingungen wie das erforderliche Maß an Verfügbarkeit/Redundanz oder Kriterien wie Kostenoptimierung festgelegt.
  • In 203 erfolgt im Fall mehrerer Optimierungskriterien, die z.B. von verschiedenen Interessengruppen stammen, eine kumulative Gewichtung durchgeführt (z.B. durch die relevanten Interessengruppen wie Entwickler, Anbieter, Geschäftsleiter, Betreiber usw.).
  • Die kumulative Gewichtung erfolgt z.B. auf der Grundlage der festgelegten Kriterien, Anforderungen und Beschränkungen.
  • In 204 wird für jede Datenverarbeitungsaufgabe eine formale, einheitliche Beschreibung mit einer Liste der bekannten Anwendungsfunktionen und/oder Anwendungsschritte, die sie enthält bzw. bereitstellen muss, und eine jeweilige Schätzung ihrer Berechnungskomplexität, sowie mit Einschränkungen, Anforderungen (z. B. an die Rechen- und Netzkapazitäten), Optimierungskriterien und Optimierungszielen für die Datenverarbeitungsaufgabe (wie z.B. minimale Latenz) erstellt.
  • Alle spezifizierten Anforderungen, Einschränkungen und Kriterien der Anwendung werden zu einer formalen, einheitlichen Beschreibung zusammengeführt, die ein vollständiges Anwendungsprofil bildet.
  • In 205 wird ermittelt, welche Datenverarbeitungsvorrichtungen und Datenübertragungsvorrichtungen für die Durchführung der Datenverarbeitungsaufgabe zur Verfügung stehen sowie die von ihnen bereitgestellten Ressourcen (also für jede Datenverarbeitungsvorrichtung ein Ressourcenprofil oder Ressourcenbeschreibung, ggf. inklusive Beschreibung von Ressourcen zur Anbindung der Datenverarbeitungsvorrichtung an andere Datenverarbeitungsvorrichtungen (und z.B. an eine zu steuernde Robotervorrichtung, die von ein oder mehreren Datenübertragungsvorrichtungen bereitgestellt werden) ermittelt. Diese werden im Betrieb kontinuierlich aktualisiert in Hinblick auf ihre Kapazität, Leistungsfähigkeit, Verfügbarkeit, unterstützte Privatsphäre, Sicherheit, QoS-Garantien und des Ressourcenzustands (z. B. durch Überwachung).
  • Beispielsweise wird zur Laufzeit die Betriebsumgebung eines Benutzers (z.B. von einem OFS(Optimized-Functonal-Split)-Agenten) ermittelt, um Ressourcen (z. B. die zur Verfügung stehenden (abstrakten) Ressourcen von Datenverarbeitungsvorrichtungen X, Y, Z wie Rechenleistung und auch Bandbreite zwischen den Datenverarbeitungsvorrichtungen, die von den Datenübertragungsvorrichtungen bereitgestellt werden) für die potenzielle Bereitstellung und Ausführung von Anwendungsteilen zu identifizieren. In weiteren Schritten werden von weiteren Vorrichtungen (lokale und entfernte Cluster) bereitgestellte Ressourcen profiliert und verglichen (durch OFS-Agenten), um ihre Fähigkeiten, Leistung, Verbindung, Verfügbarkeit, Kapazität, unterstützte SLAs (Service Level Agreements), ihren Zustand usw. zu bewerten.
  • In 206 wird die Datenverarbeitungsaufgabe in mehrere Teile (d.h. Unteraufgaben der Anzahl N, wobei N eine natürliche Zahl ist) aufgeteilt und gültige Optionen für ihre Aufteilung und Verteilung auf die Datenverarbeitungsvorrichtungen ermittelt.
  • Eine Option ist gültig, wenn sie alle Anwendungsanforderung erfüllen (für jede Unteraufgabe und insgesamt). Dies erfolgt beispielsweise in drei Schritten:
    1. a. Auswahl von Datenverarbeitungsvorrichtungen durch Abgleich von Anwendungsprofilen mit (zuvor gesammelten und aktualisierten) Ressourcenprofilen für jeden in einem Abhängigkeitsgraphen (des Anwendungsprofils) reflektierten Anwendungsteil.
    2. b. Berechnung/Projektion der Leistung für jeden Anwendungsteil auf die dafür ausgewählten Datenverarbeitungsvorrichtungen unter Berücksichtigung von Übergängen und Abhängigkeiten von Vorgängern des Anwendungsteils
    3. c. Vergleich der resultierenden Gesamtleistung der Anwendung mit den Anforderungen der Anwendung, um gültige Aufteilungs- und Verteilungsoptionen auszuwählen
  • Stellt eine Datenverarbeitungsvorrichtung verschiedene Ressourcen zur Verfügung (z.B. unterschiedliche Prozessoren oder Dienste mit unterschiedlicher Rechenleistung), so die Auswahl einer Aufteilung beinhalten, welche Ressourcen auf der Datenverarbeitungsvorrichtung ausgewählt werden. Die Datenverarbeitungsvorrichtung kann dann beispielsweise mehrere Ressourcenprofile haben oder ihr Ressourcenprofil enthält Auswahlmöglichkeiten.
  • Beispielsweise wird eine Datenverarbeitungsaufgabe, wenn die Datenverarbeitungsvorrichtungen identifiziert und profiliert sind, die Datenverarbeitungsaufgabe in z.B. N=2 Unteraufgaben (Anwendungsteile) A und B aufgeteilt. Für jeden der Anwendungsteile (A und B) werden die Ressourcenprofile (z.B. für Datenverarbeitungsvorrichtungen X, Y, Z) mit dem Anwendungsprofile (von A bzw. B) verglichen, um festzustellen, ob die erforderlichen Anforderungen zu erfüllen, z.B. um eine Anwendungsleistung zu erreichen, sodass eine geforderte Ende-zu-Ende-Latenzzeit eingehalten werden kann. Ob mit einer Datenverarbeitungsvorrichtung Anforderungen erfüllt werden können, kann davon abhängen, welche andere(n) Datenverarbeitungsvorrichtung(en) ausgewählt wird oder werden, weil z.B. andere Datenübertragungsressourcen maßgeblich sein können (z.B. muss eine schnelle Anbindung zweier Clouds vorhanden sein, wenn Datenverarbeitungsvorrichtungen aus beiden gewählt werden).
  • Eine Kombination von Datenverarbeitungsvorrichtungen für eine Aufteilung der Datenverarbeitungsaufgabe in Unteraufgaben, die die Anforderungen der Datenverarbeitungsaufgabe erfüllt, wird (zusammen mit der jeweiligen Aufteilung) als gültige (Bereitstellungs-)Option (oder Deployment-Option) betrachtet.
  • In 207 werden die verschiedenen gültigen Bereitstellungsoptionen bewertet und anhand der Bewertungen verglichen und in 208 die gemäß der Bewertung beste Bereitstellungsoption ausgewählt. Die Bewertung hängt vom aktuellen Datenverarbeitungssystemzustand und aktuellen Optimierungskriterien ab. Im Falle einer hohen Anzahl von gültigen Bereitstellungsoptionen kann die Auswahl heuristisch erfolgen.
  • In 209 werden Ressourcen auf den Datenverarbeitungsvorrichtungen und ggf. Datenübertragungsvorrichtungen, die gemäß der ausgewählten Bereitstellungsoption verwendet werden, reserviert, (z. B. über Verwaltungsmechanismen für Dienstgütevereinbarungen) und die Anwendungsteile gemäß der ausgewählten Bereitstellungsoption (Bereitstellungsoptionsschema) auf den reservierten Ressourcen bereitgestellt. Dies beinhaltet die Reservierung von Datenübertragungsressourcen, die von den Datenübertragungsvorrichtungen bereitgestellt werden, zur Kommunikation zwischen den Unteraufgaben.
  • Im obigen Beispiel zweier Unteraufgaben A und B werden, nachdem die besten Datenverarbeitungsvorrichtungen (d. h. X und Z) für die Bereitstellung der Anwendung ermittelt wurden, Ressourcen auf den Datenverarbeitungsvorrichtungen reserviert (was eine komplette Reservierung der Datenverarbeitungsvorrichtungen beinhalten kann) und z.B. der Anwendungsteil A auf der Datenverarbeitungsvorrichtung X bereitgestellt und Anwendungsteil B auf Datenverarbeitungsvorrichtung Z bereitgestellt. Die beiden Anwendungsteile A und B werden entsprechend konfiguriert und eine dafür ausgewählte Datenübertragungsvorrichtung verwendet, um die Konnektivität zwischen ihnen zu gewährleisten, z. B. durch Verwendung einer nachrichtenbasierten Middleware mit Public/Subscribe-Mechanismen.
  • In 210 erfolgt eine kontinuierliche Überwachung und QoS-Evaluierung für jede Anwendung und ggf. in 211 eine Auslösung eines Redeployments (Neuaufteilung und Verteilung) der Anwendung (d.h. der Prozess führt erneut 205 und die folgenden Operationen aus) für den Fall, dass die aktuelle Bereitstellungsoption den Anforderungen nicht mehr genügt oder sich die Ressourcenverfügbarkeit signifikant ändert (z.B. neue Ressourcen werden verfügbar).
  • Im obigen Beispiel zweier Unteraufgaben A und B werden nach der Bereitstellung das Gesamtverhalten und die Leistung (einschließlich QoS, z. B. Latenz) der Anwendung mit ihren Teilen A und B kontinuierlich überwacht und bewertet. Falls die erwartete Leistung der Anwendung nicht erreicht wird, wird der Optimierungsprozess erneut gestartet, beginnend mit 205.
  • Jeder der Schritte des Ablaufs von 2 kann auf verschiedene Weise durchgeführt werden, um eine Anwendung in mehrere Teile aufzuteilen und den anfänglichen Einsatz dieser Teile in einer sich ändernden Umgebung kontinuierlich zu optimieren. Der Betrieb eines Datenverarbeitungssystems erlaubt die Garantie von QoS für alle Anwendungen während ihres gesamten Lebenszyklus im Hinblick auf die gegebenen Systemressourcen, insbesondere auch wenn lokale Datenverarbeitungsvorrichtungen mit begrenzten Fähigkeiten eingesetzt werden, da Unteraufgaben auf entfernte Datenverarbeitungsvorrichtungen (z.B. in einer Cloud) ausgelagert werden können.
  • Eine der möglichen Anwendungsbereiche ist Industrie 4.0. Eine Herausforderung für den Anbieter von Automatisierungslösungen für Maschinensteuerungen kann z. B. darin bestehen, ein garantiertes System-/Applikationsverhalten in dynamischen und unbekannten Umgebungen seiner Kunden (wie z. B. OEMs) sicherzustellen. Ein komplexes System zum Laserschweißen besteht beispielsweise aus mehreren Komponenten und Anwendungen, darunter z.B. Anwendung „A“ für die Bewegungssteuerung mit ihrer Abhängigkeit von Anwendung „B“ für die Trajektorienplanung der Roboterarmbewegung. Die erwartete Gesamtzykluszeit und Latenz der komplexen Anwendung (A + B) ist dem Lösungsanbieter nicht im Voraus bekannt, da sie vom Kunden (d.h. OEM) konfiguriert wird und u.a. von der Taktzeit der Montagelinie abhängig ist. Darüber hinaus ist dem Lösungsanbieter die Umgebung, in der Teile der Lösung beim Kunden ausgeführt werden, nicht im Voraus bekannt, z. B. der Aufbau des Edge-Clusters. Darüber hinaus kann sich die Menge der vom Kunden verwendeten Komponenten in der Zukunft ändern/entwickeln. Durch die hierin beschriebene Vorgehensweise kann vermieden werden, dass in solchen Fällen komplexe Anpassungen erforderlich sind.
  • Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie in 3 dargestellt.
  • 3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems gemäß einer Ausführungsform darstellt.
  • In 301 wird mindestens eine Anforderung an die Durchführung von mindestens einer Datenverarbeitungsaufgabe ermittelt.
  • In 302 wird die mindestens eine Datenverarbeitungsaufgabe in mehrere Unteraufgaben aufgeteilt und die Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems verteilt, sodass die ermittelte mindestens eine Anforderung erfüllt wird, wobei das Datenverarbeitungssystem die Datenverarbeitungsvorrichtungen und Datenübertragungsvorrichtungen zur Datenübertragung zwischen den Datenverarbeitungsvorrichtungen aufweist.
  • In 303 wird die mindestens eine Datenverarbeitungsaufgabe gemäß der Aufteilung und der Verteilung durchgeführt. Dabei wird in 304 die Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zur Verfügung stehen gemessen und in 305 Änderungen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zu Verfügung stehen, sowie von Änderungen der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe, detektiert und in 306 wiederholt ermittelt, für jede der mindestens einen Datenverarbeitungsaufgaben, ob im Hinblick auf detektierte und/oder (z.B. mittels Modellen) vorhergesagte Änderungen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zu Verfügung stehen, und Änderungen der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe die Erfüllung der mindestens einen (ggf. geänderten) Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe beeinträchtigt ist (was beinhalten kann, dass die Erfüllung gefährdet ist, z.B. bei einer weiteren Abnahme der Datenverarbeitungsleistung und/oder Datenübertragungsleistung). In 307 werden die Aufteilung jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und/oder die Verteilung der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems geändert, falls für die Datenverarbeitungsaufgabe ermittelt wurde, dass die Erfüllung der mindestens einen Anforderung an die Durchführung der Datenverarbeitungsaufgabe beeinträchtigt ist.
  • Wurde die Verteilung (und ggf. auch die Aufteilung) geändert, so erfolgt die Durchführung gemäß der geänderten Verteilung und Aufteilung (d.h. wird mit der geänderten Verteilung und Aufteilung weitergeführt).
  • Das Verfahren von 3 kann durch einen oder mehrere Computer mit einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden. Der Begriff „Datenverarbeitungseinheit“ kann als irgendein Typ von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Die Daten oder Signale können beispielsweise gemäß mindestens einer (d.h. einer oder mehr als einer) speziellen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), eine Graphikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), eine integrierte Schaltung einer programmierbaren Gatteranordnung (FPGA) oder irgendeine Kombination davon umfassen oder aus dieser ausgebildet sein.
  • Irgendeine andere Weise zum Implementieren der jeweiligen Funktionen, die hierin genauer beschrieben werden, kann auch als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es können ein oder mehrere der im Einzelnen hier beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezielle Funktionen ausgeführt (z. B. implementiert) werden, die durch die Datenverarbeitungseinheit durchgeführt werden.
  • Die Datenverarbeitungsaufgabe kann zum Erzeugen eines Steuersignals für eine Robotervorrichtung dienen. Der Begriff „Robotervorrichtung“ kann als sich auf irgendein technisches System (mit einem mechanischen Teil, dessen Bewegung gesteuert wird) beziehend verstanden werden, wie z. B. eine computergesteuerte Maschine, ein Fahrzeug, ein Haushaltsgerät, ein Elektrowerkzeug, eine Fertigungsmaschine, einen persönlichen Assistenten oder ein Zugangssteuersystem. Es wird eine Steuerungsvorschrift für das technische System gelernt und das technische System dann entsprechend gesteuert.
  • Datenverarbeitungsaufgabe kann die Verarbeitung von Sensordaten beinhalten. Dies kann die Verarbeitung von Sensorsignalen von verschiedenen Sensoren wie z. B. Video, Radar, LiDAR, Ultraschall, Bewegung, Wärmeabbildung usw. beinhalten. Die Verarbeitung kann z.B. die Klassifikation der Sensordaten oder das Durchführen einer semantischen Segmentierung an den Sensordaten umfassen, beispielsweise um die Anwesenheit von Objekten (in der Umgebung, in der die Sensordaten erhalten wurden) zu detektieren. Ausführungsformen können zum Trainieren eines Maschinenlernsystems und Steuern einer Robotervorrichtung, z. B. autonom von Robotermanipulatoren, um verschiedene Manipulationsaufgaben unter verschiedenen Szenarios zu erreichen, verwendet werden. Insbesondere sind Ausführungsformen auf die Steuerung und Überwachung der Ausführung von Manipulationsaufgaben anwendbar, z. B. in Montagelinien.
  • Obwohl spezielle Ausführungsformen hier dargestellt und beschrieben wurden, wird vom Fachmann auf dem Gebiet erkannt, dass die speziellen Ausführungsformen, die gezeigt und beschrieben sind, gegen eine Vielfalt von alternativen und/oder äquivalenten Implementierungen ausgetauscht werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll irgendwelche Anpassungen oder Variationen der speziellen Ausführungsformen abdecken, die hier erörtert sind. Daher ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und die Äquivalente davon begrenzt ist.

Claims (10)

  1. Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems, aufweisend: Ermitteln von mindestens einer Anforderung an die Durchführung von mindestens einer Datenverarbeitungsaufgabe; Aufteilen jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und Verteilen der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, sodass die ermittelte mindestens eine Anforderung erfüllt wird, wobei das Datenverarbeitungssystem die Datenverarbeitungsvorrichtungen und Datenübertragungsvorrichtungen zur Datenübertragung zwischen den Datenverarbeitungsvorrichtungen aufweist; Durchführen der mindestens einen Datenverarbeitungsaufgabe gemäß der Aufteilung und der Verteilung und dabei Messen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zur Verfügung stehen, und Detektieren von Änderungen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zu Verfügung stehen, sowie von Änderungen der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe; Wiederholtes Ermitteln, für jede der mindestens einen Datenverarbeitungsaufgaben, ob im Hinblick auf detektierte und/oder vorhergesagte Änderungen der Datenübertragungsleistung der Datenübertragungsvorrichtungen und/oder der Datenverarbeitungsleistung der Datenverarbeitungsvorrichtungen, die für die Durchführung der mindestens einen Datenverarbeitungsaufgabe zu Verfügung stehen, und Änderungen der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe die Erfüllung der mindestens einen Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe beeinträchtigt ist; Ändern der Aufteilung jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und/oder Änderung der Verteilung der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, falls für die Datenverarbeitungsaufgabe ermittelt wurde, dass die Erfüllung der mindestens einen Anforderung an die Durchführung der Datenverarbeitungsaufgabe beeinträchtigt ist.
  2. Verfahren nach Anspruch 1, wobei für jede Datenübertragungsaufgabe das Verteilen und das Ändern der Verteilung derart erfolgen, dass eine in Hinblick auf ein oder mehrere Optimalitätskriterien der Durchführung der Datenübertragungsaufgabe optimale Verteilung gesucht wird.
  3. Verfahren nach Anspruch 2, wobei für jede Datenübertragungsaufgabe das Aufteilen und die Änderung der Aufteilung derart erfolgen, dass die in Hinblick auf das Optimalitätskriterium optimale Aufteilung mit zugehöriger Verteilung gesucht wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, aufweisend Detektieren, bei der Durchführung der mindestens einen Datenverarbeitungsaufgabe, dass zusätzliche Datenverarbeitungsvorrichtungen und/oder zusätzliche Datenverarbeitungsübertragungsvorrichtungen zu dem Datenverarbeitungssystem hinzugekommen sind, und Änderung der Aufteilung jeder der mindestens einen Datenverarbeitungsaufgabe in mehrere Unteraufgaben und Änderung der Verteilung der Unteraufgaben auf Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, falls durch die zusätzliche Datenverarbeitungsvorrichtungen und/oder zusätzliche Datenverarbeitungsübertragungsvorrichtungen das Optimalitätskriterium der Durchführung der mindestens einen Datenübertragungsaufgabe besser erfüllt werden kann.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei die mindestens eine Anforderung an die mindestens eine Datenverarbeitungsaufgabe eine Latenz zwischen einer Erfassung von Eingabedaten für die Datenverarbeitungsaufgabe und einer Ausgabe eines Ergebnisses der Datenverarbeitungsaufgabe ist, eine Sicherheit der Verarbeitung von den Eingabedaten zu den Ausgabedaten oder eine Genauigkeit der Ausgabedaten ist.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Datenverarbeitungsaufgabe die Verarbeitung von Sensordaten zu Steuerungsbefehlen für eine Robotervorrichtung ist.
  7. Steuerungseinrichtung, die eingerichtet ist, das Ermitteln, das Aufteilen und Verteilen und die Änderung von Aufteilung und/oder Verteilung gemäß dem Verfahren nach einem der Ansprüche 1 bis 6 durchzuführen und von dem Datenverarbeitungssystem anzufordern, die Datenverarbeitungsaufgabe gemäß der Aufteilung und Verteilung durchzuführen.
  8. Datenverarbeitungssystem, das eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 6 durchzuführen.
  9. Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 6 durchführt.
  10. Computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 6 durchführt.
DE102022204713.3A 2022-05-13 2022-05-13 Verfahren zum Durchführen von Datenverarbeitungsaufgaben Pending DE102022204713A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022204713.3A DE102022204713A1 (de) 2022-05-13 2022-05-13 Verfahren zum Durchführen von Datenverarbeitungsaufgaben
PCT/EP2023/052408 WO2023217419A1 (de) 2022-05-13 2023-02-01 Verfahren zum durchführen von datenverarbeitungsaufgaben

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022204713.3A DE102022204713A1 (de) 2022-05-13 2022-05-13 Verfahren zum Durchführen von Datenverarbeitungsaufgaben

Publications (1)

Publication Number Publication Date
DE102022204713A1 true DE102022204713A1 (de) 2023-11-16

Family

ID=85158743

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022204713.3A Pending DE102022204713A1 (de) 2022-05-13 2022-05-13 Verfahren zum Durchführen von Datenverarbeitungsaufgaben

Country Status (2)

Country Link
DE (1) DE102022204713A1 (de)
WO (1) WO2023217419A1 (de)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2811630C (en) * 2010-08-24 2020-06-16 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand

Also Published As

Publication number Publication date
WO2023217419A1 (de) 2023-11-16

Similar Documents

Publication Publication Date Title
DE102017201789B4 (de) Verfahren zum Betrieb eines Kraftfahrzeugs und Kraftfahrzeug
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112016005536T5 (de) Bestimmen von reihenfolgen einer ausführung eines neuronalen netzes
DE112019004076T5 (de) Dezentralisiertes verteiltes deep learning
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE102011082277A1 (de) System und Verfahren zum automatisierten Handhaben der Arbeitsbelastung bei der Dokumentenverarbeitung
WO2020126827A1 (de) Verfahren zum management von rechnerkapazitäten in einem netzwerk mit mobilen teilnehmern
DE112021003908T5 (de) Föderales maschinenlernen durch verwenden von ortsabhängigem hashing
DE112016006514T5 (de) Verfahren und Datenverarbeitungssystem zum Verwalten von Datenstromverarbeitungstasks einervordefinierten Anwendungstopologie
DE102020112531A1 (de) Operationelle metrische Berechnung für Arbeitsbelastungstyp
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112017001376T5 (de) Erkennen und Vorhersagen von Engpässen in komplexen Systemen
DE102021130359A1 (de) Ressourcenzuordnung auf der grundlage eines kontextbezogenen szenarios
DE112021005586T5 (de) Automatisches skalieren einer abfrage-steuerungsroutine für arbeitslasten im bereich big data auf unternehmensebene
DE102021122508A1 (de) Ausgleichen von grossrechner- und verteilten arbeitslasten auf der grundlage von leistung und kosten
DE112021003184T5 (de) Ermittlung von laufzeitumgebungen für software-container
DE112020002798T5 (de) Kognitives kontrollieren von datenübermittlung
DE102022204713A1 (de) Verfahren zum Durchführen von Datenverarbeitungsaufgaben
DE112017001421T5 (de) Flexibel optimiertes Datenhandling in Systemen mit mehreren Speichern
DE112020003312T5 (de) Speicherzuweisungserweiterung von mikrodiensten
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE112020001541T5 (de) Informationsverarbeitungsvorrichtung, beweglicher gegenstand und informationsverarbeitungsverfahren
DE102019211908A1 (de) Verfahren und Vorrichtung zum Verteilen einer Anwendung
DE102019213562A1 (de) Verfahren zur Berechnung einer Funktion für ein Fahrzeug
DE112019002416T5 (de) Gleichzeitiges warten einer anzahl von datenverarbeitungsknoten durch dynamisches aktualisieren