Cloud computing task scheduling method, device and storage medium

By determining cloud resources that meet preset constraints in the cloud computing resource pool, priority is given to the task with the smallest number of optional cloud resources, combined with preset preallocation rules and cloud resources with the lowest unit time cost, the problem of neglecting task fine-grained resource requirements in the existing technology is solved, and the best matching of tasks and resources and high-quality services are achieved.

CN114237863BActive Publication Date: 2025-04-04广东省华南技术转移中心有限公司
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111249000.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-26
Publication Date
2025-04-04
Estimated Expiration
2041-10-26

AI Technical Summary

Technical Problem

The existing cross-cloud task scheduling strategies ignore the fine-grained resource requirements of tasks, such as bandwidth and memory, resulting in a reduction in the optional cloud resources of tasks, which cannot be scheduled and executed in a timely manner, and the application response time becomes longer and the service quality is degraded.

Method used

A cloud computing task scheduling method is proposed. By determining cloud resources that meet preset constraints in the cloud computing resource pool, selecting the task with the smallest number of optional cloud resources as the target task, obtaining all of its optional cloud resources, pre-scheduling based on the preset pre-allocation rules, determining the cloud resources with the lowest unit time fee as the target cloud resource, and allocating tasks to the resource for processing.

Benefits of technology

It achieves the best matching of tasks and resources, avoids task scheduling failure, ensures the service quality of the application, and minimizes user costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114237863B_ABST
    Figure CN114237863B_ABST
Patent Text Reader

Abstract

The present disclosure provides a scheduling method, device and storage medium for cloud computing tasks, which relates to the field of cloud computing technology, wherein the configuration method includes: determining cloud resources that meet preset constraints of cloud computing tasks in a cloud computing resource pool as optional cloud resources for cloud computing tasks; selecting a cloud computing task with the least number of optional cloud resources as a target cloud computing task; obtaining all optional cloud resources corresponding to the target cloud computing task, and generating an optional cloud resource set based on all optional cloud resources; performing pre-scheduling processing on each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule, and selecting a cloud resource with the lowest unit time cost in the optional cloud resource set as the target cloud resource. The method, device and medium disclosed in the present disclosure can achieve the best match between tasks and resources, avoid task scheduling failures to the greatest extent, and ensure the service quality of applications; it can minimize user costs and improve user experience.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of cloud computing, and in particular to a method, device and storage medium for scheduling cloud computing tasks. Background Art

[0002] Cloud computing integrates the computing, storage, and network resources of a large number of physical machines through virtualization technology, realizing a large-scale computing architecture. In a hybrid cloud environment, in order to ensure the performance of applications, corresponding requirements are also put forward for the execution environment of tasks. Selecting cloud resources that are suitable for the resource type and size requirements of the task can ensure high-quality execution of the task. Existing cross-cloud task scheduling strategies usually only consider the security requirements of tasks, placing sensitive tasks on private clouds and scheduling non-sensitive tasks on public clouds. Existing cross-cloud task scheduling strategies ignore other more fine-grained resource requirements of tasks, such as bandwidth, memory, etc., resulting in the problem of fewer optional cloud resources for tasks during cross-cloud scheduling, making it impossible to schedule and execute such tasks in a timely manner, increasing application response time and reducing service quality. Summary of the invention

[0003] In order to solve the above technical problems, the present disclosure is proposed. The embodiments of the present disclosure provide a method, device and storage medium for scheduling cloud computing tasks.

[0004] According to a first aspect of an embodiment of the present disclosure, a scheduling method for a cloud computing task is provided, comprising: step 1, determining cloud resources that meet preset constraints of the cloud computing task in a cloud computing resource pool as optional cloud resources for the cloud computing task; wherein the cloud resources in the cloud computing resource pool include: public cloud resources, private cloud resources and hybrid cloud resources; step 2, selecting a cloud computing task with the least number of optional cloud resources as a target cloud computing task; step 3, acquiring all optional cloud resources corresponding to the target cloud computing task, and generating an optional cloud resource set based on the all optional cloud resources; step 4, performing pre-scheduling processing on each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule to determine an executable cloud computing task set corresponding to each candidate cloud resource; wherein the executable cloud computing task set includes the target cloud computing task and other cloud computing tasks, or only includes the target cloud computing task; step 5, selecting a cloud resource with the lowest unit time cost in the optional cloud resource set as the target cloud resource, and allocating all cloud computing tasks in the executable cloud computing task set corresponding to the target cloud resource to the target cloud resource for processing.

[0005] Optionally, in step six, the target cloud computing task and other cloud computing tasks assigned to the target cloud resource are deleted, and the target cloud resource is set to an unselectable state; in step seven, steps two to six are repeated until all cloud computing tasks are assigned to corresponding cloud resources.

[0006] Optionally, the determining of cloud resources that satisfy preset constraints of the cloud computing task as optional cloud resources for the cloud computing task includes: determining cloud resources in a cloud computing resource pool that satisfy or do not satisfy the preset constraints of the cloud computing tasks in a cloud computing task set as optional cloud resources or non-optional cloud resources for the cloud computing task; the selecting of the cloud computing task with the least number of optional cloud resources as the target cloud computing task includes: establishing a relationship matrix between the cloud computing task and the cloud resources, which is used to characterize the corresponding relationship between the cloud computing task and the optional cloud resources and non-optional cloud resources; and selecting the cloud computing task with the least number of optional cloud resources as the target cloud computing task according to the relationship matrix.

[0007] Optionally, deleting the target cloud computing task and other cloud computing tasks assigned to the target cloud resource, and setting the target cloud resource to an unselectable state includes: setting the cloud resource element values ​​corresponding to the target cloud computing task and other cloud computing tasks assigned to the target cloud resource in the relationship matrix to 0, and setting the task element values ​​corresponding to the cloud computing task assigned to the target cloud resource in the relationship matrix to 0.

[0008] Optionally, the pre-scheduling processing of each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule to determine the executable cloud computing task set corresponding to each candidate cloud resource includes: adding cloud computing tasks to the executable cloud computing task set in order from small to large in the number of corresponding optional cloud resources; judging whether the total execution time of all cloud computing tasks in the executable cloud computing task set exceeds the available time of the corresponding candidate cloud resources; if so, retaining the currently added cloud computing task in the executable cloud computing task set, and if not, removing the currently added cloud computing task from the executable cloud computing task set.

[0009] Optionally, selecting the cloud resource with the lowest unit time cost in the optional cloud resource set as the target cloud resource includes: determining the unit time cost of each candidate cloud resource in the optional cloud resource set; wherein the unit time cost is the ratio of the total cost of all cloud computing tasks in the corresponding executable cloud computing task set to the total execution time; and selecting the candidate cloud resource with the lowest unit time cost as the target cloud resource.

[0010] Optionally, the target cloud resources include: at least one of public cloud resources, private cloud resources or hybrid cloud resources; the preset constraints include: resource constraints and security level constraints; wherein the resource constraints include: the minimum value of the available resources of the cloud resources meets the corresponding resource requirements of the cloud computing tasks, and the cloud computing tasks can only be scheduled to one cloud resource for execution; the security level constraints include: cloud computing tasks containing sensitive data are executed on cloud resources with a security level higher than a preset threshold, and other cloud computing tasks are executed on cloud resources with a security level higher than or equal to the security level of other cloud computing tasks.

[0011] According to a second aspect of an embodiment of the present disclosure, there is provided a scheduling device for a cloud computing task, comprising: an optional resource determination module, configured to determine cloud resources that meet preset constraints of a cloud computing task in a cloud computing resource pool as optional cloud resources for the cloud computing task; wherein the cloud resources in the cloud computing resource pool include: public cloud resources, private cloud resources and hybrid cloud resources; a target task selection module, configured to select a cloud computing task with the least number of optional cloud resources as a target cloud computing task; a candidate resource selection module, configured to obtain all optional cloud resources corresponding to the target cloud computing task, and generate an optional cloud resource set based on the all optional cloud resources; a pre-scheduling processing module, configured to perform pre-scheduling processing on each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule, so as to determine an executable cloud computing task set corresponding to each candidate cloud resource; wherein the executable cloud computing task set includes the target cloud computing task and other cloud computing tasks, or only includes the target cloud computing task; a target resource processing module, configured to select a cloud resource with the lowest unit time cost in the optional cloud resource set as a target cloud resource, and allocate all cloud computing tasks in the executable cloud computing task set corresponding to the target cloud resource to the target cloud resource for processing.

[0012] Optionally, a task resource deletion module is used to delete the target cloud computing task and other cloud computing tasks assigned to the target cloud resource, and set the target cloud resource to an unselectable state; a loop execution module is used to repeatedly execute the target task selection module, the candidate resource selection module, the pre-scheduling processing module, the target resource processing module and the task resource deletion module until all cloud computing tasks are assigned to corresponding cloud resources.

[0013] Optionally, the optional resource determination module is used to determine cloud resources in the cloud computing resource pool that meet or do not meet the preset constraint conditions of the cloud computing task in the cloud computing task set as optional cloud resources or non-optional cloud resources for the cloud computing task. The target task selection module is used to establish a relationship matrix between the cloud computing task and the cloud resources, which is used to characterize the corresponding relationship between the cloud computing task and the optional cloud resources and non-optional cloud resources; and select the cloud computing task with the least number of optional cloud resources as the target cloud computing task according to the relationship matrix.

[0014] Optionally, the task resource deletion module is used to set the cloud resource element values ​​corresponding to the target cloud computing task and other cloud computing tasks assigned to the target cloud resource in the relationship matrix to 0, and to set the task element values ​​corresponding to the cloud computing task assigned to the target cloud resource in the relationship matrix to 0.

[0015] Optionally, the pre-scheduling processing module is used to add cloud computing tasks to the executable cloud computing task set in order from small to large numbers of corresponding optional cloud resources; determine whether the total execution time of all cloud computing tasks in the executable cloud computing task set exceeds the available time of the corresponding candidate cloud resources; if so, retain the currently added cloud computing task in the executable cloud computing task set; if not, remove the currently added cloud computing task from the executable cloud computing task set.

[0016] Optionally, the target resource processing module is used to determine the unit time cost of each candidate cloud resource in the optional cloud resource set; wherein the unit time cost is the ratio of the total cost of all cloud computing tasks in the corresponding executable cloud computing task set to the total execution time; and the candidate cloud resource with the lowest unit time cost is used as the target cloud resource.

[0017] Optionally, the target cloud resources include: at least one of public cloud resources, private cloud resources or hybrid cloud resources; the preset constraints include: resource constraints and security level constraints; wherein the resource constraints include: the minimum value of the available resources of the cloud resources meets the corresponding resource requirements of the cloud computing tasks, and the cloud computing tasks can only be scheduled to one cloud resource for execution; the security level constraints include: cloud computing tasks containing sensitive data are executed on cloud resources with a security level higher than a preset threshold, and other cloud computing tasks are executed on cloud resources with a security level higher than or equal to the security level of other cloud computing tasks.

[0018] According to a third aspect of an embodiment of the present disclosure, there is provided a scheduling device for cloud computing tasks, comprising: a processor; a memory for storing executable instructions of the processor; the processor, for reading the executable instructions from the memory, and executing the instructions to implement the method as described above.

[0019] According to a fourth aspect of an embodiment of the present disclosure, a computer-readable storage medium is provided, wherein the storage medium stores a computer program, and the computer program is used to execute the above method.

[0020] Based on the scheduling method, device and storage medium for cloud computing tasks provided by the above embodiments of the present disclosure, the best match between tasks and resources can be achieved by comprehensively considering the diversity of task scheduling resource requirements and the heterogeneity of cloud resources; by taking into account the difficulty of task scheduling and giving priority to scheduling tasks with fewer optional cloud resources, task scheduling failures can be avoided to the greatest extent and the service quality of the application can be guaranteed; in the scheduling process, the optional cloud resources with the lowest unit time cost are given priority as the target cloud resources for the task, which can minimize the user's cost.

[0021] The technical solution of the present disclosure is further described in detail below through the accompanying drawings and embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] By describing the embodiments of the present disclosure in more detail in conjunction with the accompanying drawings, the above and other purposes, features and advantages of the present disclosure will become more apparent. The accompanying drawings are used to provide a further understanding of the embodiments of the present disclosure and constitute a part of the specification. Together with the embodiments of the present disclosure, they are used to explain the present disclosure and do not constitute a limitation of the present disclosure. In the drawings, the same reference numerals generally represent the same components or steps.

[0023] Figure 1 A flowchart of an embodiment of a method for scheduling cloud computing tasks disclosed herein;

[0024] Figure 2 A schematic diagram of a process of determining an executable cloud computing task set in one embodiment of a cloud computing task scheduling method disclosed herein;

[0025] Figure 3 A flowchart of another embodiment of the method for scheduling cloud computing tasks disclosed herein;

[0026] Figure 4 A schematic diagram of an embodiment of a scheduling device for cloud computing tasks disclosed in the present invention;

[0027] Figure 5 It is a schematic diagram of another embodiment of the scheduling device for cloud computing tasks disclosed in the present invention. DETAILED DESCRIPTION

[0028] The exemplary embodiments according to the present disclosure will be described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, rather than all the embodiments of the present disclosure, and it should be understood that the present disclosure is not limited to the exemplary embodiments described here.

[0029] It should be noted that the relative arrangement of components and steps, the numerical expressions and numerical values ​​set forth in these embodiments do not limit the scope of the present disclosure unless specifically stated otherwise.

[0030] Those skilled in the art can understand that the terms "first" and "second" in the embodiments of the present disclosure are only used to distinguish different steps, devices or modules, etc., and neither represent any specific technical meaning nor indicate the necessary logical order between them.

[0031] It should also be understood that in the embodiments of the present disclosure, “plurality” may refer to two or more than two, and “at least one” may refer to one, two, or more than two.

[0032] It should also be understood that any component, data or structure mentioned in the embodiments of the present disclosure can generally be understood as one or more, unless explicitly limited or otherwise indicated in the context.

[0033] In addition, the term "and / or" in this disclosure is only a description of the association relationship of associated objects, indicating that there may be three relationships, such as A and / or B, which can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this disclosure generally indicates that the associated objects before and after are in an "or" relationship.

[0034] It should also be understood that the description of the various embodiments in the present disclosure focuses on the differences between the various embodiments, and the same or similar aspects thereof can be referenced to each other, and for the sake of brevity, they will not be described one by one.

[0035] At the same time, it should be understood that for the convenience of description, the sizes of the various parts shown in the drawings are not drawn according to the actual proportional relationship.

[0036] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the present disclosure, its application, or uses.

[0037] Technologies, methods, and equipment known to ordinary technicians in the relevant art may not be discussed in detail, but where appropriate, the technologies, methods, and equipment should be considered as part of the specification.

[0038] It should be noted that like reference numerals and letters refer to similar items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.

[0039] The embodiments of the present disclosure can be applied to electronic devices such as terminal devices, computer systems, servers, etc., which can operate with many other general or special computing system environments or configurations. Examples of well-known terminal devices, computing systems, environments and / or configurations suitable for use with electronic devices such as terminal devices, computer systems or servers include, but are not limited to: personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, microprocessor-based systems, set-top boxes, programmable consumer electronics, network personal computers, small computer systems, large computer systems, and distributed cloud computing technology environments including any of the above systems, etc.

[0040] Electronic devices such as terminal devices, computer systems, servers, etc. can be described in the general context of computer system executable instructions (such as program modules) executed by computer systems. Generally, program modules can include routines, programs, target programs, components, logic, data structures, etc., which perform specific tasks or implement specific abstract data types. Computer systems / servers can be implemented in a distributed cloud computing environment. In a distributed cloud computing environment, tasks can be performed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located on local or remote computing system storage media including storage devices.

[0041] Exemplary Methods

[0042] According to the operation mode of cloud computing, cloud computing can be divided into private cloud and public cloud. Private cloud is a cloud service platform built by enterprises using their own IT infrastructure, which is safe and reliable, and has relatively high construction and maintenance costs. Public cloud is a cloud provided to users by third-party service providers on a lease basis, which is flexible, scalable and has on-demand service fees.

[0043] Since the construction and maintenance costs of private clouds are often relatively high, enterprises will consider both private and public cloud resources when encountering large-scale computing tasks, and schedule tasks to appropriate cloud resources to execute while meeting the security level and other constraints of the tasks, minimizing the costs of the enterprise. This environment where private and public clouds coexist is called a hybrid cloud.

[0044] Cross-cloud scheduling refers to the scheduling of tasks in a hybrid cloud environment. Although cross-cloud scheduling has been widely used, users' demands for cloud computing resources are becoming more and more diverse. There are still many challenges in implementing reasonable resource management and efficient task scheduling in hybrid clouds. In a hybrid cloud environment, there are many cloud computing resources, which are provided by many different companies. Since each company uses different hardware resources, there is heterogeneity in the resources in the hybrid cloud. This heterogeneity is reflected in the differences in the types and amounts of computing resources (CPU, GPU, memory, network, etc.) provided by these cloud resources.

[0045] In order to ensure the performance of the application, the execution environment of the task also has corresponding requirements. Selecting cloud resources that are suitable for the resource type and size requirements of the task can ensure high-quality execution of the task. Because cloud service providers usually only share cloud resources when their own business needs are small and there are idle cloud computing resources, the available time of cloud computing resources provided by different enterprises is different. When users schedule tasks, they need to consider the relationship between task execution time and resource availability time. Finally, for users, cloud computing resources have different security levels. For example, private clouds often have the highest security level, while public clouds have a relatively low security level. Users should select cloud resources that meet their requirements for task scheduling according to their own task needs.

[0046] Existing cross-cloud task scheduling strategies ignore other fine-grained resource requirements of tasks, such as bandwidth, memory, etc., resulting in fewer optional cloud resources for tasks during cross-cloud scheduling. Since priority scheduling of such tasks is ignored, such tasks cannot be scheduled and executed in a timely manner, application response time becomes longer, and service quality decreases. The scheduling method for cloud computing tasks disclosed in the present invention comprehensively considers the various requirements of tasks, realizes the smooth scheduling of multiple tasks of users, and can minimize user costs.

[0047] Figure 1 FIG. 1 is a flow chart of an embodiment of a method for scheduling cloud computing tasks disclosed in the present invention. Figure 1 The method shown includes steps: S101-S107. Each step is described below.

[0048] S101, determining cloud resources that meet preset constraints of a cloud computing task as optional cloud resources for the cloud computing task.

[0049] Determine in the cloud computing resource pool cloud resources that meet the preset constraints of the cloud computing task as optional cloud resources for the cloud computing task; wherein the cloud resources in the cloud computing resource pool include: public cloud resources, private cloud resources or hybrid cloud resources, etc. Public cloud resources, private cloud resources or hybrid cloud resources can be hosts, servers, etc. set in public clouds, private clouds or hybrid clouds.

[0050] S102: Select the cloud computing task with the least number of optional cloud resources as the target cloud computing task.

[0051] S103: Acquire all optional cloud resources corresponding to the target cloud computing task, and generate an optional cloud resource set based on all optional cloud resources.

[0052] S104, pre-scheduling each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule to determine a set of executable cloud computing tasks corresponding to each candidate cloud resource; wherein the executable cloud computing task set includes a target cloud computing task and other cloud computing tasks, or only includes a target cloud computing task.

[0053] The preset constraints include resource constraints, security level constraints, etc. Resource constraints include: the minimum value of available cloud resources meets the corresponding resource requirements of cloud computing tasks, and cloud computing tasks can only be scheduled to one cloud resource for execution. Security level constraints include: cloud computing tasks containing sensitive data are executed on cloud resources with a security level higher than the preset threshold, and other cloud computing tasks are executed on cloud resources with a security level higher than or equal to the security level of other cloud computing tasks.

[0054] S105: Select the cloud resource with the lowest cost per unit time from the optional cloud resource set as the target cloud resource, and assign all cloud computing tasks in the executable cloud computing task set corresponding to the target cloud resource to the target cloud resource for processing.

[0055] S106, deleting the target cloud computing task and other cloud computing tasks assigned to the target cloud resource, and setting the target cloud resource to an unselectable state. The target cloud resource includes at least one of a public cloud resource, a private cloud resource, or a hybrid cloud resource.

[0056] S107, repeat steps S102 to S6 until all cloud computing tasks are assigned to corresponding cloud resources.

[0057] In one embodiment, an enterprise uses its own infrastructure to build a cloud service platform to provide services for itself, and rents out idle resources in the form of services when business demand is small. These idle cloud computing resources constitute a cloud computing resource pool that can be scheduled by users. S = {s1, s2, s3, ..., s n} represents the set of cloud computing resources, and n is the number of cloud computing resources. i It has attributes such as resource type and size, available time, cost, and security. When the same enterprise has multiple cloud resources that can provide services to the outside world, they are considered different cloud resources. Private cloud is a special cloud resource with the highest security level in the resource pool.

[0058] The user has multiple independent and indivisible tasks that need to be scheduled to the cloud server for execution, T = {t1, t2, t3, ..., t m} represents the task set, and m represents the number of tasks. The total cost of scheduling tasks to the server can be expressed as φ, which is equal to the total cost of all occupied cloud resources:

[0059]

[0060] Where i represents the cloud computing resource s i ; α i Indicates whether to select cloud resources i Perform task scheduling, α i =1 means s is selected i Perform task scheduling, otherwise no; β i Represents cloud resources i costs.

[0061] Since different cloud computing resources have different properties and different tasks have different computing requirements, the following restrictions need to be considered when scheduling user computing tasks to cloud servers for execution.

[0062] Resource limitations: Each enterprise uses different hardware when building a cloud computing cluster, which leads to heterogeneity among cloud resources. The types and quantities of computing resources (CPU, GPU, memory, network, etc.) provided by cloud resources vary. In addition, since there are different computing tasks in the cloud computing cluster, the CPU, GPU, network and other resources used by these tasks change dynamically during execution.

[0063] In order to ensure the smooth execution of the task and complete the task before the end of the cloud resource availability time, the minimum value of the available resources predicted within the cloud resource availability time is taken as the available resource size. ρ represents the type of cloud computing resources, and p represents the number of resource types. Therefore, the cloud computing resource s i The size of the resource ρ can be expressed as Task j The resource requirement can be expressed as

[0064] Assume that task t j Scheduling to cloud computing resources i If s i The resource type and size on the task must be greater than or equal to task t j The required size. Use x i,j ∈{0,1} represents task t j Whether to schedule to cloud computing resources i Execute on, where x i,j =0 means task tj Scheduled to cloud computing resources i Resource constraints can be formalized as:

[0065]

[0066] Time constraints: Enterprises usually share their cloud resources only when their business needs are small and there are idle cloud computing resources. Therefore, different cloud computing resources have different available times. When users schedule tasks, they need to consider the relationship between the task computing amount and the available time of resources, and select cloud resources that are sufficient to complete the computing tasks for task scheduling.

[0067] Use h i Represents cloud resources i The available time, η i,j Represents cloud resources i Execute Task j The rate, w j Represents task t j Multiple tasks can be scheduled to the same cloud resource for execution, so the following time constraints should be met when scheduling tasks:

[0068]

[0069] Security level constraints: There are different security levels for cloud computing resources. Private cloud has the highest security level and can meet the needs of users to perform tasks with the highest security level. Users hope to schedule tasks containing sensitive data to cloud resources with a high security level, and schedule other tasks to cloud resources with a security level not lower than the task's security level. i Represents cloud resources i The safety level, v j Represents task t j The following security level constraints should be met when scheduling tasks:

[0070] x i,j u i ≥v j ,i∈{1,2,3,...,n},j∈{1,2,3,...m} (1-4).

[0071] The multi-task scheduling across clouds can be formally described as: minφ;

[0072]

[0073]

[0074] x i,j u i≥v j ,i∈{1,2,3,...,n},j∈{1,2,3,...m} (1-7);

[0075]

[0076] Among them, formula 1-5 is the resource constraint, formula 1-6 is the time constraint, formula 1-7 is the security level constraint, and constraint 1-8 means that a task can only be scheduled to one cloud resource for execution to avoid repeated execution.

[0077] In one embodiment, cloud resources that meet or do not meet the preset constraint conditions of the cloud computing tasks in the cloud computing task set are determined in the cloud computing resource pool as optional cloud resources or non-optional cloud resources for the cloud computing tasks. For example, a cloud computing resource set S = {s1, s2, s3, ..., s n} and the task set T = {t1, t2, t3, ..., t m}, for each task in T, all cloud resources that meet all its constraints except time are selected from the cloud computing resource pool S as optional resources for the task, and the task is also a candidate task for optional cloud resources.

[0078] A relationship matrix between cloud computing tasks and cloud resources is established to characterize the corresponding relationship between cloud computing tasks and optional cloud resources and non-optional cloud resources. According to the relationship matrix, the cloud computing task with the least number of optional cloud resources is selected as the target cloud computing task. For example, a two-dimensional relationship matrix Z is constructed based on the relationship between cloud computing tasks and cloud resources. In the matrix Z, z i,j =1 means s i t j Optional resources, z i,j =0 means s i t j The non-selectable resources, matrix Z is as follows:

[0079]

[0080] According to the matrix Z, select the task t with the least number of available cloud resources. θ Prioritize scheduling. Among them, task t j The number of cloud resources available It can be expressed as follows:

[0081]

[0082] Figure 2 FIG. 1 is a flow chart of determining an executable cloud computing task set in one embodiment of the cloud computing task scheduling method disclosed in the present invention. Figure 2The method shown includes steps: S201-S202. Each step is described below.

[0083] S201, adding cloud computing tasks to an executable cloud computing task set in order of the number of corresponding optional cloud resources from small to large.

[0084] S202, determining whether the total execution time of all cloud computing tasks in the executable cloud computing task set exceeds the available time of the corresponding candidate cloud resources; if so, retaining the currently added cloud computing task in the executable cloud computing task set; if not, removing the currently added cloud computing task from the executable cloud computing task set.

[0085] Determine the unit time cost of each candidate cloud resource in the optional cloud resource set; where the unit time cost is the ratio of the total cost of all cloud computing tasks in the corresponding executable cloud computing task set to the total execution time. The candidate cloud resource with the lowest unit time cost is selected as the target cloud resource.

[0086] For example, to find task t in matrix Z θ The optional cloud resource set is represented by R. Perform task pre-scheduling for each cloud resource in R to obtain cloud resource s r ∈R executable task set (executable cloud computing task set) W r . For cloud resources r ∈R, traverse s in the order of optional cloud resources from few to many r Candidate tasks in .

[0087] For s r The candidate task t λ , judge that t λ Join to r The executable set W r In the middle, W r Whether the total execution time of the task in exceeds s r If the available time does not exceed, task t λ Join W r Otherwise, do not add the task to W r .

[0088] After completing the pre-scheduling, according to W r The total execution time of the task in α r , calculate s r Cost per unit time According to the pre-scheduling results, select the optional cloud resource s with the lowest unit time cost in R ε As t θ The final target cloud resource, task t θ and W εOther tasks in are scheduled to s ε Executed in.

[0089] In one embodiment, the cloud resource element values ​​corresponding to the target cloud computing task and other cloud computing tasks assigned to the target cloud resource in the relationship matrix are set to 0, and the task element values ​​corresponding to the cloud computing task assigned to the target cloud resource in the relationship matrix are set to 0. For example, the scheduled tasks are deleted from the task set T, and the matrix Z is updated. The scheduled tasks are removed from the candidate tasks of all cloud resources, that is, in the matrix Z, W ε Set the values ​​of the elements in the column vector corresponding to the tasks in to 0. ε Set to be unselectable for all tasks, that is, in the matrix Z, s ε The element values ​​in the corresponding row vectors are all set to 0.

[0090] Figure 3 FIG. 1 is a flow chart of another embodiment of the method for scheduling cloud computing tasks disclosed in the present invention. Figure 3 The method shown includes steps: S301-S309. Each step is described below.

[0091] S301, obtain the cloud computing resource set S = {s1, s2, s3, s4, s5} and the task set T = {t1, t2, t3, t4, t5, t6, t7, t8, t9, t 10}.

[0092] S302, traverse all tasks in the set T, and for each task, select a cloud resource that satisfies all its constraints except time as an optional cloud resource for the task.

[0093] S303: construct a two-dimensional relationship matrix Z based on the relationship between the above tasks and cloud resources.

[0094] In the matrix Z, use z i,j =1 means s i t j Optional resources, z i,j =0 means s i t j The relationship matrix Z between resource S and task T is as follows:

[0095]

[0096] S304: Select the task t with the least number of currently available cloud resources according to the matrix Z. θ Prioritize scheduling.

[0097] Task j The number of cloud resources available It can be expressed as follows:

[0098]

[0099] S305, search for task t in matrix Z θ The optional cloud resource set is denoted by R. For example, R = {s1, s3}.

[0100] S306, pre-scheduling tasks for each cloud resource in R to obtain an executable task set for each optional cloud resource.

[0101] Get cloud resources r ∈R is the set of executable tasks W r . Pre-schedule the candidate tasks in s1 and s3, and select the executable task sets W1 and W3 of s1 and s3 respectively. For the cloud resource s of task t1 r ,r∈R, traverse s in the order of optional cloud resources from few to many r For s1, the candidate tasks in s1 are traversed in the order of t1, t9, t2, t5, t6, t8, t3, t7. r The candidate task t λ , judge that t λ Join to r The executable set W r China Times r Whether the total execution time of the task in exceeds s r If the available time does not exceed, task t λ Join W r Otherwise, do not add the task to W r .

[0102] For s1, assume that there are tasks t1, t9, and t2 in s1. If t5 is added to W1, and the total execution time of tasks in W1 is not greater than h1, then t5 is added to W1. Otherwise, it is not added to W1. Then continue to perform the same operation on t6, t8, t3, and t7. r The total execution time of the task in α r , calculate s r Cost per unit time For s1, calculate the cost per unit time of s1 based on the total execution time α1 of the tasks in W1

[0103] S307: According to the pre-scheduling result, select the cloud resource with the lowest unit time cost as t θ The final target cloud resource is scheduled, and the tasks in the executable task set of the target cloud resource determined in the pre-scheduling are scheduled to the target cloud resource for execution.

[0104] Select the optional cloud resource s with the lowest unit time cost in R ε As t θ The final target cloud resource, task t θ and W ε Other tasks in are scheduled to s ε For task t1, assume Then s1 is selected as the final target cloud resource, and other tasks in t1 and W1 are scheduled to be executed in cloud resource s1.

[0105] S308, deleting the scheduled tasks from the task set T, and updating the matrix Z.

[0106] Remove the scheduled tasks from the candidate tasks of all cloud resources, that is, in the matrix Z, W ε The values ​​of the elements in the column vector corresponding to the tasks in z are set to 0, i,j =0,i∈{1,2,...,n},t j ∈W ε . Set the target cloud resources ε Set to be unselectable for all tasks. In the matrix Z, s ε The element values ​​in the corresponding column vector are all set to 0, z ε,j =0,j∈{1,2,...,m}.

[0107] S309, determine whether the set T is empty, if not, repeat steps S304 to S308 until the set If T is empty, then end.

[0108] Exemplary Devices

[0109] In one embodiment, Figure 4 As shown, the present disclosure provides a scheduling device for cloud computing tasks, including: an optional resource determination module 41, a target task selection module 42, a candidate resource selection module 43, a pre-scheduling processing module 44, a target resource processing module 45, a task resource deletion module 46 and a loop execution module 47.

[0110] The optional resource determination module 41 determines cloud resources that meet the preset constraints of the cloud computing task in the cloud computing resource pool as optional cloud resources for the cloud computing task. The cloud resources in the cloud computing resource pool include: public cloud resources, private cloud resources and hybrid cloud resources. The target task selection module 42 selects the cloud computing task with the least number of optional cloud resources as the target cloud computing task. The candidate resource selection module 43 obtains all optional cloud resources corresponding to the target cloud computing task and generates an optional cloud resource set based on all optional cloud resources.

[0111] The pre-scheduling processing module 44 performs pre-scheduling processing on each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule to determine a set of executable cloud computing tasks corresponding to each candidate cloud resource; wherein the executable cloud computing task set includes a target cloud computing task and other cloud computing tasks, or only includes a target cloud computing task.

[0112] The target resource processing module 45 selects the cloud resource with the lowest unit time cost from the optional cloud resource set as the target cloud resource, and assigns all cloud computing tasks in the executable cloud computing task set corresponding to the target cloud resource to the target cloud resource for processing.

[0113] The task resource deletion module 46 deletes the target cloud computing task and other cloud computing tasks assigned to the target cloud resource, and sets the target cloud resource to an unselectable state. The loop execution module 47 repeatedly executes the functions of the target task selection module 42, the candidate resource selection module 43, the pre-scheduling processing module 44, the target resource processing module 45 and the task resource deletion module 46 until all cloud computing tasks are assigned to the corresponding cloud resources.

[0114] In one embodiment, the optional resource determination module 41 determines cloud resources in the cloud computing resource pool that meet or do not meet preset constraints of the cloud computing tasks in the cloud computing task set as optional cloud resources or non-optional cloud resources for the cloud computing tasks.

[0115] The target task selection module 42 establishes a relationship matrix between cloud computing tasks and cloud resources to characterize the corresponding relationship between cloud computing tasks and optional cloud resources and non-optional cloud resources. The target task selection module 42 selects the cloud computing task with the least number of optional cloud resources as the target cloud computing task according to the relationship matrix.

[0116] The task resource deletion module 46 sets the cloud resource element values ​​corresponding to the target cloud computing task and other cloud computing tasks assigned to the target cloud resource in the relationship matrix to 0, and sets the task element values ​​corresponding to the cloud computing task assigned to the target cloud resource in the relationship matrix to 0.

[0117] In one embodiment, the pre-scheduling processing module 44 sequentially adds the cloud computing tasks to the executable cloud computing task set in the order of the number of corresponding optional cloud resources from small to large. The pre-scheduling processing module 44 determines whether the total execution time of all cloud computing tasks in the executable cloud computing task set exceeds the available time of the corresponding candidate cloud resources; if yes, the pre-scheduling processing module 44 retains the currently added cloud computing tasks in the executable cloud computing task set; if no, the pre-scheduling processing module 44 removes the currently added cloud computing tasks from the executable cloud computing task set.

[0118] The target resource processing module 45 determines the unit time cost of each candidate cloud resource in the optional cloud resource set, wherein the unit time cost is the ratio of the total cost of all cloud computing tasks in the corresponding executable cloud computing task set to the total execution time. The target resource processing module 45 selects the candidate cloud resource with the lowest unit time cost as the target cloud resource.

[0119] Figure 5 A schematic diagram of another embodiment of the scheduling device for cloud computing tasks disclosed in the present invention is shown in FIG. Figure 5 As shown, the scheduling device 51 for cloud computing tasks includes one or more processors 511 and a memory 512 .

[0120] The processor 511 may be a central processing unit (CPU) or other forms of processing units having data processing capabilities and / or instruction execution capabilities, and may control other components in the scheduling device 51 for cloud computing tasks to perform desired functions.

[0121] The memory 512 may include one or more computer program products, and the computer program products may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. Volatile memory, for example, may include: random access memory (RAM) and / or cache memory (cache), etc. Non-volatile memory, for example, may include: read-only memory (ROM), hard disk, and flash memory, etc. One or more computer program instructions may be stored on the computer-readable storage medium, and the processor 511 may run the program instructions to implement the scheduling method of cloud computing tasks of the various embodiments of the present disclosure above and / or other desired functions. Various contents such as input signals, signal components, noise components, etc. may also be stored in the computer-readable storage medium.

[0122] In one example, the scheduling device 51 for cloud computing tasks may also include: an input device 513 and an output device 514, etc., which are interconnected through a bus system and / or other forms of connection mechanisms (not shown). In addition, the input device 513 may also include, for example, a keyboard, a mouse, etc. The output device 514 may output various information to the outside. The output device 514 may include, for example, a display, a speaker, a printer, a communication network and a remote output device connected thereto, etc.

[0123] Of course, to simplify, Figure 5 Only some of the components related to the present disclosure in the scheduling device 51 for cloud computing tasks are shown, and components such as buses, input / output interfaces, etc. are omitted. In addition, according to specific application situations, the scheduling device 51 for cloud computing tasks may also include any other appropriate components.

[0124] In addition to the above-mentioned methods and devices, an embodiment of the present disclosure may also be a computer program product, which includes computer program instructions, which, when executed by a processor, enable the processor to execute the steps in the scheduling method of cloud computing tasks according to various embodiments of the present disclosure described in the above "Exemplary Method" section of this specification.

[0125] The computer program product may be written in any combination of one or more programming languages ​​to write program code for performing the operations of the disclosed embodiments, 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.

[0126] In addition, an embodiment of the present disclosure may also be a computer-readable storage medium having computer program instructions stored thereon, which, when executed by a processor, causes the processor to execute the steps of the method for scheduling cloud computing tasks according to various embodiments of the present disclosure described in the above “Exemplary Method” section of this specification.

[0127] The computer readable storage medium can adopt any combination of one or more readable media. The readable medium can be a readable signal medium or a readable storage medium. The readable storage medium can include, for example, but is not limited to, a system, device or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, or any combination of the above. More specific examples (non-exhaustive enumeration) of readable storage media can 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.

[0128] The basic principles of the present disclosure are described above in conjunction with specific embodiments. However, it should be noted that the advantages, strengths, effects, etc. mentioned in the present disclosure are only examples and not limitations, and it cannot be considered that these advantages, strengths, effects, etc. must be possessed by each embodiment of the present disclosure. In addition, the specific details disclosed above are only for the purpose of illustration and ease of understanding, rather than limitation, and the above details do not limit the present disclosure to the necessity of adopting the above specific details to be implemented.

[0129] The scheduling method, device and storage medium of cloud computing tasks in the above-mentioned embodiments can achieve the best match between tasks and resources by comprehensively considering the diversity of task scheduling resource requirements and the heterogeneity of cloud resources; by taking into account the difficulty of task scheduling and giving priority to scheduling tasks with fewer optional cloud resources, task scheduling failures can be avoided to the greatest extent and the service quality of the application can be guaranteed; in the scheduling process, the optional cloud resources with the lowest unit time cost are given priority as the target cloud resources for the task, which can minimize the user's cost and improve the user's usage experience.

[0130] Each embodiment in this specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the system embodiment, since it basically corresponds to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0131] The block diagrams of the devices, apparatuses, equipment, and systems involved in the present disclosure are intended only as illustrative examples and are not intended to require or imply that they must be connected, arranged, and configured in the manner shown in the block diagrams. As will be appreciated by those skilled in the art, these devices, apparatuses, equipment, and systems may be connected, arranged, and configured in any manner. Words such as "include," "comprise," "have," and the like are open words, meaning "including but not limited to," and may be used interchangeably therewith. The words "or" and "and" used herein refer to the words "and / or," and may be used interchangeably therewith, unless the context clearly indicates otherwise. The word "such as" used herein refers to the phrase "such as but not limited to," and may be used interchangeably therewith.

[0132] The method and apparatus of the present disclosure may be implemented in many ways. For example, the method and apparatus of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above order of steps for the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above, unless otherwise specifically stated. In addition, in some embodiments, the present disclosure may also be implemented as a program recorded in a recording medium, which includes machine-readable instructions for implementing the method according to the present disclosure. Therefore, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.

[0133] It should also be noted that in the apparatus, device and method of the present disclosure, each component or each step can be decomposed and / or recombined. Such decomposition and / or recombination should be regarded as equivalent solutions of the present disclosure.

[0134] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these aspects, etc., will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of the present disclosure. Therefore, the present disclosure is not intended to be limited to the aspects shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.

[0135] The above description has been given for the purpose of illustration and description. In addition, this description is not intended to limit the embodiments of the present disclosure to the forms disclosed herein. Although multiple example aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, changes, additions and sub-combinations thereof.

Claims

1. A method for scheduling cloud computing tasks, comprising: Step 1: determining cloud resources that meet preset constraints of the cloud computing task in the cloud computing resource pool as optional cloud resources for the cloud computing task; wherein the cloud resources in the cloud computing resource pool include: public cloud resources, private cloud resources and hybrid cloud resources; Step 2: Select the cloud computing task with the least number of optional cloud resources as the target cloud computing task; Step 3: Acquire all optional cloud resources corresponding to the target cloud computing task, and generate an optional cloud resource set based on all the optional cloud resources; Step 4: pre-scheduling each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule to determine a set of executable cloud computing tasks corresponding to each candidate cloud resource; The executable cloud computing task set includes the target cloud computing task and other cloud computing tasks, or only includes the target cloud computing task; Step 5: Select the cloud resource with the lowest unit time cost from the optional cloud resource set as the target cloud resource, and assign all cloud computing tasks in the executable cloud computing task set corresponding to the target cloud resource to the target cloud resource for processing.

2. The method of claim 1, further comprising: Step 6: deleting the target cloud computing task and other cloud computing tasks assigned to the target cloud resource, and setting the target cloud resource to an unselectable state; Step 7: Repeat steps 2 to 6 until all cloud computing tasks are assigned to corresponding cloud resources.

3. The method of claim 2, wherein determining cloud resources that meet preset constraints of the cloud computing task as optional cloud resources for the cloud computing task comprises: Determining, in the cloud computing resource pool, cloud resources that satisfy or do not satisfy the preset constraint conditions of the cloud computing tasks in the cloud computing task set as optional cloud resources or non-optional cloud resources for the cloud computing tasks; The step of selecting the cloud computing task with the least number of optional cloud resources as the target cloud computing task includes: Establishing a relationship matrix between the cloud computing tasks and the cloud resources, for representing the corresponding relationship between the cloud computing tasks and the optional cloud resources and the non-optional cloud resources; A cloud computing task with the least number of optional cloud resources is selected according to the relationship matrix as the target cloud computing task.

4. The method of claim 3, wherein deleting the target cloud computing task and other cloud computing tasks assigned to the target cloud resource and setting the target cloud resource to an unselectable state comprises: The cloud resource element values ​​corresponding to the target cloud computing task and other cloud computing tasks assigned to the target cloud resource in the relationship matrix are set to 0, and the task element values ​​corresponding to the cloud computing task assigned to the target cloud resource in the relationship matrix are set to 0.

5. The method of claim 1, wherein the pre-scheduling process is performed on each candidate cloud resource in the set of optional cloud resources based on a preset pre-allocation rule to determine a set of executable cloud computing tasks corresponding to each candidate cloud resource, comprising: Adding the cloud computing tasks to the executable cloud computing task set in order of the number of corresponding optional cloud resources from small to large; Determining whether the total execution time of all cloud computing tasks in the executable cloud computing task set exceeds the available time of the corresponding candidate cloud resources; If yes, the currently added cloud computing task is retained in the executable cloud computing task set; if no, the currently added cloud computing task is removed from the executable cloud computing task set.

6. The method according to claim 5, wherein selecting a cloud resource with the lowest unit time cost from the set of optional cloud resources as the target cloud resource comprises: Determine the unit time cost of each candidate cloud resource in the optional cloud resource set; wherein the unit time cost is the ratio of the total cost of all cloud computing tasks in the corresponding executable cloud computing task set to the total execution time; The candidate cloud resource with the lowest unit time cost is used as the target cloud resource.

7. The method according to any one of claims 1 to 6, wherein: The target cloud resource includes: at least one of a public cloud resource, a private cloud resource or a hybrid cloud resource; the preset constraint condition includes: a resource constraint condition and a security level constraint condition; The resource constraint conditions include: the minimum value of available resources of the cloud resources meets the corresponding resource requirements of the cloud computing task, and the cloud computing task can only be scheduled to one cloud resource for execution; The security level constraint conditions include: cloud computing tasks containing sensitive data are executed on cloud resources with a security level higher than a preset threshold, and other cloud computing tasks are executed on cloud resources with a security level higher than or equal to the security level of other cloud computing tasks.

8. A cloud computing task scheduling device, comprising: An optional resource determination module is used to determine cloud resources that meet preset constraints of the cloud computing task in the cloud computing resource pool as optional cloud resources for the cloud computing task; wherein the cloud resources in the cloud computing resource pool include: public cloud resources, private cloud resources and hybrid cloud resources; A target task selection module is used to select a cloud computing task with the least number of optional cloud resources as a target cloud computing task; A candidate resource selection module, configured to obtain all optional cloud resources corresponding to the target cloud computing task, and generate an optional cloud resource set based on all the optional cloud resources; A pre-scheduling processing module, configured to perform pre-scheduling processing on each candidate cloud resource in the optional cloud resource set based on a preset pre-allocation rule, so as to determine a set of executable cloud computing tasks corresponding to each candidate cloud resource; wherein the set of executable cloud computing tasks includes the target cloud computing task and other cloud computing tasks, or only includes the target cloud computing task; The target resource processing module is used to select the cloud resource with the lowest unit time cost from the optional cloud resource set as the target cloud resource, and assign all cloud computing tasks in the executable cloud computing task set corresponding to the target cloud resource to the target cloud resource for processing.

9. A cloud computing task scheduling device, comprising: processor; a memory for storing instructions executable by the processor; The processor is used to read the executable instructions from the memory and execute the instructions to implement the method described in any one of claims 1 to 7.

10. A computer-readable storage medium storing a computer program, wherein the computer program is used to execute the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method and system for distributing cloud computing resources

    CN103164279A

  • Multi QoS (quality of service)-constrained parallel task scheduling cost optimizing method under mixed cloud environment

    CN104102544A