WO2023237316A1 - Verfahren zum durchführen von datenverarbeitungsaufgaben - Google Patents

Verfahren zum durchführen von datenverarbeitungsaufgaben Download PDF

Info

Publication number
WO2023237316A1
WO2023237316A1 PCT/EP2023/063556 EP2023063556W WO2023237316A1 WO 2023237316 A1 WO2023237316 A1 WO 2023237316A1 EP 2023063556 W EP2023063556 W EP 2023063556W WO 2023237316 A1 WO2023237316 A1 WO 2023237316A1
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
target metric
task
group
processing task
Prior art date
Application number
PCT/EP2023/063556
Other languages
English (en)
French (fr)
Inventor
Alexander Artemenko
Eugen Volk
Ivan Marinov
Vimalanandan Selva Vinayagam
Sven Erik JEROSCHEWSKI
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
Publication of WO2023237316A1 publication Critical patent/WO2023237316A1/de

Links

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
    • 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/5044Allocation 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Definitions

  • the present disclosure relates to methods for performing data processing tasks and data processing systems.
  • data processing tasks are often too complex for individual locally provided data processing devices, e.g. for controlling a robot, data processing tasks can be distributed across multiple data processing devices, in particular moved from a local data processing device (e.g. in a factory) to an edge cloud or a cloud.
  • data processing tasks such as robot control have requirements that must be met. For example, a robot must perform a certain activity in a certain time in order not to hold up a production line or lead to errors in production. Since such requirements can also change or the performance of the data processing devices and their connections to one another can fluctuate, approaches that enable such changes to be dealt with efficiently are desirable.
  • a method for performing data processing tasks using a data processing system comprising performing a data processing task by means of a first group of data processing devices of the data processing system, the first group containing at least one data processing device of the data processing system, monitoring, when performing the data processing task, a value of a target metric for performing the data processing task and, if the value of the target metric leaves a first area associated with the target metric, outsourcing the performance of at least one subtask of the data processing task to a second group of data processing devices and, if the value of the target metric after the outsourcing enters a second area associated with the target metric, undoing the outsourcing of the performance of the at least one subtask , wherein if a rate of swaps and their reversal violates a predetermined admissibility criterion, the first range associated with the target metric is increased and/or the second range associated with the target metric is reduced.
  • the method described above enables the prevention or at least mitigation of erratic behavior regarding the distribution of data processing (sub)tasks among data processing devices (in particular ping-pong behavior) in scenarios with dynamic resource usage. It is particularly important when consistent system behavior is expected.
  • the first area assigned to the target metric is increased and/or the second area assigned to the target metric is reduced until the rate no longer violates the specified admissibility criterion.
  • the rate is, for example, monitored or determined periodically. Which of the two areas is changed (and to what extent) can be decided taking into account the requirements for carrying out the data processing task. For example, if the first area represents a permissible processing speed, it may not be enlarged arbitrarily. Undoing the swapping does not necessarily mean that the data processing task is then carried out with exactly the same data processing devices as before the swapping, but that after the undoing it is again carried out exclusively by data processing devices of the first group (not necessarily by all and not necessarily by the same ones as before outsourcing).
  • the first group of data processing devices are, for example, local data processing devices and the second group of data processing devices are, for example, data processing devices of an edge cloud or cloud.
  • the data processing task is controlling a robotic device.
  • the first group includes, for example, one or more data processing devices provided at (e.g. in the same building or in the same local network) or in the robot device and the second group includes one or more remote data processing devices (outside the building, the local network or the robot device).
  • Embodiment 1 is a method for performing a data processing task as described above.
  • Embodiment 2 is the method according to embodiment 1, where the admissibility criterion depends on a number of data processing devices of the first group and/or the second group that carry out the data processing task.
  • the admissibility criterion depends on the number of data processing devices involved in the redistribution. For example, a rate may be permitted if few data processing devices are involved in the redistribution, since then the redistribution has less impact on the data processing system (ie, generates less overhead).
  • a ping-pong behavior (with a specific ping-pong pattern) may also be acceptable if the data processing task involves devices that have a high degree of mobility, since then, for example, data processing devices have to be changed in order to follow the devices (ie, to provide data processing devices locally at the devices).
  • Embodiment example 3 is the method according to embodiment example 1 or 2, whereby a benefit of the outsourcing is determined and the admissibility criterion is specified depending on a determined benefit of the outsourcing.
  • ping-pong behavior may be acceptable if the frequent swaps it involves have a high benefit, e.g. significantly (e.g. by a certain percentage) increase the value of a target metric.
  • a rule may be provided that weighs the benefits of the outsourcing and the rate (e.g. through respective weights in a formula) to decide whether the rate is acceptable.
  • Embodiment 4 is the method according to one of embodiments 1 to 3, wherein when the data processing task is carried out by means of the first group of data processing devices, the data processing task is distributed among data processing devices of the first group according to a first division into subtasks, and when the data processing task is outsourced , the data processing task is distributed according to a second division into subtasks among data processing devices of the first and second groups.
  • Embodiment 5 is the method according to one of embodiments 1 to 4, wherein if the rate of swaps and their undoing satisfies the predetermined admissibility criterion and satisfies a relaxation criterion, the first area assigned to the target metric is reduced and/or the second area assigned to the target metric is enlarged.
  • a higher rate of swaps and their reversal can be allowed again if the rate not only meets the admissibility criterion but even meets a (weaker) relaxation criterion.
  • This means swaps can be achieved and benefited from, e.g. if more frequent swaps are currently in the data processing system are acceptable.
  • the relaxation criterion can be specified depending on various factors (such as utility and number of data processing devices involved).
  • Embodiment 6 is the method according to one of embodiments 1 to 5, where the data processing task is the processing of sensor data into control commands for a robot device.
  • the approach described enables distribution and in particular outsourcing of processing tasks, here for a control, to different data processing devices and thus enables reliable control, even if, for example, only few resources are available locally.
  • Embodiment 7 is a control device which is set up to monitor and enlarge the first area assigned to the target metric and/or to reduce the second area assigned to the target metric according to the method according to one of exemplary embodiments 1 to 6 and to request the data processing task from the data processing system according to the first range associated with the target metric and the second range associated with the target metric.
  • Embodiment 8 is a data processing system that is set up to carry out a method according to one of embodiments 1 to 6.
  • Embodiment 9 is a computer program with instructions that, when executed by a processor, cause the processor to perform a method according to any of Embodiments 1 to 6.
  • Embodiment 10 is a computer-readable medium that stores instructions that, when executed by a processor, cause the processor to perform a method according to any of Embodiments 1 to 6.
  • Figure 1 shows a data processing system 100.
  • Figure 1 shows a data processing system
  • Figure 2 illustrates a mechanism for detecting and containing unsteady task distribution behavior.
  • Figure 3 shows a flowchart that represents a method for carrying out data processing tasks using a data processing system according to one embodiment.
  • various data processing tasks can be carried out, for example the control of a robotic device such as a (e.g. autonomous) vehicle 101 or a robot arm 102 but also a calculation task, the result of which is output on a terminal 103 (e.g. a personal computer or a smartphone).
  • a robotic device such as a (e.g. autonomous) vehicle 101 or a robot arm 102
  • a calculation task the result of which is output on a terminal 103 (e.g. a personal computer or a smartphone).
  • the data processing system has a large number of data processing devices 104, which provide data processing resources (in particular processors, hardware logic circuits, etc.), and data transmission devices 105 such as transmitters/receivers and possibly lines of wireless and wire-based networks (e.g. base stations of mobile radio networks , access points or network cards for wireless or wire-based local networks, (computer) buses, memories, etc.) that provide data transmission resources (e.g. communication channels).
  • the data processing devices 104 may include data processing devices that are located locally at a device to be controlled (e.g. in a control device of a robot), in the controlling device itself (e.g. in a vehicle, e.g. an ECU (Electronic Control Unit), in an edge cloud (im In the sense of edge computing) 108, or are arranged in a cloud 109.
  • the data processing system 100 can therefore be viewed as a distributed data processing system.
  • the data processing system 100 is, for example, a cyber-physical system (CPS) and includes, for example, networking of machines and processes in industry with the help of information and communication technology in the sense of Industry 4.0 (I4.0), for example the control of I4.
  • I4.0 Industry 4.0
  • 0- Production processes the control of vehicles and/or combines networking (e.g. in the sense of the Internet of Things) with artificial intelligence (e.g one or more data processing devices can implement a machine learning model).
  • a data processing task 106 is divided into subtasks (or subtasks) 107.
  • the subtasks 107 implement (at least partially) interacting functional units (ie, components of the data processing task 106). To carry them out, the subtasks 107 are distributed to the data processing devices 104 depending on the type and requirements of a respective subtask.
  • the performance of the resources made available by the data processing devices as well as the data transmission performance between the data processing devices are monitored and, if necessary, a redeployment (ie a redistribution and even optionally a new division into subtasks 107) is carried out, for example because the performance of the resources provided by the data processing devices and/or the data transmission performance have decreased and therefore the fulfillment of at least one requirement for the implementation of the at least one data processing task is impaired or endangered, or because it is determined that a different division meets an optimality criterion better (e.g. because the computing power has been increased in a cloud and outsourcing is now worthwhile).
  • a reallocation can in particular be an outsourcing of a subtask 107 from a local data processing device (e.g. in a factory, where there is also a robot device 102 that is to be controlled by means of the subtask 107) to a remote data processing device (e.g. in the edge cloud 108 or Cloud 109) (i.e. offloading).
  • a local data processing device e.g. in a factory, where there is also a robot device 102 that is to be controlled by means of the subtask 107
  • a remote data processing device e.g. in the edge cloud 108 or Cloud 109
  • a corresponding offloading process includes finding one or more suitable computing nodes (provided by one or more computing devices) that have sufficient resources to process the application 107 and transferring the required calculations to that computing node (i.e. the respective computing device). .
  • the load on this data processing device e.g. a client device
  • the load on the computing node increases, i.e. the state of the data processing system changes. If several applications are outsourced to the computing node, this can result in the outsourcing being reversed (e.g. because the resources of the computing node are no longer sufficient) or the application and possibly other applications that run on the same computing node being moved to another computing node be outsourced.
  • a recovery process is carried out after a more or less short period of time, i.e. a reversal of the offloading process, in which one or more subtasks 107 are carried out by a remote data processing device (e.g. in the edge cloud or cloud) can be relocated back to a local data processing device.
  • a remote data processing device e.g. in the edge cloud or cloud
  • offloading and recovery can be repeated at short intervals (and in principle endlessly) if the measured values and the threshold values of target metrics that affect the offloading decision or recovery decision are very high lie close to each other. This can result in ping-pong behavior (or in general, “unsettled” behavior in which redistribution takes place at rapid intervals), which wastes resources and can lead to instability of the data processing system 100, which at least partially reduces the advantages of outsourcing destroyed
  • a mechanism that makes it possible to prevent (or at least mitigate) such restless behavior, taking into account the characteristics and requirements of the respective data processing task 106 or subtask 107 and also the effort (and/or costs). be taken into account for outsourcing.
  • unsteady behavior i.e. a redistribution of subtasks 107 (possibly including a new division of the application 106 into the subtasks 107)
  • the unsteady behavior is then prevented or attenuated by adding or subtracting an adaptive offset (O) to a respective threshold value that decides on a redistribution (e.g.
  • a swap or a restoration (or more generally by increasing or decreasing a respective area) .
  • the distance between the threshold value and the value for the current situation (which is being measured) can be made larger, so that, for example, in the event of small fluctuations in the value (such as network bandwidth), the threshold value is not reached.
  • an offset vector can be provided accordingly (whereby the components can be set individually).
  • Figure 2 illustrates a mechanism for detecting 201 and mitigating 202 unsteady task distribution behavior, specifically ping-pong behavior in this example (ie, rapid swapping and recovery).
  • the mechanism is implemented by a control device (which itself can be implemented as control software in the data processing system).
  • Detecting 201 includes detecting the ping-pong behavior and an analysis of whether the behavior is acceptable. For this purpose, in 203 the rate (F) at which swapping and restoration takes place, the number of data processing devices involved (N) or computing nodes is measured , if a data processing device provides several, and the values of target metrics (C) for the swap state and for the recovery state (e.g. performance characteristics achieved in these states such as execution time, energy consumption, etc.).
  • F rate at which swapping and restoration takes place
  • N number of data processing devices involved
  • C target metrics
  • a ping-pong pattern is then determined based on the measured rate (F).
  • a pattern might include, for example, rapid swapping and recovery occurring for 5 minutes every hour and, for example, infrequent swapping and recovery for the remaining 55 minutes.
  • the ping-pong pattern can be detected in various ways, in particular through statistical detection that determines a probability distribution, machine learning models such as neural networks (particularly Bayesian networks), etc.
  • 205 it is then determined whether the ping-pong pattern is acceptable (i.e. it is evaluated). If it is acceptable, nothing is changed and the process returns to 203 (e.g. 203 to 205 are performed repeatedly, for example periodically).
  • Whether the ping-pong pattern is acceptable is determined taking into account the number of data processing devices involved (N) and the values of the target metrics (C). For example, it may be acceptable if the behavior causes the values of the target metrics to be a certain percentage higher than if no offloading is allowed. Again, for example, it may not be acceptable if the offloading and recovery involves a large number of data processing devices. Ping-pong behavior can be viewed as misconduct if the ping-pong pattern contains unnecessary swaps (which, for example, only result in a small increase in the values of the target metrics).
  • a ping-pong pattern is unacceptable when the rate of swaps and restores (i.e., rollbacks of swaps) violates an acceptability criterion (which may depend on factors such as N and C or how long a particularly high rate occurs).
  • the ping-pong pattern can be evaluated by comparing it with an undesirable ping-pong pattern.
  • a threshold value also defines a (valid) range (below the threshold value, if a redistribution is triggered when the threshold value is exceeded or above the threshold value, if a redistribution is triggered when the threshold value is exceeded), it is also referred to below as a redistribution is triggered or carried out (ie occurs) when a respective area (assigned to the respective target metric) is left.
  • swapping occurs as soon as a target metric has crossed a respective threshold value (ie a respective component of the threshold value vector) (in the upward direction, ie it exceeds it, or in the downward direction, ie it falls below it, depending on the type of threshold value).
  • is set in 206 oac ] by an offset O o ff
  • is used to curb the ping-pong behavior oac j is added to the basic value Coffload_ Basis: which delays (or even prevents) offloading.
  • is used to curb the ping-pong behavior oac j deducted from the basic value.
  • the offsets can, for example, be determined depending on the ping-pong pattern determined. They are increased if the ping-pong behavior gets worse or decreased if the ping-pong behavior decreases.
  • the ping-pong pattern and corresponding offsets are continuously updated, represented in Figure 2 by the return from 207 to 203. The detection 201 and the containment 202 are therefore continued (repeated) so that the data processing system 200 is in a stable mode (except for acceptable ping-pong behavior).
  • Figure 3 shows a flowchart 300, which represents a method for carrying out data processing tasks using a data processing system according to one embodiment.
  • a data processing task is carried out (or started to be carried out) by means of a first group of data processing devices of the data processing system, the first group containing at least one data processing device of the data processing system.
  • a value of a target metric for performing the data processing task is monitored.
  • At 303 the value of the target metric leaves a first range associated with the target metric, at least one subtask of the data processing task (i.e., the execution of the subtask) is offloaded to a second group of data processing devices (where the second group is different from the first group, i.e. contains at least one data processing device that does not contain the first group and that is used to carry out the subtask). In other words, the execution of the data processing task continues but the at least one subtask is carried out using another data processing device.
  • the second group is different from the first group, i.e. contains at least one data processing device that does not contain the first group and that is used to carry out the subtask.
  • the offloading of the at least one subtask i.e., offloading the performance of the at least one subtask is undone.
  • the first area assigned to the target metric is increased and/or the second area assigned to the target metric is reduced.
  • the method of Figure 3 can be carried out by one or more computers with one or more data processing units.
  • Data processing unit can be understood as any type of entity that enables the processing of data or signals.
  • the data or signals may be treated according to at least one (ie, one or more than one) specific function performed by the data processing unit.
  • a data processing unit may be an analog circuit, a digital circuit, a logic circuit, a microprocessor, a microcontroller, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a programmable gate array integrated circuit (FPGA), or any combination include it or be formed from it.
  • Any other way to implement the respective functions described in more detail herein may also be understood as a data processing unit or logic circuitry.
  • One or more of the method steps described in detail here can be carried out (e.g. implemented) by a data processing unit through one or more special functions that are carried out by the data processing unit.
  • the data processing task can be used to generate a control signal for a robotic device.
  • robot device can be understood as referring to any technical system (having a mechanical part whose movement is controlled), such as: B. a computer-controlled machine, a vehicle, a household appliance, a power tool, a manufacturing machine, a personal assistant or an access control system. A control rule for the technical system is learned and the technical system is then controlled accordingly.
  • Data processing task may include processing sensor data. This can include processing sensor signals from various sensors such as: B. Include video, radar, LiDAR, ultrasound, motion, thermal imaging, etc.
  • the processing may include, for example, classifying the sensor data or performing semantic segmentation on the sensor data, for example to detect the presence of objects (in the environment in which the sensor data was obtained).
  • Embodiments may be used to train a machine learning system and control one Robotic device, e.g. B. can be used autonomously by robot manipulators to achieve various manipulation tasks under different scenarios. In particular, embodiments are applicable to controlling and monitoring the execution of manipulation tasks, e.g. B. in assembly lines.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (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 Durchführen einer Datenverarbeitungsaufgabe mittels einer ersten Gruppe von Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, wobei die erste Gruppe mindestens eine Datenverarbeitungsvorrichtung des Datenverarbeitungssystems enthält, Überwachen, bei der Durchführung der Datenverarbeitungsaufgabe, eines Werts einer Zielmetrik für die Durchführung der Datenverarbeitungsaufgabe und, wenn der Wert der Zielmetrik einen ersten der Zielmetrik zugeordneten Bereich verlässt, Auslagern der Durchführung mindestens einer Unteraufgabe der Datenverarbeitungsaufgabe in eine zweite Gruppe von Datenverarbeitungsvorrichtungen und, wenn der Wert der Zielmetrik nach dem Auslagern in einen zweiten der Zielmetrik zugeordneten Bereich eintritt, Rückgängigmachen des Auslagerns der Durchführung der mindestens einen Unteraufgabe, wobei, wenn eine Rate von Auslagerungen und ihr Rückgängigmachen ein vorgegebenes Zulässigkeitskriterium verletzt, der erste der Zielmetrik zugeordnete Bereich vergrößert wird und/oder der zweite der Zielmetrik zugeordnete Bereich verkleinert wird.

Description

Beschreibung
Titel
Verfahren zum Durchführen von Datenverarbeitungsaufgaben
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 mit solchen Änderungen effizient umgegangen werden kann.
Offenbarung der Erfindung
Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems bereitgestellt, aufweisend Durchführen einer Datenverarbeitungsaufgabe mittels einer ersten Gruppe von Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, wobei die erste Gruppe mindestens eine Datenverarbeitungsvorrichtung des Datenverarbeitungssystems enthält, Überwachen, bei der Durchführung der Datenverarbeitungsaufgabe, eines Werts einer Zielmetrik für die Durchführung der Datenverarbeitungsaufgabe und, wenn der Wert der Zielmetrik einen ersten der Zielmetrik zugeordneten Bereich verlässt, Auslagern der Durchführung mindestens einer Unteraufgabe der Datenverarbeitungsaufgabe in eine zweite Gruppe von Datenverarbeitungsvorrichtungen und, wenn der Wert der Zielmetrik nach dem Auslagern in einen zweiten der Zielmetrik zugeordneten Bereich eintritt, Rückgängigmachen des Auslagerns der Durchführung der mindestens einen Unteraufgabe, wobei, wenn eine Rate von Auslagerungen und ihr Rückgängigmachen ein vorgegebenes Zulässigkeitskriterium verletzt, der erste der Zielmetrik zugeordnete Bereich vergrößert wird und/oder der zweite der Zielmetrik zugeordnete Bereich verkleinert wird.
Das oben beschriebene Verfahren ermöglicht das Verhindern oder zumindest Abschwächen von unruhigem Verhalten hinsichtlich der Verteilung von Datenverarbeitungs(unter)aufgaben auf Datenverarbeitungsvorrichtungen (insbesondere Ping-Pong-Verhalten) in Szenarios mit dynamischer Ressourcenverwendung. Es ist insbesondere dann von hoher Bedeutung, wenn ein konsistentes Systemverhalten erwartet wird.
Der erste der Zielmetrik zugeordnete Bereich wird zum Beispiel so lange vergrößert und/oder der zweite der Zielmetrik zugeordnete Bereich so lange verkleinert, bis die Rate das vorgegebene Zulässigkeitskriterium nicht mehr verletzt. Die Rate wird beispielsweise überwacht oder periodisch ermittelt. Welcher der beiden Bereiche (und auch jeweils wie stark) geändert wird, kann unter Berücksichtigung von Anforderungen an die Durchführung der Datenverarbeitungsaufgabe entschieden werden. Repräsentiert z.B. der erste Bereich eine zulässige Verarbeitungsgeschwindigkeit, so darf er beispielsweise nicht beliebig vergrößert werden. Das Rückgängigmachen des Auslagerns braucht nicht notwendig zu bedeuten, dass danach die Datenverarbeitungsaufgabe mit exakt denselben Datenverarbeitungsvorrichtungen durchgeführt wird wie vor dem Auslagern, aber dass sie nach dem Rückgängigmachen wieder ausschließlich von Datenverarbeitungsvorrichtungen der ersten Gruppe durchgeführt wird (nicht notwendig von allen und nicht notwendig von denselben wie vor dem Auslagern).
Die erste Gruppe von Datenverarbeitungsvorrichtungen sind beispielsweise lokale Datenverarbeitungsvorrichtungen und die zweite Gruppe von Datenverarbeitungsvorrichtungen sind beispielsweise Datenverarbeitungsvorrichtungen einer Edge-Cloud oder Cloud. Zum Beispiel ist die Datenverarbeitungsaufgabe die Steuerung einer Robotervorrichtung. In so einem Fall weist erste Gruppe z.B. ein oder mehrere Datenverarbeitungsvorrichtungen, die bei (z.B. in demselben Gebäude oder in demselben lokalen Netzwerk) oder in der Robotervorrichtung vorgesehen sind und die zweite Gruppe weist ein oder mehrere entfernte Datenverarbeitungsvorrichtungen (außerhalb des Gebäudes, des lokalen Netzwerks bzw. der Robotervorrichtung) auf.
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 das Zulässigkeitskriterium abhängt von einer Anzahl von Datenverarbeitungsvorrichtungen der ersten Gruppe und/oder der zweiten Gruppe, die die Datenverarbeitungsaufgabe durchführen.
In anderen Worten hängt das Zulässigkeitskriterium von der Anzahl von Datenverarbeitungsvorrichtungen, die in die Umverteilung involviert sind, ab. Eine Rate kann z.B. zulässig sein, wenn wenige Datenverarbeitungsvorrichtungen in die Umverteilung involviert sind, da dann die Umverteilung sich weniger auf Datenverarbeitungssystem auswirkt (d.h. weniger Overhead erzeugt). Ein Ping-Pong-Verhalten (mit einem bestimmten Ping-Pong- Muster) kann auch akzeptabel sein, wenn in die Datenverarbeitungsaufgabe Geräte involviert sind, die eine hohe Beweglichkeit aufweisen, da dann z.B. Datenverarbeitungsvorrichtungen gewechselt werden müssen, um den Geräten zu folgen (d.h. um lokal bei den Geräten Datenverarbeitungsvorrichtungen bereitzustellen).
Ausführungsbeispiel 3 ist das Verfahren nach Ausführungsbeispiel 1 oder 2, wobei ein Nutzen der Auslagerungen ermittelt wird und das Zulässigkeitskriterium abhängig von einem ermittelten Nutzen der Auslagerungen vorgegeben wird.
In anderen Worten kann ein Ping-Pong-Verhalten akzeptabel sein, wenn die häufigen Auslagerungen, die es beinhaltet, einen hohen Nutzen haben, z.B. den Wert einer Zielmetrik signifikant (z.B. um einen bestimmten Prozentsatz) steigern. Es kann zum Beispiel eine Regel vorgesehen sein, die den Nutzen der Auslagerungen und die Rate gegeneinander abwägt (z.B. durch jeweilige Gewichtungen in einer Formel), um zu entscheiden, ob die Rate akzeptabel ist.
Ausführungsbeispiel 4 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 3, wobei, wenn die Datenverarbeitungsaufgabe mittels der ersten Gruppe von Datenverarbeitungsvorrichtungen durchgeführt wird, die Datenverarbeitungsaufgabe gemäß einer ersten Aufteilung in Unteraufgaben auf Datenverarbeitungsvorrichtungen der erste Gruppe verteilt ist, und, wenn die Datenverarbeitungsaufgabe ausgelagert wird, die Datenverarbeitungsaufgabe gemäß einer zweiten Aufteilung in Unteraufgaben auf Datenverarbeitungsvorrichtungen der ersten und der zweiten Gruppe verteilt ist.
Damit kann die Aufteilung der Datenverarbeitungsaufgabe geändert werden, was die Flexibilität der Auslagerung, insbesondere die Auswahl der zweiten Gruppe von Datenverarbeitungsvorrichtungen, erhöht.
Ausführungsbeispiel 5 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 4, wobei, wenn die Rate von Auslagerungen und ihr Rückgängigmachen das vorgegebene Zulässigkeitskriterium erfüllt und ein Relaxationskriterium erfüllt, der erste der Zielmetrik zugeordnete Bereich verkleinert wird und/oder der zweite der Zielmetrik zugeordnete Bereich vergrößert wird.
In anderen Worten kann wieder eine höhere Rate von Auslagerungen und deren Rückgängigmachen erlaubt werden, wenn die Rate nicht nur das Zulässigkeitskriterium erfüllt sondern sogar ein (schwächeres) Relaxationskriterium erfüllt Damit können Auslagerungen erreicht werden und von ihnen profitiert werden, z.B. wenn häufigere Auslagerungen im Datenverarbeitungssystem aktuell akzeptabel sind. Das Relaxationskriterium kann wie das Zulässigkeitskriterium abhängig von verschiedenen Faktoren (wie Nutzen und Anzahl von involvierten Datenverarbeitungsvorrichtungen vorgegeben werden).
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 Überwachen und Vergrößern des ersten der Zielmetrik zugeordneten Bereichs und/oder das Verkleinern des zweiten der Zielmetrik zugeordneten Bereichs gemäß dem Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchzuführen und von dem Datenverarbeitungssystem anzufordern, die Datenverarbeitungsaufgabe gemäß dem ersten der Zielmetrik zugeordneten Bereich und dem zweiten der Zielmetrik zugeordneten Bereich durchzuführen.
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.
Figur 1 zeigt ein Datenverarbeitungssystem 100.
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.
Figur 1 zeigt ein Datenverarbeitungssystem.
Figur 2 veranschaulicht einen Mechanismus zum Detektieren und Eindämmen von unruhigem Aufgabenverteilungsverhalten. Figur 3 zeigt ein Ablaufdiagramm, das ein Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems gemäß einer Ausführungsform darstellt.
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 drahtbasierten 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 (I4.0), also z.B. die Steuerung von I4.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 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.
Gemäß verschiedenen Ausführungsformen ist es entsprechend vorgesehen, dass eine Datenverarbeitungsaufgabe 106 in Unteraufgaben (oder Teilaufgaben) 107 aufgeteilt wird. 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. Außerdem ist vorgesehen, dass die Leistungsfähigkeit der Ressourcen, die von den Datenverarbeitungsvorrichtungen zur Verfügung gestellt werden, sowie die Datenübertragungsleistung zwischen den Datenverarbeitungsvorrichtungen überwacht werden und gegebenenfalls ein Re-Deployment (d.h. eine Neuverteilung und dafür sogar optional eine Neuaufteilung in Unteraufgaben 107) durchgeführt, z.B. weil die Leistungsfähigkeit der Ressourcen, die von den Datenverarbeitungsvorrichtungen zur Verfügung gestellt werden und/oder die Datenübertragungsleistung abgenommen haben und deshalb die Erfüllung mindestens eine Anforderung an die Durchführung der mindestens einen Datenverarbeitungsaufgabe beeinträchtigt oder gefährdet, oder auch, weil festgestellt wird, dass eine andere Aufteilung ein Optimalitätskriterium besser erfüllt (z.B. weil in einer Cloud die Rechenleisung erhöht wurde und sich eine Auslagerung nun lohnt).
Eine Neuaufteilung kann insbesondere eine Auslagerung von einer Unteraufgabe 107 von einer lokalen Datenverarbeitungsvorrichtung (z.B. in einer Fabrik, wo sich auch eine zu Robotervorrichtung 102 befindet, die mittels der Unteraufgabe 107 gesteuert werden soll) auf eine entfernte Datenverarbeitungsvorrichtung (z.B. in der Edge-Cloud 108 oder Cloud 109) sein (d.h. ein Offloading).
Ein entsprechender Offloading- Prozess umfasst die Suche nach einem oder mehreren geeigneten Rechenknoten (bereitgestellt von einer oder mehreren Datenverarbeitungsvorrichtungen), die über genügend Ressourcen für die Verarbeitung der Anwendung 107 verfügen, und die Übertragung der erforderlichen Berechnungen an diesen Rechenknoten (d.h. die jeweilige Datenverarbeitungsvorrichtung). Sobald eine Anwendung von einer Datenverarbeitungsvorrichtung auf einen solchen Rechenknoten ausgelagert ist, sinkt die Last auf dieser Datenverarbeitungsvorrichtung (z.B. einem Client-Gerät) und die Last auf dem Rechenknoten steigt, d.h. der Zustand des Datenverarbeitungssystems ändert sich. Werden mehrere Anwendungen auf den Rechenknoten ausgelagert, kann dies deshalb wiederum dazu führen, dass die Auslagerung zurückgenommen wird (z.B. weil die Ressourcen des Rechenknotens nicht mehr ausreichen) oder die Anwendung und ggf. weitere Anwendungen, die auf demselben Rechenknoten laufen, auf einen anderen Rechenknoten ausgelagert werden. Es kann also insbesondere der Fall auftreten, dass nach einer Auslagerung nach einer mehr oder weniger kurzen Dauer ein Wiederherstellungsprozess durchgeführt wird, d.h. eine Umkehrung des Offloading-Prozesses, bei dem eine oder mehrere Unteraufgaben 107 von einer entfernten Datenverarbeitungsvorrichtung (z.B. in der Edge-Cloud oder Cloud) auf eine lokale Datenverarbeitungsvorrichtung zurückverlagert werden.
Ein solches Offloading und eine solche Wiederherstellung (Offloading- Recovery) können sich in kurzen zeitlichen Abständen (und prinzipiell endlos) wiederholen, wenn die Messwerte und die Schwellwerte von Zielmetriken, die sich auf die Offloading-Entscheidung bzw. Wiederherstellungsentscheidung auswirken, sehr nahe beieinander liegen. Damit kann ein Ping-Pong-Verhalten auftreten (oder allgemein ein „unruhiges“ Verhalten, bei dem in schnellen zeitlichen Abständen umverteilt wird), wodurch die Ressourcen verschwendet werden und das zu Instabilität des Datenverarbeitungssystems 100 führen kann, was die Vorteile der Auslagerung zumindest teilweise zunichtemacht
Gemäß verschiedenen Ausführungsformen wird ein Mechanismus bereitgestellt, der es ermöglicht, ein solches unruhiges Verhalten zu unterbinden (oder zumindest abzuschwächen), wobei die Eigenschaften und Anforderungen der jeweiligen Datenverarbeitungsaufgabe 106 bzw. der Unteraufgabe 107 berücksichtigt werden und auch der Aufwand (und/oder Kosten) für eine Auslagerung berücksichtigt werden. Dabei ist vorgesehen, dass ein unruhiges Verhalten (d.h. eine Umverteilung von Unteraufgaben 107 (ggf. inkl. Neuaufteilung der Anwendung 106 in die Unteraufgaben 107)) detektiert wird, z.B. indem überwacht wird, wie oft eine Auslagerung und Wiederherstellung (oder allgemein eine Umverteilung) auftritt. Das unruhige Verhalten wird dann unterbunden oder abgeschwächt, indem ein adaptiver Offset (O) zu einem jeweiligen Schwellwert, der über eine Umverteilung (z.B. eine Auslagerung oder eine Wiederherstellung) entscheidet, addiert oder subtrahiert wird (oder allgemeiner ein jeweiliger Bereich vergrößert oder verkleinert wird). Durch Erhöhen des Offsests kann der Abstand zwischen Schwellwert und dem Wert für die aktuelle Situation (der gemessen wird), größer gemacht werden, sodass z.B. bei kleinen Schwankungen des Werts (wie z.B. Netzwerk-Bandbreite) der Schwellwert nicht erreicht wird. Bei einem Schwellwert-Vektor (d.h. einem Schwellwert für mehrere Zielgrößen wie Bandbreite, Latenz, Sicherheit, etc.) kann entsprechend ein Offset-Vektor vorgesehen sein (wobei die Komponenten individuell gesetzt werden können).
Figur 2 veranschaulicht einen Mechanismus zum Detektieren 201 und Eindämmen 202 von unruhigem Aufgabenverteilungsverhalten, speziell Ping- Pong-Verhalten in diesem Beispiel (d.h. Auslagerung und Wiederherstellung im schnellen Wechsel). Der Mechanismus wird von einer Steuereinrichtung implementiert (welche selbst verstellt als Steuersoftware im Datenverarbeitungssystem implementiert sein kann).
Das Detektieren 201 umfasst das Detektieren des Ping-Pong-Verhaltens und einer Analyse, ob das Verhalten akzeptabel ist Dazu wird in 203 die Rate (F) gemessen, mit der ausgelagert und wiederhergestellt wird, die Anzahl der involvierten Datenverarbeitungsvorrichtungen (N) oder auch Rechenknoten, falls eine Datenverarbeitungsvorrichtung mehrere bereitstellt, und die Werte von Zielmetriken (C) für den Auslagerungszustand und für den Wiederherstellungszustand (z.B. in diesen Zuständen erreichte Leistungsmerkmale wie Ausführungszeit, Energieverbrauch, etc.).
In 204 wird dann anhand der gemessenen Rate (F) ein Ping-Pong-Muster ermittelt. Ein solches Muster kann zum Beispiel beinhalten, dass jede Stunde für 5 Minuten lang ein schnelles Auslagern und Wiederherstellen auftritt und z.B. die restlichen 55 Minuten selten ausgelagert bzw. wiederhergestellt wird. Das Ping- Pong-Muster kann auf verschiedene Weisen detektiert werden, insbesondere durch statistische Detektion, die eine Wahrscheinlichkeitsverteilung ermittelt, maschinelle Lernmodelle, wie neuronale Netzwerke (insbesondere Bayessche Netzwerke), etc.
In 205 wird dann ermittelt, ob das Ping-Pong-Muster akzeptabel ist (d.h. es wird bewertet). Ist es akzeptabel, wird nichts geändert und der Prozess kehrt zu 203 zurück (z.B. werden 203 bis 205 wiederholt, beispielsweise periodisch, durchgeführt).
Ob das Ping-Pong-Muster akzeptabel ist, wird unter Berücksichtigung der Anzahl der involvierten Datenverarbeitungsvorrichtungen (N) und der Werte der Zielmetriken (C) ermittelt. Beispielsweise kann es akzeptabel sein, wenn durch das Verhalten die Werte der Zielmetriken um einen bestimmten Prozentsatz darüber liegen, als wenn keine Auslagerung erlaubt ist. Es kann wiederum beispielsweise nicht akzeptabel sein, falls bei der Auslagerung und Wiederherstellung eine hohe Anzahl von Datenverarbeitungsvorrichtungen involviert ist. Das Ping-Pong-Verhalten kann als Fehlverhalten angesehen werden, wenn das Ping-Pong-Muster unnötige Auslagerungen enthält (die z.B. nur einen geringen Zuwachs der Werte der Zielmetriken bringen).
Ein Ping-Pong-Muster ist dann nicht akzeptabel, wenn die Rate der Auslagerungen und die Wiederherstellungen (d.h. Rückgängigmachen der Auslagerungen) ein Zulässigkeitskriterium verletzt (das von Faktoren wie N und C abhängen kann oder auch, wie lange eine besonders hohe Rate auftritt).
Das Ping-Pong-Muster kann bewertet werden, indem es mit einem unerwünschten Ping-Pong-Muster verglichen wird.
Wurde das Ping-Pong-Muster als inakzeptabel bewertet, erfolgt die Eindämmung 202 des Ping-Pong-Verhaltens.
Dazu wird angenommen, dass ausgelagert wird, wenn der Wert einer Zielmetrik einen Schwellwert Coff|oacj erreicht oder gekreuzt (unter- bzw. überschritten) hat und wiederhergestellt wird, wenn der Wert der Zielmetrik einen Schwellwert ^recovery erreicht oder gekreuzt hat. Das Erreichen eines Schwellwerts kann als Kreuzen eines nah daneben liegenden Schwellwerts angesehen werden (darunter bei Erreichen von unten, darüber bei Erreichen von oben). Da ein Schwellwert auch einen (gültigen) Bereich definiert (unterhalb des Schwellwerts, wenn eine Umverteilung bei Überschreiten des Schwellwerts ausgelöst wird bzw. oberhalb des Schwellwerts, wenn eine Umverteilung bei Unterschreiten des Schwellwerts ausgelöst wird) wird im Folgenden auch davon gesprochen, dass eine Umverteilung bei Verlassen eines jeweiligen (der jeweiligen Zielmetrik zugeordneten) Bereichs ausgelöst bzw. vorgenommen wird (d.h. erfolgt).
Dabei wird hier der Einfachheit halber angenommen, dass nur eine Zielmetrik vorhanden ist. Es können aber auch mehrere vorgesehen sein und entsprechend gibt es einen Vektor von Schwellwerten jeweils für Auslagerung und Wiederherstellung). Beispielsweise wird ausgelagert, sobald eine Zielmetrik einen jeweiligen Schwellwert (d.h. eine jeweilige Komponente des Schwellwert- Vektors) gekreuzt hat (in Richtung nach oben, d.h. ihn überschreitet oder in Richtung nach unten, d.h. ihn unterschreitet, je nach Art des Schwellwerts). Um das Ping-Pong-Verhalten einzudämmen, wird in 206 ein Grundwert ^offload Basis des Schwellwerts Coff|oac] um einen Offset Ooff|oacj und/oder ein Grundwert des Schwellwert Crecovery ßasjs um einen Offset Schwellwert ^recovery angepasst, wodurch sich der Schwellwert Coff|oacj bzw. der Schwellwert Crecovery ergibt.
Wird bei einem Überschreiten von Coff|oacj ausgelagert, wird zum Eindämmen des Ping-Pong-Verhaltens z.B. ein positiver Offset Ooff|oacj zu dem Grundwert Coffload_ Basis zu addiert:
Figure imgf000015_0001
wodurch das Auslagern verzögert (oder sogar verhindert) wird. Bei einem Auslagern bei Unterschreiten wird umgekehrt zum Eindämmen des Ping-Pong-Verhaltens ein positiver Offset Ooff|oacj vom Grundwert abgezogen.
Analog für die Wiederherstellung: Wird bei einem Unterschreiben von Crecovery wiederhergestellt, wird zum Eindämmen des Ping-Pong-Verhaltens z.B. ein positiver Offset Orecovery von dem Grundwert Crecovery ßasjs subtrahiert: ^recovery = ^-'recovery_Basis " ^recovery wodurch das Wiederherstellten verzögert (oder sogar verhindert) wird. Bei einem Wiederherstellen bei Überschreiten wird umgekehrt zum Eindämmen des Ping-Pong-Verhaltens ein positiver Offset Orecovery zum Grundwert addiert.
Die Offsets können beispielsweise abhängig von dem ermittelten Ping-Pong- Muster ermittelt werden. Sie werden erhöht, wenn das Ping-Pong-Verhalten schlimmer wird oder erniedrigt, wenn das Ping-Pong-Verhalten abnimmt. Dazu werden das Ping-Pong-Muster und entsprechend die Offsets kontinuierlich aktualisiert, in Figur 2 dargestellt durch die Rückkehr von 207 zu 203. Die Detektion 201 und die Eindämmung 202 werden also fortgeführt (wiederholt), damit das Datenverarbeitungssystem 200 in einem stabilen Modus (bis auf akzeptables Ping-Pong-Verhalten) bleibt.
Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie in Figur 3 dargestellt. Figur 3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems gemäß einer Ausführungsform darstellt.
In 301 wird eine Datenverarbeitungsaufgabe mittels einer ersten Gruppe von Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems durchgeführt (bzw. mit der Durchführung begonnen), wobei die erste Gruppe mindestens eine Datenverarbeitungsvorrichtung des Datenverarbeitungssystems enthält.
In 302 wird bei der Durchführung der Datenverarbeitungsaufgabe ein Wert einer Zielmetrik für die Durchführung der Datenverarbeitungsaufgabe überwacht.
Wenn, in 303, der Wert der Zielmetrik einen ersten der Zielmetrik zugeordneten Bereich verlässt, wird mindestens eine Unteraufgabe der Datenverarbeitungsaufgabe (d.h. die Durchführung der Unteraufgabe) in eine zweite Gruppe von Datenverarbeitungsvorrichtungen ausgelagert (wobei sich die zweite Gruppe von der ersten Gruppe unterscheidet, d.h. mindestens eine Datenverarbeitungsvorrichtung enthält, die die erste Gruppe nicht enthält, und die zur Durchführung der Unteraufgabe verwendet wird). In anderen Worten wird die Durchführung der Datenverarbeitungsaufgabe fortgeführt aber die mindestens eine Unteraufgabe mittels einer anderen Datenverarbeitungsvorrichtung durchgeführt.
Wenn, (nach dem Auslagern) in 304, der Wert der Zielmetrik nach dem Auslagern in einen zweiten der Zielmetrik zugeordneten Bereich eintritt, wird das Auslagern der mindestens einen Unteraufgabe (d.h. das Auslagern der Durchführung der mindestens einen Unteraufgabe) rückgängig gemacht.
Dabei wird, wenn eine Rate von Auslagerungen und ihr Rückgängigmachen ein vorgegebenes Zulässigkeitskriterium verletzt, der erste der Zielmetrik zugeordnete Bereich vergrößert und/oder der zweite der Zielmetrik zugeordnete Bereich verkleinert.
Das Verfahren von Figur 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

Ansprüche
1. Verfahren zum Durchführen von Datenverarbeitungsaufgaben mittels eines Datenverarbeitungssystems, aufweisend:
Durchführen einer Datenverarbeitungsaufgabe mittels einer ersten Gruppe von Datenverarbeitungsvorrichtungen des Datenverarbeitungssystems, wobei die erste Gruppe mindestens eine Datenverarbeitungsvorrichtung des Datenverarbeitungssystems enthält; Überwachen, bei der Durchführung der Datenverarbeitungsaufgabe, eines Werts einer Zielmetrik für die Durchführung der Datenverarbeitungsaufgabe und, wenn der Wert der Zielmetrik einen ersten der Zielmetrik zugeordneten Bereich verlässt, Auslagern der Durchführung mindestens einer Unteraufgabe der Datenverarbeitungsaufgabe in eine zweite Gruppe von Datenverarbeitungsvorrichtungen; und wenn der Wert der Zielmetrik nach dem Auslagern in einen zweiten der Zielmetrik zugeordneten Bereich eintritt, Rückgängigmachen des Auslagerns der Durchführung der mindestens einen Unteraufgabe; wobei, wenn eine Rate von Auslagerungen und ihr Rückgängigmachen ein vorgegebenes Zulässigkeitskriterium verletzt, der erste der Zielmetrik zugeordnete Bereich vergrößert wird und/oder der zweite der Zielmetrik zugeordnete Bereich verkleinert wird.
2. Verfahren nach Anspruch 1 , wobei das Zulässigkeitskriterium abhängt von einer Anzahl von Datenverarbeitungsvorrichtungen der ersten Gruppe und/oder der zweiten Gruppe, die die Datenverarbeitungsaufgabe durchführen. Verfahren nach Anspruch 1 oder 2, wobei ein Nutzen der Auslagerungen ermittelt wird und das Zulässigkeitskriterium abhängig von einem ermittelten Nutzen der Auslagerungen vorgegeben wird. Verfahren nach einem der Ansprüche 1 bis 3, wobei, wenn die Datenverarbeitungsaufgabe mittels der ersten Gruppe von Datenverarbeitungsvorrichtungen durchgeführt wird, die Datenverarbeitungsaufgabe gemäß einer ersten Aufteilung in Unteraufgaben auf Datenverarbeitungsvorrichtungen der erste Gruppe verteilt ist, und, wenn die Datenverarbeitungsaufgabe ausgelagert wird, die Datenverarbeitungsaufgabe gemäß einer zweiten Aufteilung in Unteraufgaben auf Datenverarbeitungsvorrichtungen der ersten und der zweiten Gruppe verteilt ist. Verfahren nach einem der Ansprüche 1 bis 4, wobei, wenn die Rate von Auslagerungen und ihr Rückgängigmachen das vorgegebene Zulässigkeitskriterium erfüllt und ein Relaxationskriterium erfüllt, der erste der Zielmetrik zugeordnete Bereich verkleinert wird und/oder der zweite der Zielmetrik zugeordnete Bereich vergrößert wird. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Datenverarbeitungsaufgabe die Verarbeitung von Sensordaten zu Steuerungsbefehlen für eine Robotervorrichtung ist. Steuerungseinrichtung, die eingerichtet ist, das Überwachen und Vergrößern des ersten der Zielmetrik zugeordneten Bereichs und/oder das Verkleinern des zweiten der Zielmetrik zugeordneten Bereichs gemäß dem Verfahren nach einem der Ansprüche 1 bis 6 durchzuführen und von dem Datenverarbeitungssystem anzufordern, die Datenverarbeitungsaufgabe gemäß dem ersten der Zielmetrik zugeordneten Bereich und dem zweiten der Zielmetrik zugeordneten Bereich durchzuführen. Datenverarbeitungssystem, das eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 6 durchzuführen. 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 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.
PCT/EP2023/063556 2022-06-08 2023-05-22 Verfahren zum durchführen von datenverarbeitungsaufgaben WO2023237316A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102022205834.8 2022-06-08
DE102022205834.8A DE102022205834A1 (de) 2022-06-08 2022-06-08 Verfahren zum Durchführen von Datenverarbeitungsaufgaben

Publications (1)

Publication Number Publication Date
WO2023237316A1 true WO2023237316A1 (de) 2023-12-14

Family

ID=86688532

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/063556 WO2023237316A1 (de) 2022-06-08 2023-05-22 Verfahren zum durchführen von datenverarbeitungsaufgaben

Country Status (2)

Country Link
DE (1) DE102022205834A1 (de)
WO (1) WO2023237316A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2784674A2 (de) * 2013-03-26 2014-10-01 VIA Technologies, Inc. Asymmetrischer Multikernprozessor mit nativem Schaltmechanismus
US20200125389A1 (en) * 2019-04-01 2020-04-23 Stephen T. Palermo Edge server cpu with dynamic deterministic scaling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2784674A2 (de) * 2013-03-26 2014-10-01 VIA Technologies, Inc. Asymmetrischer Multikernprozessor mit nativem Schaltmechanismus
US20200125389A1 (en) * 2019-04-01 2020-04-23 Stephen T. Palermo Edge server cpu with dynamic deterministic scaling

Also Published As

Publication number Publication date
DE102022205834A1 (de) 2023-12-14

Similar Documents

Publication Publication Date Title
DE60207588T2 (de) Zustandsschätzung und einteilung für ein herstellungssystem
DE112017000855B4 (de) Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze
EP3101493B1 (de) System und verfahren zur steuerung und/oder analytik eines industriellen prozesses
DE102017128711A1 (de) Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz
DE112018003087T5 (de) On-chip-rauschunterdrückung oder -minderung der versorgungsspannung unter verwendung von lokalen detektionsschleifen in einem prozessorkern
EP3684015B1 (de) Vorrichtung und verfahren zur klassifizierung von daten insbesondere für ein controller area netzwerk oder ein automotive ethernet netzwerk
EP3417373A1 (de) Verfahren und vorrichtung zum betreiben eines steuergeräts
DE112012006248T5 (de) Datenverarbeitungsvorrichtung und Programm
WO2023237316A1 (de) Verfahren zum durchführen von datenverarbeitungsaufgaben
WO2003069424A2 (de) Reaktionszeit-beschränkung eines software-prozesses
EP3901713B1 (de) Verfahren und system zum betrieb einer technischen anlage mit einem optimalen modell
EP1717651B1 (de) Verfahren und Vorrichtung zum Auswerten von Ereignissen aus dem Betrieb eines Fahrzeuges
DE102019205081A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Betreiben eines tiefen neuronalen Netzes
WO2021249616A1 (de) Verfahren zum konfigurieren von komponenten in einem system mit hilfe von multi-agent reinforcement learning, computerlesbares speichermedium und system
EP1917587B1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems
DE102022204713A1 (de) Verfahren zum Durchführen von Datenverarbeitungsaufgaben
DE102019130484A1 (de) Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen
EP3916553A1 (de) Verfahren und vorrichtung zum verteilen von softwarekomponenten einer oder mehreren applikationen auf für deren ausführung geeignete infrastrukturkomponenten einer industriellen infrastruktur
DE10331801A1 (de) Kontinuierliche Eigenkalibrierung interner analoger Signale
WO2023094325A1 (de) Computer-implementiertes verfahren zum betrieb eines technischen geräts mit einem modell
DE102022203723A1 (de) Verfahren zum Steuern einer Robotervorrichtung
EP3073375A1 (de) Verfahren zur ermittlung einer maximalen laufzeit für ein tasksystem
DE102022205918A1 (de) Verfahren zum Durchführen einer Datenverarbeitung
DE102022204718A1 (de) Verfahren für eine adaptive Ressourcenzuweisung für Anwendungen in einem verteilten System heterogener Rechenknoten
DE102022208088A1 (de) Verfahren zum Verarbeiten von Sensordaten

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23728314

Country of ref document: EP

Kind code of ref document: A1