Method, device and system for scheduling multiple types of computing resources

By determining the scheduling scheme of computing task sequences and computing resource clusters in large-scale business scenarios, dynamically adjusting the scale of computing resource clusters, solving the problems of low utilization rate, high cost and low efficiency in the existing technology, and achieving efficient and efficient computing resource management.

CN112486653BActive Publication Date: 2025-03-14SHENGDOUSHI SHANGHAI SCI & TECH DEV CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011388957.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-02
Publication Date
2025-03-14
Estimated Expiration
2040-12-02

AI Technical Summary

Technical Problem

The prior art is difficult to effectively schedule computing resources in large-scale business scenarios, resulting in low utilization, high cost and low efficiency of computing resources.

Method used

A method of scheduling computing resources is proposed. By determining the scheduling scheme of computing task sequence and computing resource cluster, the scale of computing resource cluster is dynamically adjusted, and the combination and sharing of multiple computing resources is supported, so as to realize common data interface docking.

Benefits of technology

It improves the operation efficiency of computing resources, saves usage costs, improves the utilization rate of computing resources, simplifies the connection between business scenarios and computing resource clusters, and improves the efficiency of software development.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112486653B_ABST
    Figure CN112486653B_ABST
Patent Text Reader

Abstract

A method, device and system for scheduling computing resources are proposed. The method includes determining a computing task sequence including at least one computing task for a business scenario, determining a scheduling scheme for a computing resource cluster for the computing task sequence, wherein the computing resource cluster includes a plurality of computing resources of different types, and obtaining a computing result using the computing resources based on the scheduling scheme. Through the above method, device and system, the use cost can be effectively saved, the computing resource utilization and computing efficiency can be increased, and the development efficiency of the system can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0002] Computing resources are core computing systems or core software systems used to solve professional problems. Solving such professional problems usually requires strong professional knowledge and core algorithms. For example, the operations research solver is a core operations research optimizer system used to solve operations research optimization problems. When using computing resources on a large scale to solve professional problems in business scenarios, it is necessary to comprehensively consider the cost of use in order to maximize the performance and system consumption of computing resources to achieve the effect of saving costs and improving efficiency.

[0003] There are many commercial and open source solvers in the industry dedicated to solving professional problems such as operations research and optimization. However, different solver software have different computing performance and system resources consumed at runtime, and their licensing terms and prices vary greatly.

[0004] For example, for operations research optimization problems, commercial solvers have high computational efficiency but are expensive, while open source solvers have low computational efficiency but are cheap. In response to the computing needs of large-scale business scenarios, some commercial solvers provide solver cluster functions based on the stand-alone version, but only support cluster versions based on a single solver, and the price of the cluster version is much higher than the cost of the stand-alone version.

[0005] In addition, in the field of computing resource coordination and scheduling such as operations research solvers, there is currently no solution on the market that considers the comprehensive cost perspective to combine various types of computing resources to maximize the use of computing resources, save costs and improve efficiency.

[0006] Therefore, there is a need to improve the solution for scheduling computing resources. Summary of the invention

[0007] The present application aims to provide a method, device and system for scheduling computing resources for solving and overcoming at least one of the problems and defects described above, especially in professional problem-solving applications in multiple business scenarios.

[0008] According to one aspect of the present application, a method for scheduling computing resources is proposed, comprising:

[0009] Determine a computing task sequence including at least one computing task according to a business scenario;

[0010] Determining a scheduling scheme for a computing resource cluster for the computing task sequence, wherein the computing resource cluster includes a plurality of computing resources of different types; and

[0011] The computing resources are used to obtain computing results based on the scheduling scheme.

[0012] According to another aspect of the present application, a device for scheduling computing resources is provided, comprising:

[0013] An application management module, configured to determine a computing task sequence including at least one computing task according to a business scenario;

[0014] The resource management module is configured to determine a scheduling scheme for a computing resource cluster for the computing task sequence, and to obtain computing results using the computing resources based on the scheduling scheme, wherein the computing resource cluster includes a plurality of computing resources of different types.

[0015] According to another aspect of the present application, a system for scheduling computing resources is proposed, comprising the application management module and the resource management module as described above, and at least one computing node comprising computing resources.

[0016] According to another aspect of the present application, a computer-readable storage medium is provided, on which a computer program is stored. The computer program includes executable instructions. When the executable instructions are executed by a processor, the method described above is implemented.

[0017] According to the methods, devices and systems of the embodiments of the present application, it is possible to dynamically adjust the scale of the computing resource cluster based on the specific needs of the business scenario to improve the operating efficiency of the computing resources, support the on-demand combination of multiple computing resources with different prices and types in the business scenario to effectively save the cost of use, improve the utilization of computing resources by sharing different types of computing resources in multiple business scenarios, and improve software development efficiency by realizing simple docking between business scenarios and computing resource clusters through a universal data interface. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The above and other features and advantages of the present application will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings.

[0019] Figure 1 is a block diagram of an apparatus for scheduling computing resources according to an example embodiment of the present application;

[0020] Figure 2 is a flowchart of a method for scheduling computing resources according to an example embodiment of the present application;

[0021] Figure 3 is a resource description diagram according to an exemplary embodiment of the present application; and

[0022] Figure 4 is a schematic block diagram of an electronic device according to an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0023] The exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, the exemplary embodiments can be implemented in a variety of forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided to make the content of this application more comprehensive and complete and to fully convey the concepts of the exemplary embodiments to those skilled in the art. In the drawings, the size of some elements may be exaggerated or deformed for the purpose of clarity. The same reference numerals in the drawings represent the same or similar structures, and their detailed descriptions will be omitted.

[0024] In addition, described feature, structure or characteristic can be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present application. However, those skilled in the art will appreciate that the technical scheme of the present application can be put into practice without one or more of the specific details, or other methods, elements, etc. can be adopted. In other cases, known structures, methods or operations are not shown or described in detail to avoid blurring the various aspects of the application.

[0025] This article introduces the concept of the present application by taking an operations solver or operations optimizer for solving operations optimization problems as an example, but those skilled in the art will understand that this method and apparatus for regulating computing resources can be applied to a wider range of computing resources, such as but not limited to computing modules such as solvers or optimizers, or service modules such as providing speech-to-text services, image recognition services, or video processing services, etc. Computing resources can be commercial or open source. Therefore, in this context, computing resources can be understood as any unit, module, device, system for solving or optimizing professional problems, and computing resources can be various combinations of algorithms, software, firmware, and hardware units or products. Typically, computing resources are configured on computing nodes or computing devices and are operated or maintained by computing nodes or computing devices.

[0026] For operations optimization problems, commercial solvers including operations solvers can be used. As a type of operations optimizer, the input of the operations solver is an operations expression (for example, represented in the form of an inequality) that represents the operations optimization rule or goal, and the format of the interface specification supported by it is relatively simple. Commercial solvers only support solver clusters consisting of a single solver provided by a supplier and cannot dynamically adjust the cluster size as needed, and their fixed interface specifications do not optimize the docking support for actual business scenarios. The cluster version of the commercial solver is much more expensive than the stand-alone version without significant efficiency improvement. In addition, commercial solvers generally do not provide clusters consisting of different types of solvers, especially other solvers different from the solvers provided by the supplier. Therefore, the existing commercial solver cluster version cannot introduce other solvers (such as open source solvers) that are lower in cost and support more business scenarios to form a mixed type solver cluster.

[0027] Furthermore, even if the combination of multiple types of solvers is solved, there are situations in which the computing peak value changes dynamically over time in multiple business application scenarios. This requires the solver cluster to be able to dynamically adjust the cluster size, expand and shrink the solver's computing power to adapt to the instantaneous changes in computing requirements, and improve the cluster's computing efficiency. Improving the utilization efficiency of solver resources can also be achieved by sharing the same type of solvers for different business scenarios, and the same type of solver resources can be further reused to form a many-to-many relationship between business scenario requirements and solver resources.

[0028] Existing commercial solvers and open source solvers are often developed for specific problems. Their data interface specifications are not unified, which makes the data exchange that needs to be considered when combining different types of solvers into solver clusters very complicated, resulting in the inability to improve the development efficiency of software developers. By designing a common application interface for various types of solver resources to standardize data exchange, the development efficiency can be improved when developing solver clusters for different business scenarios.

[0029] Combine the following Figure 1 and Figure 2 The illustrated apparatus and method for scheduling computing resources according to an exemplary embodiment of the present application describe the concept of the present application in detail.

[0030] Figure 1 The exemplary apparatus 100 shown in FIG. 1 includes an application management module 110 and a resource management module 120 .

[0031] The application management module 110 is responsible for scenario docking and task scheduling, and is used to determine a computing task sequence for one or more business scenarios 130. According to the characteristics, type, requirements and complexity of the business scenario, it is necessary to comprehensively consider multiple angles such as the computing performance required by the business scenario, the resource utilization rate and usage cost expected to complete the business scenario, and determine the computing task sequence corresponding to the business scenario 130. According to an embodiment of the present application, a computing task sequence with sufficient computing performance, optimized resource utilization and low usage cost to meet the business scenario is the goal of formulating a computing task sequence. A computing task sequence may include one or more computing tasks. The application management module 110 can also customize the operation process of the business scenario, and determine the specific content and order of the corresponding computing task sequence based on the process.

[0032] The application management module 110 includes an application flow controller 111, a task sorting unit 112 and an application management interface 113. As the core unit of the application management module 110, the application flow controller 111 can flexibly define and arrange the business processing flow according to the needs of the business scenario. Generally, the application flow controller 111 can perform the following main tasks in parallel: determine the computing task sequence based on the demand data of the business scenario 130, and output the determined computing task sequence to the resource management module 120; monitor the completion of the computing task sequence, receive the load information of the computing resources in the computing resource cluster and the computing results of the computing tasks in real time or periodically; return the computing results from the resource management module 120 to the business scenario 130. When determining the computing task sequence based on the needs of the business scenario 130, the computing performance required by the business scenario, the resource utilization rate and usage cost expected to complete the business scenario, etc. can be considered.

[0033] The application interface unit 113 is used to define a common data interface to unify the specifications and connect to various business scenarios 130 that use computing resources. The application interface unit 113 receives the requirements of the business scenario 130 and provides the requirement information to the application process controller 111 in the form of instructions and data. The application process controller 111 can convert the requirement information of the business scenario 130 from the application interface unit 113 into a computing task to be run and calculated by the computing resources. For example, for a comprehensive optimization problem, the computing task can be one or more operational inequalities defined in the requirements of the business scenario 130, or multiple related operational inequalities can be constituted into one computing task. A business scenario 130 can correspond to one or more computing tasks. The computing task sequence can include computing tasks for one business scenario 130, or it can include computing tasks for multiple business scenarios 130.

[0034] According to the characteristics, types and requirements of the business scenarios 130, it is further necessary to comprehensively consider multiple angles such as computing performance, resource utilization and use cost to select appropriate types and quantities of computing resources for processing for different types of business scenarios 130. For example, a business scenario 130 may require one or more computing resources of the same or different types for processing, and multiple business scenarios 130 may also require at least one computing resource of the same or different types for processing (that is, the same type of computing resources can be shared or corresponding different types of computing resources can be used respectively). Therefore, the demand information of the business scenario 130 received from the application interface unit 113 includes type information for the required computing resources. The computing tasks in the computing task sequence determined by the application process controller 111 include the type or subtype of the corresponding computing resources for processing the computing tasks. For example, the computing tasks of a certain business scenario 130 after arrangement include not only the computing data required by the business (such as operations research polynomials), but also the type of computing resources required or specified by the business (such as the operations research optimization business scenario specifies the use of commercial solvers or other solver types of computing resources). In the following, the type or subtype of computing resources required or specified by the business scenario 130, that is, the type or subtype of computing resources required or specified by the computing task, is referred to as the type or subtype of the business scenario 130 or the computing task. Therefore, when outputting the computing task sequence to the resource management module 120, the computing task also includes the type information of the computing task. In this way, through the corresponding relationship between the types of computing tasks and computing resources, the comprehensive demand goals of the computing performance, resource utilization, and usage cost of the business scenario 130 from multiple angles can be converted into the determination and planning of computing tasks (queues), and then converted into the configuration of corresponding computing resources.

[0035] The load information of the computing resource includes load information corresponding to the type (and subtype) of the computing resource. The type or subtype of the computing resource corresponds to the business scenario 130 or the type or subtype of the computing task mentioned above. For example, the load information of the computing task can be expressed in the form of the proportion (e.g., percentage) of the used part or idle part of the computing resource to the computing resource. Since the computing resource is located on the corresponding computing node or can be said to be run by the computing node, the load information of the computing resource can also include the load information of the computing node where the computing resource is located. The load information of the computing node can include the load information of the processing capacity of the computing node, such as the proportion (e.g., percentage) of the used part or idle part in the total processing capacity to the total processing capacity. Further, if there are multiple computing resources on the computing node, according to the allocation rule of the computing resources, the load information of the computing node can also be expressed as the proportion (e.g., percentage) of the used part or idle part in the processing capacity of the computing node allocated to the computing resource.

[0036] The application process controller 111 monitors the completion of the computing task, and returns the computing result processed by the resource management module 120 to the business scenario 130 via the application management interface 113 .

[0037] The task sorting unit 112 is used to sort the computing tasks when a plurality of computing tasks are included in the computing task sequence. As a subsidiary unit of the application flow controller 111, the task sorting unit 112 sorts the computing tasks based on the priority information extracted from the demand information of the business scenario 130 and the load information of the computing resources from the resource management module 120 forwarded by the application flow controller 111. The priority information indicates the specific requirements of the business scenario. The specific requirements include, for example, the time limit of the return period of the computing result, the restriction of the use authority of the computing resources, and the restriction of the priority level of the task. The priority information may also include the preset rules of the application management module 110 for different business scenarios 130. In this way, the task sorting unit 112 adjusts the order of the computing tasks by considering the computing performance required by the business scenario, the resource utilization rate and the use cost expected to complete the business scenario, etc. With the assistance of the task sorting unit 112, the computing task sequence maintained by the application flow controller 111 is updated in real time after receiving the demand information or new load information of the new business scenario 130.

[0038] The application flow controller 111 also controls the output of the computing task sequence based on the received load information of the computing resources. For example, the application flow controller 111 can be set to output the computing task to the resource management module 120 only when the type of the currently idle computing resources includes the type of the computing task currently to be processed in the computing task sequence. Further, the application flow controller 111 can also output the number and type of computing tasks in the current computing task sequence to the resource management module 120, so that the resource management module 120 can use it as a reference for scheduling computing resources. For example, the resource management module 120 can increase computing nodes and corresponding computing resources to improve computing power for computing task sequences with serious queuing conditions, and can also release computing nodes for continuous idle or shorter computing task sequences (indicating that there are not enough computing tasks for computing resources to process), thereby dynamically adjusting the scale of the computing resource cluster to optimize computing efficiency.

[0039] The resource management module 120 is used to determine the scheduling scheme of the computing resource cluster for the computing tasks in the computing task sequence based on the computing tasks or computing task sequences from the application management module 110, use the corresponding computing resources to process the computing tasks based on the scheduling scheme to obtain the computing results, and return the computing results to the application management module 110. The computing resource cluster is a collection of multiple computing resources of different types for processing the computing tasks in the computing task sequence. Similar to the application management module 110, according to the characteristics, types, requirements and complexity of the business scenario, it is necessary to comprehensively consider the computing performance required by the business scenario, the resource utilization rate and the use cost expected by the business scenario, and determine the scheduling scheme of the computing resource cluster for the computing tasks in the computing task sequence required by the business scenario 130. According to the embodiment of the present application, a computing task sequence with sufficient computing performance, optimized resource utilization and low use cost required to meet the business scenario is the goal of scheduling computing resources.

[0040] The resource management module 120 includes a node management unit 121, a resource scheduling unit 122, a task execution unit 123, and a resource management interface 124. As the core unit of the resource management module 120, the resource scheduling unit 122 is used to generate and maintain a resource description graph used in the process of uniformly scheduling computing nodes and computing resources on the computing nodes and allocating computing resources to computing tasks. The establishment and adjustment of the resource description graph can take into account the computing performance required by the business scenario, the resource utilization rate and usage cost expected to complete the business scenario, etc. The resource description graph is used to describe the resources of the computing resource cluster, such as Figure 3 The following uses a tree diagram as an example to introduce the resource description diagram according to the embodiment of the present application, but those skilled in the art will understand that the resource description diagram of the present application is not limited to the form of a tree diagram, but includes any resource description diagram or resource relationship architecture with multiple nodes that can implement computing resource scheduling.

[0041] Figure 3 The resource description graph shown includes multiple nodes 0, 1, 2, 11, 12, 21, 121, 122 and 212. From a hierarchical point of view, these nodes form four levels, namely the first-level node (i.e., root node) 0, the second-level nodes 1 and 2, the third-level nodes 11, 12 and 21, and the fourth-level nodes 121, 122 and 212. The nodes of the next level are the child nodes of the corresponding nodes of the previous level, and the nodes of the previous level are the parent nodes of the nodes of the next level. For example, node 0 is the parent node of nodes 1 and 2, and correspondingly, nodes 1 and 2 are the child nodes of node 0. For another example, nodes 121 and 122 are the child nodes of node 12, and node 12 is the parent node of nodes 121 and 122. Although nodes 121 and 122 and node 212 belong to the same level of nodes, they have different parent nodes 12 and 21 respectively.

[0042] Each node represents a set of computing resources used to process computing tasks, and the set is a subset of the computing resource cluster. In this article, the computing resource cluster refers to the sum of all computing resources that the system can use, and the subset of the cluster refers to a combination of computing resources dedicated to a certain or a certain type of computing task. The node corresponding to the subset of the computing resource cluster has description information, which includes: information about the computing node where the computing resources in the subset corresponding to the node are located, type information of the computing resources in the subset corresponding to the node, and load information of the computing resources in the subset corresponding to the node. The description information indicates static information of computing resources of the type in the description information at the current moment, such as which computing nodes the computing resources of the type are located on, how many idle resources exist for each computing resource, etc. Through the description information, specific data of computing resources currently available for computing tasks of this type can be obtained. The description information of the child node indicates static information of computing resources of a subtype of the type in the description information of its parent node. The computing resources in the subset corresponding to the parent node include all computing resources in the subset corresponding to its child nodes, that is, the computing resources indicated by the parent node are a set composed of all computing resources of its child nodes. The load information of the computing resources of the subset corresponding to the child node can be used to determine the load information of the computing resources of the subset corresponding to the parent node of the child node.

[0043] The following example illustrates the resource status information and corresponding scheduling rules indicated by the resource description diagram. The computing resources in the computing resource set are all solvers used for overall optimization, and all available solver resources correspond to node 0. Among these solver resources, there are solver resources dedicated to professional problem 1 (corresponding to node 1) and solver resources dedicated to professional problem 2 (corresponding to node 2). The solver resources dedicated to professional problem 1 are divided into open source type solver resources (corresponding to node 11) and commercial solver resources (corresponding to node 12). Further, the commercial solver resources dedicated to professional problem 1 are further divided into non-shareable solver resources (corresponding to node 121) and solver resources that can be shared with computing tasks of other business scenarios (corresponding to node 122). Node 11 represents the open source solver resources dedicated to professional problem 1 in the solver resources, and the description information of node 11 includes the computing nodes where these solver resources are located, the type (i.e., the open source solver dedicated to professional problem 1), and the load information of each solver resource. Node 12 represents the commercial solver resource dedicated to professional problem 1 in the solver resources. The description information of node 12 includes the computing node where the corresponding solver resource is located, the type (i.e., the commercial solver dedicated to professional problem 1), and the load information of each solver resource. In fact, the commercial solver dedicated to professional problem 1 is composed of dedicated solvers and shared solvers (i.e., the combination of solver resources in the solver subset corresponding to nodes 121 and 122). Therefore, the subset corresponding to node 12 can also be called a virtual computing resource, and its final computing resource information needs to be determined by the information of its child nodes 121 and 122. If child nodes 121 and 122 have child nodes, it needs to be further determined by the information of the child nodes at the next level. Through this parent-child hierarchical structure, the resource distribution of the computing resource cluster is accurately described.

[0044] When determining the computing resources required for the computing task, the type of the computing task can be extracted from the computing task information in the computing task sequence, and the node with the type in the type data of its description information is found and selected in the resource description diagram according to the type of the computing task, and the computing resources that can be used to process the computing task are determined. These computing resources include computing resources in the subset corresponding to the node and / or the subnode of the node. After determining the available computing resources, it is also necessary to determine the allocation of computing tasks between multiple computing resources based on the resource scheduling strategy. According to an embodiment of the present application, the resource scheduling strategy may include at least one of the following: 1) first-in-first-out, that is, computing resources with a longer idle time are preferentially allocated to process computing tasks; 2) computing resources and / or computing nodes with low load are prioritized, that is, computing resources and / or computing nodes with a large amount of idle resources are preferentially allocated computing tasks; 3) load balancing between computing nodes, for example, giving priority to each computing node to obtain the same or similar processing volume; 4) load balancing between computing resources, for example, computing tasks are allocated as evenly as possible between computing resources of the same type, and computing resources in the subset corresponding to nodes and subnodes are allocated computing tasks using predetermined scheduling rules, etc.

[0045] After determining the computing resources for processing the computing tasks in the computing task queue, the resource scheduling unit 122 updates the load information of the computing resources in the description information of the corresponding node in the resource description graph.

[0046] The node management unit 121 is used to manage the computing nodes used to run and maintain computing resources in the system, and obtain the type and quantity of computing resources on the computing nodes and the original data associated with the load information of computing resources. Another key task of the node management unit 121 is to dynamically adjust the scale of the computing resource cluster based on the queue queuing situation indicated by the number and type of computing tasks in the computing task sequence and the needs of the business scenario, combined with the computing resource load information on the computing nodes in the current system. For example, when the computing resources corresponding to the type of computing tasks with greater demand in the computing task queue are insufficient, the node management unit 121 can apply to add new computing nodes to provide more computing resources of the corresponding type, or when the idle amount of a certain type of computing resources is large and / or the idle state of the predetermined level is maintained to reach a predetermined time threshold, the corresponding computing resources and / or the computing nodes where the computing resources are located are released. The dynamic adjustment of the number of computing nodes and the number and type of computing resources by the node management unit 121 needs to be considered in combination with the computing task sequence and the current computing resources and / or the load information of the computing nodes. Therefore, the function of the node management unit 121 can also refer to the computing performance required by the business scenario, the resource utilization rate and the use cost expected by the business scenario, etc.

[0047] The hardware of the computing node can be pre-configured, that is, the processing power of the computing node is predetermined. When adding computing nodes, the number, type / subtype of computing resources provided on the computing node, and the available processing power of various computing resources on the computing node are pre-configured according to the demand for computing resources. Generally speaking, after the computing node applied for addition is enabled, the computing resource configuration on the computing node is no longer adjusted.

[0048] When the node management unit 121 applies to add or release a computing node and the computing resources thereon, the description information at the corresponding computing node in the resource description graph is updated, such as adding data of the computing node where the computing resources of the corresponding type are located and the load information of the computing resources. When the node management unit 121 dynamically adjusts the scale of the computing resource cluster and the resource scheduling unit 122 determines the scheduling scheme, the node topology of the resource description graph is not adjusted, and only the description information of the corresponding node is updated. However, when a new type of computing resource is added based on the needs of the business scenario 130, it is generally necessary to add a new node in the resource description graph to correspond to the new type.

[0049] The task execution unit 123 is used to obtain the calculation result by using the computing resources based on the scheduling scheme, and return the calculation result to the application management module 110 via the resource management interface 124. After obtaining the scheduling scheme determined by the resource scheduling unit 122, the task execution unit 123 submits the computing task to the corresponding computing node, builds the operating environment of the computing resources and processes to obtain the calculation result. After the execution of the computing task is completed, the task execution unit 123 can also release the used computing resources and notify the resource scheduling unit 122 that the use of the computing resources has ended. The resource scheduling unit 122 updates the load information of the computing resources at the node corresponding to the released previously used computing resources, indicating that the computing resources corresponding to the computing task are in an idle state again.

[0050] Similar to the application management interface 113, the resource management interface 124 defines a common data interface to unify and connect various computing tasks that use computing resources, receives a computing task sequence from the application flow controller 111 of the application management module 110, and outputs the load information of the computing resources in the computing resource cluster, and / or the computing results. Both the application management interface 113 and the resource management interface 124 can adopt the restful interface technology standard. Standard and unified interfaces can improve the efficiency of developers and realize the direct connection of business scenarios to computing resources.

[0051] Figure 2 A method for scheduling computing resources according to an example embodiment of the present application is shown. Figure 1 The same or similar parts of the device process shown.

[0052] According to an exemplary embodiment of the present application, the method comprises the following steps:

[0053] Step S210: for at least one business scenario 130 (three are used as an example in the figure), determine a computing task sequence. According to the requirements of the business scenario, the computing task sequence includes one or more computing tasks.

[0054] Step S210 further includes sub-steps S211 to S213. In sub-step S211, Figure 1 The application management interface shown in FIG. 1 receives the normalized demand data of the business scenario 130. Next, in sub-step S212, computing tasks are determined based on the received demand data of the business scenario, and the computing tasks are grouped into a computing task sequence. The determined computing task sequence can be Figure 1 The resource management interface shown in is transmitted to the resource management module. The computing tasks in the computing task sequence can also be sorted through sub-step S213 based on the priority information extracted from the demand data of the business scenario and the load information of the computing resources from the resource scheduling unit of the resource management module. In the determination process of the computing task sequence of sub-step S212 and the computing task sorting process of sub-step S213, the computing performance required by the business scenario, the resource utilization rate and usage cost expected to complete the business scenario, etc. can be considered.

[0055] After step S210 is completed, the method proceeds to step S220 to determine the scheduling scheme of the computing resource cluster for the above-mentioned computing task sequence. Step S220 includes sub-steps S221 to S222. In sub-step S221, a resource description graph including multiple nodes is first generated and / or maintained, and the corresponding node is found in the resource description graph according to the type and demand of the computing task extracted from the computing task queue, and the computing resource that can be used for the computing task is selected according to the load information of the computing resources contained in the subset of the computing resource cluster corresponding to the node. As described above, the nodes in the resource description graph correspond to a subset of the computing resource cluster and have description information describing the static information of the computing resources, which may specifically include the type of computing resources, the computing node where the computing resources are located, and the load information of the computing resources. A parent-child hierarchical structure is adopted between nodes, for example, embodied in a tree diagram. After obtaining the available computing resources, the computing task scheduling and allocation scheme between the computing resources and / or computing nodes in the subset corresponding to the node and / or the child node of the node that can be used for the computing task is determined according to the resource scheduling strategy. Resource scheduling strategies may adopt, for example, first-in-first-out, priority of computing resources and / or computing nodes with low load, load balancing between computing nodes, and load balancing between computing resources, etc. Depending on the type of computing resources corresponding to the nodes, computing resources may also be shared.

[0056] Sub-step S222 in step S220 can adjust the scale of the computing resource cluster based on the number and type of computing tasks to be processed in the computing task sequence and the currently idle computing resource information, and the node management unit adds or releases computing nodes. When adding computing nodes, the type and quantity of computing resources provided on the new computing node and the authority of the computing resources for the processing capacity of the computing node are pre-configured. After each scheduling scheme is determined for the computing task to allocate the corresponding computing resources and the computing resource cluster is dynamically scaled, the data related to the computing node information and computing resource load information in the description information of the corresponding node in the resource description diagram is updated. If the type of computing task is added, deleted or modified according to the needs of the business scenario and the type of computing resource corresponding to the computing task type is increased, deleted or modified, the structure and parameter data of the resource description diagram are updated accordingly.

[0057] In the determination and update of the resource description graph of sub-step S221 of step S220 for determining computing resource scheduling and the computing resource cluster scale adjustment process of sub-step S222, the computing performance required for the business scenario, the resource utilization and usage cost expected to complete the business scenario, etc. can be considered.

[0058] After determining the scheduling scheme of computing resources, step S230 is executed, and the computing node assigned with the computing task and the computing resources thereon process to obtain the computing result. The computing node builds the operating environment required by the computing resource and executes the code of the computing resource in the operating environment.

[0059] After obtaining the calculation result of the calculation task, in step S240, the calculation result is returned to the application management module via the resource management interface, and further returned to the business scenario 130 via the application management interface. At the same time, the computing node releases the used computing resources, and updates and adjusts the load information of the computing nodes and computing resources at the nodes corresponding to the released computing resources in the resource description graph to facilitate the use of the next computing task.

[0060] According to an embodiment of the present application, a system for scheduling computing resources includes: Figure 1 The application management module, resource management module and one or more computing nodes providing computing resources shown in . The computing node can be implemented in the form of a local computer or server, a computer or server located in a network or cloud environment, etc.

[0061] The exemplary methods, devices and systems according to the embodiments of the present application as described above have at least the following advantages: being able to dynamically adjust the scale of the computing resource cluster based on the specific needs of the business scenario to improve the operating efficiency of the computing resources, supporting business scenarios to combine a variety of computing resources with different prices and types on demand to effectively save usage costs, improving the utilization of computing resources by sharing different types of computing resources in multiple business scenarios, and improving software development efficiency by realizing simple docking between business scenarios and computing resource clusters through a common data interface.

[0062] It should be noted that although several modules or units of the apparatus and system for scheduling computing resources are mentioned in the above detailed description, this division is not mandatory. In fact, according to the implementation mode of the present application, the features and functions of two or more modules or units described above can be concretized in one module or unit. Conversely, the features and functions of a module or unit described above can be further divided into multiple modules or units for concretization. The components displayed as modules or units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the present application scheme. Those of ordinary skill in the art can understand and implement it without paying creative work.

[0063] In an exemplary embodiment of the present application, a computer-readable storage medium is also provided, on which a computer program is stored, the program including executable instructions, which can implement the steps of the method for scheduling computing resources described in any of the above embodiments when executed by, for example, a processor. In some possible implementations, various aspects of the present application can also be implemented in the form of a program product, which includes a program code, and when the program product is run on a terminal device, the program code is used to cause the terminal device to execute the steps described in the method for scheduling computing resources in this specification according to various exemplary embodiments of the present application.

[0064] The program product for implementing the above method according to the embodiment of the present application can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present application is not limited thereto. In this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.

[0065] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0066] The computer readable storage medium may include a data signal propagated in a baseband or as part of a carrier wave, wherein a readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. The readable storage medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by an instruction execution system, an apparatus, or a device or used in combination with it. The program code contained on the readable storage medium may be transmitted with any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the above.

[0067] Program code for performing the operations of the present application may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, C++, etc., and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., using an Internet service provider to connect through the Internet).

[0068] In an exemplary embodiment of the present application, an electronic device is further provided, which may include a processor and a memory for storing executable instructions of the processor, wherein the processor is configured to execute the steps of the method for scheduling computing resources in any of the above embodiments by executing the executable instructions.

[0069] Those skilled in the art will appreciate that various aspects of the present application may be implemented as a system, method or program product. Therefore, various aspects of the present application may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to as "circuit", "module" or "system" herein.

[0070] Refer to the following Figure 4 The electronic device 300 according to this embodiment of the present application is described. Figure 4 The electronic device 300 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.

[0071] like Figure 4 As shown, the electronic device 300 is in the form of a general computing device. The components of the electronic device 300 may include, but are not limited to: at least one processing unit 310, at least one storage unit 320, a bus 330 connecting different system components (including the storage unit 320 and the processing unit 310), a display unit 340, etc.

[0072] The storage unit stores a program code, which can be executed by the processing unit 310, so that the processing unit 310 performs the steps of various exemplary embodiments of the present application described in the method for scheduling computing resources in this specification. For example, the processing unit 310 can perform the following steps: Figure 2 Follow the steps shown in .

[0073] The storage unit 320 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 3201 and / or a cache memory unit 3202 , and may further include a read-only memory unit (ROM) 3203 .

[0074] The storage unit 320 may also include a program / utility 3204 having a set (at least one) of program modules 3205, such program modules 3205 including but not limited to: an operating system, one or more application programs, other program modules and program data, each of which or some combination may include the implementation of a network environment.

[0075] Bus 330 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.

[0076] The electronic device 300 may also communicate with one or more external devices 400 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 300, and / or communicate with any device that enables the electronic device 300 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 350. Furthermore, the electronic device 300 may also communicate with one or more networks (e.g., a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) via a network adapter 360. The network adapter 360 may communicate with other modules of the electronic device 300 via a bus 330. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 300, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.

[0077] Through the description of the above implementation methods, it is easy for those skilled in the art to understand that the example implementation methods described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation methods of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, or a network device, etc.) to execute the method for scheduling computing resources according to the implementation methods of the present application.

[0078] Those skilled in the art will readily appreciate other embodiments of the present application after considering the description and practicing the contents disclosed herein. The present application is intended to cover any modification, use or adaptation of the present application, which follows the general principles of the present application and includes common knowledge or customary techniques in the art that are not disclosed in the present application. The description and embodiments are intended to be exemplary only, and the true scope and spirit of the present application are indicated by the appended claims.

Claims

1. A method for scheduling computing resources, characterized in that: The method includes: Determine a computing task sequence including at least one computing task according to a business scenario; Determining a scheduling scheme for a computing resource cluster for the computing task sequence, wherein the computing resource cluster includes a plurality of computing resources of different types, wherein the computing resources are respectively set on at least one computing node, and determining the scheduling scheme includes adding or releasing computing nodes based on the number and type of the computing tasks in the computing task sequence and load information of the computing resources of a type corresponding to the type of the computing tasks; and Obtaining a calculation result using the computing resources based on the scheduling scheme, Wherein, the computing resources include a solver, Wherein, determining a scheduling scheme for a computing resource cluster for the computing task sequence further includes: generating a resource description graph including a plurality of nodes, the nodes corresponding to subsets of the computing resource cluster and having description information, the description information including at least one of the following: a computing node where the computing resource in the subset corresponding to the node is located, a type of the computing resource in the subset corresponding to the node, and load information of the computing resource in the subset corresponding to the node; and The computing resources for the computing task are selected from the resource description graph based on the computing task sequence and the resource scheduling strategy.

2. The method according to claim 1, characterized in that When adding a computing node, the quantity and type of the computing resources on the added computing node are determined.

3. The method according to claim 1, characterized in that The node includes child nodes, the subset corresponding to the node includes all computing resources in the subset corresponding to the child nodes of the node, the type of the computing resources of the child nodes of the node is a subtype of the type of the computing resources of the node, and the load information of the computing resources of the node is determined based on the load information of the computing resources of the child nodes of the node.

4. The method according to claim 3, characterized in that Selecting computing resources for the computing task sequence from the resource description graph based on the computing task sequence and the resource scheduling strategy also includes: Determining the type of the computing resource corresponding to the computing task; selecting a corresponding node from the resource description graph based on the determined type of the computing resource; and Determine computing resources in a subset corresponding to the node and / or a subnode of the node for the computing task based on the resource scheduling policy.

5. The method according to claim 4, characterized in that The resource scheduling strategy includes at least one of the following: first-in-first-out, priority of computing resources and / or computing nodes with low load, load balancing between computing nodes, and load balancing between computing resources.

6. The method according to any one of claims 1 to 5, characterized in that The resource description diagram is a tree diagram.

7. The method according to claim 1, characterized in that When a computing node is added or released, the load information of the computing resources of the nodes of the resource description graph corresponding to the computing resources on the added or released computing node is adjusted.

8. The method according to claim 1, characterized in that It also includes releasing the used computing resources after obtaining the computing results, and adjusting the load information of the computing resources of the nodes of the resource description graph corresponding to the released used computing resources.

9. The method according to claim 1, characterized in that: Determining a computing task sequence including at least one computing task for a business scenario further includes: Receiving data of the business scenario through an application management interface; Determining the computing task sequence based on the data of the business scenario; and The computing task sequence is transmitted via a resource management interface.

10. The method according to claim 9, characterized in that Determining the computing task sequence based on the data of the business scenario further includes: The computing tasks in the computing task sequence are sorted based on the priority information extracted from the data of the business scenario and the load information of the computing resources in the computing resource cluster.

11. The method according to claim 9, characterized in that Also includes at least one of the following: Acquiring load information of the computing resources in the computing resource cluster through the resource management interface; The calculation result from the resource management interface is transmitted through the application management interface.

12. The method according to claim 1, characterized in that Also includes: Based on at least one requirement of computing performance, resource utilization, and usage cost of the business scenario, at least one of the computing task sequence and a scheduling scheme of a computing resource cluster for the computing task sequence is determined.

13. A device for scheduling computing resources, characterized in that: The device includes: An application management module, configured to determine a computing task sequence including at least one computing task according to a business scenario; a resource management module configured to determine a scheduling scheme of a computing resource cluster for the computing task sequence, and to obtain a computing result using the computing resources based on the scheduling scheme, wherein the computing resource cluster includes a plurality of computing resources of different types, The computing resources are respectively arranged on at least one computing node, the resource management module comprises a node management unit, and the node management unit is configured to add or release computing nodes based on the number and type of the computing tasks in the computing task sequence and the load information of the computing resources having a type corresponding to the type of the computing tasks, Wherein, the computing resources include a solver, Wherein, the resource management module also includes a resource scheduling unit, which is configured to: generating a resource description graph including a plurality of nodes, the nodes corresponding to subsets of the computing resource cluster and having description information, the description information including at least one of the following: a computing node where the computing resource in the subset corresponding to the node is located, a type of the computing resource in the subset corresponding to the node, and load information of the computing resource in the subset corresponding to the node; and The computing resources for the computing task are selected from the resource description graph based on the computing task sequence and the resource scheduling strategy.

14. The apparatus of claim 13, wherein the node management unit is further configured to determine the quantity and type of the computing resources on the added computing node when adding a computing node.

15. The device according to claim 13, characterized in that The node includes child nodes, the subset corresponding to the node includes all computing resources in the subset corresponding to the child nodes of the node, the type of the computing resources of the child nodes of the node is a subtype of the type of the computing resources of the node, and the load information of the computing resources of the node is determined based on the load information of the computing resources of the child nodes of the node.

16. The device according to claim 15, characterized in that The resource scheduling unit is further configured to: Determining the type of the computing resource corresponding to the computing task; Selecting a corresponding node from the resource description graph based on the determined type of the computing resource; as well as Determine computing resources in a subset corresponding to the node and / or a subnode of the node for the computing task based on the resource scheduling policy.

17. The device according to claim 16, characterized in that The resource scheduling strategy includes at least one of the following: first-in-first-out, priority of computing resources and / or computing nodes with low load, load balancing between computing nodes, and load balancing between computing resources.

18. The device according to any one of claims 13 to 17, characterized in that The resource description diagram is a tree diagram.

19. The device according to claim 13, characterized in that The resource scheduling unit is further configured to: When a computing node is added or released, the load information of the computing resources of the nodes of the resource description graph corresponding to the computing resources on the added or released computing node is adjusted.

20. The device according to claim 13, characterized in that The resource management module also includes a task execution unit configured to obtain a computing result using the computing resources based on the scheduling scheme.

21. The device according to claim 13, characterized in that The resource scheduling unit is further configured to: After obtaining the calculation result, the used computing resources are released, and the load information of the computing resources of the nodes of the resource description graph corresponding to the released used computing resources is adjusted.

22. The device according to claim 13, characterized in that The resource management module also includes a resource management interface configured to receive the computing task sequence and output the load information of the computing resources in the computing resource cluster and / or the computing results.

23. The device according to claim 13, characterized in that The application management module includes: An application management interface, configured to receive data of the business scenario and output the calculation result; and The application process controller is configured to determine the computing task sequence based on the data of the business scenario, output the computing task sequence, and receive the load information and / or the computing results of the computing resources in the computing resource cluster.

24. The device according to claim 23, characterized in that The application management module also includes a task sorting unit, which is configured to: The computing tasks in the computing task sequence are sorted based on the priority information extracted from the data of the business scenario and the load information of the computing resources in the computing resource cluster.

25. The device according to claim 13, characterized in that The device is further configured to determine at least one of the computing task sequence and a scheduling scheme of a computing resource cluster for the computing task sequence based on at least one of computing performance, resource utilization and usage cost requirements of the business scenario.

26. A computer-readable storage medium having a computer program stored thereon, the computer program comprising executable instructions, and when the executable instructions are executed by a processor, the method according to any one of claims 1 to 12 is implemented.

27. An electronic device, characterized in that: include: processor; as well as A memory, configured to store executable instructions of the processor; The processor is configured to execute the executable instructions to implement the method according to any one of claims 1 to 12.

28. A system for scheduling computing resources, characterized in that: It comprises an application management module and a resource management module as described in any one of claims 13 to 25, and at least one computing node including computing resources.

Citation Information

Patent Citations

  • Resource dispatch and management method and device

    CN103365713A