WO2024032783A1 - 任务调度的方法和电子设备 - Google Patents
任务调度的方法和电子设备 Download PDFInfo
- Publication number
- WO2024032783A1 WO2024032783A1 PCT/CN2023/112645 CN2023112645W WO2024032783A1 WO 2024032783 A1 WO2024032783 A1 WO 2024032783A1 CN 2023112645 W CN2023112645 W CN 2023112645W WO 2024032783 A1 WO2024032783 A1 WO 2024032783A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- online
- tasks
- queue
- scheduled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Definitions
- Embodiments of the present disclosure mainly relate to the field of computer technology, and more specifically, to task scheduling methods, devices, electronic devices, computer-readable storage media, and computer program products.
- AI Artificial Intelligence
- a technical solution for task scheduling is provided, which can ensure that online tasks are processed with priority, can be adapted to various scenarios, and achieve effective utilization of resources.
- a task scheduling method including: determining whether there is a task to be scheduled in an online task set of a waiting queue; and if the task to be scheduled is present in the online task set, Then, the tasks to be scheduled in the online task set are scheduled based on a preset online scheduling mode, where the preset online scheduling mode includes a sequential mode, a throughput mode, or a turn-taking mode.
- an electronic device comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the The instructions, when executed by at least one processing unit, cause the electronic device to perform actions, and the actions include: determining whether there is a task to be scheduled in a set of online tasks waiting in the queue; if the task to be scheduled is present in the set of online tasks, based on A preset online scheduling mode schedules the tasks to be scheduled in the online task set, wherein the preset online scheduling mode includes a sequential mode, a throughput mode, or a turn-taking mode.
- a task scheduling device including: a determination module configured to determine whether there is a task to be scheduled in the online task set of the waiting queue; and a scheduling module configured to: if the If the task to be scheduled exists in the online task set, the task to be scheduled in the online task set is scheduled based on a preset online scheduling mode, where the preset online scheduling mode includes a sequential mode. , throughput mode or round-robin mode.
- a computer-readable storage medium having machine-executable instructions stored thereon that, when executed by a device, cause the device to perform according to The method described in the first aspect of the present disclosure.
- a fifth aspect of the present disclosure provides a computer program product including computer-executable instructions, wherein The computer-executable instructions, when executed by the processor, implement the method described in accordance with the first aspect of the disclosure.
- a sixth aspect of the present disclosure provides an electronic device, including: a processing circuit configured to perform the method described according to the first aspect of the present disclosure.
- Figure 1 shows a schematic diagram of a scenario in which embodiments of the present disclosure can be applied
- Figure 2 shows a schematic diagram of an example architecture of a system in accordance with some embodiments of the present disclosure
- Figure 3 shows a schematic diagram of a waiting queue according to some embodiments of the present disclosure
- Figure 5 illustrates a flowchart of an example process in accordance with some embodiments of the present disclosure
- FIG. 6 illustrates a block diagram of an example apparatus according to an embodiment of the present disclosure.
- FIG. 7 illustrates a block diagram of an example device that may be used to implement embodiments of the present disclosure.
- Processing engines are generally responsible for performing specific calculations. For example, a single computing task (such as an AI task) can use multiple processing engines to calculate different parts of the data separately.
- embodiments of the present disclosure provide a technical solution for task scheduling, which ensures the delay requirements of online tasks by preferentially scheduling tasks in online task sets. And online tasks are scheduled based on the preset online scheduling mode, which can be applied to different scenarios, fully utilize the processing resources of the processing unit, and improve task processing efficiency.
- Figure 1 shows a schematic diagram of a scenario 100 in which embodiments of the present disclosure can be applied.
- a system 110 for processing tasks may include a plurality of processing engines, such as Engine 1 through Engine N shown in FIG. 1 .
- the system 110 is capable of taking input data and commands 102 and processing them using Engine 1 through Engine N to obtain output data 104 .
- the input data and commands 102 may include multiple tasks, such as multiple online tasks and/or multiple offline tasks.
- processing engine may be called “engine”, “processing unit”, “processing module” or other names, etc., which is not limited by the present disclosure.
- a “processing unit” is used as a non-limiting example.
- a system for task scheduling and processing may include multiple processing units. It can be understood that multiple processing units can be implemented as any of the following: multiple independent hardware devices, multiple hardware units (such as multiple processors) within a single hardware device, multiple peripheral component interconnect high-speed (Peripheral Component Interconnect) Express, PCIE) card, multiple chips in a single PCIE card, multiple modules or units in a single chip, etc. This disclosure is not limited to this.
- tasks may be called a subtask, a thread, or other names, which the present disclosure is not limited to.
- tasks may include AI tasks, such as AI training, AI inference and other AI computing tasks.
- FIG. 2 shows a schematic diagram of an example architecture of a system 200 in accordance with some embodiments of the present disclosure.
- the system 200 includes a plurality of processing units 210 and a scheduler 220 .
- the plurality of processing units 210 include processing units 210-1 to 210-N.
- the scheduler 220 includes a queue manager 221, a configuration manager 222, a wait queue 223, a run queue 224, and a completion queue 225.
- the queue manager 221 may be configured to add the received task to the waiting queue 223 .
- the queue manager 221 may also schedule some or all tasks in the waiting queue 223 to the run queue 224 based on the status of the multiple processing units 210 and the like.
- the queue manager 221 may comprehensively determine an appropriate task to schedule to the run queue 224 based on the free/busy information of multiple processing units 210 and the number of processing units required to wait for the task.
- adding a task to the queue may also be called placing the task in the queue, etc., or may be called other methods, and the present disclosure is not limited thereto.
- configuration manager 222 may be configured to extract tasks from run queue 224 and process the extracted tasks. For example, the configuration manager 222 may analyze the instructions corresponding to the extracted tasks and configure the corresponding one or more processing units 210 to start working. Configuration manager 222 may also add completed tasks to completion queue 225 and delete completed tasks from run queue 224 .
- the queue manager 221 may also be configured to post-process the tasks in the completion queue 225 .
- post-processing may include releasing resources of the processing unit, etc.
- the queue manager 221 of the scheduler 220 may add the received task to the waiting queue 223.
- the queue manager 221 may add the task to the waiting queue 223 based on attributes of the task and/or the scheduling mode of the scheduler 220 or the like.
- the scheduling mode may include a sequential mode, a throughput mode, a round-robin mode, etc., and embodiments of the scheduling mode will be described in detail below.
- the waiting queue 223 may include an online task queue set and an offline task queue set.
- Figure 3 shows a schematic diagram of waiting queue 223 in accordance with some embodiments of the present disclosure. As shown in FIG. 3 , the waiting queue 223 includes an online task set 310 and an offline task set 320 .
- the online task set 310 includes multiple online task subsets corresponding to multiple priorities.
- priority 1 to priority M1 represent priorities from low to high, that is, priority M1 has the highest priority. It should be understood that in other examples, priority 1 may also be assumed to have the highest priority, and this disclosure is not limited to this.
- each of the online task subsets 310-1 to 310-M1 may include an urgent task queue and a plurality of resource matching task queues.
- the online task subset 310-i1 may correspond to the priority i1 (1 ⁇ i1 ⁇ M1), and the tasks in the emergency task queue of the online task subset 310-i1 match the tasks in the task queue with respect to multiple resources. In terms of tasks, the urgency is higher and needs to be processed with priority.
- the plurality of resource matching task queues of the online task subset 310-i1 corresponds to the number of required processing units.
- the online task subset 310-1 includes an emergency task queue 311 and multiple resource matching task queues 312-1 to 312-N.
- the resource matching task queue 312-j indicates that the number of processing units required by the tasks therein is j, where 1 ⁇ j ⁇ N.
- the offline task set 320 includes a plurality of offline task subsets corresponding to a plurality of priorities.
- priority 1 to priority M2 represent priorities from low to high, that is, priority M2 has the highest priority. It should be understood that in other examples, priority 1 may also be assumed to have the highest priority, and this disclosure is not limited to this.
- M1 and M2 can be set based on online tasks and offline tasks respectively, and they can be equal or unequal, and this disclosure is not limited to this.
- each of the offline task subsets 320-1 to 320-M2 may include an emergency task queue and a plurality of resource matching task queues.
- the offline task subset 320-i2 may correspond to the priority i2 (1 ⁇ i2 ⁇ M2), and the tasks in the emergency task queue of the offline task subset 320-i2 match the tasks in the task queue with respect to the multiple resources.
- the urgency is higher and needs to be processed with priority.
- the plurality of resource matching task queues of the offline task subset 320-i2 correspond to the number of required processing units.
- the offline task subset 320-1 includes an emergency task queue 321 and multiple resource matching task queues 322-1 to 322-N.
- the resource matching task queue 322-j indicates that the number of processing units required by the tasks therein is j, where 1 ⁇ j ⁇ N.
- tasks in the embodiment of the present disclosure are divided into three levels of priority, and the priority of online tasks is higher than the priority of offline tasks.
- different task subsets have different priorities.
- the priority of tasks in the emergency queue is higher than the priority of tasks in the resource matching queue.
- the waiting queue 223 shown in Figure 3 is only illustrative, and those skilled in the art can modify it to obtain other solutions.
- the first level is online and offline
- the second level is emergency and offline.
- the waiting queue 223 shown in FIG. 3 is only an example of an embodiment of the present disclosure. During the actual task scheduling process, some subsets of tasks in the waiting queue 223 may be empty, and a certain queue may be empty, depending on the actual tasks to be processed. In some examples, it may depend on the scheduling mode, as explained in greater detail in the embodiments below.
- the queue manager 221 of the scheduler 220 may continue to receive new tasks without waiting until the waiting queue 223 (or a subset of tasks therein) is empty before receiving new tasks. This ensures real-time performance and avoids The delay caused by task reception can ensure the efficiency of task processing.
- scheduler 220 may receive a new task and add it to a corresponding location in waiting queue 223 based on the attributes of the task.
- the attributes of the task may include one or more of the following: online or offline, priority, whether it is urgent, the number of required processing units, etc.
- a newly arrived task you can first determine whether it is an online task or an offline task, then determine the corresponding online task subset or offline task subset according to the priority, and finally determine whether it is urgent and/or requires processing.
- the number of units adds the task to the corresponding queue. For example, urgent tasks are added to the urgent task queue, tasks requiring 1 processing unit are added to the resource matching task queue corresponding to the quantity 1,..., tasks requiring n processing units are added to the resource matching corresponding to the quantity n In the task queue,....
- the scheduler 220 (eg, the queue manager 221) can receive a new task and add it to the corresponding position in the waiting queue 223 based on the scheduling mode of the scheduler 220 and the attributes of the task.
- scheduling modes may include sequential mode, throughput mode, and round-robin mode.
- the attributes of a task can include one or more of the following: online or offline, priority, whether it is urgent, the number of processing units required, etc.
- the online scheduling mode of the scheduler 220 for online tasks may be at least one of sequential mode, throughput mode, or round-robin mode
- the offline scheduling mode of the scheduler 220 for offline tasks may be the throughput mode
- the task can be added to the corresponding position of the waiting queue 223 based on the scheduling mode and the attributes of the task. Specifically, if the scheduling mode is sequential mode, based on the priority of the online task, it is added to the emergency task queue of the subset of online tasks corresponding to the priority. That is to say, in sequential mode, the resource matching queue is not used, and all online tasks are in the emergency task queue.
- the emergency task queue can be set to first-in-first-out.
- the task may be added to the corresponding position of the waiting queue 223 based on the priority of the task and the required number of processing units, regardless of whether the task attribute is urgent.
- the scheduling mode is the throughput mode, the task is added to the corresponding position of the waiting queue 223 based on its attributes, as related to the description in the previous embodiment.
- the newly arrived task is an offline task, it is added to the corresponding position of the waiting queue 223 based on the attributes of the task, as described in the previous embodiments.
- the scheduling modes of online tasks and offline tasks by the scheduler 220 may be the same or different.
- the scheduling mode of the scheduler 220 may be the throughput mode, and the scheduling of online tasks and offline tasks remains unchanged.
- the scheduling mode of the scheduler 220 for online tasks is sequential mode or round-robin mode
- the scheduling mode for offline tasks is throughput mode. Then the scheduler 220 switches the scheduling mode between online tasks and offline tasks. . For example, the scheduler switches to throughput mode when it starts scheduling offline tasks, and then switches back to sequential mode or round-robin mode when it schedules online tasks.
- the throughput mode is used when scheduling offline tasks in embodiments of the present disclosure. Since offline tasks have almost no requirements on latency, the throughput mode can maximize the full utilization of resources, which can improve resource utilization and further Improve overall processing efficiency.
- FIG. 4 illustrates a flow diagram of an example process 400 in accordance with some embodiments of the present disclosure. It should be understood that process 400 may also include additional blocks not shown and/or certain blocks shown may be omitted. The scope of the present disclosure is not limited in this regard.
- the process 400 shown in FIG. 4 may be executed by the aforementioned system 200 of FIG. 2 , for example, by the scheduler 220 .
- the tasks to be scheduled in the online task set are scheduled based on the preset online scheduling mode, where the preset online scheduling mode includes sequential mode, throughput mode or turn-taking mode.
- embodiments of the present disclosure can prioritize online tasks, ensure the delay requirements of online tasks, and schedule online tasks based on preset online scheduling modes, which can be applied to different scenarios and ensure effective utilization of resources. .
- the online scheduling mode can be set based on the actual scenario of the task.
- the system of the disclosed embodiment has greater flexibility, can schedule tasks in various scenarios, and realize resource allocation requirements in various scenarios.
- the task to be scheduled in the offline task set is scheduled based on the offline scheduling mode, where the offline scheduling Modes include throughput mode.
- the waiting queue may include an online task set and an offline task set, and it may be determined whether the online task set is empty. It can be understood that an empty online task set means that there are no tasks to be scheduled (or to be processed) in the online task set. On the contrary, if the online task set is not empty, it means that there are tasks to be scheduled (or to be processed) in the online task set.
- the queue manager 221 may add the task to the corresponding position of the waiting queue based on the attributes of the task, or based on the attributes and scheduling mode of the task.
- the task may be added to the urgent task queue of the online task collection corresponding to the priority of the task.
- the scheduling mode is sequential mode, determine the priority of the arriving task, then determine the online task subset corresponding to the priority, and add the task to the emergency task queue of the corresponding online task subset , such as the emergency task queue 311 shown in Figure 3 . In this way, only the emergency task queue in the online task set is used for task scheduling (for example, it is not empty), while the rest of the resource matching task queues are empty and are not used for task scheduling.
- the arriving task is an online task and the scheduling mode is round-robin mode
- the task can be added to the task corresponding to the priority of the task based on the priority of the task and the number of processing units required by the task.
- the resource matching task queue corresponding to this number is in.
- the scheduling mode is the round-robin mode
- the arriving tasks will only be added to the resource matching task queue, such as the multiple resource matching task queues 312-1 to 312-N shown in Figure 3. In this way, only the resource matching task queue in the online task set is used for task scheduling (for example, it is not empty), while the rest of the emergency task queues are empty and are not used for task scheduling.
- the task can be added to the online task set with its priority based on the priority of the task, whether it is urgent, and the number of required processing units.
- a subset of online tasks corresponding to the level Specifically, if the arriving task is an urgent online task, the task is added to the urgent task queue in the subset of online tasks corresponding to its priority. If the arriving task is a non-urgent online task, then based on the number of processing units required by the task, the task is added to the subset of online tasks corresponding to its priority and the resource matching corresponding to the number of processing units it requires. in the task queue.
- the task can be further added to the offline task sub-set corresponding to its priority based on the priority of the task, whether it is urgent, and the number of required processing units. concentrated. Specifically, if the arriving task is an urgent offline task, the task is added to the Its priority is in the emergency task queue in the subset of offline tasks. If the arriving task is a non-urgent offline task, then based on the number of processing units required by the task, the task is added to the subset of offline tasks corresponding to its priority and matched with resources corresponding to the number of processing units it requires. in the task queue.
- the sequential mode means that the tasks to be scheduled in the online task set are scheduled sequentially in time order.
- the queue manager 221 may select tasks to be scheduled from the waiting queue 223 based on the sequential mode and add them to the run queue 224.
- the configuration manager 222 can process the tasks in the run queue 224 .
- each task in the online task set in the waiting queue has its own timestamp, which can represent the time when the task arrives or the time the task is added to.
- the disclosure does not limit the waiting time in the queue, etc.
- the order may be determined based on the timestamp. In this way, the earliest arriving online task will be scheduled first, or it can be understood as a "first in, first out" mechanism.
- the preset online scheduling mode is a sequential mode
- a subset of non-empty online tasks with the highest priority can be determined, and the tasks in the subset of non-empty online tasks with the highest priority can be scheduled in time order.
- the round-robin mode represents round-robin scheduling of tasks to be scheduled in multiple online task subsets of the online task set.
- the queue manager 221 may select tasks to be scheduled from the waiting queue 223 based on the round-robin mode and add them to the running queue 224 .
- the configuration manager 222 can process the tasks in the run queue 224 .
- each task in the online task set in the waiting queue has its own timestamp, which can represent the time when the task arrives or the time the task is added to.
- the disclosure does not limit the waiting time in the queue, etc.
- the preset online scheduling mode is the round-robin mode
- a subset of non-empty online tasks with the highest priority can be determined, and tasks in the subset of non-empty online tasks with the highest priority can be matched according to multiple resources. Queues are scheduled in the order they take turns. Alternatively, the order of turns may be the order of the corresponding numbers from large to small, or from small to large, which is not limited by the present disclosure.
- a task in the online task subset corresponding to the number 1 can be scheduled first, and then a task in the online task subset corresponding to the number 2 can be scheduled,..., Rescheduling one task from the subset of online tasks corresponding to the number N.
- a task in the online task subset corresponding to the number N can be scheduled first, and then a task in the online task subset corresponding to the number N-1 can be scheduled. ,..., and then schedule a task in the subset of online tasks corresponding to the number 1. In this way, it can be applied to scenarios that ensure fairness and achieve fair scheduling of tasks in multiple online task subsets.
- the throughput mode means that the tasks to be scheduled in the emergency task queues of multiple task subsets are first scheduled based on priorities. If the multiple emergency task queues are empty, multiple task subsets are scheduled based on priorities. The resources in the set match the tasks to be scheduled in the task queue for scheduling.
- the queue manager 221 may select tasks to be scheduled from the waiting queue 223 based on the throughput mode and add them to the run queue 224.
- the configuration manager 222 can process the tasks in the run queue 224 .
- the online task set includes multiple online task subsets, and the multiple online task subsets correspond to multiple different priorities. Furthermore, each of the plurality of online task subsets includes an emergency task queue and a plurality of resource matching task queues.
- scheduling tasks in the online task set based on the throughput mode may include: if the emergency task queue in the online task set is not empty, scheduling tasks in the emergency task queues of multiple online task subsets based on priority. Scheduling; if the emergency task queue in the online task set is empty, the tasks in the resource matching task queue of multiple online task subsets are scheduled based on priority.
- Figure 5 illustrates a flowchart of an example process 500 for scheduling tasks in an online task set in accordance with some embodiments of the present disclosure.
- tasks in the urgent task queue of the online task collection are scheduled.
- tasks in the multiple resource matching task queues of the online task set are scheduled based on the status of the multiple processing units.
- the online task set includes multiple urgent task queues with multiple priorities.
- the tasks in each emergency task queue in the multiple emergency task queues may be scheduled sequentially in order from high to low priorities.
- the emergency task queue with the highest priority may be determined whether the emergency task queue with the highest priority is empty, and if not, the tasks in the emergency task queue with the highest priority are scheduled. If the emergency task queue with the highest priority is empty, determine whether the emergency task queue with the second highest priority is empty. In this way, multiple emergency task queues can be scheduled sequentially in order of priority.
- the multiple emergency task queues include a first emergency task queue with a first priority, and the first emergency task queue includes multiple emergency tasks, then the multiple emergency tasks can be scheduled in time order. In this way, an emergency task queue can be scheduled in chronological order.
- the tasks to be scheduled in the resource matching task queues of multiple task subsets may be scheduled based on priority.
- scheduling can be based on multiple priorities and based on the number of currently idle processing units.
- a first number of processing units with an idle status among the plurality of processing units may be determined; and a first target resource matching task queue in the plurality of online task subsets may be determined, wherein the first target resource matching task queue is the same as the first The resource corresponding to the quantity matches the non-empty queue with the highest priority in the task queue; and the first target resource matches the to-be-scheduled task in the task queue.
- tasks matching the first number can be prioritized for scheduling.
- the resource matching task queues corresponding to the first number in the plurality of online task subsets are all empty, then determining the second target resource matching task queue and the third target resource matching task queue in the plurality of online task subsets,
- the second target resource matching task queue is the non-empty queue with the highest priority in the resource matching task queue corresponding to the second quantity
- the third target resource matching task queue is the resource matching task queue corresponding to the third quantity.
- the non-empty queue with the highest priority and the sum of the second and third quantities equals the first quantity.
- the tasks to be scheduled in the second target resource matching task queue and the tasks to be scheduled in the third target resource matching task queue may be scheduled.
- idle processing units can be fully utilized. For example, idle processing units can be combined as much as possible.
- the land is fully used, which can improve resource utilization.
- each resource matching task queue in the plurality of online task subsets has a corresponding weight.
- the corresponding weight is increased by a preset step value. In some examples, if the number of tasks in a subset of multiple online tasks When the corresponding weight of a resource matching task queue reaches the preset threshold, all tasks in the first resource matching task queue are added to the first emergency task queue, where the first resource matching task queue and the first emergency task queue belong to the same A subset of online tasks.
- the weight of the task in the task queue can be increased for unscheduled resource matching, so that it can be added to the emergency task queue after being unscheduled for many times. This can prevent the online task from being unscheduled for a long time, thus ensuring that A certain amount of fairness.
- the tasks in the offline task set can be scheduled.
- the offline tasks in the offline task set can be scheduled based on the throughput mode. For example, regarding the throughput mode, reference can be made to the aforementioned combination of scheduling methods for online tasks. To simplify the example, it will not be repeated here.
- the scheduling of offline tasks may sample a slow start mechanism. Specifically, considering the continuity of tasks, that is, the queue manager 221 can continuously receive new tasks. Then, when scheduling offline tasks in this disclosure, you can try to receive new online tasks, so as to ensure the delay requirements of online tasks.
- the offline tasks may not be scheduled immediately. Instead, new tasks may be attempted to be received first. If a new online task is successfully received, the online task can be scheduled. If a new online task is not successfully received (such as an offline task is received or no task is received), the offline task can be scheduled.
- an attempt may be made to receive a new online task; if no new online task is received through the first attempt, a first predetermined number of tasks in the offline task set are scheduled; and if no new online task is received through the second attempt, When a new online task is received, a second predetermined number of tasks in the offline task set is scheduled, where the second predetermined number is greater than the first predetermined number.
- the received online task will be scheduled, so as to ensure the delay requirement of the online task. If no new online tasks are received on the next try, the number of scheduled offline tasks can be increased until a predetermined maximum number (e.g. 8 or other value).
- a predetermined maximum number e.g. 8 or other value
- the scheduling may be based on the throughput mode.
- the first predetermined number of tasks include tasks to be scheduled in an emergency task list of the offline task set determined based on priority order. If all urgent task lists in the offline task collection are empty, resources in the multiple offline task subsets of the offline task collection are scheduled based on priority to match the offline tasks in the task queue.
- the offline scheduling mode for scheduling offline tasks is throughput mode.
- the online scheduling mode can be switched to an online scheduling mode, such as sequential mode or turn-taking mode, so that automatic switching between different scheduling modes can be achieved.
- the waiting queue 223 can be set to three levels, so that it can be applied to various scenarios.
- the online scheduling mode can be set based on scenarios to ensure resource allocation requirements in different scenarios.
- Figure 6 shows a schematic block diagram of an example apparatus 600 in accordance with some embodiments of the present disclosure.
- Device 600 can be implemented by software, hardware, or a combination of both.
- apparatus 600 may be implemented as an electronic device.
- apparatus 600 may include scheduler 220 as shown in Figure 2.
- the device 600 includes a determining module 610 and a scheduling module 620.
- the determination module 610 is configured to determine whether there is a task to be scheduled in the online task set of the waiting queue.
- the scheduling module 620 is configured to: if there are tasks to be scheduled in the online task set, schedule the tasks to be scheduled in the online task set based on a preset online scheduling mode, where the preset online scheduling mode is a sequential mode, Throughput mode or round robin mode.
- the scheduling module 620 may also be configured to: if there is no task to be scheduled in the online task set, schedule the task to be scheduled in the offline task set based on the offline scheduling mode, where the offline scheduling mode for throughput mode.
- the sequential mode means that the tasks to be scheduled in the online task set are scheduled sequentially in time order.
- the scheduling module 620 may be configured to: if the arriving task is an online task and the online scheduling mode is a sequential mode, add the arriving task to an emergency task queue corresponding to the priority of the arriving task in the online task set middle.
- each task in the urgent task queue has a corresponding timestamp.
- the round-robin mode represents round-robin scheduling of tasks to be scheduled in multiple resource-matching task queues of the online task set.
- the scheduling module 620 may be configured to: if the arriving task is an online task and the online scheduling mode is the round-robin mode, then based on the priority of the arriving task and the number of required processing units, add the arriving task to In the resource matching task queue corresponding to the quantity in the subset of online tasks corresponding to the priority of the arriving task, different resource matching task queues in the multiple resource matching task queues correspond to different quantities.
- the throughput mode means: first scheduling tasks to be scheduled in the emergency task queues of multiple task subsets based on priority, and if multiple emergency task queues are empty, then scheduling multiple tasks based on priority.
- the subset of resources matches the tasks to be scheduled in the task queue for scheduling.
- the task subset includes multiple online task subsets in the online task set, the multiple online task subsets correspond to multiple different priorities, and each online task subset in the multiple online task subsets includes an emergency task Queues and multiple resources match task queues.
- the scheduling module 620 may be configured to: determine a first number of processing units with an idle status among the plurality of processing units; determine a first target resource matching task queue in the plurality of online task subsets, where the first target resource matching task queue is equal to The resource corresponding to the first quantity matches the non-resource with the highest priority in the task queue. Empty the queue; and schedule the tasks to be scheduled in the first target resource matching task queue.
- the scheduling module 620 may be configured to: if the resource matching task queues corresponding to the first number in the plurality of online task subsets are all empty, determine the second target resource matching task queue in the plurality of online task subsets and The third target resource matching task queue is the non-empty queue with the highest priority among the resource matching task queues corresponding to the second quantity.
- the third target resource matching task queue is the resource matching task queue corresponding to the third quantity.
- the resource matches the non-empty queue with the highest priority in the task queue, and the sum of the second quantity and the third quantity is equal to the first quantity; and the second target resource matches the to-be-scheduled task and the third target resource in the task queue. Match the tasks to be scheduled in the task queue for scheduling.
- each resource matching task queue in the plurality of online task subsets has a corresponding weight
- the scheduling module 620 may also be configured to: target resource matching task queues in the plurality of online task subsets except the first target resource matching task queue. Each remaining resource matches the task queue and increases the corresponding weight by a preset step value.
- the scheduling module 620 may be configured to: if the corresponding weight of the first resource matching task queue in the plurality of online task subsets reaches a preset threshold, then add all the tasks in the first resource matching task queue to the first resource matching task queue. In an emergency task queue, the first resource matching task queue and the first emergency task queue belong to the same online task subset.
- the scheduling module 620 may be configured to: if the arriving task is an offline task, based on the priority of the arriving task, add the arriving task to a subset of offline tasks corresponding to the priority in the offline task set.
- the scheduling module 620 may be configured to: if the arriving task is an urgent offline task, then add the arriving task to the emergency task queue in the offline task subset corresponding to the priority; if the arriving task is a non- For urgent offline tasks, based on the number of processing units required by the arriving task, the arriving task is added to the resource matching task queue corresponding to the number in the offline task subset corresponding to the priority.
- the scheduling module 620 may be configured to: try to receive new online tasks; if no new online tasks are received through the first attempt, schedule a first predetermined number of tasks in the offline task set ; and if no new online tasks are received through the second attempt, scheduling a second predetermined number of tasks in the offline task set, where the second predetermined number is greater than the first predetermined number.
- the first predetermined number of tasks includes to-be-scheduled tasks in an emergency task list of the offline task set determined based on priority order.
- the device 600 in Figure 6 can be used to implement the process described above in conjunction with Figures 4 to 5. For the sake of brevity, details will not be described again here.
- each functional unit in the disclosed embodiments may be integrated In a unit, it may exist physically alone, or two or more units may be integrated into one unit.
- the above integrated units can be implemented in the form of hardware or software functional units.
- FIG. 7 illustrates a block diagram of an example device 700 that may be used to implement embodiments of the present disclosure. It should be understood that the device 700 shown in FIG. 7 is merely exemplary and should not constitute any limitation on the functionality and scope of the implementations described herein. For example, device 700 may be used to perform process 400 and/or process 500 described above.
- device 700 is in the form of a general purpose computing device.
- the components of computing device 700 may include, but are not limited to, one or more processors or processing units 710, memory 720, storage devices 730, one or more communication units 740, one or more input devices 750, and one or more output devices. 760.
- the processing unit 710 may be a real or virtual processor and can perform various processes according to a program stored in the memory 720 . In multiprocessor systems In the system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of the computing device 700.
- Computing device 700 typically includes a plurality of computer storage media. Such media may be any available media that is accessible to computing device 700, including, but not limited to, volatile and nonvolatile media, removable and non-removable media.
- the memory 720 may be a volatile memory (such as a register, a cache, a random access memory (RAM)), a non-volatile memory (such as a read only memory (ROM), an electrically erasable memory) Programmable read-only memory (Electrically Erasable Programmable Read Only Memory, EEPROM), flash memory) or some combination thereof.
- Storage device 730 may be a removable or non-removable medium and may include machine-readable media such as a flash drive, a magnetic disk, or any other medium that may be capable of storing information and/or data (such as training data for training ) and can be accessed within computing device 700.
- machine-readable media such as a flash drive, a magnetic disk, or any other medium that may be capable of storing information and/or data (such as training data for training ) and can be accessed within computing device 700.
- Computing device 700 may further include additional removable/non-removable, volatile/non-volatile storage media.
- a disk drive may be provided for reading from or writing to a removable, non-volatile disk (eg, a "floppy disk") and for reading from or writing to a removable, non-volatile optical disk. Read or write to optical disc drives.
- each drive may be connected to the bus (not shown) by one or more data media interfaces.
- Memory 720 may include a computer program product 725 having one or more program modules configured to perform various methods or actions of various implementations of the disclosure.
- the communication unit 740 enables communication with other computing devices through communication media. Additionally, the functionality of the components of computing device 700 may be implemented as a single computing cluster or as multiple computing machines capable of communicating over a communications connection. Accordingly, computing device 700 may operate in a networked environment using a logical connection to one or more other servers, a network personal computer (PC), or another network node.
- PC network personal computer
- Input device 750 may be one or more input devices, such as a mouse, keyboard, trackball, etc.
- Output device 760 may be one or more output devices, such as a display, speakers, printer, etc.
- Computing device 700 may also communicate via communication unit 740 as needed with one or more external devices (not shown), such as storage devices, display devices, etc., and one or more devices that enable a user to interact with computing device 700 Communicate with or with any device (eg, network card, modem, etc.) that enables computing device 700 to communicate with one or more other computing devices. Such communication may be performed via an Input/Output (I/O) interface (not shown).
- I/O Input/Output
- a computer-readable storage medium is provided with computer-executable instructions stored thereon, wherein the computer-executable instructions are executed by a processor to implement the method described above.
- a computer program product is also provided, the computer program product is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, and the computer-executable instructions are executed by a processor to implement the method described above.
- a computer program product is provided, a computer program is stored thereon, and when the program is executed by a processor, the method described above is implemented.
- These computer-readable program instructions may be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, thereby producing a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, the computer-readable program instructions , resulting in an apparatus that implements the functions/actions specified in one or more blocks in the flowchart and/or block diagram.
- These computer-readable program instructions can also be stored in a computer-readable storage medium, These instructions cause a computer, programmable data processing apparatus, and/or other equipment to operate in a particular manner.
- a computer-readable medium storing the instructions includes an article of manufacture that includes implementing one or more of the flowcharts and/or block diagrams. Instructions for various aspects of the function/action specified in each box.
- Computer-readable program instructions may be loaded onto a computer, other programmable data processing apparatus, or other equipment, causing a series of operating steps to be performed on the computer, other programmable data processing apparatus, or other equipment to produce a computer-implemented process, Thereby, instructions executed on a computer, other programmable data processing apparatus, or other equipment implement the functions/actions specified in one or more blocks of the flowcharts and/or block diagrams.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions that contains one or more executable functions for implementing the specified logical functions instruction.
- the functions noted in the block may occur out of the order noted in the figures. For example, two consecutive blocks may actually execute substantially in parallel, or they may sometimes execute in the reverse order, depending on the functionality involved.
- each block of the block diagram and/or flowchart illustration, and combinations of blocks in the block diagram and/or flowchart illustration can be implemented by special purpose hardware-based systems that perform the specified functions or acts. , or can be implemented using a combination of specialized hardware and computer instructions.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
Description
Claims (20)
- 一种任务调度的方法,包括:确定等待队列的在线任务集合中是否存在待调度的任务;以及如果所述在线任务集合中存在所述待调度的任务,则基于预先设置的在线调度模式对所述在线任务集合中的所述待调度的任务进行调度,其中所述预先设置的在线调度模式包括顺序模式、吞吐模式或者轮流模式。
- 根据权利要求1所述的方法,其中所述顺序模式表示对所述在线任务集合中的所述待调度的任务按照时间顺序依次进行调度。
- 根据权利要求2所述的方法,还包括:如果到达的任务是在线任务并且所述在线调度模式是所述顺序模式,则将所述到达的任务添加到所述在线任务集合的与所述到达的任务的优先级对应的紧急任务队列中。
- 根据权利要求3所述的方法,其中所述紧急任务队列中的每个任务具有对应的时间戳。
- 根据权利要求1所述的方法,其中所述轮流模式表示对所述在线任务集合的多个资源匹配任务队列中的所述待调度的任务进行轮流调度。
- 根据权利要求5所述的方法,所述方法还包括:如果到达的任务是在线任务并且所述在线调度模式是所述轮流模式,则基于所述到达的任务的优先级和所需要的处理单元的数量,将所述到达的任务添加到与所述到达的任务的优先级对应的在线任务子集中的、与所述所需要的处理单元的数量对应的资源匹配任务队列中,其中所述多个资源匹配任务队列中不同的资源匹配任务队列对应不同的数量。
- 根据权利要求1所述的方法,其中所述吞吐模式表示:先基于优先级对多个任务子集的紧急任务队列中的待调度的任务进行调度,如果所述多个紧急任务队列为空,则基于优先级对所述多个任务子集的资源匹配任务队列中的待调度的任务进行调度。
- 根据权利要求7所述的方法,其中所述任务子集包括所述在线任务集合中的多个在线任务子集,所述多个在线任务子集对应于多个不同的优先级,所述多个在线任务子集中每个在线任务子集包括紧急任务队列和多个资源匹配任务队列,并且其中基于优先级对所述多个任务子集的资源匹配任务队列中的待调度的任务进行调度包括:确定多个处理单元中状态为空闲的处理单元的第一数量;确定所述多个在线任务子集中的第一目标资源匹配任务队列,所述第一目标资源匹配任务队列为与所述第一数量对应的资源匹配任务队列中的具有最高优先级的非空队列;以及对所述第一目标资源匹配任务队列中的待调度的任务进行调度。
- 根据权利要求8所述的方法,还包括:如果所述多个在线任务子集中与所述第一数量对应的资源匹配任务队列都为空,则确定所述多个在线任务子集中的第二目标资源匹配任务队列和第三目标资源匹配任务队列,所述第二目标资源匹配任务队列为与第二数量对应的资源匹配任务队列中的具有最高优先级的非空队列,所述第三目标资源匹配任务队列为与第三数量对应的资源匹配任务队列中的具有最高优先级的非空队列,所述第二数量与所述第三数量之和等于所述第一数量;以及对所述第二目标资源匹配任务队列中的待调度的任务和所述第三目标资源匹配任务队列中的待调度的任务进行调度。
- 根据权利要求8所述的方法,其中所述多个在线任务子集中的每个资源匹配任务队列具有对应的权重,所述方法还包括:针对所述多个在线任务子集中的除所述第一目标资源匹配任务队列之外的其余的每个资源匹配任务队列,将对应的权重增加预设步进值。
- 根据权利要求10所述的方法,还包括:如果所述多个在线任务子集中的第一资源匹配任务队列的对应的权重达到预设阈值,则将所述第一资源匹配任务队列中的任务都添加到第一紧急任务队列中,其中所述第一资源匹配任务队列和所述第一紧急任务队列属于同一个在线任务子集。
- 根据权利要求1所述的方法,还包括:如果所述在线任务集合中不存在待调度的任务,则基于离线调度模式对离线任务集合中的待调度的任务进行调度,其中所述离线调度模式包括所述吞吐模式。
- 根据权利要求12所述的方法,其中对离线任务集合中的待调度的任务进行调度包括:尝试接收新的在线任务;如果通过第一次尝试未接收到新的在线任务,则对所述离线任务集合中的第一预定数量的任务进行调度;以及如果通过第二次尝试未接收到新的在线任务,则对所述离线任务集合中的第二预定数量的任务进行调度,其中所述第二预定数量大于所述第一预定数量。
- 根据权利要求13所述的方法,其中所述第一预定数量的任务包括基于优先级顺序而确定的、所述离线任务集合的紧急任务列表中的待调度任务。
- 根据权利要求12所述的方法,还包括:如果到达的任务是离线任务,则基于所述到达的任务的优先级,将所述到达的任务添加到所述离线任务集合中与所述优先级对应的离线任务子集中。
- 根据权利要求15所述的方法,还包括:如果所述到达的任务为紧急的离线任务,则将所述到达的任务添加到与所述优先级对应的所述离线任务子集中的紧急任务队列中;如果所述到达的任务为非紧急的离线任务,则基于所述到达的任务所需处理单元的数量,将所述到达的任务添加到与所述优先级对应的所述离线任务子集中的与所述所需处理单元的数量对应的资源匹配任务队列中。
- 一种电子设备,包括:至少一个处理单元;至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时使得所述电子设备执行动作,所述动作包括:确定等待队列的在线任务集合中是否存在待调度的任务;以及如果所述在线任务集合中存在所述待调度的任务,则基于预先设置的在线调度模式对所述在线任务集合中的所述待调度的任务进行调度,其中所述预先设置的在线调度模式包括顺序模式、吞吐模式或者轮流模式。
- 一种任务调度的装置,包括:确定模块,被配置为确定等待队列的在线任务集合中是否存在待调度的任务;以及调度模块,被配置为:如果所述在线任务集合中存在所述待调度的任务,则基于预先设 置的在线调度模式对所述在线任务集合中的所述待调度的任务进行调度,其中所述预先设置的在线调度模式包括顺序模式、吞吐模式或者轮流模式。
- 一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1至16中任一项所述的方法。
- 一种计算机程序产品,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1至16中任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP23852003.5A EP4530841A4 (en) | 2022-08-11 | 2023-08-11 | TASK PLANNING METHOD AND ELECTRONIC DEVICE |
| US19/002,531 US12474958B2 (en) | 2022-08-11 | 2024-12-26 | Task scheduling based on scheduling mode |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210964273.2 | 2022-08-11 | ||
| CN202210964273.2A CN117632392A (zh) | 2022-08-11 | 2022-08-11 | 任务调度的方法和电子设备 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US19/002,531 Continuation US12474958B2 (en) | 2022-08-11 | 2024-12-26 | Task scheduling based on scheduling mode |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024032783A1 true WO2024032783A1 (zh) | 2024-02-15 |
Family
ID=89851032
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/112645 Ceased WO2024032783A1 (zh) | 2022-08-11 | 2023-08-11 | 任务调度的方法和电子设备 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12474958B2 (zh) |
| EP (1) | EP4530841A4 (zh) |
| CN (1) | CN117632392A (zh) |
| WO (1) | WO2024032783A1 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117931456A (zh) * | 2024-03-20 | 2024-04-26 | 石家庄科林电气股份有限公司 | 多任务调度方法、装置及处理芯片 |
| CN119440777A (zh) * | 2025-01-10 | 2025-02-14 | 浪潮云信息技术股份公司 | 一种操作系统调度算法优化方法及装置 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120670125B (zh) * | 2025-08-21 | 2026-01-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种计算任务处理方法、设备、介质及产品 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107977268A (zh) * | 2017-10-13 | 2018-05-01 | 北京百度网讯科技有限公司 | 人工智能的异构硬件的任务调度方法、装置及可读介质 |
| CN112130963A (zh) * | 2020-09-30 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 虚拟机任务的调度方法、装置、计算机设备及存储介质 |
| CN113282381A (zh) * | 2020-02-19 | 2021-08-20 | 中科寒武纪科技股份有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
| CN114579279A (zh) * | 2022-03-07 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法及装置 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7451447B1 (en) * | 1998-08-07 | 2008-11-11 | Arc International Ip, Inc. | Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls |
| TW540205B (en) * | 2001-02-27 | 2003-07-01 | Ind Tech Res Inst | Real-time scheduling mechanism capable of controlling quality of service |
| US9304817B2 (en) * | 2013-11-25 | 2016-04-05 | Xerox Corporation | Method and apparatus for a user-driven priority based job scheduling in a data processing platform |
| CN107885594B (zh) * | 2016-09-30 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 分布式资源调度方法、调度节点及接入节点 |
| CN106775977B (zh) * | 2016-12-09 | 2020-06-02 | 北京小米移动软件有限公司 | 任务调度方法、装置及系统 |
| US10984011B1 (en) * | 2017-12-31 | 2021-04-20 | Allscripts Software, Llc | Distributing non-transactional workload across multiple database servers |
| CN110837410B (zh) * | 2019-10-30 | 2022-05-24 | 北京奇艺世纪科技有限公司 | 任务调度方法、装置、电子设备及计算机可读存储介质 |
| CN113448743B (zh) * | 2020-03-25 | 2024-02-23 | 伊姆西Ip控股有限责任公司 | 用于任务处理的方法、电子设备以及计算机程序产品 |
| CN113592209A (zh) * | 2021-02-04 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 一种模型训练任务管理方法、装置、终端和存储介质 |
| US11206221B1 (en) * | 2021-06-04 | 2021-12-21 | National University Of Defense Technology | Online task dispatching and scheduling system and method thereof |
| CN113886052A (zh) * | 2021-10-26 | 2022-01-04 | 上海商汤科技开发有限公司 | 任务调度方法、装置、设备、存储介质 |
-
2022
- 2022-08-11 CN CN202210964273.2A patent/CN117632392A/zh active Pending
-
2023
- 2023-08-11 EP EP23852003.5A patent/EP4530841A4/en active Pending
- 2023-08-11 WO PCT/CN2023/112645 patent/WO2024032783A1/zh not_active Ceased
-
2024
- 2024-12-26 US US19/002,531 patent/US12474958B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107977268A (zh) * | 2017-10-13 | 2018-05-01 | 北京百度网讯科技有限公司 | 人工智能的异构硬件的任务调度方法、装置及可读介质 |
| CN113282381A (zh) * | 2020-02-19 | 2021-08-20 | 中科寒武纪科技股份有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
| CN112130963A (zh) * | 2020-09-30 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 虚拟机任务的调度方法、装置、计算机设备及存储介质 |
| CN114579279A (zh) * | 2022-03-07 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 任务调度方法及装置 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4530841A4 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117931456A (zh) * | 2024-03-20 | 2024-04-26 | 石家庄科林电气股份有限公司 | 多任务调度方法、装置及处理芯片 |
| CN119440777A (zh) * | 2025-01-10 | 2025-02-14 | 浪潮云信息技术股份公司 | 一种操作系统调度算法优化方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20250130854A1 (en) | 2025-04-24 |
| EP4530841A1 (en) | 2025-04-02 |
| CN117632392A (zh) | 2024-03-01 |
| US12474958B2 (en) | 2025-11-18 |
| EP4530841A4 (en) | 2025-11-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024032783A1 (zh) | 任务调度的方法和电子设备 | |
| CN114327843B (zh) | 任务调度方法及装置 | |
| Wang et al. | Fresh: Fair and efficient slot configuration and scheduling for hadoop clusters | |
| CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
| CN106897132A (zh) | 一种服务器任务调度的方法以及装置 | |
| CN101840328B (zh) | 一种数据处理方法及系统以及相关设备 | |
| CN115904671A (zh) | 一种边缘计算环境下的任务调度方法、装置、设备及介质 | |
| CN106293918A (zh) | 一种调度进程的方法、系统及计算机 | |
| CN107341041A (zh) | 基于优先队列的云任务多维约束回填调度方法 | |
| CN112214299A (zh) | 多核处理器及其任务调度方法和装置 | |
| CN120066743B (zh) | 基于自适应策略和智能调度的bios、计算机及系统启动优化方法 | |
| US20230418667A1 (en) | Computing device for handling tasks in a multi-core processor, and method for operating computing device | |
| CN113806049A (zh) | 任务排队方法、装置、计算机设备和存储介质 | |
| CN115766612B (zh) | 一种基于权重转换概率的调度方法及相应的装置 | |
| CN106201681A (zh) | Hadoop平台下基于预释放资源列表的任务调度算法 | |
| CN114880101B (zh) | 一种ai处理器、电子部件及电子设备 | |
| Gao et al. | Deadline-aware preemptive job scheduling in hadoop yarn clusters | |
| Prajana et al. | Adaptive Multi-Level Feedback Round-Robin | |
| CN120803640A (zh) | 一种任务调度方法、计算设备及存储介质 | |
| CN114489970A (zh) | Kubernetes中利用Coscheduling插件实现队列排序的方法及系统 | |
| CN118607805A (zh) | 一种任务编排的方法、装置、设备和计算机可读存储介质 | |
| CN116431335A (zh) | 一种基于控制组的容器消息队列资源配额控制方法 | |
| CN113296957A (zh) | 一种用于动态分配片上网络带宽的方法及装置 | |
| CN110445729B (zh) | 一种队列调度方法、装置、设备及储存介质 | |
| CN120596234B (zh) | 硬件加速器的多流任务调度方法、装置、设备和存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23852003 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2023852003 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2023852003 Country of ref document: EP Effective date: 20241224 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 2023852003 Country of ref document: EP |