US 11,740,991 B2
Assignment of tasks between a plurality of devices
Pekka Järvinen, Helsinki (FI); Mikko Kohvakka, Helsinki (FI); and Teemu Tanila, Helsinki (FI)
Assigned to ABB Schweiz AG, Baden (CH)
Filed by ABB Schweiz AG, Baden (CH)
Filed on Oct. 30, 2020, as Appl. No. 17/84,756.
Claims priority of application No. 19206550 (EP), filed on Oct. 31, 2019.
Prior Publication US 2021/0133074 A1, May 6, 2021
Int. Cl. G06F 11/34 (2006.01); G06F 8/61 (2018.01); G06F 9/48 (2006.01); G06F 9/50 (2006.01); G06F 11/30 (2006.01)
CPC G06F 11/3414 (2013.01) [G06F 8/61 (2013.01); G06F 9/485 (2013.01); G06F 9/5016 (2013.01); G06F 11/3006 (2013.01); G06F 11/3428 (2013.01)] 20 Claims
OG exemplary drawing
 
1. An apparatus comprising at least one processor, and at least one memory including a computer program code, wherein the at least one memory and the computer program code are configured, with the at least one processor, to cause the apparatus to:
define a functionality of a system, wherein the system comprises at least a first device in a first device category and a second device in a second device category, and wherein device categories are determined based on performance capabilities of devices comprised in the system;
define a configuration of the system;
determine a plurality of tasks comprised in an application, wherein the application is to be executed by the system;
simulate, using a simulation environment, execution of the application in the system when the tasks comprised in the application are assigned to be executed by the first device or the second device;
based on the simulation, modify, based at least in part on a pre-defined rule, the assignment of the tasks, wherein the pre-defined rule comprises defining a first task category, that is applicable to the first device category, and a second task category, that is applicable to the second device category, such that tasks in the first task category are computationally more demanding than the tasks in the second task category and the tasks in the first task category have less real-time requirements than the tasks in the second task category;
distribute the application to the system; and
receive data regarding the execution of the application.