IP Library Granted Patent US 11,836,532
Granted Patent B2
US 11,836,532 · App. 17/153,782 · Granted Dec 5, 2023

OS optimized workflow allocation

Inventor: Lukasz Gosik (Scheidegg, DE)
Assignee: HEXAGON TECHNOLOGY CENTER GMBH
G06F9/505G06F9/4881G06F9/546G06F16/9024G06F2209/547
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,836,532
App. No.
17/153,782
Granted
Dec 5, 2023
Kind
B2
Abstract

A computer implemented method implemented on an allocation computing unit for distributing a pre-defined workflow comprising a nonempty set of workflow components, the workflow components being ordered in a directed acyclic precedence graph, onto a set of general purpose computing units comprising at least two general purpose computing units.

Claims (35)

1. A method for distributing a pre-defined workflow onto a set of at least two general purpose computing units, wherein at least two different operating systems run on the set of general purpose computing units, the workflow comprising a nonempty set of workflow components, the workflow components being ordered in a directed acyclic precedence graph, wherein at least one workflow component of the set of workflow components is used for controlling or monitoring at least one physical process and, for controlling or monitoring the at least one physical process, receives data from sensors recording observables of at least one physical process, wherein the method comprises:

an allocation computing unit receiving the predefined workflow and a list of the set of general purpose computing units, the list including information about a hardware configuration of each general purpose computing unit, about the operating system running on each general purpose computing unit and about communication connections between the general purpose computing units;

the allocation computing unit providing a distribution variable which comprises, for each general purpose computing unit, a list of workflow components currently assigned to the general purpose computing unit and the scheduled start time of the currently assigned workflow components;

the allocation computing unit receiving, from an external computer program product providing static analysis technique functionality, individual worst-case execution times for all combinations between individual workflow components and single computing units;

the allocation computing unit providing as input to a first optimization algorithm at least the individual worst-case execution times, the directed acyclic precedence graph and the information about communication connections between the general purpose computing units;

the first optimization algorithm providing for each workflow component a general purpose computing unit and a scheduled time at which computation on the general purpose computing unit starts;

the allocation computing unit cropping the directed acyclic precedence graph to generate a cropped directed acyclic precedence graph, the cropping comprising, starting with a first leaf of the directed acyclic precedence graph:

identifying all nodes in the directed acyclic precedence graph with a directed path to the first leaf,

updating the distribution variable with the workflow components corresponding to the identified nodes and by registering the respective scheduled time, and

removing the identified nodes and all edges connected to the identified nodes from the directed acyclic precedence graph;

the allocation computing unit estimating time-dependent worst-case execution times of the remaining workflow components on the general purpose computing units;

the allocation computing unit providing as input to a second optimization algorithm at least the cropped directed acyclic precedence graph, the time-dependent worst-case execution times and the information about communication connections between the general purpose computing units;

the second optimization algorithm providing for each remaining workflow component a general purpose computing unit and a scheduled time at which computation on the general purpose computing unit starts;

the allocation computing unit further cropping the cropped directed acyclic precedence graph, the further cropping comprising, starting with a subsequent leaf of the cropped directed acyclic precedence graph:

finding all nodes in the cropped directed acyclic precedence graph with a directed path to the subsequent leaf,

updating the distribution variable with the workflow components corresponding to the identified nodes and by registering the scheduled times, and

removing the identified nodes and all edges connected to the identified nodes from the cropped directed acyclic precedence graph; and

the allocation computing unit continuing to estimate the time-dependent worst-case execution times until all nodes have been removed from the cropped directed acyclic precedence graph,

wherein the updated distribution variable is used to effect execution of the workflow components on the general purpose computing units at the scheduled times,

wherein the second optimization algorithm is constrained in that, provided that a workflow component remaining in the cropped directed acyclic precedence graph possesses a directed path in the original directed acyclic precedence graph from a removed node to the node corresponding to the workflow component, the workflow component is only scheduled after completion of all already assigned workflow components having a directed path to the workflow component.

2. The method according to claim 1 , wherein modifying the individual worst case execution time of a workflow component on a general purpose computing unit using the information about a number of workflow components already residing in main memory of the general purpose computing unit and a scheduling algorithm of the operating system running on the general purpose computing unit, and multiplying for a round robin scheduling algorithm in particular the individual worst case execution time with the number of workflow components already residing in main memory of the general purpose computing unit to obtain a worst case execution time.

3. The method according to claim 1 , wherein the first and second optimization algorithms take into account which of the general purpose computing units are optimized for input/output bound workflow components and which of the general purpose computing units are optimized for central processing unit (CPU) bound workflow components, wherein the worst case execution time of a CPU bound workflow component is larger on a general purpose computing unit with operating system preferring input/output bound workflow components than on a general purpose computing unit with operating system preferring CPU bound workflow components.

4. The method according to claim 1 , wherein the first and second optimization algorithms take into account a physical availability of sensor data provided by sensors recording observables of the at least one physical process, wherein the at least one workflow component requiring sensor data is used for controlling or monitoring the at least one physical process, wherein the at least one workflow component is allocated to a general purpose computing unit at the earliest after the sensor data become available.

5. The method according to claim 1 , wherein the first or second optimization algorithm is embodied as a mixed integer linear programs, wherein the first or second optimization algorithm is configured to minimize a makespan of workflow provided as input.

6. The method according to claim 1 , wherein the first or second optimization algorithm is embodied as an algorithm implementing a dynamic programming principle or as a greedy algorithm distributing workflow components in a greedy fashion to general purpose computing units, wherein an available workflow component is allocated to the general purpose computing unit able to complete the workflow component in the shortest time, wherein a greedy allocation takes into account the distribution variable and the operating system running on the general purpose computing unit.

7. The method according to claim 1 , further comprising:

providing via a graphical user interface a summary of an allocation of workflow components to general purpose computing units.

8. The method according to claim 1 , wherein the first or second optimization algorithm takes into account a connection graph of the set of computing units, wherein workflow components which are directly connected in the directed acyclic precedence graph and share information are preferentially allocated to computing units which are physically connected.

9. The method according to claim 1 , further comprising:

allocating at least one workflow component processing sensor data recorded from the at least one physical process to an edge computing unit, wherein the edge computing unit is integrated with the at least one physical process, wherein the at least one workflow component allocated to the edge computing unit is not included in the allocation procedure provided by the method of claim 1 .

10. The method according to claim 1 , wherein at least one workflow component relates to reading and writing from a database, wherein the workflow component uses a database via a database management system (DBMS).

11. The method according to claim 1 , wherein at least one workflow component relates to transmitting data between nodes of a computer network using a protocol stack.

12. The method according to claim 1 , wherein at least one workflow component relates to translating messages of a sender to messages of a receiver, wherein the workflow component uses a message broker.

13. The method according to claim 1 , wherein at least one workflow component relates to providing access to a cloud storage, wherein the workflow component provides logical-to-physical mapping and storage management of the cloud storage.

14. The method of claim 1 , comprising using as first leaf a leaf with the smallest number of nodes having a directed path to the leaf in the directed acyclic precedence graph, and as subsequent leaf a leaf with the smallest number of nodes having a directed path to the leaf in the cropped acyclic precedence graph.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2025
From: HEXAGON TECHNOLOGY CENTER GMBH
To: HEXAGON INNOVATION HUB GMBH
Reel/Frame 073833/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2021
From: GOSIK, LUKASZ
To: HEXAGON TECHNOLOGY CENTER GMBH
Reel/Frame 055000/0057 →
Priority Claims (1)
EP 20152994 · Jan 21, 2020 · regional
Continuity (1)
Related Publication 20210224117A1 · Jul 22, 2021