Dynamic task scheduling and allocation method based on heterogeneous computing resources
By creating a resource pool and classifying heterogeneous computing resources and dynamic task scheduling, the problem of unbalanced resource utilization in heterogeneous computing systems is solved, and efficient task execution and energy efficiency optimization are achieved.
Patent Information
- Application Number
- CN202510247918.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-03
- Publication Date
- 2025-07-11
AI Technical Summary
The existing heterogeneous computing systems are difficult to effectively balance the computing load between different architectures under a multi-instruction set architecture, resulting in insufficient or overloading of resource utilization and lack of unified management and optimization scheduling mechanisms.
Create multiple resource pools, classify them according to the key attributes of heterogeneous computing resources, and achieve accurate matching of tasks and resources through the virtual instruction set translation layer. Combining load balancing and energy consumption optimization strategies, dynamically schedule tasks to the most suitable computing unit.
It improves the utilization rate of computing resources, avoids resource waste, improves task execution efficiency and performance, shortens task execution time, reduces system power consumption, enhances system flexibility and fault tolerance, and simplifies task scheduling in heterogeneous computing environments.
Smart Images

Figure CN120295722A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computing resource scheduling, and particularly to a dynamic task scheduling and allocation method based on heterogeneous computing resources. Background Art
[0002] With the continuous improvement of the complexity and scale of computing tasks, a computing system with a single instruction set architecture has been difficult to meet the requirements in terms of performance and energy efficiency. In recent years, heterogeneous computing systems with multiple instruction set architectures have gradually become the mainstream. Such systems integrate processors with different architectures, such as CPUs, GPUs, DSPs, FPGAs, etc., and can significantly improve performance and energy efficiency.
[0003] However, due to the differences in instruction sets, performance, parallelism, and energy consumption characteristics of various computing units, existing heterogeneous computing scheduling methods usually rely on static allocation or manual scheduling when dealing with multiple instruction set architectures, and it is difficult to effectively balance the computing loads between different architectures, resulting in low overall computing efficiency of the system. In the context of multiple instruction set architectures, how to perform effective resource scheduling has become an urgent problem in heterogeneous computing systems. Currently, most scheduling methods lack a unified management and optimized scheduling mechanism for computing resources with different instruction set architectures, often leading to problems of insufficient resource utilization or overloading. Summary of the Invention
[0004] In view of the deficiencies of the prior art, the present invention provides a dynamic task scheduling and allocation method based on heterogeneous computing resources.
[0005] A dynamic task scheduling and allocation method based on heterogeneous computing resources includes the following steps:
[0006] S1: Create multiple resource pools, and define the structural attributes of the resource pools, including computing power, instruction set type, memory capacity, energy consumption characteristics, current load, and available resources. Among them, all resource pools have a unified interface for accessing and controlling heterogeneous computing resources in all resource pools;
[0007] S2: Identify all heterogeneous computing resources, classify all heterogeneous computing resources according to the key attributes of all heterogeneous computing resources, and allocate all heterogeneous computing resources to the corresponding resource pools according to the classification results;
[0008] S3: Receive and analyze a target computing task, extract the key characteristics of the target computing task, including computing intensity, data parallelism, latency sensitivity, and real-time requirements, classify the target computing task according to the key characteristics to obtain the type information of the target computing task, and through a virtual instruction set translation layer and the type information of the target computing task, schedule the target computing task to a resource pool that matches the target computing task. The target computing task will be decomposed into multiple subtasks, and the multiple subtasks will be scheduled to computing units in this resource pool;
[0009] S4: During the process of scheduling the target computing task, detect the load data of the resource pool, and determine whether the load data of the resource pool is greater than a preset threshold. If it is detected that the load data of the resource pool is greater than the preset threshold, save the status information of the target computing task through a unified virtual interface, including the status information of completed subtasks and uncompleted subtasks, and transfer the status information of uncompleted subtasks to other idle resource pools for execution. Among them, the load data includes utilization rate, occupancy rate, and memory usage rate;
[0010] Preferably, in S1, the multiple resource pools include a CPU resource pool, a GPU resource pool, an FPGA resource pool, and a TPU resource pool;
[0011] Preferably, in S2, the key attributes include computing power, instruction set type, memory capacity, and energy consumption characteristics.
[0012] Preferably, in S3, the type information of the target computing task includes compute-intensive tasks, data-parallel tasks, latency-sensitive tasks, I / O-intensive tasks, and real-time tasks;
[0013] Preferably, in S3, scheduling multiple subtasks to the computing units in the resource pool is specifically as follows: comprehensively score all computing units according to the performance status, energy consumption characteristics, latency, and load status of all computing units in the resource pool to obtain the total scores of all computing units, form a candidate computing unit total score list, sort the candidate computing unit total score list in descending order according to the total score of each computing unit, place the computing unit with the highest score in the first column of the candidate computing unit total score list, and preferentially allocate subtasks to the computing unit in the first column of the candidate computing unit total score list.
[0014] Preferably, in S3, scheduling multiple subtasks to the computing units in the resource pool is specifically as follows: in combination with a preset energy consumption model, preferentially allocate multiple subtasks to the computing units with energy consumption lower than the energy consumption preset threshold.
[0015] Preferably, the specific steps for constructing the preset energy consumption model are: collect the basic performance indicators, energy consumption data, and characteristic information of multiple subtasks of the resource pool, preprocess the basic performance indicators, energy consumption data, and characteristic information, and combine machine learning algorithms, including decision trees, random forests, and support vector machines, to obtain the preset energy consumption model.
[0016] Preferably, in S4, then migrate the target computing task to other idle resource pools, specifically as follows: save the current execution status information of the target computing task through a unified virtual interface, including computing progress and data buffer, and transfer the current execution status information to other idle resource pools for continued execution, and update the load status information of the resource pool.
[0017] Preferably, it further includes the steps of:
[0018] S5: Continuously monitor the status data of all heterogeneous computing resources, including utilization rate, occupancy rate, memory usage, power consumption, and temperature. Identify potential failures of the resource pool or computing unit based on the status data, and migrate the target computing task to other computing units.
[0019] The present invention discloses a dynamic task scheduling and allocation method based on heterogeneous computing resources, and the beneficial effects thereof are as follows: By creating multiple resource pools and classifying them according to the key attributes of heterogeneous computing resources, different types of computing resources can be effectively managed, and it is ensured that each computing task can be allocated to the resource pool most suitable for its execution requirements. This classification and scheduling mechanism improves the utilization rate of computing resources and avoids waste of resources. By extracting the key characteristics of tasks for task classification and with the support of the virtual instruction set translation layer, accurate matching between tasks and underlying heterogeneous resources is achieved, which can ensure that computing tasks can run on the hardware most suitable for their characteristics, thereby improving the execution efficiency and performance of tasks. Decomposing the target computing task into multiple subtasks and scheduling them to different computing units can significantly improve the parallel processing ability of tasks. This can not only make full use of the parallel computing capabilities of multiple computing units in the resource pool, but also significantly shorten the execution time of tasks. By real-time monitoring the load data of the resource pool, unfinished tasks are automatically migrated to other idle resource pools. This load balancing mechanism avoids the overload problem of a single resource pool, ensures that the system is always in an efficient operation state, and saves the execution state of tasks during the migration process, which can effectively prevent task interruption and ensure that tasks can be seamlessly migrated to the new resource pool to continue execution. By identifying potential resource pool or computing unit failures in advance and timely migrating tasks to other normally operating computing units, the fault tolerance ability is improved, ensuring that tasks will not be interrupted when a computing unit fails. During the task scheduling process, the energy consumption characteristics of computing units can be comprehensively considered, and by preferentially selecting computing units with lower power consumption to execute tasks, the overall power consumption of the system is reduced. This energy efficiency optimization strategy helps to extend the service life of hardware and reduce energy consumption costs at the same time. Through the virtual instruction set translation layer, the instruction set differences of underlying heterogeneous computing resources are shielded, and cross-platform task scheduling is realized. Regardless of whether the underlying resources are based on x86, ARM, or other instruction set architectures, tasks can be efficiently executed in the appropriate resource pool, enhancing flexibility and scalability. Virtualization support also enables computing units with different instruction sets to be accessed and controlled through a unified interface, simplifying the system architecture and reducing the complexity of task scheduling in a heterogeneous computing environment. Description of the Drawings
[0020] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the accompanying drawings required for the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other accompanying drawings can be obtained based on these drawings.
[0021] Figure 1 It is a method flowchart of a dynamic task scheduling and allocation method based on heterogeneous computing resources provided by the present invention; Specific embodiments
[0022] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described. Obviously, the described embodiments are some, but not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the scope of protection of the present invention.
[0023] To better understand the above technical solutions, the following will combine the accompanying drawings of the specification and specific embodiments to elaborate on the above technical solutions in detail.
[0024] Referring to Figure 1 , the present invention provides a dynamic task scheduling and allocation method based on heterogeneous computing resources, including the following steps:
[0025] S1: Create multiple resource pools, and define the structural attributes of the resource pools, including computing power, instruction set type, memory capacity, energy consumption characteristics, current load, and available resources. Among them, all resource pools have a unified interface for accessing and controlling the heterogeneous computing resources in all resource pools;
[0026] S2: Identify all heterogeneous computing resources, classify all heterogeneous computing resources according to the key attributes of all heterogeneous computing resources, and allocate all heterogeneous computing resources to the corresponding resource pools according to the classification results;
[0027] S3: Receive and analyze the target computing task, extract the key characteristics of the target computing task, including computing intensity, data parallelism, latency sensitivity, and real-time requirements. Classify the target computing task according to the key characteristics to obtain the type information of the target computing task. Through the virtual instruction set translation layer and the type information of the target computing task, schedule the target computing task to the resource pool that matches the target computing task. The target computing task will be decomposed into multiple subtasks, and the multiple subtasks will be scheduled to the computing units in this resource pool;
[0028] S4: During the process of scheduling the target computing task, detect the load data of the resource pool, and determine whether the load data of the resource pool is greater than a preset threshold. If it is detected that the load data of the resource pool is greater than the preset threshold, save the current execution status information of the target computing task through a unified virtual interface, including the status information of completed subtasks and the status information of uncompleted subtasks, and transfer the status information of uncompleted subtasks to other idle resource pools to continue execution. Among them, the load data includes utilization rate, occupancy rate, and memory usage rate; specifically, multiple resource pools include a CPU resource pool, a GPU resource pool, an FPGA resource pool, and a TPU resource pool. When the CPU resource pool is overloaded, some computing tasks can be migrated to the GPU resource pool or the FPGA resource pool for execution.
[0029] Specifically, the computing power refers to the number of cores and the main frequency of the CPU, the number of parallel computing units of the GPU, etc.; the instruction set types include x86, ARM, CUDA, and OpenCL, etc.
[0030] A dynamic task scheduling and allocation method based on heterogeneous computing resources provided by the present invention classifies heterogeneous computing resources according to their key attributes by creating multiple resource pools. The system can effectively manage different types of computing resources and ensure that each computing task is allocated to the resource pool most suitable for its execution requirements. This classification and scheduling mechanism improves the utilization rate of computing resources and avoids waste of resources. By extracting the key characteristics of tasks for task classification and with the support of the virtual instruction set translation layer, precise matching between tasks and underlying heterogeneous resources is achieved, ensuring that computing tasks can run on the hardware most suitable for their characteristics, thereby improving the execution efficiency and performance of tasks. Decomposing the target computing task into multiple subtasks and scheduling them to different computing units can significantly improve the parallel processing ability of tasks. This can not only make full use of the parallel computing capabilities of multiple computing units in the resource pool, but also significantly shorten the execution time of tasks. By real-time monitoring the load data of the resource pool, unfinished tasks are automatically migrated to other idle resource pools. This load balancing mechanism avoids the overload problem of a single resource pool and ensures that the system is always in an efficient operating state. The execution state of tasks is saved during the migration process, effectively preventing task interruption and ensuring that tasks can be seamlessly migrated to the new resource pool to continue execution. During the task scheduling process, the energy consumption characteristics of computing units can be comprehensively considered, and tasks are preferentially executed by computing units with lower power consumption to reduce the overall power consumption of the system. This energy efficiency optimization strategy helps to extend the service life of hardware while reducing energy consumption costs. Through the virtual instruction set translation layer, the instruction set differences of underlying heterogeneous computing resources are shielded, achieving cross-platform task scheduling. Regardless of whether the underlying resources are based on x86, ARM or other instruction set architectures, tasks can be efficiently executed in the appropriate resource pool, enhancing flexibility and scalability. Virtualization support also enables computing units with different instruction sets to be accessed and controlled through a unified interface, simplifying the system architecture and reducing the complexity of task scheduling in a heterogeneous computing environment.
[0031] In a preferred embodiment, in S1, the multiple resource pools include a CPU resource pool, a GPU resource pool, an FPGA resource pool, and a TPU resource pool.
[0032] The CPU resource pool includes multi-core processors, each core based on the same instruction set architecture such as x86, ARM, etc., and all CPU cores share the same instruction set, main frequency, and power consumption characteristics. The GPU resource pool contains processing units based on parallel computing. The FPGA resource pool consists of programmable logic units, supporting custom hardware acceleration. The TPU resource pool includes hardware units optimized for artificial intelligence and machine learning acceleration.
[0033] In a preferred embodiment, in S2, the key attributes include computing power, instruction set type, memory capacity, and energy consumption characteristics.
[0034] In a preferred embodiment, in S3, the type information of the target computing task includes compute-intensive tasks, data-parallel tasks, latency-sensitive tasks, compute-intensive tasks, data-parallel tasks, latency-sensitive tasks, I / O-intensive tasks, and real-time tasks;
[0035] Among them, compute-intensive tasks involve a large number of computing operations, such as matrix operations in scientific computing and big data analysis, and have high requirements for computing resources. Such tasks are usually assigned to powerful GPUs or high-performance CPUs.
[0036] Data-parallel tasks have the characteristic of parallel processing, such as image processing and video encoding / decoding, and are assigned to GPUs or FPGAs with strong parallel computing capabilities for execution.
[0037] Latency-sensitive tasks have high requirements for execution time and need to be completed as soon as possible, and are assigned to computing units such as CPUs with fast response speed and low latency.
[0038] Real-time tasks need to be completed within a specified time, such as sensor data processing, and are assigned to FPGAs or dedicated hardware accelerators with real-time processing capabilities.
[0039] I / O-intensive tasks involve a large amount of data transmission, reading, and writing, have low requirements for computing power, and are suitable for low-power CPUs or FPGAs for processing.
[0040] In a preferred embodiment, in S3, scheduling multiple subtasks to the computing units in the resource pool is specifically as follows: comprehensively score all the computing units according to the performance status, energy consumption characteristics, latency, and load status of all the computing units in the resource pool to obtain the total scores of all the computing units, form a candidate computing unit total score list, sort the candidate computing unit total score list in descending order according to the total score of each computing unit, place the computing unit with the highest score in the first column of the candidate computing unit total score list, and preferentially assign the subtasks to the computing units in the first column of the candidate computing unit total score list.
[0041] Specifically, when the load data of the computing units in the first column is greater than the preset threshold, save the current execution status information of the subtasks, including the computing progress and data buffer, through a unified virtual interface, and transfer the current execution status information to the computing units in the second column to continue execution, and update the load status information of the computing units; if the load data of the computing units in the second column is greater than the preset threshold, assign the subtasks to the computing units in the third column to continue execution, and so on; where the load data includes utilization rate, occupancy rate, and memory usage rate. Through the comprehensive scoring mechanism of the computing units, precise task scheduling is achieved, significantly improving resource utilization, task execution efficiency, and system stability. The allocation process of computing tasks is optimized, and the energy efficiency and response speed of the system are enhanced through energy consumption control and latency optimization.
[0042] In a preferred embodiment, in S3, multiple subtasks are scheduled to the computing units in the resource pool. Specifically, in combination with a preset energy consumption model, multiple subtasks are preferentially assigned to the computing units with energy consumption lower than the preset energy consumption threshold.
[0043] In a preferred embodiment, the specific steps for constructing the preset energy consumption model are as follows: Collect the basic performance indicators, energy consumption data, and characteristic information of multiple subtasks in the resource pool, preprocess the basic performance indicators, energy consumption data, and characteristic information, and combine machine learning algorithms, including decision trees, random forests, and support vector machines, to obtain the preset energy consumption model.
[0044] Specifically, the basic performance indicators refer to basic performance indicator information such as the number of CPU cores, CPU frequency, number of GPU cores and architecture, cache size and level, instruction set type and throughput, etc. The energy consumption data includes static power consumption, dynamic power consumption, and standby power consumption, etc. The characteristic information includes task type, computational complexity of the task, memory requirements, data throughput of the task, task execution time, task parallelism, task priority, etc. During the task scheduling process, it is possible to combine the energy consumption characteristics of the computing units and preferentially select the computing units with lower power consumption to execute tasks, reducing the overall power consumption of the system. This energy efficiency optimization strategy helps to extend the service life of the hardware and reduce the energy consumption cost at the same time.
[0045] Reference Figure 1 , the present invention provides a dynamic task scheduling and allocation method based on heterogeneous computing resources, which further includes step S5: Continuously monitor the status data of all heterogeneous computing resources, including utilization rate, occupancy rate, memory usage rate, power consumption, and temperature, identify potential failures of the resource pool or computing units based on the status data, and migrate the target computing tasks to other computing units. Specifically, if the load in the status data suddenly drops or the temperature is too high, potential failures of the resource pool or computing units can be identified. By identifying potential failures, the fault tolerance ability is improved to ensure that tasks will not be interrupted when a computing unit fails.
Claims
1. A dynamic task scheduling and allocation method based on heterogeneous computing resources, characterized in that, It includes the following steps: S1: Create multiple resource pools, and define the structural attributes of the resource pools, including computing power, instruction set type, memory capacity, energy consumption characteristics, current load, and available resources. All resource pools have a unified interface for accessing and controlling heterogeneous computing resources in all resource pools; S2: Identify all heterogeneous computing resources, classify all heterogeneous computing resources according to the key attributes of all heterogeneous computing resources, and allocate all heterogeneous computing resources to the corresponding resource pools according to the classification results; S3: Accept and analyze the target computing task, extract the key characteristics of the target computing task, including computing intensity, data parallelism, latency sensitivity, and real-time requirements. Classify the target computing task according to the key characteristics to obtain the type information of the target computing task. Through the virtual instruction set translation layer and the type information of the target computing task, schedule the target computing task to the resource pool that matches the target computing task. The target computing task will be decomposed into multiple subtasks, and the multiple subtasks will be scheduled to the computing units in the resource pool; S4: During the process of scheduling the target computing task, detect the load data of the resource pool, and determine whether the load data of the resource pool is greater than the preset threshold. If it is detected that the load data of the resource pool is greater than the preset threshold, save the status information of the target computing task through the unified virtual interface, including the status information of the completed subtasks and the status information of the uncompleted subtasks, and transfer the status information of the uncompleted subtasks to other idle resource pools for execution. The load data includes utilization rate, occupancy rate, and memory usage rate.
2. A dynamic task scheduling and allocation method based on heterogeneous computing resources according to claim 1, characterized in that In S1, the multiple resource pools include a CPU resource pool, a GPU resource pool, an FPGA resource pool, and a TPU resource pool.
3. A dynamic task scheduling and allocation method based on heterogeneous computing resources according to claim 1, characterized in that, In S2, the key attributes include computing power, instruction set type, memory capacity, and energy consumption characteristics.
4. A dynamic task scheduling and allocation method based on heterogeneous computing resources according to claim 1, characterized in that In S3, the type information of the target computing task includes computing-intensive tasks, data-parallel tasks, latency-sensitive tasks, I / O-intensive tasks, and real-time tasks.
5. A dynamic task scheduling and allocation method based on heterogeneous computing resources according to claim 1, characterized in that In S3, scheduling multiple subtasks to the computing units in the resource pool specifically means comprehensively scoring all computing units according to the performance status, energy consumption characteristics, latency, and load status of all computing units in the resource pool to obtain the total scores of all computing units, forming a candidate computing unit total score list. Sort the candidate computing unit total score list in descending order according to the total score of each computing unit. The computing unit with the highest score is placed in the first column of the candidate computing unit total score list, and the subtasks are preferentially allocated to the computing unit in the first column of the candidate computing unit total score list.
6. A dynamic task scheduling and allocation method based on heterogeneous computing resources according to claim 1, characterized in that In S3, scheduling multiple subtasks to the computing units in the resource pool specifically means preferentially allocating multiple subtasks to the computing units with energy consumption lower than the energy consumption preset threshold in combination with the preset energy consumption model.
7. A dynamic task scheduling and allocation method based on heterogeneous computing resources according to claim 6, characterized in that The specific steps for constructing the preset energy consumption model are as follows: collect the basic performance indicators, energy consumption data of the resource pool, and the feature information of multiple subtasks, preprocess the basic performance indicators, the energy consumption data, and the feature information, and combine machine learning algorithms, including decision trees, random forests, and support vector machines, to obtain the preset energy consumption model.
8. A dynamic task scheduling and allocation method based on heterogeneous computing resources according to claim 1, characterized in that, It further includes the steps: S5: Continuously monitor the status data of all heterogeneous computing resources, including utilization rate, occupancy rate, memory usage, power consumption, and temperature, identify potential failures of the resource pool or computing unit based on the status data, and migrate the target computing task to other computing units.
Citation Information
Cited By
Cooperative scheduling and optimization method for heterogeneous resources of algorithm training platform
CN120872535A
A method for collaborative scheduling and optimization of heterogeneous resources in an algorithm training platform
CN120872535B
Task queue scheduling method and device, electronic equipment and medium
CN120892162A
Lightweight deep learning enabled heterogeneous computing system task scheduling method, scheduling server and heterogeneous computing system
CN121900916A
Lightweight deep learning-enabled task scheduling methods, scheduling servers, and heterogeneous computing systems for heterogeneous computing systems
CN121900916B