Resource scheduling method and device, resource scheduling node and resource node
By decomposing the services of complex applications into multiple tasks and allocating them to multiple resource nodes for processing, the problem that existing systems are difficult to deal with complex applications is solved, and the availability and service completion rate of the resource collaborative scheduling system are improved.
Patent Information
- Application Number
- CN202311567730.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-22
- Publication Date
- 2025-05-23
AI Technical Summary
Existing resource collaborative scheduling systems are difficult to effectively deal with applications with complex structures and high resource demands, such as scientific computing and gene sequencing, resulting in application disruptions and low system availability.
By decomposing the applied business into multiple tasks, the resource requirements and dependencies of the task are determined, and the tasks are allocated to the target nodes in the resource collaborative scheduling system according to the dependencies, including ground segment resource nodes and satellite resource nodes.
This method improves the availability of resource collaborative scheduling system and allows multiple nodes to cooperate to complete complex business processing. Even if a single node cannot complete the entire business, multiple nodes can greatly improve the service completion rate.
Smart Images

Figure CN120029749A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of network technology, and in particular to a resource scheduling method, device, resource scheduling node and resource node. Background Art
[0002] Nodes that have computing power to configure terminal applications and complete application services can form a resource collaborative scheduling system, which can be called a computing network. The resource collaborative scheduling system also includes resource scheduling nodes. After receiving the application deployment instruction sent by the terminal, the resource scheduling node determines the resource occupancy information of the application, compares the remaining resource information of the node at the current moment with the resource occupancy information, screens out the nodes that can deploy the application, and deploys the terminal application to the screened nodes, thereby realizing resource collaborative scheduling.
[0003] However, if the application to be processed is a complex application with high resource demand, such as scientific computing or gene sequencing, the above method may not be able to screen out nodes that can handle new applications from the nodes, making it difficult to implement the above application, resulting in application interruption and low availability of the resource collaborative scheduling system. Summary of the invention
[0004] The purpose of the embodiments of the present invention is to provide a resource scheduling method, device, resource scheduling node and resource node to schedule applications and improve the availability of a resource collaborative scheduling system. The specific technical solution is as follows:
[0005] In a first aspect, an embodiment of the present invention provides a resource scheduling method, which is applied to a resource scheduling node. The method includes:
[0006] Get the application's business declaration description information;
[0007] Based on the business declaration description information, decompose the business of the application into multiple tasks, determine the resource requirements of the tasks and the dependencies between the tasks, wherein the business of the application can be realized by executing each task in sequence according to the execution order indicated by the dependencies;
[0008] According to the dependency relationship, the unassigned tasks are assigned to target nodes in the resource collaborative scheduling system, wherein the target nodes are ground segment resource nodes and / or satellite resource nodes.
[0009] In one embodiment of the present invention, allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system according to the execution order includes:
[0010] Determine the latest start time of each task based on the deadline for completion of the application, the resource occupancy time of the task, and the dependencies between the tasks;
[0011] The unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system in the order of the latest start time of the tasks from the front to the back.
[0012] In one embodiment of the present invention, allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system in the order of the latest start time of the tasks from the front to the back includes:
[0013] In order from the latest start time of the tasks to the last, the unassigned tasks whose predecessor parent tasks have been completed are assigned to the target nodes in the resource collaborative scheduling system, wherein the predecessor parent task of the task is: the task that is executed before the task in the order according to the dependency relationship.
[0014] In one embodiment of the present invention, for each task, the latest start time of the task is calculated in the following manner:
[0015] If there is no subsequent subtask for the task, the difference between the deadline completion time and the resource occupation time of the task is taken as the latest start time of the task, wherein the subsequent subtask of the task is: the task that is executed after the task in the order of execution according to the dependency relationship;
[0016] If there is a subsequent subtask for the task, the minimum value of the difference between the latest start time of the subsequent subtask and the resource occupation duration of the task is taken as the latest start time of the task.
[0017] In one embodiment of the present invention, allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system according to the execution order includes:
[0018] Determine the earliest start time for each task;
[0019] According to the earliest start time of the task, the unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system.
[0020] In one embodiment of the present invention, the earliest start time of each task is calculated in the following manner:
[0021] If there is no preceding parent task for the task, the earliest start time of the task is the time when the task is assigned to the corresponding target node;
[0022] When the task has a predecessor parent task, the earliest start time of the task is the maximum value of the sum of the time when the task is assigned to the corresponding target node and the data transmission duration of the predecessor parent task, wherein the data transmission duration is: the time required for the predecessor node of the predecessor parent task to transmit data to the target node corresponding to the task, and the predecessor parent task of a task is: the task that is executed before the task in the order of priority according to the dependency relationship.
[0023] In one embodiment of the present invention, the data transmission duration of the preceding parent task is calculated in the following manner:
[0024] Determine the minimum bandwidth of the node corresponding to the previous parent task and the task;
[0025] The ratio between the amount of the data and the minimum bandwidth is calculated as the data transmission duration of the preceding parent task.
[0026] In one embodiment of the present invention, the resource requirements of the tasks and the dependencies between the tasks are represented in the form of a directed acyclic graph, each node in the directed acyclic graph corresponds to a task, and the direction of the directed edges between the nodes represents the execution order of the tasks corresponding to the nodes.
[0027] In one embodiment of the present invention, the service declaration description information includes at least one of the following information: service location, application arrival time, application deadline completion time, data volume processed by the service, service resource requirements, service latency, service mirror configuration information, attribute information of the data model included in the service, and components required for the application.
[0028] In a second aspect, an embodiment of the present invention provides a resource scheduling method, which is applied to a resource node in a resource collaborative scheduling system, wherein the resource node is a ground segment resource node or a satellite resource node, and the method includes:
[0029] Receiving a task assigned by a resource scheduling node, wherein the task is obtained by decomposing an application service by the resource scheduling node;
[0030] The received task is processed and the processing result is sent to the resource node corresponding to the subsequent subtask of the task, wherein the subsequent subtask is the task located after the task in the execution order of the dependency relationship. Executing each task in sequence in the execution order indicated by the dependency relationship can realize the business of the application.
[0031] In one embodiment of the present invention, the resource scheduling node allocates each task in a descending order according to the latest start time of the task, and the latest start time is determined based on the deadline for completion of the application, the resource occupancy time of the task, and the dependency relationship between tasks.
[0032] In one embodiment of the present invention, the resource scheduling node allocates each task according to the earliest starting time of the task.
[0033] In a third aspect, an embodiment of the present invention provides a resource scheduling device, which is applied to a resource scheduling node, and the device includes:
[0034] An information acquisition module is used to obtain the business declaration description information of the application;
[0035] A relationship determination module, configured to decompose the business of the application into multiple tasks based on the business declaration description information, and determine the resource requirements of the tasks and the dependencies between the tasks, wherein the business of the application can be realized by sequentially executing the tasks in the execution order indicated by the dependencies;
[0036] The task allocation module is used to allocate unallocated tasks to target nodes in the resource collaborative scheduling system according to the dependency relationship, wherein the target nodes are ground segment resource nodes and / or satellite resource nodes.
[0037] In one embodiment of the present invention, the task allocation module is specifically used to:
[0038] Determine the latest start time of each task based on the deadline for completion of the application, the resource occupancy time of the task, and the dependencies between the tasks;
[0039] The unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system in the order of the latest start time of the tasks from the front to the back.
[0040] In one embodiment of the present invention, allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system in the order of the latest start time of the tasks from the front to the back includes:
[0041] In order from the latest start time of the tasks to the last, the unassigned tasks whose predecessor parent tasks have been completed are assigned to the target nodes in the resource collaborative scheduling system, wherein the predecessor parent task of the task is: the task that is executed before the task in the order according to the dependency relationship.
[0042] In one embodiment of the present invention, for each task, the latest start time of the task is calculated by the following modules:
[0043] A first time determination module is used for, when there is no subsequent subtask of the task, taking the difference between the deadline completion time and the resource occupation time of the task as the latest start time of the task, wherein the subsequent subtask of the task is: a task that is executed after the task in the order of the dependency relationship;
[0044] The second time determination module is used to take the minimum value of the difference between the latest start time of the subsequent subtask and the resource occupation time of the task as the latest start time of the task when the task has a subsequent subtask.
[0045] In one embodiment of the present invention, the task allocation module is specifically used to:
[0046] Determine the earliest start time for each task;
[0047] According to the earliest start time of the task, the unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system.
[0048] In one embodiment of the present invention, for each task, the earliest start time of the task is calculated by the following modules:
[0049] A third time determination module is used for determining, when there is no preceding parent task for the task, that the earliest start time of the task is the time when the task is allocated to the corresponding target node;
[0050] The fourth time determination module is used to determine, when there is a predecessor parent task for the task, that the earliest start time of the task is the maximum value of the sum of the time when the task is allocated to the corresponding target node and the data transmission duration of the predecessor parent task, wherein the data transmission duration is: the time required for the predecessor node of the predecessor parent task to transmit data to the target node corresponding to the task, and the predecessor parent task of a task is: the task that is executed before the task in the order of execution according to the dependency relationship.
[0051] In one embodiment of the present invention, the data transmission duration of the preceding parent task is calculated by the following modules:
[0052] A bandwidth determination module, used to determine the minimum bandwidth of the node corresponding to the previous parent task and the task;
[0053] The duration calculation module is used to calculate the ratio between the data volume of the data and the minimum bandwidth as the data transmission duration of the preceding parent task.
[0054] In one embodiment of the present invention, the resource requirements of the tasks and the dependencies between the tasks are represented in the form of a directed acyclic graph, each node in the directed acyclic graph corresponds to a task, and the direction of the directed edges between the nodes represents the execution order of the tasks corresponding to the nodes.
[0055] In one embodiment of the present invention, the service declaration description information includes at least one of the following information: service location, application arrival time, application deadline completion time, data volume processed by the service, service resource requirements, service latency, service mirror configuration information, attribute information of the data model included in the service, and components required for the application.
[0056] In a fourth aspect, an embodiment of the present invention provides a resource scheduling device, which is applied to a resource node in a resource collaborative scheduling system, wherein the resource node is a ground segment resource node or a satellite resource node, and the device includes:
[0057] A task receiving module, used to receive a task assigned by a resource scheduling node, wherein the task is obtained by the resource scheduling node by decomposing the application's business;
[0058] The task processing module is used to process the received tasks and send the processing results to the resource nodes corresponding to the subsequent subtasks of the task, wherein the subsequent subtasks are tasks that are located after the task in the execution order of the dependency relationship. Executing each task in sequence in the execution order indicated by the dependency relationship can realize the business of the application.
[0059] In one embodiment of the present invention, the resource scheduling node allocates each task in a descending order according to the latest start time of the task, and the latest start time is determined based on the deadline for completion of the application, the resource occupancy time of the task, and the dependency relationship between tasks.
[0060] In one embodiment of the present invention, the resource scheduling node allocates each task according to the earliest starting time of the task.
[0061] In a fifth aspect, an embodiment of the present invention provides a resource scheduling node, including a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other through the communication bus;
[0062] Memory, used to store computer programs;
[0063] The processor is used to implement any method step of the first aspect when executing the program stored in the memory.
[0064] In a sixth aspect, an embodiment of the present invention provides a resource node, including a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other through the communication bus;
[0065] Memory, used to store computer programs;
[0066] The processor is used to implement the method steps of the second aspect when executing the program stored in the memory.
[0067] In a seventh aspect, an embodiment of the present invention provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method steps of any one of the first aspect or the second aspect are implemented.
[0068] In an eighth aspect, an embodiment of the present invention further provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute any one of the methods of the first or second aspect above.
[0069] Beneficial effects of the embodiments of the present invention:
[0070] In an embodiment of the present invention, the business of an application is decomposed into multiple tasks, and the dependency relationship between each task is determined. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the business of the application can be realized. The tasks are respectively assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, a node only executes a part of the business, thereby reducing the resources required by each node when processing tasks, and then enabling multiple nodes to cooperate to complete the processing of a business, making the allocation of tasks more flexible. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0071] Of course, it is not necessary to achieve all of the advantages described above at the same time to implement any product or method of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0072] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention, and a person skilled in the art can also obtain other drawings based on these drawings.
[0073] Figure 1 A schematic diagram of a flow chart of a first resource scheduling method provided in an embodiment of the present invention;
[0074] Figure 2 A schematic diagram of a directed acyclic graph provided by an embodiment of the present invention;
[0075] Figure 3 A schematic diagram of a resource scheduling application architecture provided by an embodiment of the present invention;
[0076] Figure 4 A schematic diagram of a flow chart of a second resource scheduling method provided in an embodiment of the present invention;
[0077] Figure 5 A schematic diagram of a flow chart of a third resource scheduling method provided in an embodiment of the present invention;
[0078] Figure 6 A flowchart of a method for calculating the earliest starting time of a task provided by an embodiment of the present invention;
[0079] Figure 7 A schematic diagram of a fourth resource scheduling method provided by an embodiment of the present invention;
[0080] Figure 8A schematic diagram of the structure of a first resource scheduling device provided by an embodiment of the present invention;
[0081] Fig. 9 A schematic diagram of the structure of a second resource scheduling device provided by an embodiment of the present invention;
[0082] Fig.10 A schematic diagram of the structure of a resource scheduling node provided by an embodiment of the present invention;
[0083] Fig.11 A schematic diagram of the structure of a resource node provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0084] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments in the present invention, all other embodiments obtained by ordinary technicians in this field based on this application belong to the scope of protection of the present invention.
[0085] Since there are problems in the related art of application interruption during the resource collaborative scheduling system processing application services and low availability of the resource collaborative scheduling system, an embodiment of the present invention provides a resource scheduling method, device, resource scheduling node and resource node.
[0086] See also Figure 1 , which is a flow chart of a first resource scheduling method provided in an embodiment of the present invention, applied to a resource scheduling node, and includes the following steps S101-S103.
[0087] S101: Obtaining application service declaration description information.
[0088] Among them, the types of services provided by the above applications may include communication, monitoring and control. Among them, the communication type includes outdoor communication, outbound roaming, data backhaul, etc., the monitoring type includes disaster monitoring, Internet of Things monitoring, etc., and the control type includes cloud payment control, drone management, etc.
[0089] The above-mentioned service declaration description information includes at least one of the following information: service location, application arrival time (ST), application deadline completion time (DT), amount of data processed by the service, service resource requirements, service latency, configuration information of the service image, attribute information of the data model included in the service, and components required for the application.
[0090] Among them, the business location is the physical location of the business access;
[0091] The application arrival time is the time when the application starts running, and the application deadline time is the time when the application is completed. The application arrival time and deadline time may be specified by the application deployer, and the application service needs to be completed within the time period from the application arrival time to the deadline time.
[0092] The amount of data processed by the business may be the amount of data that the business needs to process, the amount of intermediate data generated by the business during data processing, or the amount of data ultimately output by the business;
[0093] The resource requirements of the business include storage resource requirements, such as memory resource requirements and hard disk resource requirements, computing resource requirements, such as CPU (Central Processing Unit) resource requirements and FPGA (Field Programmable Gate Array) resource requirements, and data transmission resource requirements, such as node bandwidth requirements.
[0094] The service delay is the delay from the application deployment party to the resource scheduling node;
[0095] The business image is the installation package of the application. The configuration information of the business image includes the size of the application, the applicable operating system, the version, etc.
[0096] The data models included in the business may include tree structure data, relationship graphs, arrays, strings and other types. The attribute information of the data model includes the data volume, type, data format of the recorded data, etc.
[0097] The components required for the application may include neural network models, machine learning models, algorithm modules in related technologies, etc.
[0098] S102: Based on the business declaration description information, decompose the business of the application into multiple tasks, and determine the resource requirements of the tasks and the dependencies between the tasks.
[0099] Executing each task in the order indicated by the dependency relationship can realize the application service. The resource requirement may include at least one of the following information: the size of computing resources required for the task, the size of storage resources required for the task, and the duration of computing resources occupied by the task.
[0100] In one embodiment of the present invention, a declaration description parsing model can be designed based on the relationship extraction technology of the knowledge graph, and each item of information in the business declaration description information can be analyzed separately, and the resource requirements of each task and the dependencies between tasks can be output in the form of a template, thereby completing the analysis of the business declaration description information.
[0101] Specifically, the embodiment of the present invention does not limit the specific structure of the declaration description parsing model, and the declaration description parsing model can be designed using the methods in the related art.
[0102] In addition, in another embodiment of the present invention, after the service declaration description information is segmented and semantically parsed, the application service can be decomposed into multiple tasks according to the semantics of the service declaration description information, and the resource requirements of the tasks and the dependencies between the tasks can be determined.
[0103] Specifically, the dependency relationship between tasks includes data dependency. For example, if the data generated by task a is the data that task b needs to process, then task b data is dependent on task a, and the execution order of task b is after task a. The dependency relationship between tasks can also include control dependency. For example, if task c triggers the execution of task d, then task d control is dependent on task c, and the execution order of task d is after task c.
[0104] In another embodiment of the present invention, the resource requirements of the above-mentioned tasks and the dependencies between tasks are represented in the form of a directed acyclic graph, each node in the above-mentioned directed acyclic graph corresponds to a task, and the direction of the directed edges between the nodes represents the execution order of the tasks corresponding to the nodes.
[0105] In an example, the above directed acyclic graph can be expressed as G = (U, E), G represents a directed acyclic graph, U represents a node in the directed acyclic graph, and E represents a directed edge between nodes. Among them, U = {U1, U2, ..., Um}, U1, U2, ..., Um are m nodes in the directed acyclic graph, each node corresponds to a task, E = {Ei, j|i, j = 1, 2, ..., m}, Ei, j represents an edge from Ui to Uj in the directed acyclic graph, and the execution order of the task corresponding to Ui is before the task corresponding to Uj. Each node records a parameter, and the parameter represents the resource requirement of the task corresponding to the node. The specific parameter can be at least one of the following: UCi, UMi and UTi, where UCi represents the size of computing resources required for the task corresponding to Ui, UMi represents the size of storage resources required for the task corresponding to Ui, and UTi represents the duration of time that the task corresponding to Ui needs to occupy computing resources.
[0106] In addition, the edges in the directed acyclic graph can also carry parameters. The parameter EDi,j carried by Ei,j represents the amount of data that needs to be transmitted from the task corresponding to Ui to the task corresponding to Uj.
[0107] See also Figure 2 , which is a schematic diagram of a directed acyclic graph provided in an embodiment of the present invention.
[0108] The directed acyclic graph shown in the figure contains six nodes U1-U6. There are directed edges E1,2 and E1,3 between U1 and U2 and U3 respectively, there is a directed edge E2,4 between U2 and U4, there is a directed edge E3,5 between U3 and U5, there is a directed edge E4,6 between U4 and U6, and there is a directed edge E5,6 between U5 and U6.
[0109] but Figure 2 The directed acyclic graph shown indicates that after the task corresponding to U1 is completed, the tasks corresponding to U2 and U3 are executed, after the task corresponding to U2 is completed, the task corresponding to U4 is executed, after the task corresponding to U3 is completed, the task corresponding to U5 is executed, and after the tasks corresponding to U4 and U5 are completed, the task corresponding to U6 is executed.
[0110] In an example, the above application is an application for disaster monitoring, specifically an application for flood monitoring. The business of the flood monitoring application can be decomposed into the first task of monitoring rainfall, the second task of monitoring river flow, the third task of monitoring river blockage, the fourth task of monitoring river water level, and the fifth task of summarizing the monitoring results of rainfall, river flow, river blockage, and river water level to obtain flood monitoring results. The dependency relationship between the tasks is that the fifth task depends on the first to fourth tasks, that is, the fifth task can be executed after the first to fourth tasks are all executed.
[0111] In another example, the above application is a drone control application. The business of the drone control application can be decomposed into the first task of monitoring the drone position, the second task of monitoring the drone flight speed, the third task of warning the drone flight situation according to the drone position and the drone flight speed, the fourth task of processing the warning result, and the fifth task of sending an alarm to the drone user terminal. The third task depends on the first and second tasks, the fourth task depends on the third task, and the fifth task depends on the fourth task, that is, the third task can be executed after the first and second tasks are completed, the fourth task can be executed after the third task is completed, and the fifth task can be executed after the fourth task is completed.
[0112] S103: According to the above dependency relationship, the unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system.
[0113] Among them, the above-mentioned target nodes are ground segment resource nodes and / or satellite resource nodes.
[0114] In one embodiment of the present invention, any resource node can be selected as a target node, that is, an unassigned task can be assigned to any node.
[0115] In another embodiment of the present invention, the resource node closest to the task may be selected as the target node according to the location of the task, so that the resource node closest to the task can quickly process the task.
[0116] In another embodiment of the present invention, a resource node whose current remaining resource amount is not less than the resource demand of the above-mentioned unassigned task can also be selected as the target node, so that the selected target node can process the above-mentioned unassigned task. Compared with the complete business completed by one node, the embodiment of the present invention divides the business into multiple tasks and assigns nodes to different tasks respectively. When each task is assigned, the node can be assigned to the task in real time according to the current remaining resource amount of the node in the current resource collaborative scheduling system, so that the allocation result matches the change of the current resource of the node, making the allocation of tasks more flexible.
[0117] In one embodiment of the present invention, virtualization technology may be used to abstract the physical resources of a node in a resource collaborative scheduling system into virtual resources, thereby maintaining the resources of the node and determining the current remaining amount of resources of the node.
[0118] Specifically, the implementation of virtualization technology can adopt NFV (Network Function Virtualization) technology, deploy VNF (Virtualised Network Function) network elements, and build a MANO (Management and Orchestration) system for the entire resource coordination scheduling system, and use standard protocols to deploy and install for different core networks. Or, for the topological relationship between global core networks, NFVO (Network Functions Virtualisation Orchestrator) technology can be used for orchestration, so that VNFs can use different protocols to build different network topologies, thereby realizing the service-oriented VNF.
[0119] When maintaining the resources of nodes in the resource collaborative scheduling system, the nodes in the resource collaborative scheduling system can be virtualized into a set of n virtualized nodes, represented by V, V = {V1, V2, ..., Vn}, and each node has at least one of the following parameters: VCi, VMi and VRi, where VCi represents the available computing resource size of the node Vi at the current moment, VMi represents the available storage resource size of the node Vi at the current moment, and VRi represents the maximum transmission rate that can be provided by the export bandwidth of the node Vi at the current moment.
[0120] That is, the remaining resource amount of the node may include at least one of computing resources, storage resources, and data transmission resources.
[0121] In one embodiment of the present invention, each task corresponding to the application's business can be assigned in sequence according to the execution order indicated by the dependency relationship, and in order to ensure that the assigned tasks can be executed normally, each task is assigned after its predecessor parent tasks are executed, wherein the predecessor parent task of the task is: the task that is executed before the task in the order according to the dependency relationship.
[0122] With the aforementioned Figure 2 Taking the dependency relationship shown as an example, the task corresponding to U1 is called first. After the task corresponding to U1 is executed, the tasks corresponding to U2 and U3 are assigned. After the task corresponding to U2 is executed, the task corresponding to U4 is assigned. After the task corresponding to U3 is executed, the task corresponding to U5 is assigned. After the tasks corresponding to U4 and U5 are both executed, the task corresponding to U6 is assigned.
[0123] In another embodiment of the present invention, when allocating each task, a node whose remaining resource amount is not less than the resource requirement of the unallocated task may be selected from various nodes in the current resource collaborative scheduling system as the target node.
[0124] When there are multiple nodes whose remaining resources are not less than the resource requirements of unassigned tasks, the node with the largest remaining resources can be selected as the target node, or the node closest to the business location can be selected as the target node based on the business location, so that the selected target node can respond to the task as soon as possible.
[0125] Taking into account the computing resources of the node, each node often processes more than one task at the same time. The selected target node needs to satisfy the following formula:
[0126]
[0127] Among them, i is the number of the task, j is the number of the node, m is the total number of tasks, UC i is the computing resources occupied by task i, VC j is the total computing resources of node j, x ij Indicates whether node j processes task i, x ij A value of 1 indicates that node j processes task i, x ij A value of 0 indicates that node j does not process task i. represents the total computing resources occupied by all tasks assigned to node j, that is, the above formula indicates that the total computing resources occupied by all tasks assigned to node j is less than the total computing resources of node j.
[0128] Taking into account the storage resources of the node, each node often processes more than one task at the same time. The selected target node needs to satisfy the following formula:
[0129]
[0130] Where i is the task number, j is the node number, m is the total number of tasks, UM i is the storage resource occupied by task i, VM j is the total storage resource of node j, x ij Indicates whether node j processes task i, x ij A value of 1 indicates that node j processes task i, x ij A value of 0 indicates that node j does not process task i. represents the total storage resources occupied by all tasks assigned to node j, that is, the above formula indicates that the total storage resources occupied by all tasks assigned to node j is less than the total storage resources of node j.
[0131] Taking into account the data transmission resources of the node, the remaining data transmission resources of the node need to be greater than the data transmission resources required by the task.
[0132] In another embodiment of the present invention, for a task, when allocating the task, the resource scheduling node needs to indicate the node corresponding to the predecessor parent task of the task, and send the processing result obtained after the task is processed to the target node corresponding to the task. Moreover, after the target node completes the task processing, it needs to feedback a response indicating that the task has been completed to the resource scheduling node, so that the resource scheduling node determines that the task has been completed, and continues to allocate subsequent tasks according to the dependency relationship, and updates the current remaining resources of the node maintained by itself, that is, releases the resources of the target node.
[0133] Furthermore, since different tasks of the same application may be processed by different nodes, in the process of completing the application's business, after the node completes the task processing, it needs to send the processing result to the node corresponding to the subsequent subtask. The sending path of the above processing result can be determined by the node itself or allocated by the resource scheduling node.
[0134] In addition, after the resource scheduling node determines that the last task of the application has been processed, it can obtain the processing result of the last task and feed back the processing result to the application deployer of the application, indicating that the entire application processing is completed.
[0135] As can be seen from the above, the embodiment of the present invention decomposes the business of the application into multiple tasks and determines the dependency relationship between each task. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the business of the application can be realized. The tasks are assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, one node only executes part of the business, thereby reducing the resources required by each node when processing tasks, and then enabling multiple nodes to cooperate to complete the processing of a business. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0136] In one embodiment of the present invention, the resource nodes in the resource collaborative scheduling system may all be ground segment resource nodes, all be satellite resource nodes, or include both ground segment resource nodes and satellite resource nodes. The satellite resource nodes may be satellites, space stations, space shuttles, etc., and the ground segment resource nodes may be base stations, ground servers, etc.
[0137] In addition, the application deployer may also be located on the ground or configured on a satellite.
[0138] Satellite resource nodes are constantly in a mobile state in space, and can communicate with the application deployer when they are within the communication range of the application deployer. Since they are close to the business, they have the characteristics of fast task data transmission speed and low latency. However, since the resources that can be deployed by satellite resource nodes are limited, satellite resource nodes can handle fewer tasks at the same time. Ground segment resource nodes are deployed at fixed positions on the ground. It is difficult to achieve dense deployment of ground segment resource nodes, so the distance from the business may be far. When transmitting task data, it needs to be relayed through the links between satellite resource nodes or the ground communication links. The transmission speed of task data is often slow, the latency is large, but the resources are often more.
[0139] Therefore, in order to integrate the advantages of satellite resource nodes and ground-segment resource nodes, the resource collaborative scheduling system provided in the preferred embodiment of the present invention may include both satellite resource nodes and ground-segment resource nodes, and the above-mentioned resource collaborative scheduling system may be called a space-ground integrated network.
[0140] As shown in the background technology, when performing resource scheduling in the integrated space-ground network in the related technology, one service can only be deployed to one node. If it is deployed to a satellite resource node, it will occupy more resources of the satellite resource node and may affect the normal operation of the satellite resource node. If it is deployed to a ground segment resource node, a longer data transmission speed may be required.
[0141] However, in the solution provided by the embodiment of the present invention, the business is divided into tasks, and different nodes handle different tasks, so that the data transmission speed advantage of the satellite resource node can be brought into play, but a large amount of resources of the satellite resource node will not be occupied at one time, and the resource advantage of the ground segment resource node can be brought into play. However, since it is highly likely that the various tasks of the business will not be completely deployed in the same ground segment resource node, the slower data transmission speed of some tasks will not cause too much impact on the overall processing process of the business. The embodiment of the present invention reasonably schedules the resources of the nodes in the resource collaborative scheduling system, so that the tasks are reasonably allocated in the resource collaborative scheduling system, thereby optimizing the load balancing degree, resource utilization and business success rate of the entire system. Especially in the case of intensive business, the effect of the embodiment of the present invention will be more obvious.
[0142] See also Figure 3 , is a schematic diagram of a resource scheduling application architecture provided in an embodiment of the present invention.
[0143] The diagram includes the application description layer, application orchestration layer, scheduling layer, and resource layer.
[0144] The application description layer includes an application declaration description unit, which is used to obtain the business declaration description information of the application to implement the above step S101, including relevant information of the application image, application configuration, application components and application data.
[0145] The application orchestration layer includes a declaration description parsing unit and an integrated orchestration unit for implementing the aforementioned step S102, wherein the declaration description parsing unit is used to analyze the business declaration description information, thereby decomposing the application business into multiple tasks. Specifically, the declaration description parsing unit performs image analysis, configuration analysis, component analysis, and data analysis to obtain each task. The integrated orchestration unit is used to determine the resource requirements of the task and the dependencies between the tasks. Specifically, the task is deconstructed to obtain the resource requirements and dependencies of the task.
[0146] The scheduling layer includes a scheduler for implementing the aforementioned step S103. The scheduler allocates tasks to target nodes based on the load balancing of each node, the time, cost, resource utilization, energy consumption, and dependencies of each task, and the computing resources, storage resources, and network resources (i.e., data transmission resources) of the node.
[0147] In the resource layer, the space-based infrastructure (i.e., satellite resource nodes) and the ground-based infrastructure (i.e., ground segment resource nodes) are virtualized based on virtualization technology, thereby providing computing resources, storage resources, and network resources for the nodes used in the scheduling layer.
[0148] Among them, infrastructure (including space-based infrastructure and ground-based infrastructure) mainly includes physical resources such as satellite resource node link service facilities, ground service facilities, network service facilities and computing service facilities. Satellite resource node link service facilities can include satellites, onboard computing resources, onboard network resources and inter-satellite communication links, etc., ground service facilities include ground stations and mobile communication networks, etc., network service facilities include wireless networks, core networks, IP networks and transmission networks, etc., and computing service facilities include government cloud, edge cloud, central cloud and IT cloud, etc.
[0149] See also Figure 4 , is a flow chart of a second resource scheduling method provided by an embodiment of the present invention, in the aforementioned Figure 3 Based on the illustrated embodiment, resource scheduling is completed through the following steps S401-S405.
[0150] S401: The application description layer collects the service declaration description information of the applications in the space-ground integrated network.
[0151] S402: The application orchestration layer performs task decomposition, resource requirement analysis, and dependency establishment on the business declaration description information of the application.
[0152] S403: The resource layer uses virtualization technology to obtain resource information of nodes in the space-ground integrated network.
[0153] S404: The scheduling layer schedules the currently unassigned tasks through the scheduler.
[0154] S405: The resource layer transmits data and processes tasks according to the scheduling plan and resource requirements.
[0155] Specifically, the specific contents of the above steps S401-S405 are similar to the above contents, and will not be described in detail in this embodiment of the present invention.
[0156] See also Figure 5 , is a flow chart of a third resource scheduling method provided in an embodiment of the present invention, which is similar to the above Figure 1 Compared with the embodiment shown, the above step S103 can be implemented by the following steps S103A-S103B.
[0157] S103A: Determine the latest start time of each task according to the deadline for completion of the application, the resource occupation time of the task, and the dependency relationship between the tasks.
[0158] In one embodiment of the present invention, tasks can be reverse topologically sorted according to the dependencies between tasks, that is, sorted from back to front in the order of execution. The deadline for completion of the above-mentioned application is the preset time for completion of the application business. In order to complete the application business before this, the latest start time of each task can be calculated according to the resource occupancy time of each character.
[0159] Specifically, for each task, the latest start time of the task can be calculated by following steps A-B:
[0160] Step A: When there is no subsequent subtask for the task, the difference between the above-mentioned deadline completion time and the resource occupation time of the task is taken as the latest start time of the task.
[0161] The subsequent subtask of the task is: a task that is executed after the task in the order of execution according to the dependency relationship.
[0162] If the above task does not have any subsequent subtasks, this task is the last task to be executed in the business. The completion of this task means the completion of the business. The latest completion time of this task is the above deadline completion time. The difference between the deadline completion time and the resource occupancy time of the task is calculated to be the latest start time of the task.
[0163] Step B: When there is a subsequent subtask to the task, the minimum value of the difference between the latest start time of the subsequent subtask and the resource occupation time of the task is taken as the latest start time of the task.
[0164] When there are subsequent subtasks to this task, the completion time of this task cannot be later than the latest start time of the subsequent subtasks. Therefore, the difference between the latest start time of the subsequent subtask and the resource occupancy time of this task can be calculated to get the latest start time of the task. If there are multiple subsequent subtasks, the completion time of this task cannot be later than the earliest start time of the subsequent subtask. Therefore, when there are multiple subsequent subtasks, the minimum value of the difference between the latest start time of the subsequent subtask and the resource occupancy time of this task is taken as the latest start time of the task.
[0165] With the aforementioned Figure 2Taking the dependency relationship shown in the figure as an example, if the application's deadline is 12:00, and the resource occupancy time of the last task in the dependency relationship, that is, the task corresponding to U6, is 5 minutes, then the latest start time of the task corresponding to U6 is 11:55. In order to ensure that the task corresponding to node 6 can be started before 11:55, the tasks corresponding to U4 and U5 should be completed before 11:55. If the resource occupancy time of the task corresponding to U4 is 4 minutes, then the latest start time of the task corresponding to U4 should be 11:51. If the resource occupancy time of the task corresponding to U5 is 6 minutes, then the task corresponding to U5 The latest start time of the task should be 11:49. To ensure that the task corresponding to U4 can be started before 11:51, the task corresponding to U2 should be completed at least before 11:51. If the resource occupancy time of the task corresponding to U2 is 3 minutes, the latest start time of the task corresponding to U2 is 11:48. To ensure that the task corresponding to U5 can be started before 11:49, the task corresponding to U3 should be completed at least before 11:49. If the resource occupancy time of the task corresponding to U3 is 2 minutes, the latest start time of the task corresponding to U3 is 11:47. The latest start time of the task corresponding to U2 is 11:48, and the latest start time of the task corresponding to U3 is 11:47. If the resource occupancy time of the task corresponding to U1 is 5 minutes, then the difference between the latest start time of the task corresponding to U2 and the resource occupancy time of the task corresponding to U1 is 11:43, and the difference between the latest start time of the task corresponding to U3 and the resource occupancy time of the task corresponding to U1 is 11:42. In summary, the minimum value of the two is taken, and the latest start time of the task corresponding to U1 is 11:42.
[0166] Based on the above example, it can be seen that the latest start time of each task can be inferred in turn according to the reverse topological order.
[0167] In one embodiment of the present invention, the above steps A to B can be expressed by the following formula:
[0168]
[0169] Among them, i and j are the task numbers, UL i For U i The latest start time of the corresponding task, UT i For U i The resource usage time of the corresponding task, UL j For U j The latest start time of the corresponding task, DT is the deadline for the application to complete.
[0170] S103B: Allocate the unallocated tasks to the target nodes in the resource collaborative scheduling system in descending order of the latest start time of the tasks.
[0171] In one embodiment of the present invention, since the earlier the latest start time of a task, the more urgent it is to be executed, the unassigned tasks can be assigned in sequence from the latest start time of the task. Specifically, one unassigned task can be scheduled at every preset time interval. If after the preset time interval, the time reaches after the latest start time of the unassigned task, the unassigned task will be scheduled immediately.
[0172] In another embodiment of the present invention, the above step S103B can be implemented by the following step C.
[0173] Step C: In order from the latest start time of the tasks, the unassigned tasks whose previous parent tasks have been completed are assigned to the target nodes in the resource collaborative scheduling system.
[0174] The predecessor parent task of a task is: the task that is executed before the task in the order of execution according to the above dependency relationship.
[0175] According to the dependency relationship, a task can only be executed when all its preceding parent tasks are completed. Therefore, in scheduling, the embodiment of the present invention only allocates unallocated tasks whose preceding parent tasks have been completed.
[0176] In one embodiment of the present invention, since the resource scheduling node may not only process tasks of one application at the same time, when there are tasks of multiple applications that need to be processed, the unassigned tasks for which all preceding parent tasks have been completed can be arranged in order from the latest start time to generate a task set. The earlier the latest start time, the more urgent the task is, and the more quickly it needs to be assigned.
[0177] Specifically, the method of performing task allocation can refer to the above step S103, which will not be described in detail here.
[0178] As can be seen from the above, the solution provided in the embodiment of the present invention determines the latest start time for each task. The latest start time is to ensure the smooth execution of the business. The latest start time of each task is the latest time to start execution. The task with an earlier latest start time is more urgent. The tasks are assigned in order from the earliest to the latest start time. However, the order of task assignment is consistent with the urgency of the task, thereby improving the success rate of business processing.
[0179] See also Figure 6 , which is a flow chart of a method for calculating the earliest start time of a task provided by an embodiment of the present invention. For each task, the earliest start time of each task is determined through the following steps S601-S602, so that the resource scheduling node can manage the earliest start time of the task.
[0180] S601: When there is no preceding parent task for the task, the earliest start time of the task is the time when the task is allocated to the corresponding target node.
[0181] When there is no preceding parent task for the task, the task is the earliest task to be executed among all the tasks of the application, and the earliest start time of the task is the time when the task is allocated to the target node corresponding to the task.
[0182] S602: When there is a previous parent task for the task, the earliest start time of the task is the maximum value of the sum of the time when the task is allocated to the corresponding target node and the data transmission duration of the previous parent task.
[0183] Among them, the above data transmission duration is: the time required for the predecessor node of the predecessor parent task to transmit data to the target node corresponding to the task, and the predecessor parent task of the task is: the task that is executed before the task in the order according to the above dependency relationship.
[0184] If a task has a predecessor parent task, then after the task is assigned to the target node, the target node needs to wait for the node corresponding to the predecessor parent task to send all the task processing results of the predecessor parent task to the target node before the target node can start task processing. Therefore, the earliest start time of the task is the sum of the time when the task is assigned to the corresponding target node and the data transmission time of the above-mentioned predecessor parent task. If there are multiple predecessor parent tasks, the target node can start processing the task only after the processing results of the predecessor parent task with a longer data transmission time are sent to the target node. At this time, the earliest start time of the task should be the maximum value of the multiple sums.
[0185] The above steps S601-S602 can be expressed by the following formula:
[0186]
[0187] Among them, i and j are the task numbers, UE j For U j The earliest start time of the corresponding task, US j It's U j The time when the corresponding task is assigned to the corresponding target node, TT ij To process the previous parent task U i The preceding node transfers data to the task U j The required time for the corresponding target node.
[0188] In addition, in one embodiment of the present invention, the unassigned tasks can be assigned to the target node through the following steps D-E.
[0189] Step D: Determine the earliest start time for each task.
[0190] The earliest start time of the above task is the earliest time when the task can be started.
[0191] Step E: Allocate the unassigned tasks to the target nodes in the resource collaborative scheduling system according to the earliest start time of the tasks.
[0192] Specifically, the tasks may be assigned in order from the earliest start time of the task to the last.
[0193] In one embodiment of the present invention, the data transmission duration of the preceding parent task may be calculated through the following steps F to G.
[0194] Step F: Determine the minimum bandwidth of the node corresponding to the preceding parent task and the task.
[0195] Specifically, the previous parent task and the task may correspond to different nodes respectively, and different nodes have different bandwidths. Then the minimum bandwidth of the two nodes is the maximum bandwidth that can be used when transmitting data between the two nodes.
[0196] Step G: Calculate the ratio between the amount of the above data and the above minimum bandwidth as the data transmission duration of the previous parent task.
[0197] In one embodiment of the present invention, the above step F and step G can be expressed based on the following formula:
[0198]
[0199] Among them, i and j are the node numbers, TT ij To process the previous parent task U i The preceding node transfers data to the task U j The required time of the corresponding target node, ED i,j is the amount of data transmitted between node i and node j, VR s With VR t are the bandwidths of node i and node j respectively.
[0200] As can be seen from the above, the resource scheduling node in the embodiment of the present invention can also manage the earliest start time of each task, so as to further manage the running process of the entire application and realize the supervision of the whole process of resource scheduling.
[0201] Corresponding to the resource scheduling method applied to the resource scheduling node, the embodiment of the present invention also provides a resource scheduling method applied to the resource node, see Figure 7, which is a flow chart of a fourth resource scheduling method provided in an embodiment of the present invention, comprising the following steps S701-S702.
[0202] Step S701: receiving a task assigned by a resource scheduling node.
[0203] The above tasks are obtained by decomposing the application business by the above resource scheduling node.
[0204] Step S702: Process the received task and send the processing result to the resource node corresponding to the subsequent subtask of the task.
[0205] The subsequent subtasks are tasks that follow the task in the execution order of the dependency relationship. The business of the application can be realized by sequentially executing the tasks in the execution order indicated by the dependency relationship.
[0206] From the above, it can be seen that in the embodiment of the present invention, the resource scheduling node decomposes the application's business into multiple tasks and determines the dependency relationship between each task. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the application's business can be realized. The tasks are assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, a node only executes part of the business, thereby reducing the resources required by each node when processing tasks, and enabling multiple nodes to cooperate to complete the processing of a business. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0207] In one embodiment of the present invention, the resource scheduling node allocates each task in a descending order according to the latest start time of the task, and the latest start time is determined based on the deadline for completion of the application, the resource occupancy time of the task, and the dependency relationship between tasks.
[0208] As can be seen from the above, the solution provided in the embodiment of the present invention determines the latest start time for each task. The latest start time is to ensure the smooth execution of the business. The latest start time of each task is the latest time to start execution. The task with an earlier latest start time is more urgent. The tasks are assigned in order from the earliest to the latest start time. However, the order of task assignment is consistent with the urgency of the task, thereby improving the success rate of business processing.
[0209] In one embodiment of the present invention, the resource scheduling node allocates each task according to the earliest starting time of the task.
[0210] Specifically, the specific content of the steps executed by the above resource node has been described in the previous text and will not be elaborated here.
[0211] Corresponding to the foregoing resource scheduling method applied to a resource scheduling node, an embodiment of the present invention further provides a resource scheduling device applied to a resource scheduling node.
[0212] See Figure 8 , which is a schematic structural diagram of a first resource scheduling device provided by an embodiment of the present invention, applied to a resource scheduling node. The device includes:
[0213] An information acquisition module 801, configured to acquire service declaration description information of an application;
[0214] A relationship determination module 802, configured to decompose the service of the application into multiple tasks based on the service declaration description information, determine the resource requirements of the tasks and the dependency relationships between the tasks, where each task can be executed in sequence according to the execution order indicated by the dependency relationships to implement the service of the application;
[0215] A task allocation module 803, configured to allocate unassigned tasks to target nodes in a resource collaborative scheduling system according to the dependency relationships, where the target nodes are ground segment resource nodes and / or satellite resource nodes.
[0216] As can be seen from the above, decomposing the service of an application into multiple tasks and determining the dependency relationships between the tasks. If each task is executed in sequence according to the execution order indicated by the dependency relationships, the service of the application can be implemented. Allocating the tasks to their respective corresponding target nodes according to the dependency relationships is equivalent to splitting a complete service into different tasks, which can be executed by different nodes, that is, a single node only executes a part of the service. Thus, the resources occupied by each node during task processing can be reduced, and multiple nodes can cooperate to complete the processing of a service. Even if a single node cannot complete the entire service processing, the cooperation of multiple nodes can greatly improve the service completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0217] In an embodiment of the present invention, the task allocation module 803 is specifically configured to:
[0218] Determine the latest start time of each task according to the deadline for completing the application, the resource occupation duration of the task, and the dependency relationships between the tasks;
[0219] Allocate unassigned tasks to target nodes in a resource collaborative scheduling system in the order of the latest start time of the tasks from front to back.
[0220] In one embodiment of the present invention, allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system in the order of the latest start time of the tasks from the front to the back includes:
[0221] In order from the latest start time of the tasks to the last, the unassigned tasks whose predecessor parent tasks have been completed are assigned to the target nodes in the resource collaborative scheduling system, wherein the predecessor parent task of the task is: the task that is executed before the task in the order according to the dependency relationship.
[0222] As can be seen from the above, the solution provided in the embodiment of the present invention determines the latest start time for each task. The latest start time is to ensure the smooth execution of the business. The latest start time of each task is the latest time to start execution. The task with an earlier latest start time is more urgent. The tasks are assigned in order from the earliest to the latest start time. However, the order of task assignment is consistent with the urgency of the task, thereby improving the success rate of business processing.
[0223] In one embodiment of the present invention, for each task, the latest start time of the task is calculated by the following modules:
[0224] A first time determination module is used for, when there is no subsequent subtask of the task, taking the difference between the deadline completion time and the resource occupation time of the task as the latest start time of the task, wherein the subsequent subtask of the task is: a task that is executed after the task in the order of the dependency relationship;
[0225] The second time determination module is used to take the minimum value of the difference between the latest start time of the subsequent subtask and the resource occupation time of the task as the latest start time of the task when the task has a subsequent subtask.
[0226] In one embodiment of the present invention, the task allocation module 803 is specifically used to:
[0227] Determine the earliest start time for each task;
[0228] According to the earliest start time of the task, the unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system.
[0229] In one embodiment of the present invention, for each task, the earliest start time of the task is calculated by the following modules:
[0230] A third time determination module is used for determining, when there is no preceding parent task for the task, that the earliest start time of the task is the time when the task is allocated to the corresponding target node;
[0231] The fourth time determination module is used to determine, when there is a predecessor parent task for the task, that the earliest start time of the task is the maximum value of the sum of the time when the task is allocated to the corresponding target node and the data transmission duration of the predecessor parent task, wherein the data transmission duration is: the time required for the predecessor node of the predecessor parent task to transmit data to the target node corresponding to the task, and the predecessor parent task of a task is: the task that is executed before the task in the order of execution according to the dependency relationship.
[0232] As can be seen from the above, the resource scheduling node in the embodiment of the present invention can also manage the earliest start time of each task, so as to further manage the running process of the entire application and realize the supervision of the whole process of resource scheduling.
[0233] In one embodiment of the present invention, the data transmission duration of the preceding parent task is calculated by the following modules:
[0234] A bandwidth determination module, used to determine the minimum bandwidth of the node corresponding to the previous parent task and the task;
[0235] The duration calculation module is used to calculate the ratio between the data volume of the data and the minimum bandwidth as the data transmission duration of the preceding parent task.
[0236] As can be seen from the above, in the solution provided by the embodiment of the present invention, the business is divided into tasks, and different nodes handle different tasks, so that the data transmission speed advantage of the satellite resource node can be brought into play, but it will not occupy a large amount of resources of the satellite resource node at one time, and it can bring into play the resource advantage of the ground segment resource node, but because it is highly likely that the various tasks of the business will not be completely deployed in the same ground segment resource node, the slower data transmission speed of some tasks will not cause too much impact on the overall processing process of the business. The embodiment of the present invention reasonably schedules the resources of the nodes in the resource collaborative scheduling system, so that the tasks are reasonably allocated in the resource collaborative scheduling system, thereby optimizing the load balancing degree, resource utilization and business success rate of the entire system. Especially in the case of intensive business, the effect of the embodiment of the present invention will be more obvious.
[0237] In one embodiment of the present invention, the resource requirements of the tasks and the dependencies between the tasks are represented in the form of a directed acyclic graph, each node in the directed acyclic graph corresponds to a task, and the direction of the directed edges between the nodes represents the execution order of the tasks corresponding to the nodes.
[0238] In one embodiment of the present invention, the service declaration description information includes at least one of the following information: service location, application arrival time, application deadline completion time, data volume processed by the service, service resource requirements, service latency, service mirror configuration information, attribute information of the data model included in the service, and components required for the application.
[0239] Corresponding to the resource scheduling method applied to the resource node, the embodiment of the present invention also provides a resource scheduling device, see Fig. 9 , is a structural diagram of a second resource scheduling device provided by an embodiment of the present invention, which is applied to a resource node in a resource collaborative scheduling system, wherein the resource node is a ground segment resource node or a satellite resource node, and the device includes:
[0240] A task receiving module 901 is used to receive a task assigned by a resource scheduling node, where the task is obtained by the resource scheduling node by decomposing the application service;
[0241] The task processing module 902 is used to process the received task and send the processing result to the resource node corresponding to the subsequent subtask of the task, wherein the subsequent subtask is the task that is located after the task in the execution order of the dependency relationship. Executing each task in sequence in the execution order indicated by the dependency relationship can realize the business of the application.
[0242] From the above, it can be seen that in the embodiment of the present invention, the resource scheduling node decomposes the application's business into multiple tasks and determines the dependency relationship between each task. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the application's business can be realized. The tasks are assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, a node only executes part of the business, thereby reducing the resources required by each node when processing tasks, and enabling multiple nodes to cooperate to complete the processing of a business. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0243] In one embodiment of the present invention, the resource scheduling node allocates each task in a descending order according to the latest start time of the task, and the latest start time is determined based on the deadline for completion of the application, the resource occupancy time of the task, and the dependency relationship between tasks.
[0244] As can be seen from the above, the solution provided in the embodiment of the present invention determines the latest start time for each task. The latest start time is to ensure the smooth execution of the business. The latest start time of each task is the latest time to start execution. The task with an earlier latest start time is more urgent. The tasks are assigned in order from the earliest to the latest start time. However, the order of task assignment is consistent with the urgency of the task, thereby improving the success rate of business processing.
[0245] In one embodiment of the present invention, the resource scheduling node allocates each task according to the earliest starting time of the task.
[0246] The embodiment of the present invention also provides a resource scheduling node, such as Fig.10 As shown, it includes a processor 1001, a communication interface 1002, a memory 1003 and a communication bus 1004, wherein the processor 1001, the communication interface 1002, and the memory 1003 communicate with each other through the communication bus 1004.
[0247] Memory 1003, used for storing computer programs;
[0248] The processor 1001 is configured to implement any method step of the aforementioned resource scheduling method applied to a resource scheduling node when executing the program stored in the memory 1003 .
[0249] When resource scheduling is performed through the resource scheduling node provided by the embodiment of the present invention, the business of the application is decomposed into multiple tasks, and the dependency relationship between each task is determined. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the business of the application can be realized. The tasks are respectively assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, a node only executes part of the business, thereby reducing the resources required by each node when processing tasks, and then enabling multiple nodes to cooperate to complete the processing of a business. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0250] The embodiment of the present invention also provides a resource node, such as Fig.11 As shown, it includes a processor 1101, a communication interface 1102, a memory 1103 and a communication bus 1104, wherein the processor 1101, the communication interface 1102, and the memory 1103 communicate with each other through the communication bus 1104.
[0251] Memory 1103, used for storing computer programs;
[0252] The processor 1101 is configured to implement any method step of the aforementioned resource scheduling method applied to a resource node when executing the program stored in the memory 1103 .
[0253] When resource scheduling is performed through the resource nodes provided by the embodiment of the present invention, the resource scheduling node in the embodiment of the present invention decomposes the application's business into multiple tasks and determines the dependency relationship between each task. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the application's business can be realized. The tasks are assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, a node only executes part of the business, thereby reducing the resources that each node needs to occupy when processing tasks, thereby enabling multiple nodes to cooperate to complete the processing of a business. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0254] The communication bus mentioned in the above electronic device can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
[0255] The communication interface is used for communication between the above electronic device and other devices.
[0256] The memory may include a random access memory (RAM) or a non-volatile memory (NVM), such as at least one disk memory. Optionally, the memory may also be at least one storage device located away from the aforementioned processor.
[0257] The above-mentioned processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
[0258] In another embodiment of the present invention, a computer-readable storage medium is provided, in which a computer program is stored. When the computer program is executed by a processor, the steps of any of the above-mentioned resource scheduling methods are implemented.
[0259] In the case of resource scheduling by a computer program stored in a computer-readable storage medium provided by an embodiment of the present invention, the business of the application is decomposed into multiple tasks, and the dependency relationship between each task is determined. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the business of the application can be realized. The tasks are respectively assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, a node only executes part of the business, thereby reducing the resources that each node needs to occupy when processing tasks, thereby enabling multiple nodes to cooperate to complete the processing of a business. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0260] Moreover, compared with completing a complete business by one node, the embodiment of the present invention divides the business into multiple tasks and assigns nodes to different tasks respectively. When each task is assigned, the node can be assigned to the task in real time according to the current remaining resources of the node in the current resource collaborative scheduling system, so that the allocation result matches the changes in the current resources of the node, making the task allocation more flexible.
[0261] In another embodiment of the present invention, a computer program product including instructions is provided, which, when executed on a computer, enables the computer to execute any resource scheduling method in the above embodiments.
[0262] When resource scheduling is performed through the computer program product provided by the embodiment of the present invention, the business of the application is decomposed into multiple tasks, and the dependency relationship between each task is determined. If each task is executed in sequence according to the execution order indicated by the dependency relationship, the business of the application can be realized. The tasks are respectively assigned to their corresponding target nodes according to the dependency relationship, which is equivalent to splitting a complete business into different tasks. Different tasks can be executed by different nodes, that is, a node only executes part of the business, thereby reducing the resources required by each node when processing tasks, and enabling multiple nodes to cooperate to complete the processing of a business. Even if a single node cannot complete the processing of the entire business, the cooperation of multiple nodes can greatly improve the business completion rate, thereby improving the availability of the resource collaborative scheduling system.
[0263] Moreover, compared with completing a complete business by one node, the embodiment of the present invention divides the business into multiple tasks and assigns nodes to different tasks respectively. When each task is assigned, the node can be assigned to the task in real time according to the current remaining resources of the node in the current resource collaborative scheduling system, so that the allocation result matches the changes in the current resources of the node, making the task allocation more flexible.
[0264] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk Solid State Disk (SSD)), etc.
[0265] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or device including the elements.
[0266] Each embodiment in this specification is described in a related manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the device, resource scheduling node, computer-readable storage medium, and computer program product embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments.
[0267] The above description is only a preferred embodiment of the present invention and is not intended to limit the protection scope of the present invention. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention are included in the protection scope of the present invention.
Claims
1. A resource scheduling method, It is characterized in that Applied to a resource scheduling node, the method comprises: Get the application's business declaration description information; Based on the business declaration description information, decompose the business of the application into multiple tasks, determine the resource requirements of the tasks and the dependencies between the tasks, wherein the business of the application can be realized by executing each task in sequence according to the execution order indicated by the dependencies; According to the dependency relationship, the unassigned tasks are assigned to target nodes in the resource collaborative scheduling system, wherein the target nodes are ground segment resource nodes and / or satellite resource nodes.
2. The method according to claim 1, It is characterized in that The allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system according to the execution order includes: Determine the latest start time of each task based on the deadline for completion of the application, the resource occupancy time of the task, and the dependencies between the tasks; The unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system in the order of the latest start time of the tasks from the front to the back.
3. The method according to claim 2, It is characterized in that The method of allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system in the order of the latest start time of the tasks from the front to the back includes: In order from the latest start time of the tasks to the last, the unassigned tasks whose predecessor parent tasks have been completed are assigned to the target nodes in the resource collaborative scheduling system, wherein the predecessor parent task of the task is: the task that is executed before the task in the order according to the dependency relationship.
4. The method according to claim 2, It is characterized in that For each task, the latest start time of the task is calculated as follows: If there is no subsequent subtask for the task, the difference between the deadline completion time and the resource occupation time of the task is taken as the latest start time of the task, wherein the subsequent subtask of the task is: the task that is executed after the task in the order of execution according to the dependency relationship; If there is a subsequent subtask for the task, the minimum value of the difference between the latest start time of the subsequent subtask and the resource occupation duration of the task is taken as the latest start time of the task.
5. The method according to claim 1, It is characterized in that The allocating the unallocated tasks to the target nodes in the resource collaborative scheduling system according to the execution order includes: Determine the earliest start time for each task; According to the earliest start time of the task, the unassigned tasks are assigned to the target nodes in the resource collaborative scheduling system.
6. The method according to claim 5, It is characterized in that For each task, the earliest start time of the task is calculated as follows: If there is no preceding parent task for the task, the earliest start time of the task is the time when the task is assigned to the corresponding target node; When the task has a predecessor parent task, the earliest start time of the task is the maximum value of the sum of the time when the task is assigned to the corresponding target node and the data transmission duration of the predecessor parent task, wherein the data transmission duration is: the time required for the predecessor node of the predecessor parent task to transmit data to the target node corresponding to the task, and the predecessor parent task of a task is: the task that is executed before the task in the order of priority according to the dependency relationship.
7. The method according to claim 6, It is characterized in that The data transmission duration of the preceding parent task is calculated as follows: Determine the minimum bandwidth of the node corresponding to the previous parent task and the task; The ratio between the amount of the data and the minimum bandwidth is calculated as the data transmission duration of the preceding parent task.
8. The method according to any one of claims 1 to 7, It is characterized in that The resource requirements of the tasks and the dependencies between the tasks are represented in the form of a directed acyclic graph, each node in the directed acyclic graph corresponds to a task, and the direction of the directed edges between the nodes represents the execution order of the tasks corresponding to the nodes.
9. The method according to any one of claims 1 to 7, It is characterized in that The service declaration description information includes at least one of the following information: service location, application arrival time, application deadline completion time, data volume processed by the service, service resource requirements, service latency, service mirror configuration information, attribute information of the data model included in the service, and components required for the application.
10. A resource scheduling method, It is characterized in that The method is applied to a resource node in a resource collaborative scheduling system, wherein the resource node is a ground segment resource node or a satellite resource node, and comprises: Receiving a task assigned by a resource scheduling node, wherein the task is obtained by decomposing an application service by the resource scheduling node; The received task is processed and the processing result is sent to the resource node corresponding to the subsequent subtask of the task, wherein the subsequent subtask is the task located after the task in the execution order of the dependency relationship. Executing each task in sequence in the execution order indicated by the dependency relationship can realize the business of the application.
11. The method according to claim 10, It is characterized in that The resource scheduling node allocates each task in a descending order according to the latest start time of the task, wherein the latest start time is determined based on the deadline for completion of the application, the resource occupation time of the task, and the dependency relationship between the tasks.
12. The method according to claim 10, It is characterized in that The resource scheduling node allocates each task according to the earliest starting time of the task.
13. A resource scheduling device, It is characterized in that Applied to a resource scheduling node, the device comprises: An information acquisition module is used to obtain the business declaration description information of the application; A relationship determination module, configured to decompose the business of the application into multiple tasks based on the business declaration description information, and determine the resource requirements of the tasks and the dependencies between the tasks, wherein the business of the application can be realized by sequentially executing the tasks in the execution order indicated by the dependencies; The task allocation module is used to allocate unallocated tasks to target nodes in the resource collaborative scheduling system according to the dependency relationship, wherein the target nodes are ground segment resource nodes and / or satellite resource nodes.
14. A resource scheduling device, It is characterized in that A resource node applied to a resource collaborative scheduling system, wherein the resource node is a ground segment resource node or a satellite resource node, and the device comprises: A task receiving module, used to receive a task assigned by a resource scheduling node, wherein the task is obtained by the resource scheduling node by decomposing the application's business; The task processing module is used to process the received tasks and send the processing results to the resource nodes corresponding to the subsequent subtasks of the task, wherein the subsequent subtasks are tasks that are located after the task in the execution order of the dependency relationship. Executing each task in sequence in the execution order indicated by the dependency relationship can realize the business of the application.
15. A resource scheduling node, It is characterized in that It includes a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other through the communication bus; Memory, used to store computer programs; A processor is used to implement any method step of claims 1-9 when executing a program stored in a memory.
16. A resource node, It is characterized in that It includes a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other through the communication bus; Memory, used to store computer programs; A processor is used to implement any method step of claims 10-12 when executing a program stored in a memory.
17. A computer-readable storage medium, It is characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method steps of any one of claims 1-9 or 10-12 are implemented.