A two-stage scheduling model and scheduling method based on a heterogeneous multi-core processor

By using a two-level scheduling model for heterogeneous multi-core processors, tasks are parsed and hierarchical scheduling and dependency management are performed, which solves the problems of low efficiency and stability in complex task scheduling of heterogeneous multi-core processors and achieves efficient task execution and resource utilization.

CN119645597BActive Publication Date: 2025-11-07SHENZHEN ACAD OF AEROSPACE TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411716466.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-27
Publication Date
2025-11-07
Estimated Expiration
2044-11-27

AI Technical Summary

Technical Problem

In existing technologies, heterogeneous multi-core processors are inefficient in scheduling complex tasks, have unstable task execution, struggle to handle multi-level dependencies and cross-core tasks, have low resource utilization, and cannot meet the demands of high concurrency and high-performance computing.

Method used

A two-level scheduling model based on heterogeneous multi-core processors is adopted. The module that obtains associated subtasks parses tasks, the container allocation and analysis module performs the first level of scheduling, the static priority configuration module performs the second level of scheduling, the container scheduling structure generation module sets the time frame, the window allocation and execution module allocates task windows, and the task cross-container dependency processing module manages dependencies to ensure scheduling continuity and the execution of dependencies.

Benefits of technology

It improves task scheduling efficiency and execution stability, enhances resource utilization, and meets the needs of high concurrency and high-performance computing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119645597B_ABST
    Figure CN119645597B_ABST
Patent Text Reader

Abstract

The application discloses a two-stage scheduling model and a scheduling method based on a heterogeneous multi-core processor, and relates to the technical field of computer science.The model comprises an associated subtask acquisition module, a container allocation analysis module, a static priority configuration module, a container scheduling structure generation module, a window allocation execution module and a task cross-container dependency processing module.The associated subtask acquisition module is used for analyzing a target task and generating a plurality of associated subtasks.The container allocation analysis module performs first-stage scheduling and allocates the subtasks to K task containers.The static priority configuration module performs second-stage scheduling on the subtasks according to a dependency relationship and generates a processing priority sequence.The container scheduling structure generation module creates a container scheduling structure.The window allocation execution module forms a cyclic scheduling subsequence.The task cross-container dependency processing module performs cross-container dependency management in a task execution process, thereby ensuring scheduling continuity and dependency relationship execution.The application solves the technical problems of low scheduling efficiency and unstable task execution in the existing heterogeneous multi-core processor, and achieves the technical effects of improving task scheduling efficiency and task execution stability.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer science, and particularly relates to a two-level scheduling model and a scheduling method based on a heterogeneous multi-core processor. BACKGROUND

[0002] With the growth of computing demand, multi-core and heterogeneous multi-core processors are widely used in computing-intensive tasks to improve system performance and computing efficiency. However, this complex processor architecture also brings challenges to task scheduling and resource management. The traditional scheduling method in the prior art often has difficulty in dealing with the dependency relationship of complex tasks, resource allocation and task priority, resulting in low resource utilization and low task processing efficiency. Due to the different computing capabilities of different cores in the heterogeneous multi-core processor, the scheduling task is more complex, and the scheduling system is required to analyze the task dependency relationship, reasonably allocate resources, and schedule under the condition of guaranteeing real-time and priority. The conventional method lacks systematicness and accuracy when facing multi-level dependence and cross-core tasks, and it is difficult to meet the needs of modern high-concurrency and high-performance computing.

[0003] At the present stage, in the related art, there are technical problems of low scheduling efficiency of complex tasks in the heterogeneous multi-core processor and unstable task execution. SUMMARY

[0004] The present application provides a two-level scheduling model and a scheduling method based on a heterogeneous multi-core processor, which uses an associated sub-task acquisition module to analyze target tasks and generate a plurality of associated sub-tasks; a container allocation analysis module performs first-level scheduling to allocate sub-tasks to K task containers; a static priority configuration module performs second-level scheduling on these sub-tasks according to the dependency relationship to generate a processing priority sequence; a container scheduling structure generation module creates a container scheduling structure through a main time frame setting and a time window scheduling algorithm; a window allocation execution module allocates task execution windows according to the priority sequence to form a cyclic scheduling sub-sequence; and a task cross-container dependency processing module performs cross-container dependency management during task execution to ensure scheduling continuity and dependency relationship execution, thereby achieving the technical effects of improving task scheduling efficiency and task execution stability.

[0005] The present application provides a two-level scheduling model and a scheduling model based on a heterogeneous multi-core processor, comprising:

[0006] The association subtask acquisition module is configured to, after receiving a target task, obtain a plurality of associated subtasks by performing dependency relationship analysis on the target task, wherein the plurality of associated subtasks have a plurality of dependency relationship identifiers; the container allocation analysis module is configured to perform first-level scheduling container allocation analysis on the plurality of associated subtasks to obtain K groups of associated subtasks corresponding to K task containers; the static priority configuration module is configured to perform second-level scheduling static priority configuration on the K groups of associated subtasks according to the plurality of dependency relationship identifiers to obtain K processing priority sequences; the container scheduling structure generation module is configured to, after setting a main time framework for the K task containers, construct a time window sequence of the K task containers by using a time window-based cyclic scheduling algorithm to form a container scheduling structure of a container cyclic sequence; the window allocation execution module is configured to perform task execution window allocation with the K processing priority sequences as constraints to obtain K cyclic scheduling sub-sequences; and the task cross-container dependency processing module is configured to, in the process of executing the target task through the container cyclic sequence, perform first-level scheduling time window sequence management based on the container cyclic sequence and perform second-level scheduling task cross-container dependency processing based on the K cyclic scheduling sub-sequences.

[0007] The application also provides a two-level scheduling model and method based on a heterogeneous multi-core processor, which comprises:

[0008] After receiving a target task, a plurality of associated subtasks are obtained by performing dependency relationship analysis on the target task, wherein the plurality of associated subtasks have a plurality of dependency relationship identifiers; first-level scheduling container allocation analysis is performed on the plurality of associated subtasks to obtain K groups of associated subtasks corresponding to K task containers; second-level scheduling static priority configuration is performed on the K groups of associated subtasks according to the plurality of dependency relationship identifiers to obtain K processing priority sequences; after setting a main time framework for the K task containers, a time window sequence of the K task containers is constructed by using a time window-based cyclic scheduling algorithm to form a container scheduling structure of a container cyclic sequence; task execution window allocation is performed with the K processing priority sequences as constraints to obtain K cyclic scheduling sub-sequences; and in the process of executing the target task through the container cyclic sequence, first-level scheduling time window sequence management is performed based on the container cyclic sequence and second-level scheduling task cross-container dependency processing is performed based on the K cyclic scheduling sub-sequences.

[0009] The two-stage scheduling model and the scheduling method based on the heterogeneous multi-core processor provided by the application are as follows: a correlation subtask acquisition module is used to analyze a target task and generate a plurality of correlation subtasks; a container allocation analysis module performs first-stage scheduling and allocates the subtasks to K task containers; a static priority configuration module performs second-stage scheduling on the subtasks according to a dependency relationship and generates a processing priority sequence; a container scheduling structure generation module creates a container scheduling structure through a main time frame setting and a time window scheduling algorithm; a window allocation execution module allocates a task execution window according to the priority sequence and forms a cyclic scheduling subsequence; and a task cross-container dependency processing module performs cross-container dependency management in a task execution process, ensuring scheduling continuity and dependency relationship execution, thereby achieving the technical effects of improving task scheduling efficiency and task execution stability. BRIEF DESCRIPTION OF DRAWINGS

[0010] In order to more clearly illustrate the technical solutions of the embodiments of the application, the drawings of the embodiments of the application will be briefly introduced as follows: flowcharts are used in the present application to illustrate the operations performed by the model according to the embodiments of the present application. It should be understood that the foregoing or the following operations are not necessarily performed in sequence. On the contrary, various steps can be processed in reverse order or simultaneously according to needs. Meanwhile, other operations can be added to these processes, or one or more steps can be removed from these processes.

[0011] Figure 1 A structure diagram of the two-stage scheduling model based on the heterogeneous multi-core processor provided by the embodiments of the present application is shown in the figure.

[0012] Figure 2 A flowchart of the two-stage scheduling method based on the heterogeneous multi-core processor provided by the embodiments of the present application is shown in the figure.

[0013] The reference signs are explained as follows: correlation subtask acquisition module 10, container allocation analysis module 20, static priority configuration module 30, container scheduling structure generation module 40, window allocation execution module 50, and task cross-container dependency processing module 60. DETAILED DESCRIPTION

[0014] The foregoing description is only a summary of the technical solutions of the present application. In order to more clearly understand the technical means of the present application, the embodiments of the present application can be implemented according to the content of the description, and in order to make the foregoing and other purposes, features and advantages of the present application more obvious and easy to understand, the specific embodiments of the present application are described as follows.

[0015] In order to make the purposes, technical solutions and advantages of the present application clearer, the following will further describe the present application in detail with reference to the accompanying drawings, the described embodiments should not be regarded as limitations to the present application, all other embodiments obtained by those skilled in the art without creative work fall within the scope of protection of the present application.

[0016] In the following description, "some embodiments" are referred to, which describe a subset of all possible embodiments, but it can be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict, the term "first\second" referred to only distinguishes similar objects, and does not represent a specific order for the objects. The terms "include" and "have" and any variations, are intended to cover non-exclusive inclusion, for example, a process, method, model, product or server including a series of steps or units does not have to be limited to those steps or units clearly listed, but can include other steps or modules not clearly listed or inherent to these processes, methods, products or devices. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as understood by those skilled in the art to which the present application belongs. The terms used herein are only for the purpose of describing the embodiments of the present application.

[0017] The embodiments of the present application provide a two-level scheduling model based on a heterogeneous multi-core processor, as shown in Figure 1 The model comprises:

[0018] The associated subtask acquisition module 10 is used to receive a target task, and then obtain a plurality of associated subtasks by performing dependency relationship analysis on the target task, wherein the plurality of associated subtasks have a plurality of dependency relationship identifiers. Specifically, the associated subtask acquisition module 10 first waits to receive a target task from different application scenarios (such as scientific computing, multimedia processing, enterprise resource management system, etc.), and after receiving, performs preliminary preprocessing on it, including data format checking and task integrity verification and the like. Then, the dependency relationship analysis of the target task is started, the internal structure and logical flow thereof are analyzed in depth, and a task relationship graph is constructed, with nodes representing task steps or functional modules, and lines representing dependency relationships and flow directions. Subsequently, a plurality of associated subtasks are identified and extracted according to the task relationship graph, these subtasks have relatively independent functions and mutual dependencies in respective scenarios, such as grid partitioning, flow field calculation and the like in scientific computing tasks, video clip editing, special effect adding and the like in multimedia processing tasks, order auditing, delivery and the like in enterprise resource management system tasks. Finally, a dependency relationship identifier is assigned to each associated subtask to accurately record and indicate the dependency relationship therebetween, thereby providing a basis for subsequent modules to perform reasonable resource allocation and task scheduling.

[0019] In a possible implementation, the association subtask acquisition module 10 comprises a target demand feature acquisition unit, which is configured to perform task demand analysis on the target task to obtain target demand features. Specifically, when the target task enters the system, the target demand feature acquisition unit first performs comprehensive task demand analysis on it, which involves analysis of various aspects of the target task, including the target of the task, the characteristics of the input data, the expected output result, the requirements for computing resources (such as CPU, memory, storage, etc.), and the time limit for executing the task, etc. For example, if the target task is a high-definition video rendering task, the input data is high-resolution video materials, and the output result is a rendered video with specific visual effects. In the analysis process, it is determined that the task requires high CPU computing power because a large number of image processing operations are required. The memory demand is also large, which is used to store video data and intermediate calculation results. There may be a certain time limit, such as completing the rendering within a specified time to meet the requirements of real-time playback or delivery. According to the results of the task demand analysis, the key feature information is extracted to form the target demand features. For the high-definition video rendering task, these features may include video resolution (such as 4K, 8K, etc.), frame rate (such as 24fps, 60fps, etc.), color depth (such as 8bit, 10bit, etc.), required special effect type (such as light and shadow effect, particle effect, etc.), and computing resource demand (such as CPU core number, memory size), etc. The features will serve as an important basis for subsequent processing and accurately reflect the essential demand of the target task.

[0020] The characteristic matching unit is configured to perform characteristic matching with the target demand characteristics to obtain N similar historical tasks and N historical subtask topologies. Specifically, after obtaining the target demand characteristics, the characteristic matching unit matches the target demand characteristics with the task characteristics in the historical task library. The historical task library stores detailed characteristic information of various tasks that have been executed in the past. For the target demand characteristics of the high-definition video rendering task, the historical task library is searched for tasks with similar video resolution, frame rate, special effect type, and computing resource demand. For example, if there is a previously rendered video task with the same 4K resolution, 60fps frame rate, and similar light and shadow effects in the historical task library, this historical task can be considered as a similar task. N similar historical tasks are found, and for each found similar historical task, the corresponding historical subtask topology is obtained. The historical subtask topology describes the subtasks that the historical task is decomposed into during execution and the relationship structure between the subtasks. For example, for a similar video rendering historical task, the historical subtask topology can include a video decoding subtask, an image processing subtask, a special effect adding subtask, an audio processing subtask, and the order and data dependency relationship between them, such as passing data to the image processing subtask after the video decoding subtask is completed, using the result of the image processing subtask as the input of the special effect adding subtask, and the like.

[0021] The associated task topology acquisition unit is configured to merge the N historical subtask topologies based on topology node consistency to obtain an associated task topology. Specifically, after receiving the N historical subtask topologies, the associated task topology acquisition unit is ready to perform the merging operation. Before merging, it is necessary to ensure that there is a certain consistency basis between the topologies, i.e., topology node consistency. The same type or function nodes in different historical subtask topologies can be accurately identified and corresponded. For example, in different video rendering historical subtask topologies, the video decoding node, the image processing node, etc. have the same function and meaning. Although they may differ in specific implementation details, they can be judged based on their functions. Based on the topology node consistency, the N historical subtask topologies are merged. During the merging process, nodes with the same function are integrated, the connection relationship between them is retained, and repeated or redundant parts are removed. For multiple video rendering historical subtask topologies, the video decoding nodes are merged into a unified video decoding node (if they are completely consistent in function and data interaction), and the image processing node and the special effect adding node are also subjected to similar merging operations. An associated task topology that contains the commonalities of all similar historical tasks is obtained. This topology can more comprehensively reflect the task execution structure similar to the target task.

[0022] A node dependency obtaining unit is configured to obtain a plurality of node dependencies of a plurality of topology nodes by decomposing the associated task topology with an out-degree connection as a constraint. Specifically, the node dependency obtaining unit decomposes the associated task topology with an out-degree connection as a constraint. The out-degree connection represents a connection relationship from one node to other nodes, which reflects the output direction of data or task flow. In the associated task topology, each node has a certain out-degree connection. For example, in the associated task topology of video rendering, the out-degree connection of the video decoding node points to the image processing node, which indicates that the output data after video decoding will flow to the image processing node. Understanding the data transmission path and the dependency relationship between tasks in the task flow, the out-degree connection is used to gradually decompose the associated task topology and obtain a plurality of node dependencies of a plurality of topology nodes. Starting from a starting node (such as an input data node in the video rendering task), each node's output dependency on subsequent nodes and the specific requirements of the subsequent nodes on the output of the node are analyzed in sequence along the out-degree connection. For example, the special effect adding node depends on the processed image data output by the image processing node, and the audio processing node may depend on the audio data output by the video decoding node (if audio and video are processed separately). The dependency relationship of each topology node in the entire task flow is accurately determined, which provides key information for subsequent task decomposition and scheduling.

[0023] A topology node task extracting unit is configured to extract tasks of the plurality of topology nodes to obtain a plurality of associated sub-tasks. Specifically, the topology node task extracting unit analyzes the plurality of topology nodes to identify the actual task content represented by each node. In the associated task topology of video rendering, it is identified that the actual task corresponding to the video decoding node is to decode the input video file into image and audio data sequences that can be processed; the task of the image processing node is to perform various processing on the decoded image data, such as color correction, image enhancement, etc.; the task of the special effect adding node is to add specific visual effects to the image according to the preset special effect rule; the task of the audio processing node is to process the audio data, such as volume adjustment, sound mixing, etc. Once the task content of each topology node is identified, it is extracted to obtain a plurality of associated sub-tasks. The associated sub-tasks constitute the decomposed form of the target task, and each sub-task has a clear function and position in the entire task flow. For example, the video decoding sub-task, the image processing sub-task, the special effect adding sub-task, and the audio processing sub-task are extracted from the associated task topology of video rendering. These sub-tasks will serve as the basic unit for subsequent task scheduling and resource allocation, and their dependency relationship has been clearly defined through the previous steps.

[0024] An identifier processing unit is configured to perform the identification processing of the plurality of node dependency relationships as the plurality of dependency relationship identifiers of the plurality of associated sub-tasks. Specifically, after the identifier processing unit obtains the plurality of node dependency relationships, it is ready to convert these relationships into dependency relationship identifiers that can be used to identify the associated sub-tasks, and the identifiers will be used to clearly indicate the dependency order and data interaction relationship between the sub-tasks in the subsequent task processing process, so that the system can accurately perform task scheduling and resource allocation. The plurality of node dependency relationships are assigned to the corresponding associated sub-tasks as a plurality of dependency relationship identifiers, for example, for the image processing sub-task in the video rendering task, its dependency relationship identifier may indicate that it depends on the output data of the video decoding sub-task, and its output data will be used as the input of the special effect adding sub-task. Each associated sub-task is given a clear dependency relationship identifier, so that the system can clearly understand the position and relationship of each sub-task in the entire task flow, thereby achieving efficient task management and execution.

[0025] A container allocation analysis module 20 is configured to perform a first-level scheduling container allocation analysis on the plurality of associated sub-tasks to obtain K groups of associated sub-tasks corresponding to K task containers. Specifically, the container allocation analysis module 20 first receives the plurality of associated sub-tasks from the associated sub-task acquisition module 10, then performs task demand feature acquisition on these associated sub-tasks, and comprehensively considers factors such as computing resource demand (such as CPU computing amount, GPU acceleration demand, etc.), memory occupation, and data transmission demand (including frequency, data size, and transmission direction, etc.) to generate task demand features for each associated sub-task. Then, using a clustering algorithm (such as a K-means clustering algorithm or a hierarchical clustering algorithm, etc.), based on K (the number of target task containers) initial cluster centers, the similarity between the associated sub-tasks and the cluster centers (based on the multi-dimensional task demand features) is calculated, the associated sub-tasks are assigned to the cluster to which the nearest cluster center belongs, the cluster center is iteratively updated until the stopping condition is met, and the associated sub-tasks are divided into K groups. Finally, with the plurality of dependency relationship identifiers as constraints, the associated sub-tasks with close dependency relationship are assigned to the same task container as much as possible, and the independent or weakly dependent associated sub-tasks are assigned to different containers, thereby reasonably assigning the K groups of associated sub-tasks to the K task containers to obtain the corresponding K groups of associated sub-tasks.

[0026] In a possible implementation, the container allocation analysis module 20 further includes a task demand feature acquisition unit, configured to perform resource demand analysis on the plurality of associated sub-tasks to obtain a plurality of task demand features. Specifically, after receiving the plurality of associated sub-tasks, the task demand feature acquisition unit performs comprehensive resource demand analysis. For computing resources, the number of CPU clock cycles, the number of instruction executions, and the required GPU computing core occupation time in scenarios involving graphics processing or deep learning are accurately calculated. In terms of storage resources, the memory space size occupied by the sub-tasks during running is evaluated in detail, including the required memory for program code, data structure, and temporary data generated during running, and the read-write operation frequency and data volume of external storage devices such as hard disks are considered. In terms of data transmission demand, the frequency of data exchange between the sub-tasks and other tasks, the data block size of each transmission, and the direction of data transmission (whether receiving data or sending data is the main direction) are analyzed. Through analysis, the unique task demand features of each associated sub-task are accurately obtained, and the specific situation of each sub-task in terms of resource demand is clearly presented.

[0027] The associated sub-task division unit is configured to divide the plurality of associated sub-tasks into K groups of associated sub-tasks according to the plurality of task demand features. Specifically, the associated sub-task division unit uses a suitable clustering algorithm, such as the K-means clustering algorithm, based on the plurality of task demand features obtained by the task demand feature acquisition unit. First, K cluster centers are randomly initialized, each representing a potential set of associated sub-tasks. The distance between each associated sub-task and the K cluster centers is calculated based on various indicators in the task demand features, such as computing resource demand gap, storage resource demand difference, and data transmission demand similarity. Each associated sub-task is assigned to the cluster with the closest cluster center. The center position of each cluster is recalculated based on the new clustering situation, and the process is repeated until the cluster centers no longer change significantly or the preset iteration limit is reached. Finally, the plurality of associated sub-tasks are successfully divided into K groups of associated sub-tasks, and the sub-tasks in each group have high similarity in terms of resource demand features, while the sub-tasks in different groups have large differences.

[0028] The container allocation constraint unit allocates the K groups of associated sub-tasks to K task containers as container allocation constraints of the plurality of dependency relationship identifiers. Specifically, the container allocation constraint unit performs container allocation tasks based on the plurality of dependency relationship identifiers as keys, and the dependency relationship identifiers record the order and data dependency relationship between the associated sub-tasks in detail. In the allocation process, the associated sub-task groups with close data dependency relationship are preferentially allocated to the same task container. For example, if the output data of a sub-task is the direct input of another sub-task, and the dependency relationship is close and frequent, they are allocated together, which can effectively reduce the data transmission overhead between containers and improve the data processing efficiency, because the data transmission speed is faster in the same container and there is no need for complex cross-container communication mechanism. For the associated sub-task groups with relatively weak data dependency relationship or strong independence, they are allocated to different task containers, so as to fully utilize the parallel processing capability between different containers and improve the running efficiency of the entire task system. In this way, the K groups of associated sub-tasks are reasonably and efficiently allocated to the K task containers, which lays a solid foundation for the smooth execution and efficient scheduling of subsequent tasks.

[0029] In a possible implementation, the task demand feature acquisition unit further includes an associated basic information acquisition sub-unit, configured to collect information of the plurality of associated sub-tasks to obtain a plurality of associated basic information. Specifically, the associated basic information acquisition sub-unit collects information of the plurality of associated sub-tasks, and the collected information covers multiple aspects, including the name, function description, input data format and source, output data format and destination of the sub-task, etc. For example, in an image processing process, the name of the associated sub-task may be "image filtering", the function description is to perform a specific filtering operation on the input image to remove noise, the input data is the original image data from the image acquisition device, and the output data is the image data after filtering. Through comprehensive information collection, detailed associated basic information of each associated sub-task is obtained, and the information constitutes the basis for subsequent analysis.

[0030] The historical data calling subunit is configured to call historical data with the task types of the plurality of associated subtasks as constraints, and obtain a plurality of sets of sample task feature indexes. Specifically, the historical data calling subunit calls historical data with the task types of the plurality of associated subtasks as key constraints. First, the task types to which each associated subtask belongs are determined. For example, the image filtering subtask in the image processing procedure belongs to the image processing type. Then, past data records of the same or similar task types are searched in a historical database. For the image filtering task type, image filtering task cases that have been executed before are found from the historical data. Feature data in these cases, such as filtering algorithm types, resolutions of processed images, processing times, and the like, are extracted. These data are combined to form a plurality of sets of sample task feature indexes, which provide reference bases for subsequent task feature extraction.

[0031] The task feature array obtaining subunit is configured to perform task feature extraction of the plurality of associated subtasks with the plurality of sets of sample task feature indexes as constraints, and obtain a plurality of task feature arrays. Specifically, the task feature array obtaining subunit performs task feature extraction of the plurality of associated subtasks according to the plurality of sets of sample task feature indexes. For each associated subtask, its own situation is compared with the sample task feature indexes. For example, for the image filtering subtask, the feature performance of the filtering algorithm used in the current task in past cases is determined according to the filtering algorithm type index in the historical data, such as the computational complexity of the algorithm when processing images of a specific resolution, memory occupation, and the like. Then, the influence of the difference between the resolution of the current task image and the sample task on the task feature is analyzed in combination with the resolution index of the processed image. These feature values extracted from different aspects are combined into a task feature array. Each associated subtask has its corresponding task feature array, thereby comprehensively characterizing the feature of each subtask.

[0032] The intra-group aggregation subunit is configured to perform intra-group aggregation on the plurality of task feature arrays, and obtain a plurality of task demand features. Specifically, the intra-group aggregation subunit performs intra-group aggregation on the plurality of task feature arrays. For task feature arrays of associated subtasks that belong to the same task type or have similar features, comprehensive analysis is performed. For example, for task feature arrays of a plurality of image filtering associated subtasks, statistical quantities such as average values, maximum values, minimum values, and the like of the computational complexity, memory occupation, and the like of the task feature arrays are calculated, and the correlation between these features is analyzed. Through this intra-group aggregation manner, information in the plurality of task feature arrays is integrated, thereby obtaining a plurality of task demand features that can accurately reflect the resource demand, performance characteristics, and the like of each associated subtask, and providing strong support for subsequent task scheduling and resource allocation.

[0033] In a possible implementation, the association subtask division unit further includes a binary grouping arrangement subunit, configured to perform binary grouping arrangement on the plurality of task demand features to obtain H groups of task demand features. Specifically, the binary grouping arrangement subunit combines and arranges the plurality of task demand features two by two after obtaining the plurality of task demand features. For example, if there are task demand features A, B, and C, binary groups AB, AC, and BC are formed. In this way, H groups of task demand features are obtained, which provide a data basis for subsequent calculation of task similarity coefficients. The binary grouping arrangement manner helps to comprehensively compare the relationship between different task demand features and mine the potential similarity and difference between them.

[0034] The Euclidean distance calculation subunit is configured to perform Euclidean distance calculation on the H groups of task demand features to obtain H task similarity coefficients. Specifically, the Euclidean distance calculation subunit performs Euclidean distance calculation on the H groups of task demand features obtained through binary grouping arrangement. For each group of task demand features, the Euclidean distance in the multi-dimensional space is calculated. The H Euclidean distance values are obtained through calculation, which are used as the task similarity coefficients. The smaller the Euclidean distance, the more similar the two groups of task demand features, and the higher the corresponding task similarity coefficient.

[0035] The topology connection subunit is configured to connect the plurality of association subtasks as a plurality of task nodes, and perform topology connection with the H task similarity coefficients as a constraint to obtain a task association topology. Specifically, the topology connection subunit connects the plurality of association subtasks as a plurality of task nodes, and performs topology connection according to the H task similarity coefficients. If the task similarity coefficient between two task nodes (association subtasks) is high, it indicates that they are similar in resource demand, task nature, and the like, and a connection is established in the topology structure. For example, if the task similarity coefficient of task node A and task node B reaches a certain threshold, they are connected by a line in the topology. In this way, all the association subtasks are constructed into a task association topology, which clearly presents the similarity relationship network between the association subtasks and provides a structural basis for subsequent splitting and task allocation.

[0036] The topology first-level splitting subunit is used for predefining a task similarity scale and performing task-related topology first-level splitting according to the task similarity scale to obtain a plurality of first-level related subtopologies. Specifically, the topology first-level splitting subunit predefines a task similarity scale, which is a basis for determining whether task nodes should be divided into different subtopologies. Then, the first-level splitting is performed on the task-related topology according to the task similarity scale. For example, if the task similarity scale is set to perform splitting when the Euclidean distance is greater than a certain value, then the task nodes and their connected parts that are far away (the Euclidean distance is greater than the set value) in the task-related topology are separated from the overall topology to form a plurality of first-level related subtopologies. In this way, the task-related topology can be preliminarily grouped according to the similarity degree, and the parts with large differences are distinguished.

[0037] The second-level related subtopology acquisition subunit is used for performing second-level splitting of the plurality of first-level related subtopologies according to the plurality of dependency relationship identifiers to obtain K second-level related subtopologies. Specifically, the second-level related subtopology acquisition subunit performs second-level splitting of the plurality of first-level related subtopologies according to the plurality of dependency relationship identifiers. The dependency relationship identifier explicitly indicates the order and data dependency relationship between the related subtasks. For each first-level related subtopology, more detailed splitting is performed according to the dependency relationship between the task nodes therein. For example, if there is a strong dependency relationship between some task nodes in a first-level related subtopology, and the dependency relationship with other parts of the task nodes is weak, then the first-level related subtopology is split into different second-level related subtopologies. In this way, K second-level related subtopologies are finally obtained, so that the task nodes in each second-level related subtopology are more closely related in terms of dependency relationship and similarity.

[0038] The subtopology extraction subunit is used for extracting the K groups of related subtasks based on the K second-level related subtopologies. Specifically, the subtopology extraction subunit extracts the K groups of related subtasks based on the K second-level related subtopologies. For each second-level related subtopology, the related subtasks corresponding to the task nodes contained therein are extracted to form a group of related subtasks. Since the task nodes in the second-level related subtopology are closely related in terms of dependency relationship and similarity, each group of related subtasks extracted has good continuity and similarity, and can be executed in a task container according to the continuity relationship as the processing priority, thereby providing reasonable task grouping for efficient task scheduling and execution.

[0039] The static priority configuration module 30 is configured to configure a static priority of the K groups of associated sub-tasks according to the plurality of dependency identifiers, and obtain K processing priority sequences. Specifically, the static priority configuration module 30 first analyzes the plurality of dependency identifiers, thereby determining the order and data dependency among the K groups of associated sub-tasks, accurately grasping the dependency among the data cleaning and analysis sub-task groups in the data analysis process, and the complex dependency among the sub-task groups in the software development project. Then, the key path of the task flow is determined according to the analysis result, for example, the key path formed by the raw material procurement in the product manufacturing process. Subsequently, the priority allocation principle is determined, and the sub-task groups on the key path, the sub-task groups dependent on multiple groups, and the sub-task groups with real-time requirements or large impact on system performance are given priority, such as the order processing sub-task group in the e-commerce system. Finally, the K groups of associated sub-tasks are configured with a static priority according to the principle, and a priority value or level is assigned to form K processing priority sequences, such as the video decoding sub-task group in the multimedia processing system, and the audio processing sub-task group is assigned a lower priority according to the situation, to ensure efficient and reliable execution of the task.

[0040] The container scheduling structure generation module 40 is configured to set a main time framework for the K task containers, and construct a time window sequence of the K task containers by using a time window-based cyclic scheduling algorithm to form a container scheduling structure of the container cyclic sequence. Specifically, the container scheduling structure generation module 40 first considers the task deadline requirement and the estimated total execution time (including calculation, transmission, waiting time, etc.) of the associated sub-tasks in the K task containers, and sets a main time framework for the K task containers, such as determining an appropriate time length in the video processing task of the online video live streaming system with high real-time requirement. Then, the time window allocation principle is determined according to the importance, calculation resource demand and data dependency of the associated sub-tasks in the task container, such as allocating a longer time window to the important and calculation complex image processing task container in the video processing system, and a shorter time window to the auxiliary log recording task container, and ensuring that the task containers with close data dependency are reasonably connected. Finally, the main time framework is divided into a plurality of time windows and allocated to the K task containers according to the principle by using the time window-based cyclic scheduling algorithm, to form a cyclic scheduling sequence, each task container is executed in its time window, and the allocation order and size are adjusted according to the real-time requirement and priority, thereby constructing an efficient container scheduling structure of the container cyclic sequence, and improving the task processing efficiency and resource utilization of the system.

[0041] In a possible implementation, the container scheduling structure generation module 40 further comprises a task execution time extraction unit, configured to extract a plurality of task execution times from the plurality of task demand features. Specifically, the task execution time extraction unit, after obtaining the plurality of task demand features, analyzes these features in depth to extract the task execution times. The factors such as the computational complexity of the task, the size of the data, and the efficiency of the algorithm used will be considered. For example, for a task involving large-scale matrix operations, the computational complexity is high, and the execution time is relatively long; while for a task with small data and simple algorithm, the execution time is relatively short. Through such comprehensive evaluation, the corresponding task execution time is accurately extracted for each associated subtask, so as to clearly determine the approximate time resources required by each subtask during the running process.

[0042] The data packet adding unit is configured to perform data packet adding of the plurality of task execution times according to the K groups of associated subtasks, to obtain K task demand times. Specifically, the data packet adding unit operates on the plurality of task execution times according to the K groups of associated subtasks. Since each group of associated subtasks has the characteristics of connection and similarity, the task execution times belonging to the same group are added and summed. For example, a group of associated subtasks includes three subtasks, and the execution times of the three subtasks are 2 seconds, 3 seconds, and 1 second respectively, then the task demand time of this group is 6 seconds. Through such data packet adding processing, the total task demand time of each task container is calculated, and the total amount of time required for the execution of all associated subtasks in each task container is clearly presented.

[0043] The main time framework generation unit is configured to globally add the plurality of task execution times as the main time framework. Specifically, the main time framework generation unit performs a global adding operation on all the task execution times. It accumulates the execution times of various associated subtasks to obtain a total time value, which is used as the main time framework. This main time framework represents the longest time required to complete the entire task (including all associated subtasks) in an ideal case. For example, if the total of the execution times of all associated subtasks is 50 seconds, then the main time framework is set to 50 seconds, which provides a total time range limit for the subsequent time window allocation.

[0044] The container circulation sequence acquisition unit is configured to acquire the container circulation sequence by allocating the main time frame according to the K task demand times to construct the time window sequence of the K task containers. Specifically, the container circulation sequence acquisition unit processes the main time frame allocation work according to the K task demand times. First, the main time frame is allocated to the K task containers according to certain rules and strategies to construct the time window sequence of each task container. During the allocation process, the task demand times of the task containers are considered, and the containers with longer demand times and higher task importance are given relatively longer time windows. For example, a task container with a task demand time of 15 seconds can be allocated to a time window of 18 seconds (including a certain buffer time) in the main time frame. Through such an allocation mode, the execution time period of each task container in the main time frame is determined, thereby obtaining the container circulation sequence, so that each task container can be executed in sequence according to the set order and time window, ensuring the orderly progress of the tasks.

[0045] The window allocation execution module 50 is configured to allocate task execution windows with the K processing priority sequences as constraints to obtain K cyclic scheduling sub-sequences. Specifically, the window allocation execution module 50 first divides the multiple task execution times into K groups of task execution times according to the K groups of associated sub-tasks, and ensures that the task execution times are closely connected with the corresponding processing priority sequences in the process, such as the execution time of the image decoding, processing, and encoding groups in the image processing task according to the priority. Then, the K groups of task execution times are sorted and spliced to construct K task window sequences with the K processing priority sequences as limiting conditions, and the task window sequences are strictly arranged according to the priority, and the order of the same priority is determined according to other rules. Finally, the K task window sequences and the K processing priority sequences are stored in association to generate K cyclic scheduling sub-sequences, so that the system can arrange and select the sub-tasks in the task containers in sequence according to the priority and the time window during task execution, guarantee the timely processing of critical tasks, improve the task scheduling efficiency and resource utilization, and ensure the orderly execution of the tasks.

[0046] In a possible implementation, the window allocation execution module 50 further includes a task execution time division unit configured to divide the plurality of task execution times into K groups of task execution times according to the K groups of associated subtasks. Specifically, the task execution time division unit works according to the K groups of associated subtasks. Since each group of associated subtasks has coherent and similar characteristics, the subtasks can be executed in a task container in a coherent relationship according to processing priority. The unit finely divides the plurality of task execution times, and determines a corresponding group of task execution times for each group of associated subtasks. For example, in a task system including data collection, data analysis, and data visualization (assuming K = 3), the task execution time of the data collection group can be relatively stable, the execution time of the data analysis group depends on the data volume and algorithm complexity, and the execution time of the data visualization group is related to the complexity of generating a chart. By accurate division, time data is provided for subsequent task scheduling.

[0047] The task window sequence acquisition unit is configured to splice the ordering of the K groups of task execution times with the K processing priority sequences as constraints, and obtain K task window sequences. Specifically, the task window sequence acquisition unit takes the K processing priority sequences as key constraints. Since the subtasks are to be scheduled in a container according to the static priority, high-priority tasks need to be executed in a time window to ensure that critical tasks are processed on time. The unit splices the ordering of the K groups of task execution times according to the processing priority sequences. For example, if the data analysis group has a higher priority, the data collection group has a lower priority, and the data visualization group has a lower priority, the task execution time of the data analysis group is arranged first, followed by the data collection group, and finally the data visualization group. In this way, K task window sequences are obtained, and the execution order of the subtasks in the time window in each task container is determined.

[0048] The associated storage unit is configured to store the K task window sequences and the K processing priority sequences in association, and generate the K cyclic scheduling sub-sequences. Specifically, the associated storage unit is responsible for storing the K task window sequences and the K processing priority sequences in association. It establishes an effective mapping relationship, so that each task window sequence can accurately correspond to the processing priority sequence to which it belongs. For example, in a database storage structure, an associated field is set for each task window sequence, which points to the identifier of the corresponding processing priority sequence. Through the associated storage operation, the K cyclic scheduling sub-sequences are generated. In the actual task execution process, the system can select the subtasks from the task container in order according to the cyclic scheduling sub-sequences, ensure that the tasks run efficiently according to the priority and time window arrangement, and realize the optimized scheduling and reasonable allocation of resources of the entire task system.

[0049] The task cross-container dependency processing module 60 is configured to perform first-level scheduling time window sequence management and second-level scheduling task cross-container dependency processing based on the K loop scheduling sub-sequences during execution of the target task process by the container loop sequence. Specifically, during execution of the target task by the container loop sequence, the task cross-container dependency processing module 60 performs coordinated scheduling of the task containers based on the first-level scheduling time window sequence management, strictly controls running of each task container within a specified time window, and performs the task containers in sequence according to respective time windows to avoid resource competition and ensure orderly cooperation between the task containers, for example, in a system composed of data processing, model training, and result evaluation task containers. The task cross-container dependency processing module 60 also performs dependency processing between the task containers based on the K loop scheduling sub-sequences, schedules sub-tasks within the task containers according to priority, performs a high-priority data loading sub-task first in a model training container, and considers cross-container dependency relationships, so that the result evaluation container is executed only after satisfying the dependency condition, thereby ensuring smooth execution of associated sub-tasks within the containers and between the containers according to priority and dependency relationships, and promoting successful completion of the entire target task.

[0050] The application embodiment adopts an associated sub-task acquisition module to parse a target task and generate a plurality of associated sub-tasks, a container allocation analysis module to perform first-level scheduling and allocate the sub-tasks to K task containers, a static priority configuration module to perform second-level scheduling on the sub-tasks according to dependency relationships and generate a processing priority sequence, a container scheduling structure generation module to create a container scheduling structure by a main time framework setting and a time window scheduling algorithm, a window allocation execution module to allocate a task execution window according to the priority sequence and form a loop scheduling sub-sequence, and a task cross-container dependency processing module to perform cross-container dependency management during task execution, thereby ensuring scheduling continuity and dependency relationship execution, and achieving the technical effects of improving task scheduling efficiency and task execution stability.

[0051] In the foregoing, with reference to Figure 1 A two-level scheduling model based on a heterogeneous multi-core processor according to an embodiment of the application is described in detail. Next, a two-level scheduling method based on a heterogeneous multi-core processor according to an embodiment of the application will be described with reference to Figure 2 A two-level scheduling method based on a heterogeneous multi-core processor according to an embodiment of the application is described in detail. Next, a two-level scheduling method based on a heterogeneous multi-core processor according to an embodiment of the application will be described with reference to

[0052] A two-level scheduling method based on a heterogeneous multi-core processor according to an embodiment of the application is described in detail. Next, a two-level scheduling method based on a heterogeneous multi-core processor according to an embodiment of the application will be described with reference to Figure 2 The method includes the following steps.

[0053] After receiving the target task, a plurality of associated sub-tasks are obtained by dependency relationship analysis on the target task, wherein the plurality of associated sub-tasks have a plurality of dependency relationship identifiers; a first-level scheduling container allocation analysis is performed on the plurality of associated sub-tasks to obtain K groups of associated sub-tasks corresponding to K task containers; a second-level scheduling static priority configuration is performed on the K groups of associated sub-tasks according to the plurality of dependency relationship identifiers to obtain K processing priority sequences; after setting a main time framework for the K task containers, a time window sequence of the K task containers is constructed using a time window-based cyclic scheduling algorithm to form a container scheduling structure of a container cyclic sequence; a task execution window allocation is performed with the K processing priority sequences as constraints to obtain K cyclic scheduling sub-sequences; in the process of executing the target task through the container cyclic sequence, a first-level scheduling time window sequence management is performed based on the container cyclic sequence, and a second-level scheduling task cross-container dependency processing is performed based on the K cyclic scheduling sub-sequences.

[0054] In a possible implementation, the two-level scheduling method based on the heterogeneous multi-core processor further includes: performing resource requirement analysis on the plurality of associated sub-tasks to obtain a plurality of task requirement characteristics; dividing the plurality of associated sub-tasks into K groups of associated sub-tasks according to the plurality of task requirement characteristics; and distributing the K groups of associated sub-tasks to K task containers with the plurality of dependency relationship identifiers as container distribution constraints.

[0055] In a possible implementation, the two-level scheduling method based on the heterogeneous multi-core processor further includes: extracting a plurality of task execution times from the plurality of task requirement characteristics; performing data grouping and summation of the plurality of task execution times according to the K groups of associated sub-tasks to obtain K task requirement times; performing global summation of the plurality of task execution times as the main time framework; and constructing the time window sequence of the K task containers by distributing the main time framework according to the K task requirement times to obtain the container cyclic sequence.

[0056] In a possible implementation, the two-level scheduling method based on the heterogeneous multi-core processor further includes: dividing the plurality of task execution times into K groups of task execution times according to the K groups of associated sub-tasks; performing sorting and splicing of the K groups of task execution times with the K processing priority sequences as constraints to obtain K task window sequences; and storing the K task window sequences in association with the K processing priority sequences to generate the K cyclic scheduling sub-sequences.

[0057] In a possible implementation, the two-stage scheduling method based on the heterogeneous multi-core processor further includes: collecting information of the plurality of associated sub-tasks to obtain a plurality of associated basic information; calling historical data with the task type of the plurality of associated sub-tasks as a constraint to obtain a plurality of sample task feature indexes; performing task feature extraction of the plurality of associated sub-tasks with the plurality of sample task feature indexes as a constraint to obtain a plurality of task feature arrays; and performing intra-group aggregation on the plurality of task feature arrays to obtain the plurality of task demand features.

[0058] In a possible implementation, the two-stage scheduling method based on the heterogeneous multi-core processor further includes: performing binary grouping arrangement on the plurality of task demand features to obtain H groups of task demand features; performing Euclidean distance calculation on the H groups of task demand features to obtain H task similarity coefficients; taking the plurality of associated sub-tasks as a plurality of task nodes and performing topological connection with the H task similarity coefficients as a constraint to obtain a task association topology; predefining a task similarity scale and performing a first-level split of the task association topology with the task similarity scale to obtain a plurality of first-level associated sub-topologies; performing a second-level split of the plurality of first-level associated sub-topologies with the plurality of dependency relationship identifiers to obtain K second-level associated sub-topologies; and extracting the K second-level associated sub-topologies to obtain the K groups of associated sub-tasks.

[0059] In a possible implementation, the two-stage scheduling method based on the heterogeneous multi-core processor further includes: performing task demand analysis on the target task to obtain a target demand feature; performing characteristic matching with the target demand feature to obtain N similar historical tasks and N historical sub-task topologies; performing merging of the N historical sub-task topologies based on topological node consistency to obtain an associated task topology; decomposing the associated task topology with out-degree connection as a constraint to obtain a plurality of node dependency relationships of a plurality of topological nodes; performing task extraction on the plurality of topological nodes to obtain the plurality of associated sub-tasks; and taking the plurality of node dependency relationships as the plurality of dependency relationship identifiers to perform identification processing on the plurality of associated sub-tasks.

[0060] The two-stage scheduling model based on the heterogeneous multi-core processor provided in the embodiment can execute the two-stage scheduling method based on the heterogeneous multi-core processor provided in any embodiment of the application, and has the corresponding function modules and beneficial effects of the execution method.

[0061] Although the present application makes various references to certain modules in the model according to the embodiments of the present application, however, any number of different modules can be used and run on the user terminal and / or server, the various units and modules are only divided according to the functional logic, but are not limited to the above division, as long as the corresponding functions can be realized; in addition, the specific name of each functional unit is only for the convenience of mutual differentiation, and does not limit the protection scope of the present application.

[0062] The above detailed description does not constitute a limitation on the protection scope of the present application. Those skilled in the art should understand that various modifications, combinations and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present application shall be included in the protection scope of the present application. In some cases, the actions or steps described in the present application can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multi-task processing and parallel processing are possible or can be advantageous.

Claims

1. A two-level scheduling model based on a heterogeneous multi-core processor, characterized in that, The model comprises: The associated subtask acquisition module is used for receiving a target task, and obtaining a plurality of associated subtasks by performing dependency relationship analysis on the target task, wherein the plurality of associated subtasks have a plurality of dependency relationship identifiers; The container allocation analysis module is used for performing first-level scheduling container allocation analysis on the plurality of associated subtasks, and obtaining K groups of associated subtasks corresponding to K task containers; The static priority configuration module is used for performing second-level scheduling static priority configuration on the K groups of associated subtasks according to the plurality of dependency relationship identifiers, and obtaining K processing priority sequences; The container scheduling structure generation module is used for setting a main time framework for the K task containers, constructing a time window sequence of the K task containers by using a time window-based cyclic scheduling algorithm to form a container scheduling structure of a container cyclic sequence after the K task containers are set; The window allocation execution module is used for performing task execution window allocation with the K processing priority sequences as constraints, and obtaining K cyclic scheduling sub-sequences; The task cross-container dependency processing module is used for performing first-level scheduling time window sequence management based on the container cyclic sequence and performing second-level scheduling task cross-container dependency processing based on the K cyclic scheduling sub-sequences in the process of executing the target task through the container cyclic sequence; The container allocation analysis module comprises: The task demand feature acquisition unit is used for performing resource demand analysis on the plurality of associated subtasks, and obtaining a plurality of task demand features; The associated subtask division unit is used for dividing the plurality of associated subtasks into K groups of associated subtasks according to the plurality of task demand features; The container allocation constraint unit is used for allocating the K groups of associated subtasks to K task containers with the plurality of dependency relationship identifiers as container allocation constraints; The container scheduling structure generation module comprises: The task execution time extraction unit is used for extracting a plurality of task execution times from the plurality of task demand features; The data grouping addition unit is used for performing data grouping addition of the plurality of task execution times according to the K groups of associated subtasks, and obtaining K task demand times; The main time framework generation unit is used for globally adding the plurality of task execution times as the main time framework; The container cyclic sequence acquisition unit is used for constructing a time window sequence of the K task containers by allocating the main time framework according to the K task demand times, and obtaining the container cyclic sequence; The window allocation execution module comprises: The task execution time division unit is used for dividing the plurality of task execution times into K groups of task execution times according to the K groups of associated subtasks; a task window sequence acquisition unit, configured to concatenate the sorting of the K groups of task execution times with the K processing priority sequences as constraints to obtain K task window sequences; an association storage unit, configured to store the K task window sequences in association with the K processing priority sequences to generate the K cyclic scheduling sub-sequences; the association sub-task division unit comprises: a binary grouping arrangement sub-unit, configured to perform binary grouping arrangement on the plurality of task demand features to obtain H groups of task demand features; an Euclidean distance calculation sub-unit, configured to perform Euclidean distance calculation on the H groups of task demand features to obtain H task similarity coefficients; a topology connection sub-unit, configured to connect the plurality of association sub-tasks as a plurality of task nodes, and perform topology connection with the H task similarity coefficients as constraints to obtain a task association topology; a topology first-level splitting sub-unit, configured to predefine a task similarity scale, and perform first-level splitting of the task association topology with the task similarity scale to obtain a plurality of first-level association sub-topologies; a second-level association sub-topology acquisition sub-unit, configured to perform second-level splitting of the plurality of first-level association sub-topologies with the plurality of dependency relationship identifiers to obtain K second-level association sub-topologies; a sub-topology extraction sub-unit, configured to extract the K groups of association sub-tasks based on the K second-level association sub-topologies.

2. The two-level scheduling model based on heterogeneous multi-core processor according to claim 1, characterized in that, the task demand feature acquisition unit comprises: an association basic information acquisition sub-unit, configured to collect information of the plurality of association sub-tasks to obtain a plurality of association basic information; a historical data calling sub-unit, configured to call historical data with the task type of the plurality of association sub-tasks as constraints to obtain a plurality of groups of sample task feature indexes; a task feature array acquisition sub-unit, configured to extract task features of the plurality of association sub-tasks with the plurality of groups of sample task feature indexes as constraints to obtain a plurality of task feature arrays; an intra-group aggregation sub-unit, configured to aggregate the plurality of task feature arrays to obtain the plurality of task demand features.

3. The two-level scheduling model based on heterogeneous multi-core processor according to claim 1, characterized in that, the association sub-task acquisition module comprises: a target demand feature acquisition unit, configured to parse task demand of the target task to obtain a target demand feature; a characteristic matching unit, configured to perform characteristic matching with the target demand feature to obtain N similar historical tasks and N historical sub-task topologies; an association task topology acquisition unit, configured to merge the N historical sub-task topologies based on topology node consistency to obtain an association task topology; and an association task topology acquisition unit, configured to merge the N historical sub-task topologies based on topology node consistency to obtain an association task topology. A node dependency obtaining unit is configured to obtain a plurality of node dependencies of a plurality of topology nodes by decomposing the associated task topology with out-degree connections as a constraint; A topology node task extracting unit is configured to extract tasks from the plurality of topology nodes to obtain the plurality of associated subtasks; An identifier processing unit is configured to perform identifier processing on the plurality of associated subtasks by taking the plurality of node dependencies as the plurality of dependency identifiers.

4. A two-level scheduling method based on a heterogeneous multi-core processor, characterized in that, The method is applied to the two-stage scheduling model based on the heterogeneous multi-core processor according to any one of claims 1-3, and the method comprises: After receiving a target task, a plurality of associated subtasks are obtained by performing dependency analysis on the target task, wherein the plurality of associated subtasks have a plurality of dependency identifiers; A container allocation analysis of first-stage scheduling is performed on the plurality of associated subtasks to obtain K groups of associated subtasks corresponding to K task containers; A static priority configuration of second-stage scheduling is performed on the K groups of associated subtasks according to the plurality of dependency identifiers to obtain K processing priority sequences; After setting a main time framework for the K task containers, a time window sequence of the K task containers is constructed by using a time window-based cyclic scheduling algorithm to form a container scheduling structure of a container cyclic sequence; Task execution window allocation is performed with the K processing priority sequences as constraints to obtain K cyclic scheduling sub-sequences; In the process of executing the target task through the container cyclic sequence, time window sequence management of first-stage scheduling is performed based on the container cyclic sequence, and task cross-container dependency processing of second-stage scheduling is performed based on the K cyclic scheduling sub-sequences.

Citation Information

Patent Citations

  • Two-stage self-adaptive scheduling method suitable for large-scale parallel data processing tasks

    CN108920261A

  • Task scheduling method for priority-based real-time operating system in multicore environment

    US20150106819A1