# US 2021/0240525 A1 · Task scheduling method, electronic device, and computer storage medium

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240525 A1
- Document ID: US20210240525A1
- Status: Published application
- Kind: A1
- Application number: 16/823,445
- Filed: 2020-03-19
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Jinpeng Liu; Jin Li; Pengfei Wu; Zhen Jia
- Web page: https://patentgrep.com/patent/US20210240525A1

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/48: Program initiating; Program switching, e.g. by interrupt
- G06F 9/4806: {Task transfer initiation or dispatching}
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/5005: {to service a request}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06N 3/045: Combinations of networks
- G06N 3/08: Learning methods
- G06N 3/105: {Shells for specifying net layout}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A method includes: if it is determined that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, scheduling, for execution, one or more tasks in the current task set that can be supported by the currently available resource; creating, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling; determining, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks that are independent of the one or more tasks in the to-be-scheduled task set, where the next task set is dependent at least in part on the current task set; and moving the subset from the next task set into the to-be-scheduled task set.

## Claims

### Claim 1

A task scheduling method, comprising:
in response to determining that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, scheduling, for execution, one or more tasks in the current task set that can be supported by the currently available resource, wherein tasks in each task set are independent of each other;
creating, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling;
determining, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks that are independent of the one or more tasks in the to-be-scheduled task set, wherein the next task set is dependent at least in part on the current task set; and
moving the subset from the next task set into the to-be-scheduled task set.

### Claim 2 (depends on 1)

The method according to claim 1, wherein each task set comprises parallel tasks of a neural network model.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the plurality of task sets are generated based on a computation graph, and the computation graph is generated by compiling the neural network model.

### Claim 4 (depends on 3)

The method according to claim 3, wherein a resource required for executing the parallel tasks is obtained by virtually compiling the computation graph.

### Claim 5 (depends on 1)

The method according to claim 1, further comprising:
determining, based on a resource required for executing tasks in the current task set, whether the currently available resource can satisfy the resource requirement of the current task set.

### Claim 6 (depends on 1)

The method according to claim 1, further comprising:
determining the currently available resource based on at least one of a computing resource and a storage resource that are currently available to the task processing system.

### Claim 7 (depends on 1)

The method according to claim 1, wherein moving the subset from the next task set into the to-be-scheduled task set comprises:
adding the subset to the to-be-scheduled task set; and
deleting the subset from the next task set.

### Claim 8

An electronic device, comprising:
at least one processing unit; and
at least one memory, wherein the at least one memory is coupled to the at least one processing unit and stores instructions to be executed by the at least one processing unit, and when the instructions are executed by the at least one processing unit, the device is caused to execute the following steps:
in response to determining that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, scheduling, for execution, one or more tasks in the current task set that can be supported by the currently available resource, wherein tasks in each task set are independent of each other;
creating, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling;
determining, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks that are independent of the one or more tasks in the to-be-scheduled task set, wherein the next task set is dependent at least in part on the current task set; and
moving the subset from the next task set into the to-be-scheduled task set.

### Claim 9 (depends on 8)

The electronic device according to claim 8, wherein each task set comprises parallel tasks of a neural network model.

### Claim 10 (depends on 9)

The electronic device according to claim 9, wherein the plurality of task sets are generated based on a computation graph, and the computation graph is generated by compiling the neural network model.

### Claim 11 (depends on 10)

The electronic device according to claim 10, wherein a resource required for executing the parallel tasks is obtained by virtually compiling the computation graph.

### Claim 12 (depends on 8)

The electronic device according to claim 8, wherein the device is further caused to execute the following steps:
determining, based on a resource required for executing tasks in the current task set, whether the currently available resource can satisfy the resource requirement of the current task set.

### Claim 13 (depends on 8)

The electronic device according to claim 8, wherein the device is further caused to execute the following steps:
determining the currently available resource based on at least one of a computing resource and a storage resource that are currently available to the task processing system.

### Claim 14 (depends on 8)

The electronic device according to claim 8, wherein the moving the subset from the next task set into the to-be-scheduled task set comprises:
adding the subset to the to-be-scheduled task set; and
deleting the subset from the next task set.

### Claim 15

A computer program product which is tangibly stored on a non-volatile computer readable medium and comprises machine-executable instructions which, when executed, causing a device to:
in response to determining that a currently available resource of a task processing system cannot satisfy a resource requirement of a to-be-executed current task set of a plurality of task sets, schedule, for execution, one or more tasks in the current task set that can be supported by the currently available resource, wherein tasks in each task set are independent of each other;
create, based on one or more tasks that have not been scheduled in the current task set, a to-be-scheduled task set for a next round of scheduling;
determine, in a next task set of the plurality of task sets that follows the current task set, a subset of tasks that are independent of the one or more tasks in the to-be-scheduled task set, wherein the next task set is dependent at least in part on the current task set; and
move the subset from the next task set into the to-be-scheduled task set.

### Claim 16 (depends on 15)

The computer program product according to claim 15, wherein each task set comprises parallel tasks of a neural network model.

### Claim 17 (depends on 16)

The computer program product according to claim 16, wherein the plurality of task sets are generated based on a computation graph, and the computation graph is generated by compiling the neural network model.

### Claim 18 (depends on 17)

The computer program product according to claim 17, wherein a resource required for executing the parallel tasks is obtained by virtually compiling the computation graph.

### Claim 19 (depends on 15)

The computer program product according to claim 15, wherein the device is further caused to execute the following step:
determining, based on a resource required for executing tasks in the current task set, whether the currently available resource can satisfy the resource requirement of the current task set.

### Claim 20 (depends on 15)

The computer program product according to claim 15, wherein the device is further caused to execute the following step:
determining the currently available resource based on at least one of a computing resource and a storage resource that are currently available to the task processing system.
