Multi-task unit parallel processing method, device, system and equipment and storage medium

By identifying and allocating task units that can be executed in parallel in the automation device, and optimizing the allocation of execution locks in combination with scheduling strategies, the problem of low task execution efficiency in the prior art is solved, and more efficient task execution is achieved.

CN120179427APending Publication Date: 2025-06-20SHENZHEN JINGTAI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311762517.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-12-19
Publication Date
2025-06-20

AI Technical Summary

Technical Problem

Existing automation equipment mainly uses serial logic, which leads to reduced experimental efficiency in some cases. For example, a task unit has a longer processing time, causing other task units to wait, thereby reducing the task execution efficiency.

Method used

By acquiring task units that can be executed in parallel among the multiple task units included in the target task, assign execution locks to these task units according to the scheduling strategy of the multiple task units, searching for task units that can be parallel to the executing task unit, and locking its device and resource locks for execution.

Benefits of technology

The combination of serial and parallel logic is realized, the task execution efficiency is improved, and the waiting phenomenon caused by the long processing time of a single task unit is avoided.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120179427A_ABST
    Figure CN120179427A_ABST
Patent Text Reader

Abstract

The invention provides a multi-task unit parallel processing method, device, system and equipment and a storage medium, and the multi-task parallel processing method comprises the steps: optimizing task execution logic among a plurality of task units contained in a target task, determining parallel task units in serial task units, and executing the task execution logic among the plurality of task units in the target task; and marking the task unit and the absolutely parallel task unit as a task unit which can be parallel to the executing task unit in the task, distributing execution locks of different task units to different executors, and searching the task unit after the executors receive the execution locks. And determining whether the task unit corresponding to the allocated execution lock can be executed or not, thereby realizing the combination of serial and parallel logics and improving the execution efficiency of the task.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of industrial automation, and particularly to a multi-task unit parallel processing method, device, system, equipment and storage medium. Background Art

[0002] With the development of technology, the industrial production conditions have been gradually improved. In industrial production, automated control is widely adopted, replacing manual labor with machinery or controlling a mechanical system for industrial production. Under such production conditions, it only requires human supervision to take care of the machinery during production. For example, in the chemical industry, through chemical automation control, in the entire production management process of chemical enterprises, taking the chemical process as the control object, applying automated control technology, adopting unique control algorithms and control schemes, to achieve the organic coordination of control theory and engineering technical practice. The entire chemical process from raw material processing to finished product output is incorporated into the automated control system, realizing the automated control of the experimental process, temperature, pressure, flow rate, liquid level, etc. in the chemical process.

[0003] Existing automated equipment mainly adopts serial logic, that is, each task unit is executed sequentially. However, this serial logic may lead to a decrease in experimental efficiency in some cases. For example, if the processing time of a certain task unit is long, other task units need to wait, which greatly reduces the execution efficiency of the tasks and thus affects the working efficiency of the automated equipment. Summary of the Invention

[0004] In view of this, the present application provides a multi-task unit parallel processing method, device, system, equipment and storage medium, which solves the technical problem of low execution efficiency of tasks in the prior art.

[0005] As a first aspect of the present application, a multi-task unit parallel processing method is provided, including: obtaining second task units that can be executed in parallel among multiple task units included in a target task; allocating execution locks for the second task units according to the scheduling strategy of the multiple task units, where the execution locks include device locks and resource locks required for executing the second task units; based on the execution locks, searching for third task units that can be parallel with the task units being executed by a second executor among the second task units; and locking the device locks and resource locks corresponding to the third task units to execute the third task units.

[0006] In an embodiment of the present application, obtaining the second task units that can be executed in parallel among the multiple task units included in the target task includes: obtaining the current task execution logics of the multiple task units included in the target task; determining, according to the current task execution logics, the multiple first task units that are in series with the task unit being executed among the multiple task units, and determining the serial consumption time of each of the first task units; and determining, according to the serial consumption time of the first task units, the second task units that can be parallel with the task unit being executed among the multiple first task units.

[0007] In an embodiment of the present application, one task unit includes at least one operation. Determining, according to the serial consumption time of the first task units, the second task units that can be parallel with the task unit being executed among the multiple first task units includes: obtaining the serial consumption time of each operation in the task unit being executed; obtaining the serial consumption time of each operation in the first task unit; determining whether the devices and resources required for each operation in the first task unit conflict with the devices and resources required for each operation in the task unit being executed according to the serial consumption time of each operation in the task unit being executed and the serial consumption time of each operation in the first task unit; and when the devices and resources required for one of the operations in the first task unit do not conflict with the devices and resources required for one of the operations in the task unit being executed, determining the first task unit as the second task unit that can be parallel with the task unit being executed.

[0008] In an embodiment of the present application, allocating an execution lock to the second task units according to the scheduling policies of the multiple task units includes: obtaining the scheduling policies of the multiple second task units according to the scheduling policies of the multiple task units; when the number of the second task units ranked first in the execution sequence among the scheduling policies of the multiple second task units is 1, allocating the execution lock to the second task unit ranked first in the execution sequence; and when the number of the second task units ranked first in the execution sequence among the scheduling policies of the multiple second task units is greater than 1, allocating the execution lock to the second task unit with the highest priority among the multiple second task units ranked first in the execution sequence.

[0009] In an embodiment of the present application, searching for a third task unit that can be parallel to the task unit being executed in the second task unit based on the execution lock includes: traversing the devices and resources required for the second task unit to be executed and the corresponding device locks and resource locks based on the execution lock; obtaining the device lock and resource lock held by the task unit being executed; and when at least one of the device lock and resource lock required by the second task unit is the device lock and resource lock released by the task unit being executed, and the devices and resources required by the second task unit do not conflict with the devices and resources being used by the task unit being executed, determining that the second task unit is the third task unit.

[0010] In an embodiment of the present application, after locking the device lock and resource lock corresponding to the third task unit to execute the third task unit, the multi-task unit parallel processing method further includes: when one operation included in the third task unit is completed, releasing the device lock and / or resource lock corresponding to the one operation.

[0011] In an embodiment of the present application, after locking the device lock and resource lock corresponding to the third task unit to execute the third task unit, the multi-task unit parallel processing method further includes: when the third task unit is completed, releasing all the device locks and resource locks corresponding to the third task unit.

[0012] As a second aspect of the present application, the present application further provides a multi-task unit parallel processing device, including: an acquisition module, configured to acquire a second task unit that can be executed in parallel among a plurality of task units included in a target task; an allocation module, configured to allocate an execution lock for the second task unit according to a scheduling policy of the plurality of task units, where the execution lock includes a device lock and a resource lock required for executing the second task unit; a search module, configured to search for a third task unit that can be parallel to the task unit being executed in the second task unit based on the execution lock; and an execution module, configured to lock the device lock and resource lock corresponding to the third task unit to execute the third task unit.

[0013] As a third aspect of the present application, the present application further provides a multi-task unit parallel processing system, including a controller, a scheduler, and multiple executors. The multiple executors include a first executor and a second executor: The controller is configured to obtain second task units that can be executed in parallel among multiple task units included in a target task; The scheduler is configured to allocate an execution lock to the first executor that executes the second task unit according to the scheduling policy of the multiple task units. The execution lock includes a device lock and a resource lock required to execute the second task unit; And the first executor is configured to search for a third task unit that can be executed in parallel with the task unit being executed by the second executor in the second task unit based on the execution lock; and lock the device lock and resource lock corresponding to the third task unit to execute the third task unit.

[0014] As a fourth aspect of the present application, the present application further provides an electronic device, which includes: a processor; and a memory for storing information executable by the processor; wherein, the processor is configured to execute the multi-task unit parallel processing method described above.

[0015] As a fifth aspect of the present application, the present application further provides a computer-readable storage medium. The storage medium stores a computer program, and when the computer program is executed by a processor, it implements the multi-task unit parallel processing method described above.

[0016] The multi-task unit parallel processing method provided by the present application optimizes the task execution logic among multiple task units included in a target task, determines task units that can be executed in parallel among serial task units, and jointly records them with absolutely parallel task units as task units that can be executed in parallel with the task unit being executed in this task, and allocates execution locks for different task units to different executors. When an executor receives an execution lock, it searches for task units to determine whether the task units corresponding to the allocated execution lock can be executed, thereby realizing the combination of serial and parallel logics and improving the execution efficiency of tasks. Description of the Drawings

[0017] By describing the embodiments of the present application in more detail in conjunction with the drawings, the above and other objects, features, and advantages of the present application will become more obvious. The drawings are used to provide a further understanding of the embodiments of the present application, and constitute a part of the specification. Together with the embodiments of the present application, they are used to explain the present application and do not constitute a limitation to the present application. In the drawings, the same reference numerals generally represent the same components or steps.

[0018] Figure 1 Shown is a working principle diagram of an automated device provided by an embodiment of the present application;

[0019] Figure 2The figure shows a schematic flowchart of a multi - task unit parallel processing method provided by an embodiment of the present application;

[0020] Figure 3 The figure shows a schematic flowchart of a multi - task unit parallel processing method provided by another embodiment of the present application;

[0021] Figure 4 The figure shows a schematic diagram of the task execution logic (attributes) among multiple task units in a target task provided by an embodiment of the present application;

[0022] Figure 5 The figure shows a schematic diagram of the task execution logic (equipment, resource relationship) among multiple task units in a target task provided by another embodiment of the present application;

[0023] Figure 6 The figure shows a schematic flowchart of a multi - task unit parallel processing method provided by another embodiment of the present application;

[0024] Figure 7 The figure shows a schematic flowchart of a multi - task unit parallel processing method provided by another embodiment of the present application;

[0025] Figure 8 The figure shows a schematic flowchart of a multi - task unit parallel processing method provided by another embodiment of the present application;

[0026] Figure 9 The figure shows a schematic flowchart of a multi - task unit parallel processing method provided by another embodiment of the present application;

[0027] Figure 10 The figure shows a schematic flowchart of a multi - task unit parallel processing method provided by another embodiment of the present application;

[0028] Figure 11 The figure shows a schematic working principle diagram of a multi - task unit parallel processing device provided by an embodiment of the present application;

[0029] Figure 12 The figure shows a schematic working principle diagram of an electronic device provided by an embodiment of the present application. Detailed implementation manners

[0030] In the description of this application, the meaning of "a plurality of" is at least two, such as two, three, etc., unless otherwise specifically defined. In the embodiments of this application, all directional indications (such as up, down, left, right, front, back, top, bottom...) are only used to explain the relative positional relationship and movement conditions between components in a specific posture (as shown in the drawings). If the specific posture changes, the directional indications will also change accordingly. In addition, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or units is not limited to the listed steps or units, but optionally further includes steps or units not listed, or optionally further includes other steps or units inherent to these processes, methods, products, or devices.

[0031] In addition, the mention of "embodiment" in this context means that the specific features, structures, or characteristics described in connection with the embodiment can be included in at least one embodiment of this application. The phrase appears in various places in the specification and does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment mutually exclusive with other embodiments. Those skilled in the art will explicitly and implicitly understand that the embodiments described herein can be combined with other embodiments.

[0032] Next, the technical solutions in the embodiments of this application will be clearly and completely described with reference to the accompanying drawings in the embodiments of this application. Obviously, the described embodiments are only a part of the embodiments of this application, rather than all the embodiments. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the scope of protection of this application.

[0033] Exemplary automation device

[0034] Figure 1 The working principle diagram of an automated device provided by an embodiment of this application is shown, as Figure 1 shown, the automated device includes a processing system 1, devices and resources, wherein the processing system 1 includes a controller 50, a scheduler 10, and a plurality of actuators (for example, as Figure 1 shown, the plurality of actuators may include a first actuator 41, a second actuator 42, and a third actuator 43, etc.). Here, the automated device can be regarded as an automated workstation or experimental site for performing various experimental tasks, which may include various devices and resources required for performing experimental tasks.

[0035] Among them, a task unit is multiple task units included in a complete target task that an automated device needs to complete. For example, an automated device needs to complete a complete experiment (i.e., the target task), and this complete experiment includes multiple steps (each step can be a task unit), and each step can further include a series of operations. For example: a complete experiment (target task) includes powder adding step 1 (task unit 1), powder adding step 2 (task unit 2), pipetting step 1 (task unit 3), reaction step 1 (task unit 4), reaction step 2 (task unit 5). And powder adding step 1 further includes: moving the test tube to the tube opener (operation 1), opening the test tube lid (operation 2), moving the test tube to the powder adder (operation 3), adding powder (operation 4). An actuator is used to execute each task unit. For example, actuator 41 executes powder adding step 1, actuator 42 executes reaction step 1, and actuator 43 executes pipetting step 1.

[0036] When the device is a task unit that needs to be executed in an automated device, it needs to exclusively occupy some devices, such as a robotic arm, a powder adding device, a stirring device, an oscillating device, a detection device, etc. (for example, as Figure 1 shown, the device includes device 21, device 22, device 23, device 24, etc.). Resources are test tubes, consumables (such as Tip heads, filter heads, etc.), samples (powders, reagents, etc.), workstations, etc. that are needed in the operation of a complete task. For example, as Figure 1 shown, the resources include resource 31, resource 32, resource 33, resource 34, etc.

[0037] The controller 50 can determine the task units that can be executed in parallel among multiple task units.

[0038] A scheduler 10 corresponds to a complete target task. A scheduler 10 can schedule multiple actuators to execute corresponding task units. That is, the scheduler 10 allocates the devices and resources required for a task unit to the actuator so that the actuator can complete a task unit.

[0039] Next, the task parallel control method of the automated device will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application.

[0040] Exemplary method

[0041] Figure 2 As shown in the flowchart of a multi-task unit parallel processing method provided in an embodiment of the present application, as Figure 2 shown, the multi-task unit parallel processing method includes the following steps:

[0042] S10: Obtain the second task units that can be executed in parallel among multiple task units in the target task;

[0043] It should be noted that: The second task unit is one of multiple task units. For the convenience of understanding and distinction, it is denoted as the second task unit, that is, multiple second task units are task units that can be executed in parallel among multiple task units;

[0044] Specifically, S10 can be completed by the parallel task unit determination module in the multi-task unit parallel processing system.

[0045] Specifically, as described above, a target task (for example, a target task can be a complete experiment) includes multiple task units, and each task unit includes multiple operations. For example, an automated device needs to complete a complete experiment (i.e., a task), and this complete experiment includes multiple steps (each step can be a task unit), and each step can include a series of operations. For example: A complete experiment (task) includes powder adding step 1 (task unit 1), powder adding step 2 (task unit 2), liquid transfer step 1 (task unit 3), reaction step 1 (task unit 4), reaction step 2 (task unit 5). And powder adding step 1 includes: moving the test tube to the tube opener (operation 1), opening the test tube cap (operation 2), moving the test tube to the powder adder (operation 3), adding powder (operation 4). The actuator is used to execute each task unit. For example, actuator 1 executes powder adding step 1, actuator 2 executes reaction step 1, and actuator 3 executes liquid transfer step 1.

[0046] Specifically, the second task units that can be executed in parallel refer to that there are no conflicts in equipment and resources between two task units. For example: The second task units that can be executed in parallel can include the following two methods:

[0047] (1) According to the task execution logic of the task unit, it is clearly determined that there are no any equipment and resource conflicts among multiple task units, that is, the equipment and resources used by multiple tasks are completely different, that is, multiple task units are absolute parallel tasks.

[0048] For example, there are no conflicts between reaction step 1 (task unit 4) and reaction step 2 (task unit 5) during the execution process, and they are independent of each other. For example, the equipment and resources used in reaction step 1 are equipment 1 and resource 1 respectively, and the equipment and resources used in reaction step 2 are equipment 2 and resource 2 respectively. No matter at any time, there will be no conflicts in equipment and resources between the two reaction steps. Therefore, these two task units can be parallel task units.

[0049] (2) According to the task execution logic of the task unit, it can be determined that the equipment and resources used to execute multiple task units partially overlap but are not completely the same; it shows that multiple task units can be executed in parallel when properly regulated, that is, the task units that can be executed in parallel in serial task units.

[0050] For example, for powder adding step 1 (task unit 1) and pipetting step 1 (task unit 3), the equipment and resources used in powder adding step 1 are respectively: powder dispenser, robotic arm, lid opener, powder bucket, and test tube 1. While the equipment and resources used in pipetting step 1 are respectively: pipette pump, robotic arm, lid opener, solvent bottle, and test tube 2. Both powder adding step 1 and pipetting step 1 need to use the robotic arm and the lid opener, that is, the equipment and resources used in powder adding step 1 and pipetting step 1 are not completely the same, but both need to use the robotic arm and the lid opener. Then, after powder adding step 1 uses the robotic arm and the lid opener, pipetting step 1 can use the robotic arm and the lid opener, so that powder adding step 1 and pipetting step 1 can be parallel.

[0051] S20: According to the scheduling policies of multiple task units, allocate an execution lock to the second task unit.

[0052] Among them, the execution lock includes the equipment lock and resource lock required for executing the second task unit.

[0053] Specifically, S20 can be executed by a scheduler. That is, the scheduler allocates an execution lock to the first executor that executes the second task unit according to the scheduling policies of multiple task units, so that the first executor searches for a third task unit that can be parallel to the task unit being executed by the second executor in the second task unit according to the execution lock.

[0054] Specifically, the scheduling policies of multiple task units refer to: when scheduling executors, how to schedule task units and how to schedule operations in a task unit. The scheduling policies can be stored in a database in the form of a configuration file. A target task (including multiple task units) has a scheduling policy. When scheduling an executor, the configuration file corresponding to the target task can be searched in the database according to the target task, and data parsing can be performed on the configuration file to obtain the scheduling policies of multiple task units in the target task.

[0055] For example: The scheduling policies of multiple task units in a target task include but are not limited to the following:

[0056] (1) Task units that can be parallel: That is, which task units can be parallel. For example, the second task unit determined in S10 is a task unit that can be parallel.

[0057] (2) Task units that can be serial: That is, which task units can be serial. For example, task units with a sequential execution time (for example, after the powder adding task and the pipetting task are completed, the reaction task will be executed. Then the powder adding task and the reaction task are serial, and the pipetting task and the reaction task are serial), or task units that use the same equipment and resources (for example, the equipment and resources used in pipetting task 1 and pipetting task 2 are the same. Then pipetting task 1 and pipetting task 2 are serial).

[0058] (3) Execution order of each task unit: For example, a task unit includes pipetting step 1 (task unit 1), pipetting step 2 (task unit 2), powder adding step 1 (task unit 3), and reaction step (task unit 4). Among them, the execution order of these 4 task units is: pipetting step 1 (task unit 1) → pipetting step 2 (task unit 2) → powder adding step 1 (task unit 3) → reaction step (task unit 4).

[0059] It should be noted that the execution order of each task unit is determined by the user. Even if two task units are in a parallel relationship, when an executor faces more than two executable task units, then the first task unit to be executed is selected according to the execution order of these more than two task units.

[0060] S20 is to determine a second task unit that can be parallel to this task unit according to the scheduling strategy of the task unit.

[0061] Specifically, the number of second task units determined by S20 can be 1 or multiple. In S10, multiple second task units that can be parallel in a target task can be determined. In S20, one or more second task units that can be parallel to the currently executing task unit can be determined from these multiple second task units.

[0062] Specifically, the execution lock includes the device lock and resource lock required for executing the second task unit. Allocating the execution lock to the corresponding first executor of the second task unit enables the first executor to hold the device lock and resource lock required for executing the second task unit. When the execution conditions are met, the first executor locks the held device lock and resource lock to lock the device and resource, and executes the second task unit.

[0063] For example, when the currently executing task unit is pipetting step 1, in S20, it is first determined that pipetting step 2 and powder adding step 1 can be parallel to pipetting step 1. Then, the device lock and resource lock required for executing pipetting step 2 and powder adding step 1 are allocated to 2 executors that respectively execute pipetting step 2 and powder adding step 1 (it should be noted that an executor can only execute one task unit at a time). At this time, executor 1 can hold the device lock and resource lock required for executing this pipetting step 2. When both the device lock and resource lock are not locked, executor 1 locks the device lock and resource lock to complete the corresponding pipetting step 2. Similarly, executor 2 can hold the device lock and resource lock required for executing this powder adding step 1. When both the device lock and resource lock are not locked, executor 2 locks the device lock and resource lock to complete the corresponding powder adding step 1.

[0064] In summary, in S20, the execution locks of all second task units that can be parallel to the task unit being executed are assigned to different executors.

[0065] S30: Based on the execution lock, search for third task units in the second task units that can be parallel to the task unit being executed;

[0066] Specifically, S30 can be executed by the executor.

[0067] In S20, one or more executors (for the sake of distinction, can be the first executor) are assigned the execution locks for executing the second task units by the scheduler. After receiving the execution lock, the first executor searches for tasks to determine whether the first executor can execute the third task unit.

[0068] It should be noted that the third task unit is one of the one or more second task units. For the sake of understanding and distinction, it is denoted as the third task unit.

[0069] For example, when the currently executed task unit is pipetting step 1, in S20, the execution locks are assigned to executor 1 and executor 2. After executor 1 and executor 2 respectively hold the execution locks (equipment lock and resource lock) required for pipetting step 2 and the execution locks (equipment lock and resource lock) required for powder adding step 1, executor 1 searches for tasks after receiving the execution lock and determines whether executor 1 can execute pipetting step 2.

[0070] Specifically, determining whether executor 1 can execute pipetting step 2 means determining whether the equipment resources required for pipetting step 2 are occupied by other executors.

[0071] S40: Lock the equipment lock and resource lock corresponding to the third task unit to execute the third task unit.

[0072] Specifically, S40 can be executed by the executor.

[0073] When the executor in S30 determines that it can execute the third task unit, it locks the equipment lock of the equipment used by the third task unit and the resource lock of the resource to execute the third task unit.

[0074] For example, when the executor determines that it can execute pipetting step 2, the executor locks the equipment lock of the equipment required for pipetting step 2 and the resource lock of the resource, and executes pipetting step 2.

[0075] It should be noted that after the executor locks the equipment lock and resource lock, it indicates that the equipment and resource are currently being used by the executor. Other executors cannot use the equipment and resource.

[0076] The multi-task unit parallel processing method provided by this application optimizes the task execution logic among multiple task units included in a target task, determines the task units that can be parallelized among the serial task units, and jointly records them with the absolutely parallel task units as the task units that can be parallel to the task units being executed in this task. Different execution locks for different task units are assigned to different executors. When an executor receives an execution lock, it searches for task units to determine whether the task units corresponding to the assigned execution lock can be executed, thereby realizing the combination of serial and parallel logics and improving the execution efficiency of tasks.

[0077] In an embodiment of this application, as Figure 3 shown, S10 (obtaining the second task units that can be parallel among the multiple task units included in the target task) specifically includes the following steps:

[0078] S11: Obtain the task execution logic of multiple task units in a task included in the target task;

[0079] Specifically, the task execution logic of multiple task units refers to the dependency relationship among the multiple task units included in a target task during the execution process when executing a complete target task.

[0080] Specifically, the task execution logic of task units can be stored in the processing system in the form of a configuration file.

[0081] Specifically, the dependency relationship among multiple task units mainly includes two types of dependency relationships:

[0082] (1) Attribute dependency relationship among task units: As Figure 4 shown, the target task includes 8 task units. The raw materials required by task unit 3 are respectively completed by task unit 1 and task unit 2. Then, after task unit 1 and task unit 2 are executed, task unit 3 can be executed; similarly, after task unit 3, task unit 4, and task unit 5 are completed, task unit 6 can be executed; after task unit 6 and task unit 7 are completed, task unit 8 can be executed.

[0083] Specifically, for example: The target task is a completed experiment, which includes multiple steps (each step can be a task unit), and each step can further include a series of operations. For example: A complete experiment (target task) includes powder addition step 1 (task unit 1), powder addition step 2 (task unit 2), pipetting step 1 (task unit 3), reaction step 1 (task unit 4), and reaction step 2 (task unit 5). And powder addition step 1 includes: moving the test tube to the tube opener (operation 1), opening the test tube cap (operation 2), moving the test tube to the powder adder (operation 3), and adding powder (operation 4). After powder addition step 1 and pipetting step 1 are completed, the reaction materials required for reaction step 1 are prepared, so reaction step 1 can be executed; similarly, after powder addition step 2 and pipetting step 1 are completed, reaction step 2 can be executed.

[0084] (2) There is no attribute dependency between task units, but whether the operations in each task unit use the same equipment and / or resources. That is, in the actual execution process, the task execution logic determined by the equipment and / or resource situation between task units. That is, the task units are in series, but can also be partially parallel.

[0085] For example, Figure 5 As shown, both task unit 1 and task unit 2 have equipment 1 among the equipment they use. Then task unit 1 and task unit 2 have the same equipment, and the task execution logic of task unit 1 and task unit 2 is: task unit 1 is executed first, and then task unit 2; or task unit 2 is executed first, and then task unit 1. Similarly, when it comes to task unit 6 and task unit 7, which have the same equipment 2, the task execution logic between task unit 6 and task unit 7 can be: task unit 6 is executed first, and then task unit 7; or task unit 7 is executed first, and then task unit 6.

[0086] In summary, according to the task execution logic of task units, it is possible to determine whether there is a parallel or serial relationship between multiple task units. For example, the absolute parallel relationship between task units can be determined. As shown in 5, there is no connection in terms of any attributes and equipment / resources between task unit 4 and task unit 5, so task unit 4 and task unit 5 are in an absolute parallel relationship and can be executed simultaneously.

[0087] Similarly, according to the task execution logic, it can also be determined that there may be a parallel relationship between serial task units. For example, both task unit 1 and task unit 2 require equipment 1. Then when task unit 1 is executed and equipment 1 is used up but task unit 1 is not completed, equipment 1 can be used to execute task unit 2, making task unit 1 and task unit 2 parallel.

[0088] S12: Determine multiple first task units that are in series with the task unit being executed among the multiple task units according to the task execution logic, and determine the serial consumption time of each first task unit.

[0089] Specifically, as described in S11, among the parallel task units, there are absolutely parallel task units (that is, when the devices and resources used by the task units are absolutely non-conflicting, the task units are parallel task units). The parallel task units also include: task units that have the same device or resource but can still be parallel, such as Figure 5 task unit 1 and task unit 2 shown.

[0090] Therefore, in S12, it is to determine whether there are task units that can be partially parallel among the originally serial task units. For example, look for task unit 1 and task unit 2.

[0091] To find out whether the serial task units can be parallel, first determine the first task units that can be in series among the multiple task units (it should be noted that the first task units are one or more of the multiple task units, and for the sake of distinction, they are denoted as the first task units).

[0092] The first task units that are in series with the task unit being executed can be determined by finding the serial consumption time of each task unit and determining the first task units according to the serial consumption time.

[0093] S13: Determine the second task units that can be parallel with the task unit being executed among the multiple first task units according to the serial consumption time of the first task units.

[0094] After determining the first task units, that is, the first task units that are in series with the task unit being executed, but not every first task unit can be parallel with the task unit being executed. For example, Figure 5 as shown, task unit 1 is in series with task unit 2, task unit 3, task unit 6, and task unit 8, but task unit 3 can only be executed after task unit 2 is completed, that is to say, task unit 1 and task unit 3 cannot be parallel.

[0095] Then S13 needs to determine the task units that may be parallel with the task unit being executed among the multiple first task units that are in series with the task unit being executed.

[0096] Therefore, according to the serial consumption time of each first task unit, it is possible to find out whether there are second task units among the multiple first task units that can be parallel with the task unit being executed.

[0097] Optionally, such as Figure 6As shown, a task unit includes at least one operation. Then, S13 (determining, according to the serial time consumption of the first task unit, a second task unit that can be parallel to the task unit being executed among multiple first task units) specifically includes the following steps:

[0098] S131: Obtain the serial time consumption of each operation in the task unit being executed;

[0099] Specifically, each task unit may include multiple operations. Then, determine the serial time consumption of the multiple operations of the task unit being executed, that is, the execution order and execution time of each operation in the task unit being executed.

[0100] S132: Obtain the serial time consumption of each operation in the first task unit;

[0101] Similarly, obtain the serial time consumption of each operation in the first task unit.

[0102] S133: Determine whether the devices and resources required for each operation in the first task unit conflict with the devices and resources required for each operation in the task unit being executed according to the serial time consumption of each operation in the task unit being executed and the serial time consumption of each operation in the first task unit; and

[0103] S134: When the devices and resources required for one of the operations in the first task unit do not conflict with the devices and resources required for the operation being executed in the task unit being executed, determine the first task unit as the second task unit that can be parallel to the task unit being executed.

[0104] For example, the task unit being executed is the powder adding step 1, and there are 2 first task units determined in S12, which are the pipetting step 1 and the powder adding step 2 respectively.

[0105] The multiple operations included in the powder adding step 1 include: opening test tube 1 (resource: test tube 1, device: lid opener), moving powder bucket 1 (device: powder bucket) and test tube 1 to powder adder 1 (device: robotic arm), and adding powder (powder adder 1).

[0106] According to the serial time consumption of each operation included in the powder adding step 1, determine that the current powder adding step 1 is in the step of adding powder, that is to say, the steps of opening the test tube and moving the powder bucket and the test tube have both been completed.

[0107] The multiple operations included in the powder adding step 2 include: opening test tube 2 (resource: test tube 2, device: lid opener), moving powder bucket 2 (device: powder bucket) and test tube 2 to powder adder 2 (device: robotic arm), and adding powder (powder adder 2).

[0108] The operations included in the pipetting step 1 are: moving the test tube 2 (equipment: robotic arm), opening the test tube 2 (equipment: lid opener), and pipetting (equipment: pipette pump, resource: solvent bottle).

[0109] Since the equipment and resources required in the powder adding step 2 are: test tube 2, lid opener, robotic arm, powder bucket 2, and powder adder 2 respectively, and since the opening of the test tube, moving of the powder bucket and the test tube have been completed in the currently executing powder adding step 1, the robotic arm and the lid opener in the powder adding step 1 are not used. Then, the equipment and resources required for the powder adding step 2 do not conflict with the equipment and resources used in the currently executing powder adding step 1. Then, the powder adding step 2 can be the second task unit.

[0110] Similarly, the equipment and resources required for the pipetting step 1 are: robotic arm, lid opener, test tube 2, pipette pump, and solvent bottle respectively. Since the opening of the test tube, moving of the powder bucket and the test tube have been completed in the currently executing powder adding step 1, the robotic arm and the lid opener in the powder adding step 1 are not used. Then, the equipment and resources required for the pipetting step 1 do not conflict with the equipment and resources used in the currently executing powder adding step 1. Then, the pipetting step 1 can be determined as the second task unit.

[0111] That is, according to the serial time consumption of each operation in the currently executing task unit, it is determined whether the equipment and resources used by the currently executing task unit conflict with the equipment and resources required by the first task unit. The first task unit without conflict can be determined as the second task unit, that is, the task unit that can be parallel to the currently executing task unit.

[0112] In another embodiment of the present application, as Figure 7 shown, S20 (allocating an execution lock to the second task unit according to the scheduling policies of multiple task units) specifically includes the following steps:

[0113] S21: Obtaining the scheduling policies of multiple second task units according to the scheduling policies of multiple task units;

[0114] S22: When the number of the second task units ranked first in the execution sequence among the scheduling policies of multiple second task units is 1, allocating the execution lock to the second task unit ranked first in the execution sequence;

[0115] It should be noted that the execution sequence is determined by the execution time in the scheduling policy. For example, in S1, 3 second task units are determined, and the execution sequences of these 3 second task units are the second task unit 1, the second task unit 2, and the second task unit 3 respectively.

[0116] That is, when the number of the second task units determined in S10 is greater than 1 and there is an execution order among the scheduling policies of the second task units, directly allocate the execution lock of the second task unit 1 to one executor.

[0117] S23: When the number of the second task units that rank first in the execution sequence among the scheduling policies of multiple second task units is greater than 1, allocate the execution lock to the second task unit with the highest priority among the multiple second task units that rank first in the execution sequence.

[0118] When the execution sequences of the 3 second task units are respectively the second task unit 1 or the second task unit 2, and the second task unit 3. That is, the execution sequences of the second task unit 1 and the second task unit 2 are the same, but the second task unit with a higher execution priority, that is, allocate the execution of the second task unit with the highest priority to the executor.

[0119] That is, according to the user's scheduling policy for tasks, preferentially retrieve the execution lock of the second task unit with the highest priority and allocate it to the executor, so that the second task unit with the highest priority set by the user is executed, improving the user experience and efficiency.

[0120] In another embodiment of the present application, as Figure 8 shown, S30 (based on the execution lock, search for the third task unit that can be parallel to the task unit being executed among the second task units according to the device lock and resource lock held by the task unit being executed) specifically includes the following steps:

[0121] S31: Based on the execution lock, traverse the devices and resources required by the second task units that the first executor needs to execute, as well as the corresponding device locks and resource locks;

[0122] It should be noted that the first executor is the executor that receives the execution lock in S30. For the sake of distinction, it is denoted as the first executor. The second executor is the executor that executes the task unit being executed. For the sake of distinction, it is denoted as the second executor.

[0123] There may be multiple second task units determined in S20. Therefore, the first executor needs to determine which second task unit can be executed among the second task units, and then it is necessary to traverse the device locks and resource locks corresponding to the devices and resources required by each second task unit.

[0124] S32: Obtain the device lock and resource lock held by the second executor that is executing the second task unit;

[0125] Obtain the device lock and resource lock held by the second executor, and then the devices and resources that the second executor is using to execute the second task unit can be determined.

[0126] S33: When at least one of the device lock and resource lock required by the second task unit is the device lock and resource lock released by the second executor, and the devices and resources required by the second task unit do not conflict with the devices and resources being used by the second executor, determine that the second task unit is the third task unit.

[0127] For example:

[0128] The task unit being executed is the powder adding step 1. There are 3 second task units determined in S10, namely the pipetting step 1, the pipetting step 2, and the powder adding step 2. The control system includes executor 1 and executor 2, where executor 1 is executing the powder adding step 1. Executor 2 has the execution locks for the pipetting step 1, the pipetting step 2, and the powder adding step 2.

[0129] The multiple operations included in the powder adding step 1 include: opening test tube 1 (resource: test tube 1, device: lid opener), moving powder bucket 1 (device: powder bucket) and test tube 1 to the powder adding device 1 (device: robotic arm), and adding powder (powder adding device 1).

[0130] According to the serial time consumption of each operation included in the powder adding step 1, determine the step where powder is being added in the current powder adding step 1. That is to say, the steps of opening the test tube and moving the powder bucket and the test tube have both been completed, and the robotic arm lock and the lid opening lock have been released by executor 1.

[0131] After S31 traverses the 3 pipetting steps 1, pipetting step 2, and powder adding step 2, it is determined that:

[0132] The devices and resources required for the pipetting step 1: robotic arm, lid opener, pipetting pump, test tube 1, solvent bottle.

[0133] The devices and resources required for the pipetting step 2 are: robotic arm, lid opener, pipetting pump, test tube 2, solvent bottle.

[0134] The devices and resources required for the powder adding step 2 are: robotic arm, lid opener, powder adding device 1, powder bucket 2, test tube 2.

[0135] Among them, the powder adding device 1 used in the powder adding step 2 is being used by the first executor when executing the powder adding step 1, so the powder adding step 2 conflicts with the currently executing powder adding step 1.

[0136] The test tube 1 used in the pipetting step 1 is being used by the first executor when executing the powder adding step 1, so the pipetting step 1 conflicts with the currently executing powder adding step 1.

[0137] The test tube 2, the robotic arm (released by the first actuator), the lid opener (released by the first actuator), and the pipette pump used in the pipetting step 2 do not conflict with the powder adding step 1. Therefore, the second actuator can execute the pipetting step 2, that is, the pipetting step 2 is the third task unit.

[0138] In another embodiment of the present application, as Figure 9 shown, after S40 (locking the device lock and resource lock corresponding to the third task unit to execute the third task unit), the multi-task unit parallel processing method further includes the following steps:

[0139] S50: When one operation included in the third task unit is completed, release the device lock and / or resource lock corresponding to this operation.

[0140] That is, after one operation in the third task unit is completed, release the device lock and resource lock of the device and resources required for this operation. That is, when the third task unit has not been completed yet, but some operations have been completed, the device lock and resource lock corresponding to this operation can be released.

[0141] That is, when the actuator is executing the third task unit, for the operations that have been completed in the third task unit, the device lock and resource lock required for the completed operations can be released. For example, the multiple operations included in the powder adding step 1 include: opening the test tube 1 (resource: test tube 1, device: lid opener), moving the powder bucket 1 (device: powder bucket) and the test tube 1 to the powder adding device 1 (device: robotic arm), and adding powder (powder adding device 1).

[0142] Since the multiple operations included in the powder adding step 1 are all serial, when the powder adding step 1 is executing the powder adding step, that is to say, the two steps of opening the test tube and moving the powder bucket and the test tube (i.e., two operations) have both been completed. Then the lock corresponding to the lid opener and the lock corresponding to the robotic arm can be released.

[0143] In another embodiment of the present application, as Figure 10 shown, after S40 (executing the third task unit according to the device lock and resource lock corresponding to the third task unit), the multi-task unit parallel processing method further includes the following steps:

[0144] S60: When the third task unit is completed, release all the device locks and resource locks corresponding to the third task unit.

[0145] That is, when the third task unit is completed, the device locks and resource locks required for the third task unit can be released so that other actuators can use them to execute other task units.

[0146] As the second aspect of the present application, the present application further provides a multi-task parallel processing device, as Figure 11As shown in the figure, the multi-task parallel processing device 100 includes:

[0147] An acquisition module 101, configured to acquire second task units that can be executed in parallel among multiple task units included in a target task;

[0148] An allocation module 102, configured to allocate execution locks for the second task units according to the scheduling policies of the multiple task units, where the execution locks include device locks and resource locks required for executing the second task units;

[0149] A search module 103, configured to search for third task units that can be parallel to the task units being executed among the second task units based on the execution locks;

[0150] An execution module 104, configured to lock the device locks and resource locks corresponding to the third task units to execute the third task units.

[0151] Optionally, the acquisition module 101 may specifically be configured to acquire the current task execution logic of multiple task units included in a target task; determine, according to the current task execution logic, multiple first task units that are in series with the task units being executed among the multiple task units, and determine the serial execution time of each of the first task units; and determine, according to the serial execution time of the first task units, second task units that can be parallel to the task units being executed among the multiple first task units.

[0152] Optionally, one task unit includes at least one operation. The acquisition module 101 determines, according to the serial execution time of the first task units, second task units that can be parallel to the task units being executed among the multiple first task units, including: acquiring the serial execution time of each operation in the task unit being executed; acquiring the serial execution time of each operation in the first task unit; determining whether the devices and resources required for each operation in the first task unit conflict with the devices and resources required for each operation in the task unit being executed according to the serial execution time of each operation in the task unit being executed and the serial execution time of each operation in the first task unit; and when the devices and resources required for one of the operations in the first task unit do not conflict with the devices and resources required for one of the operations in the task unit being executed, determining the first task unit as a second task unit that can be parallel to the task unit being executed.

[0153] Optionally, the allocation module 102 may specifically be configured to obtain the scheduling policies of the multiple second task units according to the scheduling policies of the multiple task units; when the number of the second task units ranked first in the execution sequence among the scheduling policies of the multiple second task units is 1, allocate an execution lock to the second task unit ranked first in the execution sequence; when the number of the second task units ranked first in the execution sequence among the scheduling policies of the multiple second task units is greater than 1, allocate an execution lock to the second task unit with the highest priority among the multiple second task units ranked first in the execution sequence.

[0154] Optionally, the search module 103 may specifically be configured to traverse the devices and resources required by the second task units to be executed and the corresponding device locks and resource locks based on the execution lock; obtain the device locks and resource locks held by the task units being executed; and when at least one of the device locks and resource locks required by the second task units is released by the task units being executed, and the devices and resources required by the second task units do not conflict with the devices and resources being used by the task units being executed, determine that the second task unit is the third task unit.

[0155] Optionally, after locking the device lock and resource lock corresponding to the third task unit to execute the third task unit, the execution module 104 is further configured to release the device lock and / or resource lock corresponding to the operation when one operation included in the third task unit is completed.

[0156] Optionally, after locking the device lock and resource lock corresponding to the third task unit to execute the third task unit, the execution module 104 is further configured to release all the device locks and resource locks corresponding to the third task unit when the third task unit is completed.

[0157] In the multi-task unit parallel processing device provided in this application, the allocation module 102 optimizes the task execution logic among the multiple task units included in the target task, determines the task units that can be parallelized among the serial task units, and jointly records them with the absolutely parallel task units as the task units that can be parallel to the task units being executed in this task, and allocates execution locks for different task units. After receiving the execution lock, the search module 103 searches for task units to determine whether the task unit corresponding to the allocated execution lock can be executed, thereby realizing the combination of serial and parallel logics and improving the execution efficiency of work tasks.

[0158] As the third aspect of this application, this application further provides a multi-task parallel processing system, as Figure 1As shown in the figure, the multi-task parallel processing system includes: a controller 50, a scheduler 10, and a plurality of executors. The plurality of executors include a first executor 41 and a second executor 42.

[0159] The controller 50 is configured to obtain second task units that can be executed in parallel among the multiple task units included in the target task;

[0160] The scheduler 10 is configured to allocate an execution lock to the first executor that executes the second task unit according to the scheduling policy of the multiple task units;

[0161] The first executor 41, based on the execution lock, searches for third task units in the second task units that can be parallel to the task units being executed by the second executor 42; and locks the device lock and resource lock corresponding to the third task unit to execute the third task unit.

[0162] Optionally, the controller 50 may specifically be configured to obtain the current task execution logic of the multiple task units included in the target task; determine, according to the current task execution logic, multiple first task units that are serial to the task units being executed among the multiple task units, and determine the serial execution time of each of the first task units; and determine, according to the serial execution time of the first task units, second task units that can be parallel to the task units being executed among the multiple first task units.

[0163] Optionally, one of the task units includes at least one operation. The controller 50 determines, according to the serial execution time of the first task units, second task units that can be parallel to the task units being executed among the multiple first task units, including: the controller 50 obtains the serial execution time of each operation in the task unit being executed; obtains the serial execution time of each operation in the first task unit; determines whether the devices and resources required for each operation in the first task unit conflict with the devices and resources required for each operation in the task unit being executed according to the serial execution time of each operation in the task unit being executed and the serial execution time of each operation in the first task unit; and when the devices and resources required for one of the operations in the first task unit do not conflict with the devices and resources required for one of the operations in the task unit being executed, determines that the first task unit is a second task unit that can be parallel to the task unit being executed.

[0164] Optionally, the scheduler 10 may specifically be configured to obtain the scheduling policies of multiple second task units according to the scheduling policies of the multiple task units; when the number of second task units ranked first in the execution order among the scheduling policies of the multiple second task units is 1, allocate an execution lock to the second task unit ranked first in the execution order; when the number of second task units ranked first in the execution order among the scheduling policies of the multiple second task units is greater than 1, allocate an execution lock to the second task unit with the highest priority among the multiple second task units ranked first in the execution order.

[0165] Optionally, based on the execution lock, the first executor 41 searches for third task units that can be parallel to the task unit being executed by the second executor 42 among the second task units, including: based on the execution lock, traversing the devices and resources required by the second task units to be executed and the corresponding device locks and resource locks; obtaining the device locks and resource locks held by the task unit being executed by the second executor 42; and when at least one of the device locks and resource locks required by the second task unit is released by the task unit being executed, and the devices and resources required by the second task unit do not conflict with the devices and resources being used by the task unit being executed, determining that the second task unit is the third task unit.

[0166] Optionally, after the first executor 41 locks the device lock and resource lock corresponding to the third task unit to execute the third task unit, it is further configured to release the device lock and / or resource lock corresponding to the operation when one operation included in the third task unit is completed.

[0167] Optionally, after the first executor 41 locks the device lock and resource lock corresponding to the third task unit to execute the third task unit, it is further configured to release all the device locks and resource locks corresponding to the third task unit when the third task unit is completed.

[0168] In the multi-task unit parallel processing system provided by this application, the scheduler optimizes the task execution logic among multiple task units included in the target task, determines task units that can be parallel among the serial task units, and jointly records them with the absolutely parallel task units as the task units that can be parallel to the task unit being executed in this task, and allocates the execution locks of different task units to the first executor. When the first executor receives the execution lock, it searches for tasks to determine whether the task unit corresponding to the allocated execution lock can be executed, thereby realizing the combination of serial and parallel logics and improving work efficiency.

[0169] Exemplary electronic device

[0170] Next, with reference to Figure 12 the electronic device according to an embodiment of the present application will be described. Figure 12 The structural schematic diagram of the electronic device provided by an embodiment of the present application is shown.

[0171] As Figure 12 shown, the electronic device 600 includes one or more processors 601 and a memory 602.

[0172] The processor 601 may be a central processing unit (CPU) or other forms of processing units with information processing capabilities and / or information execution capabilities, and may control other components in the electronic device 600 to perform desired functions.

[0173] The memory 601 may include one or more computer program products, and the computer program products may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may include, for example, random access memory (RAM) and / or cache memory, etc. The non-volatile memory may include, for example, read-only memory (ROM), hard disk, flash memory, etc. One or more computer program information may be stored on the computer-readable storage media, and the processor 601 may run the program information to implement the multi-task unit parallel processing method or other desired functions of various embodiments of the present application described above.

[0174] In one example, the electronic device 600 may further include: an input device 603 and an output device 604, and these components are interconnected through a bus system and / or other forms of connection mechanisms (not shown).

[0175] The input device 603 may include, for example, a keyboard, a mouse, and the like.

[0176] The output device 604 may output various information to the outside. The output device 604 may include, for example, a display, a communication network, and remote output devices connected thereto, and the like.

[0177] Of course, for simplicity, Figure 12 only some of the components related to the present application in the electronic device 600 are shown, and components such as a bus, an input / output interface, etc. are omitted. In addition, according to specific application scenarios, the electronic device 600 may further include any other appropriate components.

[0178] In addition to the above methods and devices, an embodiment of the present application may also be a computer program product, which includes computer program information, and when the computer program information is run by a processor, the processor is caused to execute the steps in the multi-task unit parallel processing method according to various embodiments of the present application described in this specification.

[0179] The computer program product can be written in any combination of one or more programming languages for programming code to perform the operations of the embodiments of the present application. The programming languages include object-oriented programming languages such as Java, C++, etc., and also include conventional procedural programming languages such as the "C" language or similar programming languages. The programming code can be executed entirely on the user computing device, partially on the user device, executed as an independent software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server.

[0180] In addition, an embodiment of the present application can also be a computer-readable storage medium, on which computer program information is stored. When the computer program information is run by a processor, the processor is caused to execute the steps in the multitasking unit parallel processing method according to various embodiments of the present application in this specification.

[0181] The computer-readable storage medium can adopt any combination of one or more readable media. The readable media can be a readable signal medium or a readable storage medium. The readable storage medium can, for example, include but is not limited to an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples (non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0182] The basic principles of the present application have been described above in conjunction with specific embodiments. However, it should be noted that the advantages, advantages, effects, etc. mentioned in the present application are only examples and not limitations. It cannot be considered that these advantages, advantages, effects, etc. are essential for each embodiment of the present application. In addition, the above-disclosed specific details are only for the purposes of illustration and facilitating understanding, and not for limitation. The above details do not limit the present application to necessarily adopt the above specific details for implementation.

[0183] The block diagrams of the devices, apparatuses, equipment, and systems involved in the present application are only illustrative examples and are not intended to require or imply that they must be connected, arranged, and configured in the manner shown in the block diagrams. As those skilled in the art will recognize, these devices, apparatuses, equipment, and systems can be connected, arranged, and configured in any manner. Words such as "comprising," "including," "having," etc. are open-ended terms that mean "including but not limited to" and can be used interchangeably with each other. The word "or" and "and" used herein refer to the phrase "and / or" and can be used interchangeably with it, unless the context clearly indicates otherwise. The phrase "such as" used herein refers to the phrase "such as but not limited to" and can be used interchangeably with it.

[0184] It should also be noted that in the devices, equipment, and methods of the present application, each component or each step can be decomposed and / or recombined. These decompositions and / or recombinations should be regarded as equivalent ways of the present application.

[0185] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present application. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein can be applied to other aspects without departing from the scope of the present application. Therefore, the present application is not intended to be limited to the aspects shown herein, but rather to the broadest scope consistent with the principles and novel features disclosed herein.

[0186] The above are only the preferred embodiments of the present application, and are not intended to limit the present application. Any modifications, equivalent replacements, etc. made within the spirit and principles of the present application shall be included within the protection scope of the present application.

Claims

1. A multi-task unit parallel processing method, characterized in that, including: obtaining second task units that can be executed in parallel among multiple task units included in a target task; allocating execution locks for the second task units according to the scheduling policies of the multiple task units, where the execution locks include device locks and resource locks required for executing the second task units; searching for third task units that can be parallel to the task units being executed in the second task units based on the execution locks; and locking the device locks and resource locks corresponding to the third task units to execute the third task units.

2. The multi-task unit parallel processing method according to claim 1, characterized in that, The obtaining second task units that can be executed in parallel among multiple task units included in a target task includes: obtaining the current task execution logics of multiple task units included in a target task; determining, according to the current task execution logics, multiple first task units that are in series with the task units being executed among the multiple task units, and determining the serial execution time of each of the first task units; and determining, according to the serial execution time of the first task units, second task units that can be parallel to the task units being executed among the multiple first task units.

3. The multi-task unit parallel processing method according to claim 2, characterized in that, One task unit includes at least one operation; the determining, according to the serial execution time of the first task units, second task units that can be parallel to the task units being executed among the multiple first task units includes: obtaining the serial execution time of each operation in the task unit being executed; obtaining the serial execution time of each operation in the first task unit; determining whether the devices and resources required for each operation in the first task unit conflict with the devices and resources required for each operation in the task unit being executed according to the serial execution time of each operation in the task unit being executed and the serial execution time of each operation in the first task unit; and when the devices and resources required for one of the operations in the first task unit do not conflict with the devices and resources required for one of the operations in the task unit being executed, determining the first task unit as a second task unit that can be parallel to the task unit being executed.

4. The multi-task unit parallel processing method according to claim 2, characterized in that, The allocating execution locks for the second task units according to the scheduling policies of the multiple task units includes: obtaining the scheduling policies of the multiple second task units according to the scheduling policies of the multiple task units; when the number of second task units that are ranked first in the execution sequence among the scheduling policies of the multiple second task units is 1, allocating the execution locks to the second task unit that is ranked first in the execution sequence; when the number of second task units that are ranked first in the execution sequence among the scheduling policies of the multiple second task units is greater than 1, allocating the execution locks to the second task unit with the highest priority among the multiple second task units that are ranked first in the execution sequence.

5. The multi-task unit parallel processing method according to any one of claims 1-4, characterized in that, The searching for third task units that can be parallel to the task units being executed in the second task units based on the execution locks includes: traversing the devices and resources required for the second task units to be executed and the corresponding device locks and resource locks based on the execution locks; Obtain the device lock and resource lock held by the task unit that is being executed; and When at least one of the device lock and resource lock required by the second task unit includes the device lock and resource lock released by the task unit that is being executed, and the devices and resources required by the second task unit do not conflict with the devices and resources being used by the task unit that is being executed, determine that the second task unit is the third task unit.

6. The multi-task unit parallel processing method according to claim 5, characterized in that, After locking the device lock and resource lock corresponding to the third task unit to execute the third task unit, the multi-task unit parallel processing method further includes: When an operation included in the third task unit is completed, release the device lock and / or resource lock corresponding to the operation.

7. The multi-task unit parallel processing method according to claim 5, characterized in that, After locking the device lock and resource lock corresponding to the third task unit to execute the third task unit, the multi-task unit parallel processing method further includes: When the third task unit is completed, release all the device locks and resource locks corresponding to the third task unit.

8. A multi-task unit parallel processing device, characterized in that, Includes: An acquisition module, configured to acquire a second task unit that can be executed in parallel among multiple task units included in a target task; An allocation module, configured to allocate an execution lock to the second task unit according to the scheduling policy of the multiple task units, where the execution lock includes the device lock and resource lock required to execute the second task unit; A search module, configured to search for a third task unit that can be parallel with the task unit that is being executed among the second task units based on the execution lock; An execution module, configured to lock the device lock and resource lock corresponding to the third task unit to execute the third task unit.

9. A multi-task unit parallel processing system, characterized in that, Includes: A controller, a scheduler, and multiple executors, where the multiple executors include a first executor and a second executor; wherein: The controller is configured to acquire a second task unit that can be executed in parallel among multiple task units included in a target task; The scheduler is configured to allocate an execution lock to the first executor that executes the second task unit according to the scheduling policy of the multiple task units, where the execution lock includes the device lock and resource lock required to execute the second task unit; and The first executor is configured to search for a third task unit that can be parallel with the task unit being executed by the second executor among the second task units based on the execution lock; and lock the device lock and resource lock corresponding to the third task unit to execute the third task unit.

10. An electronic device, characterized in that, The electronic device includes: A processor; and A memory for storing information executable by the processor; Wherein, the processor is configured to execute the multi-task unit parallel processing method according to any one of claims 1-7 above.

11. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, and when the computer program is executed by a processor, it implements the multi-task unit parallel processing method according to any one of claims 1-7 above.