Heterogeneous resource pool real-time scheduling method based on task queue

By adopting a task queue-based scheduling method in the heterogeneous resource pool, splitting tasks into subtasks and dynamically allocating resources, the inefficiency and blockage of task scheduling and resource management between FPGA chips is solved, and efficient resource utilization and load balancing are achieved.

CN119597446APending Publication Date: 2025-03-1110TH RES INST OF CETC +1
View PDF 0 Cites 4 Cited by

Patent Information

Application Number
CN202411489859.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-24
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

How to effectively schedule tasks and manage resources between multiple FPGA chips, ensure high efficiency and low latency, and avoid blockage problems caused by excessive concentration of computing resources.

Method used

The heterogeneous resource pool real-time scheduling method based on task queue is adopted. By splitting the tasks into a set of subtasks with topological relationships, sorting them according to priority in the task queue, combining the resource pool monitor to monitor the resource status in real time, scheduling the system's dynamic decisions, and optimizing resource allocation.

Benefits of technology

It realizes the processing of adding tasks in real time, prevents excessive concentration of computing resources, improves resource utilization efficiency, reduces the total delay of task set execution, and achieves load balancing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119597446A_ABST
    Figure CN119597446A_ABST
Patent Text Reader

Abstract

The invention provides a task queue-based heterogeneous resource pool real-time scheduling method, which comprises the following steps of: splitting tasks transmitted at random moments into sub-task sets with topological relations, adding the tasks into a queue to open up a track, and sequencing and numbering according to priorities; the bottom layer chip is interconnected, a resource pool monitor is added to monitor the state of resources, a heterogeneous resource pool is constructed, and data is provided for a scheduling system; the scheduling system obtains the real-time states of the queue and the resource pool, monitors the occurrence of events, makes a dynamic decision, sets an optimization target, and schedules the required computing resources for the subtasks according to the priority in the queue. According to the method, the parallel computing advantage of the FPGA chip is fully exerted, high-speed communication in the heterogeneous resource pool is ensured, the resource utilization efficiency of the resource pool is greatly improved, the total task set execution time delay can be effectively reduced, and meanwhile, the heterogeneous resource pool can achieve the load balancing effect.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer application technology, and in particular to a real-time scheduling method for a heterogeneous resource pool based on a task queue. Background Art

[0002] In recent years, as society's computing needs continue to increase, field programmable gate arrays (FPGAs) have provided more efficient performance than traditional CPUs or GPUs due to their flexibility, high performance, short development cycle, and low cost. They have great advantages in processing large and complex task sets, thereby accelerating more and more data-intensive workloads.

[0003] Allocating computing resources to tasks in a resource pool is a resource scheduling problem. Resource scheduling is essentially an NP-hard problem. There are many algorithms for solving this problem, such as genetic algorithms, particle swarm algorithms, greedy algorithms, machine learning-based algorithms, and so on. With the rise of data centers, edge computing, and various high-performance applications, it has become a demand to use heterogeneous FPGA chip resources to process tasks in parallel. However, how to effectively schedule tasks and manage resources between multiple FPGAs to ensure high efficiency and low latency has become a technical challenge. In order to further improve the performance of heterogeneous resource pools, it is necessary to continuously improve resource scheduling technology, and it is also necessary to propose more novel scheduling algorithms to improve traditional algorithms to provide better services. Therefore, there is an urgent need for a real-time scheduling method for heterogeneous resource pools that can handle tasks added in real time, prevent computing resources from being used too concentratedly, and avoid congestion problems. Summary of the invention

[0004] The present invention aims to solve at least one of the technical problems existing in the prior art.

[0005] To this end, the present invention provides a real-time scheduling method for heterogeneous resource pools based on task queues.

[0006] The present invention provides a real-time scheduling method for heterogeneous resource pools based on task queues, comprising:

[0007] Split the tasks delivered at random times into a set of subtasks with topological relationships, add the tasks to the queue to open a track, and sort and number them according to priority;

[0008] Interconnect the underlying chips, add resource pool monitors to monitor resource status, build heterogeneous resource pools, and provide data to the scheduling system;

[0009] The scheduling system obtains the real-time status of queues and resource pools, monitors the occurrence of events, makes dynamic decisions, sets optimization goals, and schedules the required computing resources for subtasks according to their priorities in the queue.

[0010] A real-time scheduling method for heterogeneous resource pools based on task queues according to the above technical solution of the present invention may also have the following additional technical features:

[0011] In the above technical solution, the tasks delivered at random times are split into a set of subtasks with topological relationships, and the tasks are added to a queue to open up a track and numbered according to priority, including:

[0012] Split the tasks to be executed in parallel or sequentially, and ensure that the resource requirements of the subtasks are within the set range;

[0013] The task flow diagram method is used to define and describe the subtask collection objects, and the task execution order level is expressed through the task queue model.

[0014] In the above technical solution, the tasks to be executed are split in parallel or sequentially, and the resource requirements of the subtasks are ensured to be within a set range, including:

[0015] Set the size range of computing resources required by the target subtask so that each subtask meets the following boundary conditions:

[0016]

[0017] Among them, s min Indicates the lower limit of the target subtask size; s max represents the upper limit of the target subtask size; r1,r2,…,r k Indicates the demand of the current subtask for k resources provided by the resource pool; R 1ave ,R 2ave ,…,R kave It represents the average value of the quantity that all chips in the resource pool can provide for these k resources;

[0018] Perform a preliminary split of the tasks according to module functions; each functional module of the task is split into a functional subtask;

[0019] Performing parallel splitting of data; wherein a task or functional subtask is divided into multiple data subtasks according to different parts of the data set;

[0020] When the functional subtask or the data subtask does not meet the boundary condition, the serialized computing module within the detection task is split into multiple pipeline subtasks;

[0021] The subtask set includes at least one of a functional subtask, a data subtask and a pipeline subtask.

[0022] In the above technical solution, the task flow diagram method is used to define and describe the subtask set object, and the task execution order level is expressed through the task queue model, including:

[0023] After obtaining the split subtask results, a directed acyclic graph model is used to describe the subtask set, and the directed acyclic graph model includes subtask node information and a topological relationship between subtasks in the execution order.

[0024] In the above technical solution, the use of a directed acyclic graph model to describe a subtask set includes:

[0025] Give the subtask node the information required for scheduling; any subtask is represented as:

[0026] t j =(h j ,r j1 ,r j2 ,...,r jk )

[0027] Among them, t j represents the jth subtask; h j Indicates the calculation of t j Estimated hardware execution time; tuple (r j1 ,r j2 ,...,r jk ) indicates t j The required number of each reconfigurable resource.

[0028] Add a subtask set to the task queue; when a subtask set is added to the task queue, an independent task track is generated in the queue and the task track is numbered. Each level of the track corresponds to the execution order level of the subtasks; among them, subtasks of the same level can be executed in parallel. Only when the subtasks of the previous level are executed and the intermediate data are passed to the next level, the subtasks of the next level will be allocated computing resources; each task track is independent, and the subtasks in the task track only pass the calculated data with other subtasks in the track, and will not transmit or obtain data to subtasks in other tracks. Subtasks between different tracks can also be executed in parallel;

[0029] The task queue monitors the execution status of subtasks in each track in real time and transmits this information to the scheduling system.

[0030] In the above technical solution, the interconnection bottom layer chip, adding a resource pool monitor to monitor the status of resources, building a heterogeneous resource pool, and providing data to the scheduling system include:

[0031] Interconnect and synchronize multiple FPGA chips to transmit data and build a heterogeneous resource pool;

[0032] The resource pool monitor monitors the status of the underlying hardware and summarizes the information and passes it to the scheduling system.

[0033] In the above technical solution, the resource pool monitor monitors the underlying hardware status, including:

[0034] The resource pool monitor estimates the time to reconfigure resources in heterogeneous resource pools, including:

[0035]

[0036] Among them, T R Indicates the time of resource reconstruction; bs indicates the size of data stream; f cc Indicates the frequency of the configuration clock; dbw indicates the data bus width;

[0037] The resource pool monitor monitors the resource usage status of the chip in real time; wherein, the resource usage status of the chip is represented by the load balancing evaluation parameter, and the calculation method of the load balancing evaluation parameter is:

[0038]

[0039] Among them, MSE k represents the variance of the occupancy rate of the kth resource; ik represents the real-time occupancy rate of the kth resource in the i-th chip; I represents the number of chips; K represents the number of resource types; avg(ro k ) represents the average real-time occupancy rate of all chips for the kth resource; LB represents the load balancing evaluation parameter; w k represents the weight of the k-th resource occupancy rate;

[0040] The resource pool monitor estimates the communication time between the chips; wherein the communication time between the two chips is determined based on the amount of data transmitted, the transmission rate, the protocol overhead and the delay, including:

[0041]

[0042] Among them, T ii′ represents the communication time between chip i and chip i′; ds represents the amount of data transmitted; rate represents the transmission rate; T P Indicates protocol overhead; delay indicates delay.

[0043] In the above technical solution, the scheduling system obtains the real-time status of the queue and resource pool, monitors the occurrence of events, makes dynamic decisions, sets optimization goals, and schedules the required computing resources for subtasks according to the priority in the queue, including:

[0044] Get task queue information and resource pool real-time information;

[0045] The scheduling system dynamically updates scheduling decisions by monitoring changes from task queues and resource pool monitors. During the execution of the task queue, the scheduling system monitors queue information including tasks added to the queue, subtask calculation completion, and calculation completion of a certain level in the track. Queue information causes the queue state to switch between idle, crowded, and blocked states. Tasks are allocated to three resource channels based on resource occupancy: pre-allocated resource channel, waiting resource channel, and special resource channel.

[0046] After the scheduling system completes the scheduling decision for the update channel in the queue, it schedules the underlying computing resources for the subtasks in the pre-allocated resource channel and the special resource channel according to the sequential level, and optimizes the scheduling decision by achieving the comprehensive goals of load balancing and reducing execution time.

[0047] In the above technical solution, the scheduling system dynamically updates the scheduling decision by monitoring the changes from the task queue and the resource pool monitor, including:

[0048] When the scheduling system detects that a new task is added to the queue, the task is added to the corresponding channel according to the state of the queue. When the queue is idle or crowded, the scheduling system will directly add the task track to the pre-allocated resource channel. When the queue is blocked, the scheduling system will directly add the task track to the waiting resource channel.

[0049] When the queue is blocked, the scheduling system detects that all subtasks at a certain level in the track have completed calculations and updates the scheduling decision. In the pre-allocated resource channel, all subtasks at this level are cleared and the resources occupied by them are released. After the resources are released, the system adds the tasks in the waiting resource channel to the pre-allocated resource channel in order according to the resource restriction conditions.

[0050] When the queue is in a blocked state, the scheduling system detects that a subtask at a certain level in the track has been completed, and except for the subtask that has been completed, the remaining subtasks at this level are being executed, the scheduling decision system will open a special resource channel; the resources occupied by the special resource channel are the resources that can be provided by the resource pool after the subtasks at this level are completed and released, and the special resource channel ends with the completion of the execution of all subtasks at this level.

[0051] In the above technical solution, scheduling the underlying computing resources for the subtasks in the pre-allocated resource channel and the special resource channel in order level includes:

[0052] A leading subtask is selected cyclically, a resource pool is traversed, and a candidate solution set that meets the resource constraint condition is selected for the leading subtask; wherein, for a pre-allocated resource channel, the subtask with the longest estimated hardware execution time in the front-end subtask set in the channel is selected as the leading subtask; for a special resource channel, when it is necessary to wait for the resource channel and the execution of the previous task is completed or there is no previous task, the subtask with the longest estimated hardware execution time is selected from the subtasks that meet the resource constraint condition and the time constraint condition as the leading subtask; the candidate solution set includes all chips that can execute the leading subtask and meet the resource constraint condition;

[0053] Calculate the score of each solution in the candidate solution set to obtain the optimal solution for the resource mapping of the dominant subtask, including:

[0054] Calculate the total execution time of the dominant subtask:

[0055] T all =T T +T R +h j

[0056] T all represents the total execution time of the dominant subtask; T T Indicates chip communication time; T R Indicates chip reconstruction time; h j represents the estimated hardware execution time of the dominant subtask;

[0057] Define the score function score:

[0058]

[0059] represents the standardized parameter;

[0060] Traverse all solutions in the candidate solution set, calculate the score function, and select the solution with the highest score.

[0061] In summary, due to the adoption of the above technical features, the beneficial effects of the present invention are:

[0062] The present invention proposes a real-time scheduling method for heterogeneous resource pools based on task queues, which can process tasks added in real time and add tasks to the task queue according to a certain topological structure. The scheduling system can dynamically map the scheduling results according to the queue status and resource occupancy. The present invention gives full play to the parallel computing advantages of FPGA chips, ensures high-speed communication in heterogeneous resource pools, maximizes the resource utilization efficiency of resource pools, can effectively reduce the total execution delay of task sets, and at the same time, heterogeneous resource pools can achieve load balancing effects.

[0063] Additional aspects and advantages of the present invention will become apparent in the following description or may be learned by practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0064] The above and / or additional aspects and advantages of the present invention will become apparent and easily understood from the description of the embodiments in conjunction with the following drawings, in which:

[0065] Figure 1 It is a flow chart of a real-time scheduling method for heterogeneous resource pools based on task queues according to an embodiment of the present invention;

[0066] Figure 2 It is a schematic diagram showing the principle of adding tasks at random times to a queue and setting priorities in one embodiment of the present invention;

[0067] Figure 3 It is a model diagram for constructing a heterogeneous resource pool in one embodiment of the present invention;

[0068] Figure 4 It is a schematic diagram of a dynamically reconfigurable region of an FPGA used in one embodiment of the present invention. DETAILED DESCRIPTION

[0069] In order to more clearly understand the above-mentioned purpose, features and advantages of the present invention, the present invention is further described in detail below in conjunction with the accompanying drawings and specific embodiments. It should be noted that the embodiments of the present application and the features in the embodiments can be combined with each other without conflict.

[0070] In the following description, many specific details are set forth to facilitate a full understanding of the present invention. However, the present invention may also be implemented in other ways different from those described herein. Therefore, the protection scope of the present invention is not limited to the specific embodiments disclosed below.

[0071] Refer to the following Figures 1 to 4 A method for real-time scheduling of heterogeneous resource pools based on task queues is described according to some embodiments of the present invention.

[0072] Some embodiments of the present application provide a real-time scheduling method for heterogeneous resource pools based on task queues.

[0073] The first embodiment of the present invention proposes a real-time scheduling method for heterogeneous resource pools based on task queues. A task queue method is adopted to list tasks added to the resource pool at random times, and the transfer tasks are reasonably split and the topological relationship of the subtask set is described in the form of a task flow chart, so that the execution order level of the subtasks can be determined. At the same time, in order to obtain the status of heterogeneous FPGA chips in real time, it is necessary to add a resource pool monitor to uniformly manage and monitor the chip status. The final scheduling system updates the scheduling decision by monitoring the events that occur, and maps the subtasks to the appropriate FPGA chip according to the priority ranking. Specifically, the following steps S1 to S3 are included. It should be noted that the order of the steps proposed in the present disclosure is only a schematic representation. Unless otherwise specified, the specific order of the steps can be adjusted according to actual needs, and different steps can also be performed simultaneously.

[0074] S1. Split the tasks delivered at random times into a set of subtasks with topological relationships, add the tasks to the queue to open a track, and sort and number them according to priority.

[0075] Among them, the scheduling system receives tasks delivered at random times, identifies the characteristics of the tasks, and splits them in a specific way to form multiple subtasks that can be executed in parallel or sequentially. The subtask set contains the information of each subtask. The description of the subtask set requires the use of a directed acyclic graph method. This directed acyclic graph is a type of task graph that can efficiently describe the topological relationship between subtasks. Each node corresponds to each subtask. In this way, the split task set is converted into an object that can be recognized by the scheduling system, so that the tasks can be subsequently matched to appropriate hardware resources, thereby improving the efficiency of resource scheduling.

[0076] In some embodiments, step S1 includes steps S11 and S12.

[0077] S11. Split the tasks to be executed in parallel or sequentially, and ensure that the resource requirements of the subtasks are within a set range.

[0078] Since the computing resource requirements of a large computing task are likely to exceed the resources that a single FPGA chip can provide, if the tasks are too concentrated, it will affect the load balancing of the device. Therefore, it is necessary to split the large task in a specific way, so as to give full play to the advantages of device parallel computing in the distributed system and reasonably allocate computing resources. In the process of task splitting, it is necessary to consider the size of the computing requirements of the subtask to meet the needs of system scheduling. If the subtasks are not small enough, it is very easy to cause device congestion, and the FPGA parallel computing characteristics are limited, and the overall task execution delay will be relatively high. If the size of the split subtask is too small, more meaningless scheduling operations will be added. If the calculation is dispersed to more FPGA devices, the transmission delay will be increased, which will also cause the delay to increase. Therefore, in view of this phenomenon, it is necessary to set a reasonable threshold range for the task splitting process. The setting of this range requires analyzing the task set and the existing distributed computing resources, so that subsequent scheduling operations can be performed more effectively.

[0079] In one embodiment, step S11 includes S111 - S114 .

[0080] S111. Set the size range of computing resources required by the target subtask so that each subtask meets the following boundary conditions:

[0081]

[0082] Among them, s min Indicates the lower limit of the target subtask size; s max Indicates the upper limit of the target subtask size; r1, r2, …, r k Indicates the demand of the current subtask for k resources provided in the resource pool; there are a total of k different resources in the resource pool, and when a subtask is executed, it will need to use at most k computing resources; R 1ave ,R 2ave ,…,R kave It represents the average value of the number of k resources that all chips in the resource pool can provide. These values ​​represent the comprehensive computing power of the resource pool. According to the above two parameters s min and max You can control the threshold range for task split size.

[0083] After determining the threshold range of the subtask resource requirement, the task can be split by at least one of module function splitting, data parallel splitting, and pipeline splitting. The specific splitting method selected is related to the task resource requirement.

[0084] S112, preliminarily split the task according to the module function; wherein each functional module of the task is split into a functional subtask. In the module function splitting, the task is divided according to different functions or modules. Usually a large computing task will include many intermediate steps, which are executed in parallel or sequentially. The division according to the functional module is the fastest and most effective way to preliminarily complete the splitting of the task module.

[0085] In a specific embodiment, for a communication coding task, the signal needs to be amplified and filtered first, then encoded, such as Turbo code or LDPC coding, and finally modulated to improve the signal's anti-interference ability. This task can use the method of module function splitting to distribute the three subtasks of filtering, encoding and modulation to several different FPGA devices. First, the input signal is sent to the FPGA for filtering, then the filtered signal is transmitted to the FPGA for encoding, and finally the modulated signal is transmitted to the FPGA for modulation. FPGA devices can be connected using high-speed interconnect technology and synchronized using a global clock.

[0086] S113, perform parallel splitting of data; wherein, the task or functional subtask is divided into multiple data subtasks according to different parts of the data set. Specifically, in the data parallel splitting, the task is divided into multiple subtasks according to different parts of the data set. Since there may be large data sources in large tasks, a lot of time and resources are required to complete the data processing. Therefore, it is very necessary to split the data source to allow the data to be executed in parallel. For example, if there is a task of image processing on a large picture data set, the data set can be divided into multiple small blocks to ensure that the subtask size is within the set threshold range, so that the subtask can efficiently process each small block in different FPGAs or different areas of the FPGA, thereby effectively reducing the total computing delay and improving the utilization of device resources.

[0087] S114. When a functional subtask or a data subtask does not meet the boundary conditions, the serialized computing module inside the detection task is pipelined and split into multiple pipeline subtasks. Specifically, in order to further improve the throughput and meet the threshold conditions for task splitting, pipeline technology can be used. This step is to further refine the task splitting after completing the above-mentioned module functional splitting and data parallel splitting. For tasks that have been split but do not meet the threshold conditions, pipeline splitting can continue. Pipeline splitting requires a detailed analysis of the characteristics of the computing task, and then finding the part that can be serialized and executed. According to its characteristics, it is decomposed into multiple continuous subtasks or stages, and the input and output of each stage or task are determined. After the previous FPGA completes partial processing of a subtask, the data can be immediately transferred to the next FPGA for further processing.

[0088] That is to say, after the above splitting method, the final subtask set may include any one or more of functional subtasks, data subtasks and pipeline subtasks.

[0089] S12. Use the task flow diagram method to define and describe the subtask set object, and express the task execution order level through the task queue model.

[0090] Specifically, after obtaining the split subtask results, a directed acyclic graph model (DAG) is used to describe the subtask set, and the directed acyclic graph model includes subtask node information and the topological relationship between the subtasks in the execution order.

[0091] In some embodiments, step S12 includes S121 - S123 .

[0092] S121. Give the subtask node the information required for scheduling.

[0093] Specifically, in the workload, the DAG represents the set of subtasks that have been split, denoted as T. Each subtask t j ∈T are all executed on the reconfigurable hardware area, and T also includes t0 and t J+1 There are two tasks, task t0 is the initial task, which is used to complete the initialization work such as task splitting, and t J+1 Represents a collection task, which is used to summarize the execution results of tasks. Therefore, in general, in the scheduling system, it can be considered that the initial and collection tasks in a DAG are work units that do not occupy computing resources and have zero execution time.

[0094] Represent any subtask as:

[0095] t j =(h j ,r j1 ,r j2 ,...,r jk )

[0096] Among them, t j represents the jth subtask; h j Indicates the calculation of t j Estimated hardware execution time (HET); tuple (r j1 ,r j2 ,...,r jk ) indicates t j The set of the required quantity of each reconfigurable resource; k represents the number of types of reconfigurable resources.

[0097] S122: Add the subtask set to the task queue.

[0098] Specifically, in a workload, there may be multiple tasks that need to be processed at the same time, and the start execution time of each task may be different. There is a sequential execution relationship within the tasks, and there is also a sequential order relationship between tasks. In order to determine the execution order of these subtasks when the scheduling system makes decisions, the present disclosure proposes a task queue method to assign subtask execution levels.

[0099] Among them, when a subtask set is added to the task queue, an independent task track is generated in the queue and the task track is numbered. Each level of the track corresponds to the execution order level of the subtasks; subtasks at the same level can be executed in parallel. Since each task track is independent, the subtasks in the task track will only involve transferring calculated data with other subtasks in this track, and will not transmit or obtain data to subtasks in other numbered tracks. Subtasks between different tracks can also be executed in parallel, but decisions must be made based on resource constraints. By default, resources will be allocated to subtasks in task tracks with earlier track numbers in the queue for execution.

[0100] exist Figure 2 In the illustrated embodiment, the process of adding a subtask set to a task queue is illustrated. A At time 1, it is added to the task queue. In the queue, a task track is automatically generated for the subtask set of task 1 to distinguish the execution levels, and the track is numbered P1. The execution order of the subtasks within the track is in the order of the levels, and the internal levels are numbered L1, L2, ..., L7. Only when the subtasks of the previous level are executed and the intermediate data is passed to the next level, will the subtasks of the next level be allocated computing resources. When the hardware is executing at the P1L4 level, task T B At time 2, it is added to the task queue, and a new task track is opened for it and numbered P2.

[0101] S123, the task queue monitors the execution status of the subtasks in each track in real time and transmits this information to the scheduling system.

[0102] S2, interconnect the underlying chips, add resource pool monitors to monitor the status of resources, build heterogeneous resource pools, and provide data to the scheduling system.

[0103] Specifically, multiple FPGA chips are interconnected to ensure global clock synchronization to complete data transmission, and then the underlying hardware resource information is summarized into the resource pool monitor. The resource pool monitor passes the real-time monitored hardware information to the scheduling system, while hiding the chip resource details that are not related to the scheduling algorithm, so that developers can perform scheduling operations efficiently.

[0104] In some embodiments, step S2 includes S21 and S22.

[0105] S21. Interconnect and synchronize multiple FPGA chips to transmit data and build a heterogeneous resource pool.

[0106] Specifically, Figure 3 As shown, multiple FPGA chips frequently exchange data. In order to maintain data consistency, the device requires higher bandwidth and lower latency. Therefore, it is necessary to use high-speed serial communication or high-bandwidth channels such as optical fiber to interconnect multiple FPGA chips to achieve data transmission between FPGA chips.

[0107] After interconnecting the FPGA chips, global time synchronization also needs to be completed, which includes hardware clock synchronization and software clock synchronization.

[0108] S22. The resource pool monitor monitors the underlying hardware status and summarizes the information and transmits it to the scheduling system.

[0109] Since the scheduling system does not consider the underlying hardware details when making scheduling decisions, it is necessary to add a resource pool monitor to monitor the status of the resource pool and pass the hardware parameters referenced by the scheduling system. i1 ,R i2 ...is used to represent the number of different types of resources, where i represents the number of FPGA chips in the distributed system, and I represents the total number of chips in the system. These resource quantities provide resource constraints for executing tasks, so during the scheduling process, it is necessary to ensure that task allocation cannot exceed resource constraints.

[0110] In a specific embodiment, step S22 includes the following steps S221-S223.

[0111] S221, such as Figure 4 As shown in the figure, in the FPGA heterogeneous resource pool, the subtasks correspond to different Bitstream files, which are loaded into the dynamically reconfigurable area of ​​the FPGA chip. The FPGA recognizes the logical relationship in the file and reconfigures the programmable logic blocks and connections in its own reconfigurable area, so that more tasks can be processed in parallel flexibly. Because the FPGA reconfiguration is inserted, this will increase the delay of some reconfiguration. The resource pool monitor estimates the time for resource reconstruction in the heterogeneous resource pool, including:

[0112]

[0113] Among them, T R Indicates the time of resource reconstruction; bs indicates the size of data stream; f cc Indicates the frequency of the configuration clock; dbw indicates the data bus width;

[0114] S222. The resource pool monitor monitors the resource usage status of the chip in real time; specifically, the resource occupancy and load balancing in the resource pool composed of multiple heterogeneous chips are the factors that have a greater impact on the scheduling decision. We hope that the resource pool can disperse the workload, rather than concentrating the tasks on a certain resource area, so as to maximize the throughput and minimize the response time. The load balancing evaluation parameter LB is defined as follows. It should be noted that the parameter LB referenced in this disclosure is an instantaneous value, not an average value in a specific time period.

[0115] First, we need to obtain the occupancy rate of each type of resource in each chip. For the variance of the occupancy rate of the kth resource, we use MSE k It is expressed as follows:

[0116]

[0117] Among them, MSE k represents the variance of the occupancy rate of the kth resource; ik represents the real-time occupancy rate of the kth resource in the i-th chip; I represents the number of chips; K represents the number of resource types; avg(ro k ) represents the average real-time occupancy rate of all chips for the kth resource; LB represents the load balancing evaluation parameter; w k The weight represents the occupancy rate of the kth resource. The weight of each resource is different. This requires considering the attributes of the task to determine the weight ratio. When LB is smaller, the workload is more evenly distributed to different hardware devices.

[0118] S223, the resource pool monitor estimates the communication time between the chips; wherein the communication time between the two chips is determined according to the amount of transmitted data, the transmission rate, the protocol overhead and the delay, including:

[0119]

[0120] Among them, T ii′ represents the communication time between chip i and chip i′; ds represents the amount of data transmitted; rate represents the transmission rate; T P Indicates protocol overhead; delay indicates delay.

[0121] For the above parameters, the transmission data volume ds represents the specific amount of data transmitted from the end of the previous FPGA calculation to the next FPGA calculation, usually in bytes.

[0122] The transmission rate rate indicates the transmission rate of the communication link between FPGA chips, usually in units of Mbps, Gbps, etc. There are many factors that affect the transmission rate, including the physical transmission medium, FPGA I / O capabilities, link protocol, signal quality, etc. The physical transmission medium and FPGA I / O pins will limit the maximum transmission rate, and the link protocol also has its specific data rate specifications. Therefore, in actual transmission, it is necessary to reasonably select the transmission rate based on the chip and application.

[0123] Protocol overhead T P Indicates some overhead that may be introduced by the communication protocol, such as the header and trailer of each data packet, error checking, flow control, etc.

[0124] Delay usually includes serial-parallel conversion delay, delay caused by any intermediate devices or networks, etc. Some delay components are fixed, such as conversion delay, but other parts, such as protocol retransmission, buffer queues, and intermediate device processing, may vary. Therefore, the total delay may have a certain degree of uncertainty, especially in complex networks or systems.

[0125] The scheduling system receives real-time hardware resource and task queue information, performs real-time resource scheduling and decision updates, and optimizes the total delay of task execution in the queue.

[0126] S3, the scheduling system obtains the real-time status of the queue and resource pool, monitors the occurrence of events, makes dynamic decisions, sets optimization goals, and schedules the required computing resources for subtasks according to their priorities in the queue.

[0127] Specifically, the scheduling system monitors the occupancy of heterogeneous resources in the queue and resource pool in real time, allocates the subtask set to three resource channels according to the real-time status of the queue, and dynamically updates the scheduling decision as the queue status is updated. In the process of mapping the underlying resources, the scheduling system cyclically selects the leading task and its candidate solution set in the queue, and estimates its total execution time, coordinates load balancing and chip communication time, and obtains the optimal solution. Specifically, it includes steps S31-S33.

[0128] S31, obtaining task queue information and resource pool real-time information. The scheduling system will make scheduling decisions based on the task queue information and resource pool real-time information.

[0129] In the task queue, as time goes by, multiple task tracks generated by different tasks will appear in the queue. According to the time when the task is added to the task queue, (P1, P2, ..., P m) to number these task tracks. Tracks with earlier numbers will be given priority in resource allocation in scheduling decisions. When a task is completed, the track and track number of the task will be cleared. Within the track, the subtask set is divided into multiple levels and is represented by (L1, L2, ..., L n ) are the levels. Similarly, subtasks with higher levels are preferentially allocated reconfigurable computing resources.

[0130] The state of the queue can be divided into idle state and working state according to whether there are working tasks in the queue. In the idle state, there are no tasks to be executed in the queue, and in the working state, there are tasks being executed in the queue. In the working state, it is divided into two working states, crowded and blocked, according to whether all task tracks are allocated sufficient computing resources at the time of delivery. In the crowded state, all tasks are allocated computing resources and start to execute after being delivered to the queue. In the blocked state, the tasks delivered later need to queue up and wait for the execution of the predecessor tasks to end. After the resources are released, they will be allocated computing resources.

[0131] In the resource pool monitor, the information obtained includes resource types and quantities. For the tuple t used to describe the task j =(h j ,r j1 ,r j2 ,...,r jk ), in a specific embodiment, in order to meet the constraints of task richness and multiple resources in scheduling, three types of resources can be considered: logic elements (LE, called configurable logic blocks), DSPs and embedded memory blocks (EMB, i.e., on-chip RAM blocks), and tuples (r j1 ,r j2 ,r j3 ) to represent these three types of resources. The node information of the task set needs to include the type and amount of resources required to calculate the task, and the resource pool monitor also needs to transmit the current resource occupancy.

[0132] Since the resource pool monitor monitors the real-time dynamic changes of the chip and the time of task set delivery is random, after obtaining the chip resource occupancy of the task delivery time node, the FPGA's dynamic partial reconfiguration technology is used to organize idle reconfigurable computing resources and schedule the resources required for the current task delivery. i1c ,R i2c ,R i3c Indicates the maximum amount of resources available in real time:

[0133]

[0134] Among them, i1 ,roi2 ,ro i3 represents the real-time resource occupancy of the three types of resources in the i-th chip at the scheduling time, and the resource occupancy in the idle state is zero. In the scheduling decision, if the subtask t j Assigned to the i-th chip for execution, then when executing subtask t j The following resource constraints need to be met:

[0135]

[0136] Obviously, subtask t j The required resources cannot exceed the maximum value that the target device can currently provide. If the resource constraints are not met, you need to wait for the task queue to release computing resources until the resource constraints are met.

[0137] S32, monitor the changes from the task queue and resource pool monitor, and the scheduling system dynamically updates the scheduling decision; in the execution process of the task queue, the queue information monitored by the scheduling system includes the addition of tasks to the queue, the completion of subtask calculations, and the completion of a certain level of calculation in the track. This information will cause the queue state to switch between the idle, crowded, and blocked states. And the tasks will be allocated to three resource channels according to the resource occupancy: pre-allocated resource channel, waiting resource channel, and special resource channel.

[0138] In a specific embodiment, step S32 includes the following steps S321-S323.

[0139] S321. The scheduling system detects that a new task is added to the queue, and this task is added to the corresponding channel according to the state of the queue; when the queue is in an idle or crowded state, the scheduling system will directly add the task track to the pre-allocated resource channel; when the queue is in a blocked state, the scheduling system will directly add the task track to the waiting resource channel.

[0140] Specifically, as new tasks are added, the state of the queue will change from an idle state to a crowded and blocked state. Since the task tracks in the queue have been numbered, a channel for pre-allocated resources is opened in step S321 according to the numbering level to deal with the problems caused by the change in queue status.

[0141] When a new task is added to the queue when the queue is idle or crowded, the scheduling system will directly add the task track to the pre-allocated resource channel because the resources are not fully utilized at this time. The adding process is to add the task level by level in the order of the levels in the track, and then the scheduling system schedules the resources for the subtasks of that level to execute. If the task is added to all levels and still meets the resource restriction conditions, the task track will be executed according to the process in the pre-allocated channel; if it is added to a certain level in the track, because the resource restriction conditions are not met, the tasks at the later levels in the track need to queue up and enter the waiting resource channel. At this time, the queue is blocked, and the tasks at the later levels need to wait for the system to monitor the new event and determine whether to add it to the pre-allocated resource channel.

[0142] When the queue is in a blocked state, new tasks added to the queue will directly enter the waiting resource channel. All tasks waiting in this channel also need to wait according to the track priority.

[0143] S322. When the queue is in a blocked state, the scheduling system detects that the calculation of all subtasks at a certain level in the track is completed and updates the scheduling decision; among them, all subtasks at this level are cleared from the pre-allocated resource channel and the resources occupied by them are released. After the resources are released, the system adds the tasks in the waiting resource channel to the pre-allocated resource channel in an orderly manner according to the resource constraint conditions.

[0144] Specifically, when the queue is in a blocked state and a task at a certain level is completed, all subtasks at that level are cleared from the pre-allocated resource channel, and the resources occupied by them are released. After releasing the resources, the system adds the tasks in the waiting resource channel to the pre-allocated resource channel in order according to the resource constraint conditions.

[0145] In step S322, the subtasks added to the pre-allocated resource channel must be in accordance with the task level. For example, the task added later in the queue cannot skip the previous task to allocate resources. Similarly, within a track, the subtask set of the later level cannot skip the previous level. If the subtask of the first level does not meet the resource constraint conditions, then in this case, it can only continue to wait for the queue status to change.

[0146] S323. When the queue is in a blocked state, the scheduling system detects that a subtask at a certain level in the track has been completed, and except for the subtask that has been completed, the remaining subtasks at this level are being executed, the scheduling decision system will open a special resource channel; the resources occupied by the special resource channel are the resources that can be provided by the resource pool after the subtasks at this level are completed and the resources are released, and the special resource channel ends with the completion of the execution of all subtasks at this level.

[0147] In the scheduling decision of the previous step, when the queue is in a blocked state, the tasks in the waiting resource channel only wait for allocation according to the level, but in practice there is often a waste of resources in this process. Because for each level in the task track, all internal subtasks can be executed in parallel under the conditions of satisfying resource constraints, and the execution time required for each subtask may be different, which will result in the queue releasing some computing resources before the execution of the last subtask in this level is completed. The resources are not fully utilized for a period of time. This problem is not good for the queue in a blocked state and affects the efficiency of resource utilization to a certain extent. Therefore, this step is to open a special resource channel for the tasks in the waiting resource channel when this situation is identified.

[0148] Only when all subtasks in this level are pre-allocated resources and one of the subtasks is completed, will the conditions for opening a special resource channel be triggered, because when there are subtasks in this level that have not been pre-allocated resources, the resources will be allocated to these subtasks as soon as they are released.

[0149] When this condition is met, the scheduling system opens a special resource channel. The resources it occupies are the resources that the resource pool can provide after the subtasks of this level are released after execution. This channel ends when all subtasks of this level are executed. W Indicates the existence time of this channel:

[0150] T W =t p -t c

[0151] Among them, t p This is the end time of this level of execution, t c Generate time for a special resource channel. Therefore, the subtask set assigned to this channel needs to meet the resource constraints and also ensure the total execution time T all Cannot exceed T W Otherwise, it will affect the execution process of subtasks in the pre-allocated resource channel. This is a time limit condition specifically for tasks in special resource channels.

[0152] In addition, when selecting a subtask in the waiting resource channel, the condition that must be met is that all subtasks in the previous level of the subtask have been executed or there is no previous level task. The order of traversing the process that meets the conditions needs to be traversed according to the subtask level, and the subtask level with a higher level is traversed first. If there is no subtask that meets the conditions in the previous level task track, the task track of the next level is traversed until a subtask that meets the conditions is selected or the traversal ends.

[0153] This step can effectively improve the resource utilization of the device, and at the same time allocate resources for tasks added to the queue later. Even when the queue is blocked, multiple tasks can be executed in parallel.

[0154] S33. After the scheduling system completes the scheduling decision of the update channel in the queue, it schedules the underlying computing resources for the subtasks in the pre-allocated resource channel and the special resource channel in sequential order, and optimizes the scheduling decision by achieving the comprehensive goals of load balancing and reducing execution time.

[0155] Specifically, in general, the resource allocation process of the pre-allocated resource channel and the special resource channel is carried out separately, but when resources are tight, they may be carried out simultaneously. When a resource conflict occurs between the two channels and they need to compete for resources, resources are allocated to the subtasks in the pre-allocated resource channel first. In the process of allocating resources, it is necessary to cyclically select the dominant subtask and make decisions based on the optimization goal.

[0156] In some embodiments, step S33 includes steps S331 and S332.

[0157] S331. Loop to select the dominant subtask, traverse the resource pool and select a set of candidate solutions that meet the resource constraint conditions for the dominant subtask; wherein, for the pre-allocated resource channel, the subtask with the longest estimated hardware execution time (HET) in the front-end subtask set in the channel is selected as the dominant subtask; for special resource channels, when it is necessary to wait for the resource channel and the execution of the previous task is completed or there is no previous task, select the subtask with the longest estimated hardware execution time from the subtasks that meet the resource constraint conditions and time constraint conditions as the dominant subtask; the candidate solution set includes all chips that can execute the dominant subtask and meet the resource constraint conditions.

[0158] In a specific embodiment, for the pre-allocated resource channel, the resource allocation order needs to be based on the level of the tasks in the channel, so the subtask set to be selected is the subtask set at the top level in the channel. The subtask set to be selected is sorted in descending order of HET, and the subtask requiring the highest HET is selected as the dominant subtask. j , t j After being assigned resources, it will be removed from the set of subtasks to be selected. j If the resource constraint is not met, it is necessary to wait for more resources to be released; if the resource constraint is met, all chips in the resource pool are traversed and all chips that meet the resource constraint are selected to form a candidate solution set.

[0159] For special resource channels, the selection criteria for the subtask set are relatively strict. It needs to be in the waiting resource channel and the previous task must be completed or there is no previous task. Similarly, the subtask set is sorted in descending order according to HET, and the subtasks are traversed in descending order. If they do not meet the resource and time constraints, they will continue to traverse downward until a subtask that meets the conditions is obtained and used as the leading subtask. j ; If these two conditions are met and t j Select all feasible solutions that satisfy both conditions.

[0160] S332, calculating the score of each solution in the candidate solution set to obtain the optimal solution for the dominant subtask resource mapping, including:

[0161] For each solution in the set of candidate solutions, calculate the total execution time of the dominant subtask:

[0162] T all =T T +T R +h j

[0163] T all represents the total execution time of the dominant subtask; T T Indicates chip communication time; T R Indicates chip reconstruction time; h j represents the estimated hardware execution time of the dominant subtask;

[0164] The calculation method of chip communication time includes:

[0165]

[0166] This formula represents t j After determining the mapping resource device object, the sum of the data transmission time between it and its predecessor task, pre represents the chip set that needs to transmit data to the current chip. Therefore, in the heterogeneous resource pool, for different solutions, t j The selected chip is different, and the final required T all The scheduling system hopes that T all As small as possible, but T all The smaller the better is not necessarily true. Otherwise, the tasks will be concentrated on a few specific chips, which is not conducive to load balancing. Therefore, when calculating the score, load balancing needs to be considered to alleviate this problem.

[0167] Define the score function score:

[0168]

[0169] Represents a standardized parameter, which can be defined according to the size range of the split subtasks;

[0170] Traverse all solutions in the candidate solution set, calculate the score function, and select the solution with the highest score to complete t j Mapping to the underlying resource. As the loop gets t j and its candidate solution set, and will continue to repeat this step. This method can effectively reduce the total delay of task execution and accelerate the computing process. At the same time, it can also meet the load balancing of resources in heterogeneous resource pools and prevent excessive concentration of resource usage.

[0171] In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner.

[0172] Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the protection scope of the present invention.

Claims

1. A real-time scheduling method for heterogeneous resource pools based on task queues, characterized in that: include: Split the tasks delivered at random times into a set of subtasks with topological relationships, add the tasks to the queue to open a track, and sort and number them according to priority; Interconnect the underlying chips, add resource pool monitors to monitor resource status, build heterogeneous resource pools, and provide data to the scheduling system; The scheduling system obtains the real-time status of queues and resource pools, monitors the occurrence of events, makes dynamic decisions, sets optimization goals, and schedules the required computing resources for subtasks according to their priorities in the queue.

2. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 1, characterized in that: The task delivered at random time is split into a set of subtasks with topological relationship, and the task is added to the queue to open a track, and numbered according to priority, including: Split the tasks to be executed in parallel or sequentially, and ensure that the resource requirements of the subtasks are within the set range; The task flow diagram method is used to define and describe the subtask collection objects, and the task execution order level is expressed through the task queue model.

3. A real-time scheduling method for heterogeneous resource pools based on task queues according to claim 2, characterized in that: The splitting of the tasks to be executed in parallel or sequentially and ensuring that the resource requirements of the subtasks are within a set range includes: Set the size range of computing resources required by the target subtask so that each subtask meets the following boundary conditions: Among them, s min Indicates the lower limit of the target subtask size; s max Indicates the upper limit of the target subtask size; r1, r2, …, r k Indicates the demand of the current subtask for k resources provided by the resource pool; R 1ave ,R 2ave ,…,R kave It represents the average value of the quantity that all chips in the resource pool can provide for these k resources; Perform a preliminary split of the tasks according to module functions; each functional module of the task is split into a functional subtask; Performing parallel splitting of data; wherein a task or functional subtask is divided into multiple data subtasks according to different parts of the data set; When the functional subtask or the data subtask does not meet the boundary condition, the serialized computing module within the detection task is split into multiple pipeline subtasks; The subtask set includes at least one of a functional subtask, a data subtask and a pipeline subtask.

4. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 3, characterized in that: The task flow diagram method is used to define and describe the subtask set object, and the task execution order level is expressed through the task queue model, including: After obtaining the split subtask results, a directed acyclic graph model is used to describe the subtask set, and the directed acyclic graph model includes subtask node information and a topological relationship between subtasks in the execution order.

5. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 4, characterized in that: The directed acyclic graph model is used to describe the subtask set, including: Give the subtask node the information required for scheduling; any subtask is represented as: t j =(h j ,r j1 ,r j2 ,...,r jk ) Among them, t j represents the jth subtask; h j Indicates the calculation of t j Estimated hardware execution time; tuple (r j1 ,r j2 ,...,r jk ) indicates t j The required number of each reconfigurable resource. Add a subtask set to the task queue; when a subtask set is added to the task queue, an independent task track is generated in the queue and the task track is numbered. Each level of the track corresponds to the execution order level of the subtasks; among them, subtasks of the same level can be executed in parallel. Only when the subtasks of the previous level are executed and the intermediate data are passed to the next level, the subtasks of the next level will be allocated computing resources; each task track is independent, and the subtasks in the task track only pass the calculated data with other subtasks in the track, and will not transmit or obtain data to subtasks in other tracks. Subtasks between different tracks can also be executed in parallel; The task queue monitors the execution status of subtasks in each track in real time and transmits this information to the scheduling system.

6. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 5, characterized in that: The interconnection bottom layer chip adds a resource pool monitor to monitor the status of resources, builds a heterogeneous resource pool, and provides data to the scheduling system, including: Interconnect and synchronize multiple FPGA chips to transmit data and build a heterogeneous resource pool; The resource pool monitor monitors the status of the underlying hardware and summarizes the information and passes it to the scheduling system.

7. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 6, characterized in that: The resource pool monitor monitors the underlying hardware status, including: The resource pool monitor estimates the time to reconfigure resources in heterogeneous resource pools, including: Among them, T R Indicates the time of resource reconstruction; bs indicates the size of data stream; f cc Indicates the frequency of the configuration clock; dbw indicates the data bus width; The resource pool monitor monitors the resource usage status of the chip in real time; wherein, the resource usage status of the chip is represented by the load balancing evaluation parameter, and the calculation method of the load balancing evaluation parameter is: Among them, MSE k represents the variance of the occupancy rate of the kth resource; ik represents the real-time occupancy rate of the kth resource in the i-th chip; I represents the number of chips; K represents the number of resource types; avg(ro k ) represents the average real-time occupancy rate of all chips for the kth resource; LB represents the load balancing evaluation parameter; w k represents the weight of the k-th resource occupancy rate; The resource pool monitor estimates the communication time between the chips; wherein the communication time between the two chips is determined based on the amount of data transmitted, the transmission rate, the protocol overhead and the delay, including: Among them, T ii′ represents the communication time between chip i and chip i′; ds represents the amount of data transmitted; rate represents the transmission rate; T P Indicates protocol overhead; delay indicates delay.

8. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 7, characterized in that: The scheduling system obtains the real-time status of the queue and resource pool, monitors the occurrence of events, makes dynamic decisions, sets optimization goals, and schedules the required computing resources for subtasks according to the priority in the queue, including: Get task queue information and resource pool real-time information; The scheduling system dynamically updates scheduling decisions by monitoring changes from task queues and resource pool monitors. During the execution of the task queue, the scheduling system monitors queue information including tasks added to the queue, subtask calculation completion, and calculation completion of a certain level in the track. Queue information causes the queue state to switch between idle, crowded, and blocked states. Tasks are allocated to three resource channels based on resource occupancy: pre-allocated resource channel, waiting resource channel, and special resource channel. After the scheduling system completes the scheduling decision for the update channel in the queue, it schedules the underlying computing resources for the subtasks in the pre-allocated resource channel and the special resource channel according to the sequential level, and optimizes the scheduling decision by achieving the comprehensive goals of load balancing and reducing execution time.

9. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 8, characterized in that: The scheduling system dynamically updates scheduling decisions based on changes from the task queue and resource pool monitors, including: When the scheduling system detects that a new task is added to the queue, the task is added to the corresponding channel according to the state of the queue. When the queue is idle or crowded, the scheduling system will directly add the task track to the pre-allocated resource channel. When the queue is blocked, the scheduling system will directly add the task track to the waiting resource channel. When the queue is blocked, the scheduling system detects that all subtasks at a certain level in the track have completed calculations and updates the scheduling decision. In the pre-allocated resource channel, all subtasks at this level are cleared and the resources occupied by them are released. After the resources are released, the system adds the tasks in the waiting resource channel to the pre-allocated resource channel in order according to the resource restriction conditions. When the queue is in a blocked state, the scheduling system detects that a subtask at a certain level in the track has been completed, and except for the subtask that has been completed, the remaining subtasks at this level are being executed, the scheduling decision system will open a special resource channel; the resources occupied by the special resource channel are the resources that can be provided by the resource pool after the subtasks at this level are completed and released, and the special resource channel ends with the completion of the execution of all subtasks at this level.

10. A method for real-time scheduling of heterogeneous resource pools based on task queues according to claim 9, characterized in that: The step of scheduling the underlying computing resources for the subtasks in the pre-allocated resource channel and the special resource channel in order level includes: A leading subtask is selected cyclically, a resource pool is traversed, and a candidate solution set that meets the resource constraint condition is selected for the leading subtask; wherein, for a pre-allocated resource channel, the subtask with the longest estimated hardware execution time in the front-end subtask set in the channel is selected as the leading subtask; for a special resource channel, when it is necessary to wait for the resource channel and the execution of the previous task is completed or there is no previous task, the subtask with the longest estimated hardware execution time is selected from the subtasks that meet the resource constraint condition and the time constraint condition as the leading subtask; the candidate solution set includes all chips that can execute the leading subtask and meet the resource constraint condition; Calculate the score of each solution in the candidate solution set to obtain the optimal solution for the resource mapping of the dominant subtask, including: Calculate the total execution time of the dominant subtask: T all =T T +T R +h j T all represents the total execution time of the dominant subtask; T T Indicates chip communication time; T R Indicates chip reconstruction time; h j represents the estimated hardware execution time of the dominant subtask; Define the score function score: represents the standardized parameter; Traverse all solutions in the candidate solution set, calculate the score function, and select the solution with the highest score.

Citation Information

Cited By

  • Cloud computing resource management system

    CN120011087A

  • Edge computing power resource scheduling method and system based on edge computing chip

    CN120743472A

  • An edge computing chip-based edge computing resource scheduling method and system

    CN120743472B

  • Data intelligent processing method and device applied to industrial communication intelligent platform

    CN120743562A