Task processing method based on cloud management platform and cloud management platform
By dividing tasks into subtasks and executing them in a super cluster and super nodes through a cloud management platform, the problems of large manual operation and high cost in existing technologies are solved, and efficient and low-cost task processing and cluster expansion are achieved.
Patent Information
- Application Number
- CN202410796628.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-05-20
- Filing Date
- 2024-06-19
- Publication Date
- 2025-11-21
AI Technical Summary
In existing technologies, cloud management platforms require tenants to manually set tags for scheduling computing nodes, resulting in a large amount of manual operation, high costs, poor versatility, and poor cluster scalability.
The cloud management platform automatically divides tasks into multiple sub-tasks and executes them in the super nodes of the super cluster. It receives tenant requests through the task processing interface, automatically performs resource scheduling and expansion, and reduces manual operation.
It improves the tenant experience, reduces task processing costs, and has broad versatility and cluster scalability.
Smart Images

Figure CN120994356A_ABST
Abstract
Description
[0001] This application claims priority to Chinese Patent Application No. 202410626993.7, filed on May 20, 2024, entitled "A Task Scheduling Method Based on a Cloud Management Platform and a Cloud Management Platform", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of cloud technology, and in particular to a task processing method based on a cloud management platform and a cloud management platform. Background Technology
[0003] With the rapid development of cloud technology, tenants choose to use the infrastructure resources provided by cloud vendors to complete artificial intelligence (AI) training tasks, thereby meeting their training needs for neural network models.
[0004] In related technologies, the infrastructure provided by a cloud management platform to tenants can include a large number of compute nodes. When a tenant needs to use certain compute nodes to complete model training, the tenant needs to use the cloud management platform to select these related compute nodes one by one and manually assign labels to them. These labels indicate that the compute nodes constitute a model training cluster serving the tenant. After the tenant deploys a model training task, the cloud management platform can schedule the task to these labeled compute nodes for processing based on the pre-set labels, thereby completing the model training task.
[0005] In the above process, the scheduling of computing nodes requires tenants to set labels in advance, which involves a lot of manual operation, resulting in poor tenant experience and excessively high manual costs for model training tasks. Summary of the Invention
[0006] This application provides a task processing method and a cloud management platform based on a cloud management platform, which can improve the tenant experience and reduce the cost of task processing. This task processing method can be widely used in various scenarios and has a certain degree of versatility.
[0007] A first aspect of this application provides a task processing method based on a cloud management platform. The cloud management platform implementing this method can manage infrastructure providing cloud services, including multiple superclusters, each supercluster containing multiple supernodes. The method includes:
[0008] When a tenant has a task processing need, the cloud management platform can provide the tenant with a task processing interface. The tenant can then input a task processing request into this interface, specifying the task to be processed and its classification information. The cloud management platform can then receive this task processing request from the tenant through the task processing interface.
[0009] Upon receiving the task processing request, the cloud management platform can parse the request to obtain the tenant's pending tasks and the task's division information. Therefore, the cloud management platform can divide the task into multiple sub-tasks according to the requirements of the task's division information.
[0010] After receiving multiple subtasks, the cloud management platform selects one of the existing superclusters as the target supercluster. Following the rule that a task can only be deployed in one supercluster and a subtask can only be deployed in one supernode, the platform distributes the subtasks to multiple supernodes within the target supercluster. Notably, each supernode in the target supercluster can be assigned at least one subtask. The cloud management platform then instructs the supernodes in the target supercluster to execute these subtasks, thereby obtaining the processing result of the task.
[0011] As can be seen from the above method, for a tenant's pending task, the cloud management platform can automatically divide the task into multiple sub-tasks based on the task's partitioning information, and automatically select target super clusters for these sub-tasks to allocate them to multiple super nodes in the target super cluster for execution, thereby quickly completing the task processing. Since the task processing process (including task partitioning and resource scheduling) does not require the tenant's participation, it can reduce a lot of manual operations, improve the tenant experience, and reduce the cost of task processing. Moreover, this task processing method can be widely applied to various scenarios and has a certain degree of versatility.
[0012] In one possible implementation, the task is a training task for a neural network model to be trained, and the result of the task is the trained neural network model. In the aforementioned implementation, the tenant's task to be processed and the result of the task are associated with the tenant's scenario. For example, when the tenant is in a distributed AI training scenario, the task can be a training task for a neural network model to be trained, and the result of the task can be the trained neural network model, and so on.
[0013] In one possible implementation, each subtask contains multiple task instances, and each supernode contains multiple compute nodes. The cloud management platform assigns the multiple subtasks to the multiple supernodes of the target supercluster, and instructs the multiple supernodes of the target supercluster to execute the multiple subtasks. The processing result of the task is obtained by: the cloud management platform assigning the target subtask to the target supernode in the target supercluster, assigning the target task instance in the target subtask to the target compute node in the target supernode, and instructing the target compute node to execute the target task instance, thereby obtaining the processing result of the target task instance. Here, the target subtask is any one of the multiple subtasks, the target supernode is any one of the multiple supernodes of the target supercluster, the target task instance is any one of the multiple task instances of the target subtask, the target compute node is any one of the multiple compute nodes of the target supernode, and the processing result of the target task instance is used to obtain the processing result of the task. In the aforementioned implementation, for any one of the multiple subtasks in the task, the cloud management platform can assign the subtask to one of the multiple supernodes in the target supercluster. Since a subtask can contain multiple task instances, and a supernode can contain multiple compute nodes, the cloud management platform can assign any one of the multiple task instances within the subtask to one of the compute nodes within the supernode. In this way, the cloud management platform can ultimately distribute multiple subtasks to multiple supernodes in the target supercluster. Any supernode in the target supercluster can be assigned at least one subtask of the multiple subtasks. Similarly, the cloud management platform can distribute multiple task instances from any subtask to multiple compute nodes within a corresponding supernode. Any compute node within that supernode can be assigned at least one task instance of the multiple task instances from the subtask. Then, the cloud management platform can instruct the compute nodes within each supernode in the target supercluster to execute the corresponding task instances, thereby obtaining the processing results of each task instance. These processing results can be further processed to obtain the final result of the task. Therefore, the cloud management platform can strictly follow the rule of deploying one task in one super cluster, one sub-task in one super node, and one task instance in one compute node to allocate tenant tasks to the target super cluster for execution. This can efficiently and stably fulfill the tenant's task processing needs.
[0014] In one possible implementation, the partitioning information includes the number of subtasks and the number of task instances contained in each subtask. Based on the partitioning information indicated by the task processing request, the cloud management platform divides the task into multiple subtasks, including: the cloud management platform dividing the task into multiple subtasks according to the number of subtasks and the number of task instances contained in each subtask. In the aforementioned implementation, since the task partitioning information includes the number of subtasks that can be obtained from the task and the number of task instances that each subtask can contain, the cloud management platform can divide the task into multiple subtasks according to the number of subtasks that can be obtained from the task and the number of task instances that each subtask can contain, with each subtask containing multiple task instances. Therefore, since the task partitioning information is specified by the tenant, the cloud management platform can automatically divide the task into multiple subtasks according to the tenant's requirements for subsequent resource scheduling of the subtasks, thereby accurately and efficiently completing task processing.
[0015] In one possible implementation, the partitioning information also includes the specifications of the compute nodes executing the task instances. The cloud management platform determines the target supercluster from multiple superclusters by: calculating the specifications of the compute nodes executing the task instances, the number of subtasks, and the number of task instances contained in each subtask to obtain the specifications of the supercluster executing the task; and then selecting the target supercluster from multiple superclusters based on the specifications of the supercluster executing the task. In the aforementioned implementation, since the task partitioning information includes a series of calculations on the number of subtasks that the task can be divided into, the number of task instances that each subtask can contain, and the specifications required for the compute nodes executing the task instances, the specifications required for the supercluster executing the task are obtained. After obtaining the specifications required for the supercluster executing the task, the cloud management platform can determine the supercluster with those specifications as the target supercluster from multiple superclusters. Therefore, since the task partitioning information is defined by the tenant, the cloud management platform can select the target supercluster from multiple superclusters to provide task processing services to the tenant according to the tenant's needs, thereby further improving the accuracy and efficiency of task processing.
[0016] In one possible implementation, the method further includes: the cloud management platform providing tenants with multiple supercluster specifications. These specifications allow tenants to determine partitioning information. Each supercluster specification includes the number of supernodes within the supercluster, the number of compute nodes contained within each supernode, and the specifications of the compute nodes within each supernode. In the aforementioned implementation, when the cloud management platform provides a task processing interface to the tenant, this interface can also display the specifications of the multiple created superclusters. After browsing these supercluster specifications, the tenant can refer to them to define the partitioning information for their pending tasks, generate a task processing request based on the task and the partitioning information, and then send the task processing request to the cloud management platform through the task processing interface. Therefore, the cloud management platform can display multiple supercluster specifications to tenants, allowing them to customize the task partitioning information. This enables the cloud management platform to automatically complete task partitioning and resource scheduling based on the partitioning information, satisfying tenants' need to manage the overall task processing flow while reducing tenant operations within the process, thus improving the tenant experience.
[0017] In one possible implementation, the method further includes: if none of the multiple superclusters have available supernodes, the cloud management platform expands several of the multiple superclusters to obtain several expanded superclusters, wherein expansion includes adding available supernodes to the several superclusters; the cloud management platform determines the target supercluster from the multiple superclusters, which includes: the cloud management platform determining the target supercluster from the several expanded superclusters. In the aforementioned implementation, before determining the target supercluster for executing the tenant's pending tasks, the cloud management platform may first check whether there are available supernodes in the multiple created superclusters. If none of the multiple superclusters have available supernodes, the cloud management platform may select several superclusters from the multiple superclusters and expand these several superclusters to obtain several expanded superclusters. The expansion operation performed by the cloud management platform includes adding available supernodes to the several superclusters. In this way, the cloud management platform can determine the target supercluster from the several expanded superclusters. As can be seen, since resource scheduling is completed by the cloud management platform without the need for tenant participation, when there are not enough available supernodes in the supercluster, the cloud management platform can also expand the supercluster by supernodes. The expansion process still does not require the participation of tenants, which can improve the scalability of the supercluster and improve the tenant experience to a certain extent.
[0018] In one possible implementation, when the network between multiple supernodes of the target supercluster is a non-virtual private cloud (VPC) network, the multiple supernodes of the target supercluster are deployed in the same site; when the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site or different sites.
[0019] In one possible implementation, the site can be a region, availability zone, data center, or server room.
[0020] In one possible implementation, the target compute node comprises any of the following: a physical server, a virtual machine, a container, a microvirtual machine, and a bare metal server.
[0021] A second aspect of this application provides a cloud management platform for managing infrastructure providing cloud services. The infrastructure includes multiple superclusters, each supercluster containing multiple supernodes. The cloud management platform includes: a receiving module for receiving task processing requests sent by tenants, the task processing requests indicating tasks to be processed and task partitioning information; a partitioning module for partitioning tasks into multiple subtasks based on the partitioning information indicated by the task processing requests; and a processing module for determining a target supercluster from the multiple superclusters, assigning the multiple subtasks to the multiple supernodes of the target supercluster, and instructing the multiple supernodes of the target supercluster to execute the multiple subtasks to obtain the task processing result. The target supercluster is any one of the multiple superclusters, and any supernode of the target supercluster is assigned at least one subtask.
[0022] In one possible implementation, the task is a training task for a neural network model to be trained, and the result of the task is the trained neural network model.
[0023] In one possible implementation, each subtask contains multiple task instances, and each supernode contains multiple compute nodes. The processing module is used to assign the target subtask to the target supernode in the target supercluster, assign the target task instance in the target subtask to the target compute node in the target supernode, and instruct the target compute node to execute the target task instance to obtain the processing result of the target task instance. Here, the target subtask is any one of the multiple subtasks, the target supernode is any one of the multiple supernodes in the target supercluster, the target task instance is any one of the multiple task instances of the target subtask, the target compute node is any one of the multiple compute nodes of the target supernode, and the processing result of the target task instance is used to obtain the processing result of the task.
[0024] In one possible implementation, the partitioning information includes the number of subtasks and the number of task instances contained in each subtask. A partitioning module is used to divide a task into multiple subtasks according to the number of subtasks and the number of task instances contained in each subtask.
[0025] In one possible implementation, the partitioning information also includes the specifications of the computing nodes of the task execution instances. The processing module is used to: calculate the specifications of the computing nodes of the task execution instances, the number of subtasks, and the number of task instances contained in the subtasks to obtain the specifications of the supercluster of the task execution; and select a target supercluster from multiple superclusters based on the specifications of the supercluster of the task execution.
[0026] In one possible implementation, the cloud management platform further includes: a provision module for providing tenants with specifications for multiple superclusters, the specifications of which allow tenants to determine partitioning information, the specifications of which include the number of supernodes in the supercluster, the number of compute nodes contained in the supernodes in the supercluster, and the specifications of the compute nodes contained in the supernodes in the supercluster.
[0027] In one possible implementation, the cloud management platform further includes: a scaling module, used to scale up several superclusters among multiple superclusters if none of the multiple superclusters have available supernodes, to obtain several scaled-up superclusters, wherein scaling up includes adding available supernodes to the several superclusters; and a processing module, used to determine the target supercluster from the scaled-up superclusters.
[0028] In one possible implementation, when the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site; when the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site or different sites.
[0029] In one possible implementation, the site can be a region, availability zone, data center, or server room.
[0030] In one possible implementation, the target compute node comprises any of the following: a physical server, a virtual machine, a container, a microvirtual machine, and a bare metal server.
[0031] A third aspect of this application provides a computing device cluster, which includes at least one computing device, each computing device including a processor and a memory: the memory is used to store instructions; the processor is used to cause the computing device cluster to perform the method described in the first aspect or any possible implementation of the first aspect according to the instructions.
[0032] A fourth aspect of this application provides a computer storage medium storing one or more instructions that, when executed by one or more computers, cause the one or more computers to perform the method described in the first aspect or any possible implementation of the first aspect.
[0033] A fifth aspect of this application provides a computer program product storing instructions that, when executed by a computer, cause the computer to perform the method described in the first aspect or any possible implementation of the first aspect.
[0034] In this embodiment, when a tenant has a task processing requirement, the tenant can send a task processing request to the cloud management platform. Since this task processing request indicates the task to be processed and its partitioning information, the cloud management platform can divide the task into multiple subtasks based on this partitioning information. Then, the cloud management platform can determine a target supercluster among multiple superclusters and assign these multiple subtasks to multiple supernodes within the target supercluster (each supernode can be assigned at least one subtask), so that the multiple supernodes in the supercluster execute these multiple subtasks, thereby obtaining the task processing result and satisfying the tenant's task processing requirements. Therefore, for a tenant's pending tasks, the cloud management platform can automatically divide the task into multiple sub-tasks based on the task's partitioning information, and automatically select target super clusters for these sub-tasks to be assigned to multiple super nodes in the target super cluster for execution, thereby quickly completing task processing. Since the task processing process (including task partitioning and resource scheduling) does not require the tenant's participation, it can reduce a lot of manual operations, improve the tenant experience, and reduce the cost of task processing. Moreover, this task processing method can be widely applied to various scenarios and has a certain degree of versatility. Attached Figure Description
[0035] Figure 1 A schematic diagram of the structure of the cloud service system provided in the embodiments of this application;
[0036] Figure 2 A flowchart illustrating a task processing method based on a cloud management platform provided in an embodiment of this application;
[0037] Figure 3 A schematic diagram illustrating task partitioning provided in an embodiment of this application;
[0038] Figure 4 A schematic diagram illustrating the selection of a supercluster provided in an embodiment of this application;
[0039] Figure 5 A schematic diagram of task allocation provided for an embodiment of this application;
[0040] Figure 6 Another schematic diagram illustrating task allocation provided in the embodiments of this application;
[0041] Figure 7 A schematic diagram illustrating the supercluster expansion provided in this application embodiment;
[0042] Figure 8 A schematic diagram illustrating the creation of a supercluster provided in an embodiment of this application;
[0043] Figure 9 A schematic diagram of the structure of the cloud management platform provided in the embodiments of this application;
[0044] Figure 10 A schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0045] Figure 11 A schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;
[0046] Figure 12 This is a schematic diagram illustrating the network connection of computer devices in a computer cluster provided in an embodiment of this application. Detailed Implementation
[0047] This application provides a task processing method and a cloud management platform based on a cloud management platform, which can improve the tenant experience and reduce the cost of task processing. This task processing method can be widely used in various scenarios and has a certain degree of versatility.
[0048] The terms "target," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of elements is not necessarily limited to those elements but may include other elements not explicitly listed or inherent to those processes, methods, products, or apparatuses.
[0049] With the rapid development of cloud technology, tenants choose to use the infrastructure resources provided by cloud vendors to complete AI training tasks, thereby meeting their training needs for neural network models.
[0050] In related technologies, the infrastructure provided by a cloud management platform to tenants can include a large number of computing nodes. When a tenant needs to use certain computing nodes to complete model training, the tenant needs to use the cloud management platform to select these related computing nodes (e.g., computing nodes that need to work together to complete model training) one by one, and manually assign labels to these computing nodes. These labels indicate that these computing nodes constitute a model training cluster serving the tenant. After the tenant deploys a model training task, the cloud management platform can schedule the task to these labeled computing nodes for processing based on the pre-set labels, thereby completing the model training task.
[0051] In the above process, the scheduling of computing nodes in the cluster needs to be achieved by the tenant setting labels in advance, which involves a lot of manual operation. This results in a poor tenant experience and excessively high manual costs for model training tasks, making it difficult for the cluster to be applied to various scenarios and its versatility is poor.
[0052] Furthermore, since the scheduling of computing nodes involves manual operation, when there are not enough computing nodes in the model training cluster for the tenants to use, the model training cluster needs to be expanded, which still requires the participation of the tenants, resulting in poor scalability of the cluster.
[0053] To address the aforementioned issues, this application provides a task processing method based on a cloud management platform, which can be implemented through a cloud service system. Figure 1 A schematic diagram of the cloud service system provided in the embodiments of this application is shown below. Figure 1 As shown, a cloud service system includes the infrastructure that provides cloud services and a cloud management platform that manages this infrastructure. The cloud management platform and the infrastructure are described separately below:
[0054] A cloud management platform can centrally manage the infrastructure of the entire cloud service system (e.g., creating multiple hyperclusters to serve tenants, each hypercluster containing multiple hypernodes, and each hypernode containing multiple compute nodes). The cloud management platform can also be accessible to tenants outside the cloud service system and respond to their requests. For example, the cloud management platform can provide various interfaces, such as login and task processing interfaces, for tenant clients (e.g., the terminal devices used by the tenant or the browsers on those devices) to access. The cloud management platform can authenticate tenant clients through the login interface, allowing them to log in after successful authentication. Similarly, the cloud management platform can allow tenant clients to send task processing requests to the platform through the task processing interface. These requests can indicate the tasks (hyperjobs) to be processed and their partitioning information. Then, based on the partitioning information indicated in the task processing request, the cloud management platform can divide the task into multiple sub-jobs, each of which can contain multiple task instances (pods). Then, the cloud management platform can select the target super cluster from multiple super clusters and assign each of these multiple subtasks to a super node in the target super cluster for processing, so that all the subtasks of the task are processed, and thus the final processing result of the task is obtained.
[0055] The infrastructure can consist of multiple superclusters that can serve tenants. Each supercluster can contain multiple supernodes, and each supernode can contain multiple compute nodes. The following sections describe superclusters, supernodes, and compute nodes separately:
[0056] (1) A supercluster, which consists of multiple supernodes, represents the network connectivity boundary of a supernode. In multiple superclusters, the networks between different superclusters can be disconnected, while the networks within the same supercluster are interconnected. That is, for any given supercluster, the multiple supernodes within that supercluster can communicate with each other. It is worth noting that a supercluster serves as the unit for task allocation by the cloud management platform; a single supercluster can typically handle at least one task for a tenant, thus meeting the tenant's task processing needs.
[0057] (2) A supernode, composed of multiple compute nodes, represents the network performance domain boundary of a compute node. For any given supernode, the compute nodes within that supernode can communicate with each other. Generally, within the same supercluster, the communication performance between different compute nodes within a single supernode is usually better than the communication performance between different supernodes; that is, the network performance between different compute nodes within a single supernode is usually better than the network performance between different supernodes. It is worth noting that as the basic unit for allocating subtasks on the cloud management platform, a supernode can typically handle at least one subtask for a tenant, thereby meeting the tenant's task processing needs.
[0058] (3) Compute nodes, which are the basic units for the cloud management platform to allocate task instances. A compute node can usually process at least one task instance for a tenant, thereby meeting the tenant's task processing needs.
[0059] A tenant's task can contain multiple subtasks, and each subtask can contain multiple task instances. The following sections describe tasks, subtasks, and task instances separately:
[0060] (1) A task, typically specified by the tenant, represents a distributed task that the tenant needs to process (e.g., a training task for a neural network model to be trained, which may include training data for the neural network model, etc.). Therefore, it can be divided into multiple sub-tasks (e.g., splitting the neural network model to be trained and its training data into multiple sub-models and multiple sub-data according to a certain training strategy, the training task is then divided into multiple sub-training tasks, etc.). It is worth noting that for a tenant's task, since the data transmission between task instances within the task has certain requirements on network performance, the cloud management platform must schedule the task to a super cluster for processing.
[0061] (2) Subtasks are derived from the tenant’s tasks. For any one of the multiple subtasks, since the subtask contains multiple task instances and the data transmission between the multiple task instances within the subtask has higher requirements for network performance, the cloud management platform must assign the subtask to a super node for processing.
[0062] (3) Task instances, which serve as the basic units that make up a subtask (for example, multiple task instances contained in a subtask may specifically be represented as multiple applications or multiple processes obtained by programming the sub-training task, and thus running on a compute node). For different task instances in the same subtask, the cloud management platform must allocate these task instances to multiple compute nodes in a supernode, and one compute node in the supernode may be allocated at least one task instance of the subtask.
[0063] Furthermore, for any one of the multiple superclusters, when the network between the multiple supernodes in the supercluster is a non-Virtual Private Cloud (VPC) network (e.g., a parametric plane network built via InfiniBand or Roce), the multiple supernodes in the supercluster are typically deployed in the same site. When the network between the multiple supernodes in the supercluster is a VPC network, the multiple supernodes in the supercluster can be deployed in the same site or in different sites; there is no restriction here.
[0064] Furthermore, the aforementioned sites can be presented in various forms. For example, a site can be a region in the infrastructure, an availability zone in the infrastructure, a data center (DC) in the infrastructure, or a room in the infrastructure, etc.
[0065] Furthermore, any one of the multiple supernodes can be understood as a group of computing nodes connected by special communication equipment. For example, multiple computing nodes connected to the same switch (top of rack, TOR) can be packaged into a single supernode.
[0066] Furthermore, for any one of the multiple computing nodes, the computing node can be a cloud instance in the infrastructure. Cloud instances can include various types. For example, a cloud instance can be a physical server selected by the cloud management platform, or a processor of a physical server selected by the cloud management platform, or a bare metal server selected by the cloud management platform, or a virtual machine (VM) created by the cloud management platform on a physical server using virtualization technology, or a container (Docker) created by the cloud management platform on a physical server using virtualization technology, or a micro virtual machine (microVM) created by the cloud management platform on a physical server using virtualization technology, and so on.
[0067] Furthermore, when creating a supercluster, the cloud management platform uses supernodes as the basic unit. In other words, the cloud management platform creates compute nodes in batches at the supernode granularity, thereby creating the supercluster. It is important to note that once a supercluster is successfully created, the cloud management platform is no longer allowed to delete or modify any compute nodes contained in any supernode within the supercluster, in order to maintain the consistency and integrity of the supernode's state.
[0068] Based on the aforementioned cloud service system, when a tenant has a task processing need, the tenant can send a task processing request to the cloud management platform. Since this task processing request indicates the task to be processed and its partitioning information, the cloud management platform can divide the task into multiple subtasks based on this partitioning information. Next, the cloud management platform can determine a specific supercluster among multiple superclusters and assign these subtasks to multiple supernodes within that supercluster (each supernode can be assigned at least one subtask), so that the multiple supernodes in the supercluster execute these subtasks to obtain the task processing result, thereby satisfying the tenant's task processing needs. Therefore, for a tenant's pending tasks, the cloud management platform can automatically divide the task into multiple subtasks based on the task's partitioning information, and automatically select a supercluster for these subtasks to be assigned to multiple supernodes within that supercluster for execution. This allows for rapid task processing. Since the task processing (including task partitioning and resource scheduling) does not require tenant involvement, it reduces a significant amount of manual operation, improves the tenant experience, and lowers task processing costs. Furthermore, this task processing method can be widely applied to various scenarios and possesses a certain degree of versatility. To further understand the workflow of the aforementioned cloud service system, the following section combines... Figure 2 This workflow will be described in further detail. Figure 2 A flowchart illustrating a task processing method based on a cloud management platform provided in this application embodiment is shown below. Figure 2 As shown, this method can be achieved through, as Figure 1 The illustrated cloud service system implementation includes infrastructure that provides cloud services to tenants and a cloud management platform that manages this infrastructure. This infrastructure may include multiple superclusters created by the cloud management platform for the tenants, each supercluster containing multiple supernodes. The method includes:
[0069] 201. The cloud management platform receives task processing requests sent by tenants. The task processing requests are used to indicate the tasks to be processed and the task division information.
[0070] In this embodiment, when a tenant has a task processing requirement, the cloud management platform can provide a task processing interface to the tenant's client (e.g., a task processing request input field on the tenant's interface). Then, the tenant can formulate a task processing request based on their own task processing needs and input this request into the task processing interface provided by the cloud management platform through their client. This task processing request indicates the task to be processed and its classification information. The cloud management platform can then receive this task processing request sent by the tenant's client through the task processing interface.
[0071] Specifically, the tasks to be processed by the tenant are associated with the scenario in which the tenant is located. In this embodiment, there are no restrictions on the scenario in which the tenant is located. For example, when the tenant is in a distributed AI training scenario, the task can be a training task for a certain neural network model to be trained. The training task may include training data for the neural network model and the conditions that the model training needs to meet, etc.
[0072] More specifically, the task processing request sent by the tenant to the cloud management platform not only indicates the tenant's pending tasks but also indicates the task's partitioning information. This partitioning information may include one or more of the following: the number of subtasks the task can be divided into, the number of task instances each subtask can contain, and the specifications required by the computing nodes executing the task instances (e.g., the amount of computing resources (e.g., processors), storage resources (e.g., memory), and communication resources (e.g., network interface cards) required by the computing nodes).
[0073] For example, when a tenant needs to train a neural network model, they can log in to the cloud management platform. The cloud management platform can provide the tenant with a tenant interface, which includes a task processing request input field. Therefore, the tenant can enter the following task processing request in the task processing request input field:
[0074]
[0075] Based on the above task processing request, it can be seen that this request is used to instruct hyperjobA and its partitioning information. The name of hyperjobA is multi-ai-job, indicating that it is a training task for the neural network model to be trained. The partitioning information of hyperjobA includes several parameters. Among them, the replicas under replicatedJobs indicates the number of jobs that hyperjobA can be partitioned into, which is 4, indicating that hyperjobA can be partitioned into 4 jobs. The replicas under task of template indicates the number of pods that each job can contain, which is 2, indicating that 1 job can contain 2 pods. The template under task indicates the specifications required for the node to execute the pod, which is 4 devices named "accelerator-device", that is, 4 processors.
[0076] The cloud management platform can then receive the aforementioned task processing request through the task processing request input field.
[0077] 202. The cloud management platform divides a task into multiple subtasks based on the division information indicated by the task processing request.
[0078] Upon receiving the task processing request, the cloud management platform can parse the request to obtain the tenant's pending tasks and the task's division information. Therefore, the cloud management platform can divide the task into multiple sub-tasks according to the requirements of the task's division information.
[0079] Specifically, the cloud management platform can divide this task into multiple sub-tasks in the following ways:
[0080] Since the task's partitioning information includes the number of subtasks that can be obtained from the task and the number of task instances that each subtask can contain, the cloud management platform can divide the task into multiple subtasks according to the number of subtasks that can be obtained from the task and the number of task instances that each subtask can contain, with each subtask containing multiple task instances.
[0081] As in the example above, such as Figure 3 As shown ( Figure 3 (This is a schematic diagram of task partitioning provided in an embodiment of this application). Since the partitioning information of hyperjobA contains 4 jobs and 2 pods, the cloud management platform can divide hyperjobA into 4 jobs, and each job contains 2 pods.
[0082] 203. The cloud management platform determines the target supercluster from multiple superclusters, assigns multiple subtasks to multiple supernodes of the target supercluster, and instructs the multiple supernodes of the target supercluster to execute the multiple subtasks to obtain the task processing results. The target supercluster is any one of the multiple superclusters, and any supernode of the target supercluster is assigned at least one subtask.
[0083] After receiving multiple subtasks, the cloud management platform selects one of the existing superclusters as the target supercluster. Following the rule that a task can only be deployed on one supercluster and a subtask on only one supernode, the platform distributes the subtasks to multiple (available) supernodes within the target supercluster. Notably, each supernode in the target supercluster can be assigned at least one subtask. The cloud management platform then instructs the supernodes in the target supercluster to execute these subtasks, thereby obtaining the task's processing result. In this way, the cloud management platform completes the tenant's task through the target supercluster, thus fulfilling the tenant's task processing requirements.
[0084] Specifically, the processing result of this task is also related to the scenario in which the tenant is located. For example, when the tenant is in a distributed AI training scenario, this task can be a training task for a certain neural network model to be trained, and the processing result of this task is the neural network model that has been trained.
[0085] More specifically, the cloud management platform can identify the target supercluster in the following ways:
[0086] The task partitioning information includes the number of subtasks that can be divided into, the number of task instances that each subtask can contain, and the specifications required for the computing nodes executing the task instances. A series of calculations are then performed to obtain the specifications required for the supercluster to execute the task. It should be noted that the specifications required for the supercluster to execute the task may include the number of (available) supernodes in the supercluster, the number of (available) computing nodes contained in the supernodes of the supercluster, and the specifications of the computing nodes contained in the supernodes of the supercluster, etc. Among these, the specifications required for the supercluster satisfy the following conditions: (1) The specifications required for the computing nodes contained in the supernodes of the supercluster are greater than or equal to the specifications required for the computing nodes executing the task instances. (2) The product of the number of computing nodes contained in the supernodes of the supercluster and the specifications required for the computing nodes contained in the supernodes of the supercluster is usually greater than or equal to the product of the number of task instances that each subtask can contain and the specifications required for the computing nodes executing the task instances. (3) The product of the number of supernodes in the supercluster, the number of compute nodes contained in the supernodes in the supercluster, and the required specifications of the compute nodes contained in the supernodes in the supercluster is usually greater than or equal to the product of the number of subtasks that the task can be divided into, the number of task instances that the subtasks can contain, and the required specifications of the compute nodes that execute the task instances.
[0087] After obtaining the specifications required for the supercluster to execute the task, the cloud management platform can identify the supercluster with the specified specifications from multiple superclusters as the target supercluster. The target supercluster having the specified specifications can mean: (1) the specifications of the compute nodes contained in the supernodes of the target supercluster are greater than or equal to the specifications of the compute nodes required to execute the task instance. (2) the product of the number of compute nodes contained in the supernodes of the target supercluster and the specifications of the compute nodes contained in the supernodes of the target supercluster is generally greater than or equal to the product of the number of task instances that a subtask can contain and the specifications of the compute nodes required to execute the task instance. (3) the product of the number of supernodes in the target supercluster, the number of compute nodes contained in the supernodes of the target supercluster, and the specifications of the compute nodes contained in the supernodes of the target supercluster is generally greater than or equal to the product of the number of subtasks that the target task can be divided into, the number of task instances that a subtask can contain, and the specifications of the compute nodes required to execute the task instance.
[0088] As in the example above, such as Figure 4 As shown ( Figure 4(A schematic diagram of hypercluster selection provided in the embodiments of this application) After receiving a task processing request, the cloud management platform can obtain the partitioning information of hyperjobA in the task processing request, that is, the number of jobs is 4, the number of pods is 2, and the node executing the pod needs to have 4 processors. Therefore, the cloud management platform can determine the specifications required for the hypercluster to execute the hyperjob based on these information. The specifications meet the following conditions: (1) The number of (available) processors of the nodes contained in the hypernode in the hypercluster is greater than or equal to 4; (2) The product between the number of (available) nodes contained in the hypernode in the hypercluster and the number of (available) processors of the nodes contained in the hypernode in the hypercluster is greater than or equal to 8; (3) The product between the number of (available) hypernodes in the hypercluster, the number of (available) nodes contained in the hypernode in the hypercluster and the number of (available) processors of the nodes contained in the hypernode in the hypercluster is greater than or equal to 32.
[0089] Assume that the cloud management platform is initially created as 4 hyperclusters, namely hypercluster1, hypercluster2, hypercluster3 and hypercluster4.
[0090] For hypercluster1, the number of (available) hypernodes in hypercluster1 is 4, the number of (available) nodes in hypercluster1 is 2, and the number of (available) processors in each of the hypernodes in hypercluster1 is 4. Since hypercluster1 has the above specifications, hypercluster1 is a hypercluster capable of executing hyperjobA.
[0091] For hypercluster2, the number of (available) hypernodes in hypercluster2 is 4, the number of (available) nodes in hypercluster2 is 4, and the number of (available) processors in each of the hypernodes in hypercluster2 is 2. Since hypercluster2 also has the above specifications, hypercluster2 is a hypercluster that can execute hyperjobA.
[0092] Since hypercluster3 and hypercluster4 do not have the above specifications, the cloud management platform can randomly select one from hypercluster1 and hypercluster2 as the hypercluster to execute hyperjobA. Let's assume that the cloud management platform selects hypercluster1 to execute.
[0093] More specifically, the cloud management platform can obtain the processing results of this task in the following ways:
[0094] For any one of the multiple subtasks in this task (i.e., the aforementioned target subtask), the cloud management platform can assign the subtask to one of the multiple supernodes in the target supercluster (i.e., the aforementioned target supernode). Since the subtask can contain multiple task instances, and the supernode (i.e., the supernode to which the subtask is assigned) can contain multiple compute nodes, for any one of the multiple task instances in the subtask (i.e., the aforementioned target task instance), the cloud management platform can also assign the task instance to one of the multiple compute nodes in the supernode (i.e., the aforementioned target compute node).
[0095] For the remaining task instances within the multiple task instances of this subtask, the cloud management platform can also perform the same operations on the remaining task instances as on the task instance itself. Therefore, the cloud management platform can ultimately allocate the multiple task instances of this subtask to the multiple compute nodes of this supernode. It is worth noting that any one of the multiple compute nodes in this supernode can be allocated at least one task instance of the multiple task instances of this subtask.
[0096] For the remaining subtasks within a set of subtasks, the cloud management platform can perform the same operations on the original subtask. Therefore, the cloud management platform can ultimately distribute the multiple subtasks across multiple supernodes in the target supercluster. It is worth noting that any single supernode in the target supercluster can be assigned at least one of the multiple subtasks.
[0097] The cloud management platform can then instruct the compute nodes contained in each supernode of the target supercluster to execute corresponding task instances, thereby obtaining the processing results of each task instance. These processing results can be further processed to obtain the processing result of the task.
[0098] As in the example above, such as Figure 5 As shown ( Figure 5(A schematic diagram of task allocation provided in the embodiments of this application) After selecting hypercluster1, since hypercluster1 contains 4 available hypernodes, each hypernode contains 2 available nodes, and each node contains 4 available processors, the cloud management platform can deploy the 4 jobs in hyperjobA in the 4 hypernodes respectively, and the 2 pods in each job are deployed in the 2 nodes of the corresponding hypernode respectively.
[0099] After the allocation is completed, the cloud management platform can make each pod in hypercluster1 run the corresponding pod, thereby obtaining the processing result of hyperjobA.
[0100] Therefore, it is clear that hyperjobs will not be deployed across hyperclusters, jobs will not be deployed across hypernodes, and pods will not be deployed across nodes. In other words, a hyperjob will only be deployed within one hypercluster, a job will only be deployed within one hypernode, and a pod will only be deployed within one node. Furthermore, within a hypercluster, different hyperjobs can be deployed, different jobs can be deployed on one hypernode, and different pods can be deployed on one node.
[0101] For example, such as Figure 6 As shown ( Figure 6 (Another schematic diagram of task allocation provided in the embodiments of this application) Suppose that hypercluster1 contains 5 available hypernodes, the first to fourth hypernodes contain 2 available nodes and 2 unavailable nodes, the fifth hypernode contains 4 available nodes, and each node contains 4 available processors.
[0102] In the first through fourth hypernodes, the unavailable nodes have been assigned to jobs in hyperjobB (i.e., ... Figure 6 The four hypernodes (the ones marked with dashed lines) still have two usable nodes remaining (i.e., the nodes marked with dashed lines). Figure 6 (There are nodes with dark fill in the middle). Therefore, when the cloud management platform allocates jobs in hyperjobA, it will prioritize using the two remaining available nodes from the four hypernodes, and will not prioritize using the nodes in the fifth hypernode (i.e., the nodes in the fifth hypernode). Figure 6(The node is represented by a solid line). This avoids resource fragmentation within the hypernode, thereby improving the hypernode's resource utilization.
[0103] More specifically, the cloud management platform can also perform the following operations:
[0104] When the cloud management platform provides a task processing interface to the tenant, the task output interface (e.g., the supercluster display bar on the tenant interface) can also display the specifications of multiple created superclusters. It should be noted that for any one of the multiple superclusters, the specifications of the supercluster may include the number of supernodes in the supercluster, the number of compute nodes contained in the supernodes in the supercluster, and the specifications of the compute nodes contained in the supernodes in the supercluster.
[0105] After browsing the specifications of these multiple superclusters, tenants can refer to these specifications to define the division information of their tasks to be processed, generate task processing requests based on the tasks and the division information, and then input the task processing requests into the task processing interface to send them to the cloud management platform.
[0106] It should be understood that this embodiment is only used as an illustrative example of the cloud management platform providing multiple superclusters to the tenant. In actual applications, the cloud management platform may not provide multiple superclusters to the tenant. Therefore, the tenant can determine the task division information on its own. The cloud management platform will then select the target supercluster for the tenant from multiple superclusters based on the division information. In other words, in this case, the tenant may not be aware of the existence of the supercluster.
[0107] More specifically, the cloud management platform can also perform the following operations:
[0108] like Figure 7 As shown ( Figure 7 (This is a schematic diagram of supercluster expansion provided in an embodiment of this application). After receiving a tenant's task processing request, before determining the target supercluster for executing the tenant's task, the cloud management platform can first check whether there are available supernodes in the multiple created superclusters (for a given supernode, if it has a sufficient number of compute nodes and these compute nodes have a sufficient number of available processors, then the supernode is available). If none of the multiple superclusters have available supernodes, the cloud management platform can select several superclusters from the multiple superclusters and expand these several superclusters to obtain several expanded superclusters. The expansion operation performed by the cloud management platform includes adding available supernodes to the several superclusters.
[0109] Since the expanded superclusters have available supernodes, the cloud management platform can determine the target supercluster from among the expanded superclusters.
[0110] It should be understood that in this embodiment, the lifecycle management operations performed by the cloud management platform on nodes are all performed on a supernode basis. That is, when the cloud management platform creates a supercluster, such as... Figure 8 As shown ( Figure 8 (This is a schematic diagram illustrating the creation of a supercluster provided in this application embodiment.) The cloud management platform manages a certain compute node pool and the supercluster to be created. Compute nodes are selected from the compute node pool to form multiple supernodes, and then each supernode is added to the supercluster one by one to form the supercluster (since the networks between compute nodes in the compute node pool are interconnected, this ensures that the networks between compute nodes in the created supercluster are also interconnected). Similarly, when the cloud management platform reclaims a supercluster or supernode, it reclaims each supernode individually to reclaim a specific supernode or supercluster. Likewise, when the cloud management platform needs to further expand the supercluster, it adds one or more supernodes to the supercluster to obtain the expanded supercluster. Furthermore, the cloud management platform will not add or reclaim any compute nodes under a single supernode, thus ensuring the integrity of the supernodes.
[0111] It should also be understood that the hierarchical relationships between compute nodes, supernodes, and superclusters can be maintained through tags, CRDs, and other means.
[0112] In this embodiment, when a tenant has a task processing requirement, the tenant can send a task processing request to the cloud management platform. Since this task processing request indicates the task to be processed and its partitioning information, the cloud management platform can divide the task into multiple subtasks based on this partitioning information. Then, the cloud management platform can determine a target supercluster among multiple superclusters and assign these multiple subtasks to multiple supernodes within the target supercluster (each supernode can be assigned at least one subtask), so that the multiple supernodes in the supercluster execute these multiple subtasks, thereby obtaining the task processing result and satisfying the tenant's task processing requirements. Therefore, for a tenant's pending tasks, the cloud management platform can automatically divide the task into multiple sub-tasks based on the task's partitioning information, and automatically select target super clusters for these sub-tasks to be assigned to multiple super nodes in the target super cluster for execution, thereby quickly completing task processing. Since the task processing process (including task partitioning and resource scheduling) does not require the tenant's participation, it can reduce a lot of manual operations, improve the tenant experience, and reduce the cost of task processing. Moreover, this task processing method can be widely applied to various scenarios and has a certain degree of versatility.
[0113] Furthermore, since resource scheduling is handled by the cloud management platform without the need for tenant involvement, when there are insufficient available supernodes in the supercluster, the cloud management platform can also expand the supercluster on a supernode basis. The expansion process still does not require tenant involvement, which can improve the scalability of the supercluster and enhance the tenant experience to a certain extent.
[0114] The above is a detailed description of the task processing method based on the cloud management platform provided in the embodiments of this application. The cloud management platform provided in the embodiments of this application will be introduced below. Figure 9 A schematic diagram of the structure of the cloud management platform provided in the embodiments of this application is shown below. Figure 9 As shown, the cloud management platform is used to manage the infrastructure that provides cloud services. The infrastructure includes multiple superclusters, and each supercluster contains multiple supernodes. The cloud management platform includes:
[0115] The receiving module 901 is used to receive a task processing request sent by the tenant. The task processing request is used to indicate the task to be processed and the task division information.
[0116] The partitioning module 902 is used to divide a task into multiple subtasks based on the partitioning information indicated by the task processing request.
[0117] The processing module 903 is used to determine the target supercluster from multiple superclusters, assign multiple subtasks to multiple supernodes of the target supercluster, and instruct the multiple supernodes of the target supercluster to execute the multiple subtasks to obtain the processing result of the task. The target supercluster is any one of the multiple superclusters, and any supernode of the target supercluster is assigned at least one subtask.
[0118] In one possible implementation, the task is a training task for a neural network model to be trained, and the result of the task is the trained neural network model.
[0119] In one possible implementation, each subtask contains multiple task instances, and each supernode contains multiple compute nodes. The processing module 903 is used to assign the target subtask to the target supernode in the target supercluster, assign the target task instance in the target subtask to the target compute node in the target supernode, and instruct the target compute node to execute the target task instance to obtain the processing result of the target task instance. Here, the target subtask is any one of the multiple subtasks, the target supernode is any one of the multiple supernodes in the target supercluster, the target task instance is any one of the multiple task instances of the target subtask, the target compute node is any one of the multiple compute nodes of the target supernode, and the processing result of the target task instance is used to obtain the processing result of the task.
[0120] In one possible implementation, the partitioning information includes the number of subtasks and the number of task instances contained in each subtask. The partitioning module 902 is used to partition the task into multiple subtasks according to the number of subtasks and the number of task instances contained in each subtask.
[0121] In one possible implementation, the partitioning information also includes the specifications of the computing nodes of the execution task instances. The processing module 903 is used to: calculate the specifications of the computing nodes of the execution task instances, the number of subtasks, and the number of task instances contained in the subtasks to obtain the specifications of the supercluster of the execution tasks; and select a target supercluster from multiple superclusters based on the specifications of the supercluster of the execution tasks.
[0122] In one possible implementation, the cloud management platform further includes: a provision module for providing tenants with specifications for multiple superclusters, the specifications of which allow tenants to determine partitioning information, the specifications of which include the number of supernodes in the supercluster, the number of compute nodes contained in the supernodes in the supercluster, and the specifications of the compute nodes contained in the supernodes in the supercluster.
[0123] In one possible implementation, the cloud management platform further includes: a scaling module, used to scale up several superclusters among multiple superclusters if none of the multiple superclusters have available supernodes, to obtain several scaled-up superclusters, wherein scaling up includes adding available supernodes to the several superclusters; and a processing module 903, used to determine the target supercluster from the scaled-up superclusters.
[0124] In one possible implementation, when the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site; when the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site or different sites.
[0125] In one possible implementation, the site can be a region, availability zone, data center, or server room.
[0126] In one possible implementation, the target compute node comprises any of the following: a physical server, a virtual machine, a container, a microvirtual machine, and a bare metal server.
[0127] It should be noted that the information interaction and implementation process between the modules / units of the above-mentioned device are based on the same concept as the method embodiments of this application, and the resulting technical effects are the same as those of the method embodiments of this application. For details, please refer to the description in the method embodiments shown above in the embodiments of this application, and will not be repeated here.
[0128] Please see Figure 10 , Figure 10This is a schematic diagram of the structure of a computing device provided in an embodiment of this application. Figure 10 As shown, the computing device 1000 (which can be used to present the aforementioned cloud management platform) includes: a processor 1001, a memory 1002, a communication interface 1003, and a bus 1004. The processor 1001, memory 1002, and communication interface 1003 are coupled via the bus (not shown in the figure). The memory 1002 stores instructions. When the instructions in the memory 1002 are executed, the computing device 1000 executes the method performed by the cloud management platform in the above method embodiment.
[0129] The computing device 1000 may be one or more integrated circuits configured to implement the methods described above, such as: one or more application-specific integrated circuits (ASICs), or one or more digital signal processors (DSPs), or one or more field-programmable gate arrays (FPGAs), or a combination of at least two of these forms of integrated circuits. Furthermore, when the units in the device can be implemented in the form of a processing element scheduler, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processor capable of calling programs. Alternatively, these units may be integrated together and implemented as a system-on-a-chip (SOC).
[0130] The processor 1001 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A general-purpose processor can be a microprocessor or any conventional processor.
[0131] The memory 1002 can be volatile memory or non-volatile memory, or it can include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0132] The memory 1002 stores executable program code, and the processor 1001 executes this executable program code to implement the functions of the aforementioned receiving module, partitioning module, and processing module, thereby realizing the aforementioned task processing method based on the cloud management platform. That is, the memory 1002 stores instructions for executing the aforementioned task processing method based on the cloud management platform.
[0133] The communication interface 1003 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 1000 and other devices or communication networks.
[0134] In addition to the data bus, the 1004 bus can also include a power bus, a control bus, and a status signal bus. The bus can be a Peripheral Component Interconnect Express (PCIe) bus, an Extended Industry Standard Architecture (EISA) bus, a Unified Bus (Ubus or UB), a Compute Express Link (CXL) bus, a Cache Coherent Interconnect for Accelerators (CCIX) bus, etc. The bus can be divided into address bus, data bus, and control bus.
[0135] Please see Figure 11 , Figure 11 This is a schematic diagram of a computing device cluster provided in an embodiment of this application. Figure 11 As shown, the computing device cluster 1100 includes at least one computing device 1000.
[0136] like Figure 11 As shown, the computing device cluster 1100 includes at least one computing device 1000. The memory 1002 of one or more computing devices 1000 in the computing device cluster 1100 may store the same instructions for executing the above-described task processing method based on the cloud management platform.
[0137] In some possible implementations, the memory 1002 of one or more computing devices 1000 in the computing device cluster 1100 may also store partial instructions for executing the aforementioned task processing method based on the cloud management platform. In other words, a combination of one or more computing devices 1000 can jointly execute the aforementioned task processing method based on the cloud management platform.
[0138] It should be noted that the memory 1002 in different computing devices 1000 within the computing device cluster 1100 can store different instructions, which are used to execute certain functions of the aforementioned cloud management platform. That is, the instructions stored in the memory 1002 of different computing devices 1000 can implement the functions of one or more modules, such as the receiving module, partitioning module, and processing module.
[0139] In some possible implementations, one or more computing devices 1000 in the computing device cluster 1100 can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc.
[0140] Please see Figure 12 , Figure 12 This is a schematic diagram illustrating the network connection of computer devices in a computer cluster provided in an embodiment of this application. Figure 12 As shown, the two computing devices 1000A and 1000B are connected via a network. Specifically, they are connected to the network through the communication interfaces in each computing device.
[0141] In one possible implementation, the memory in computing device 1000A stores instructions for performing the functions of modules such as the receiving module. Meanwhile, the memory in computing device 1000B stores instructions for performing the functions of modules such as the partitioning module and the processing module.
[0142] It should be understood that Figure 12 The functions of computing device 1000A shown can also be performed by multiple computing devices. Similarly, the functions of computing device 1000B can also be performed by multiple computing devices.
[0143] This application also relates to a computer storage medium storing a program for signal processing, which, when run on a computer, causes the computer to perform actions such as... Figure 2 The steps performed by the cloud management platform in the illustrated embodiment.
[0144] This application also relates to a computer program product that stores instructions that, when executed by a computer, cause the computer to perform actions such as... Figure 2 The steps performed by the cloud management platform in the illustrated embodiment.
[0145] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0146] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.
[0147] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0148] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0149] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
Claims
1. A task processing method based on a cloud management platform, characterized in that, The cloud management platform is used to manage the infrastructure providing cloud services, the infrastructure comprising multiple superclusters, each supercluster comprising multiple supernodes, the method comprising: The cloud management platform receives task processing requests sent by tenants, and the task processing requests are used to indicate the tasks to be processed and the task division information; The cloud management platform divides the task into multiple subtasks based on the division information indicated by the task processing request; The cloud management platform determines a target supercluster from the plurality of superclusters, assigns the plurality of subtasks to the plurality of supernodes of the target supercluster, and instructs the plurality of supernodes of the target supercluster to execute the plurality of subtasks to obtain the processing result of the task. The target supercluster is any one of the plurality of superclusters, and any supernode of the target supercluster is assigned at least one subtask.
2. The method according to claim 1, characterized in that, The task is a training task for a neural network model to be trained, and the processing result of the task is a trained neural network model.
3. The method according to claim 1 or 2, characterized in that, Each subtask contains multiple task instances, and each supernode contains multiple compute nodes. The cloud management platform assigns the multiple subtasks to the multiple supernodes of the target supercluster, and instructs the multiple supernodes of the target supercluster to execute the multiple subtasks. The processing results of the tasks include: The cloud management platform assigns the target subtask to the target supernode in the target supercluster, assigns the target task instance in the target subtask to the target computing node in the target supernode, and instructs the target computing node to execute the target task instance to obtain the processing result of the target task instance; Wherein, the target subtask is any one of the plurality of subtasks, the target supernode is any one of the plurality of supernodes of the target supercluster, the target task instance is any one of the plurality of task instances of the target subtask, the target computing node is any one of the plurality of computing nodes of the target supernode, and the processing result of the target task instance is used to obtain the processing result of the task.
4. The method according to any one of claims 1 to 3, characterized in that, The partitioning information includes the number of subtasks and the number of task instances contained in each subtask. Based on the partitioning information indicated by the task processing request, the cloud management platform divides the task into multiple subtasks, including: The cloud management platform divides the task into multiple subtasks according to the number of subtasks and the number of task instances contained in each subtask.
5. The method according to claim 4, characterized in that, The partitioning information also includes the specifications of the computing nodes executing the task instances, and the cloud management platform determines the target supercluster from the plurality of superclusters by: The cloud management platform calculates the specifications of the computing nodes of the execution task instance, the number of subtasks, and the number of task instances contained in the subtasks to obtain the specifications of the super cluster executing the task. The cloud management platform selects a target supercluster from the plurality of superclusters based on the specifications of the supercluster executing the task.
6. The method according to claim 5, characterized in that, The method further includes: The cloud management platform provides the tenant with the specifications of the multiple superclusters. The specifications of the multiple superclusters are used by the tenant to determine the partitioning information. The specifications of the superclusters include the number of supernodes in the supercluster, the number of compute nodes contained in the supernodes in the supercluster, and the specifications of the compute nodes contained in the supernodes in the supercluster.
7. The method according to any one of claims 1 to 6, characterized in that, The method further includes: If none of the multiple superclusters have available supernodes, the cloud management platform expands several of the multiple superclusters to obtain several expanded superclusters. The expansion includes adding available supernodes to the several superclusters. The cloud management platform determines the target supercluster from the plurality of superclusters, including: The cloud management platform determines the target supercluster from the expanded superclusters.
8. The method according to any one of claims 1 to 7, characterized in that, When the network between multiple supernodes of the target supercluster is a non-Virtual Private Cloud (VPC) network, the multiple supernodes of the target supercluster are deployed in the same site. When the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site or different sites.
9. The method according to claim 8, characterized in that, The sites refer to regions, availability zones, data centers, and server rooms.
10. The method according to claim 3, characterized in that, The target computing node includes any of the following: physical server, virtual machine, container, micro virtual machine, and bare metal server.
11. A cloud management platform, characterized in that, The cloud management platform is used to manage the infrastructure providing cloud services. The infrastructure includes multiple superclusters, each supercluster containing multiple supernodes. The cloud management platform includes: A receiving module is used to receive a task processing request sent by a tenant, wherein the task processing request is used to indicate the task to be processed and the task division information; The partitioning module is used to partition the task into multiple subtasks based on the partitioning information indicated by the task processing request. A processing module is configured to determine a target supercluster from the plurality of superclusters, assign the plurality of subtasks to the plurality of supernodes of the target supercluster, and instruct the plurality of supernodes of the target supercluster to execute the plurality of subtasks to obtain the processing result of the task, wherein the target supercluster is any one of the plurality of superclusters, and any supernode of the target supercluster is assigned at least one subtask.
12. The cloud management platform according to claim 11, characterized in that, The task is a training task for a neural network model to be trained, and the processing result of the task is a trained neural network model.
13. The cloud management platform according to claim 11 or 12, characterized in that, Each subtask contains multiple task instances, and each supernode contains multiple computing nodes. The processing module is used to assign the target subtask to the target supernode in the target supercluster, assign the target task instance in the target subtask to the target computing node in the target supernode, and instruct the target computing node to execute the target task instance to obtain the processing result of the target task instance. Wherein, the target subtask is any one of the plurality of subtasks, the target supernode is any one of the plurality of supernodes of the target supercluster, the target task instance is any one of the plurality of task instances of the target subtask, the target computing node is any one of the plurality of computing nodes of the target supernode, and the processing result of the target task instance is used to obtain the processing result of the task.
14. The cloud management platform according to any one of claims 11 to 13, characterized in that, The partitioning information includes the number of subtasks and the number of task instances contained in each subtask. The partitioning module is used to partition the task into the multiple subtasks according to the number of subtasks and the number of task instances contained in each subtask.
15. The cloud management platform according to claim 14, characterized in that, The partitioning information also includes the specifications of the computing nodes executing the task instances, and the processing module is used for: The specifications of the supercluster executing the task are calculated by considering the specifications of the computing nodes of the task execution instance, the number of subtasks, and the number of task instances contained in the subtasks. Based on the specifications of the supercluster that performs the task, a target supercluster is selected from the plurality of superclusters.
16. The cloud management platform according to claim 15, characterized in that, The cloud management platform also includes: A module is provided to provide the tenant with the specifications of the multiple superclusters. The specifications of the multiple superclusters are used by the tenant to determine the partitioning information. The specifications of the superclusters include the number of supernodes in the supercluster, the number of compute nodes contained in the supernodes in the supercluster, and the specifications of the compute nodes contained in the supernodes in the supercluster.
17. The cloud management platform according to any one of claims 11 to 16, characterized in that, The cloud management platform also includes: The expansion module is used to expand several of the multiple superclusters if none of the multiple superclusters have available supernodes, to obtain several expanded superclusters. The expansion includes adding available supernodes to the several superclusters. The processing module is used to determine the target supercluster from the expanded superclusters.
18. The cloud management platform according to any one of claims 11 to 17, characterized in that, When the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site. When the network between multiple supernodes of the target supercluster is a VPC network, the multiple supernodes of the target supercluster are deployed in the same site or different sites.
19. The cloud management platform according to claim 18, characterized in that, The sites refer to regions, availability zones, data centers, and server rooms.
20. The cloud management platform according to claim 13, characterized in that, The target computing node includes any of the following: physical server, virtual machine, container, micro virtual machine, and bare metal server.
21. A computing device cluster, characterized in that, The computing device cluster includes at least one computing device, each computing device including a processor and memory: The memory is used to store instructions; The processor is configured to, according to the instructions, cause the computing device cluster to perform the method of any one of claims 1 to 10.
22. A computer storage medium, characterized in that, The computer storage medium stores one or more instructions that, when executed by one or more computers, cause the one or more computers to perform the method of any one of claims 1 to 10.
23. A computer program product, characterized in that, The computer program product stores instructions that, when executed by a computer, cause the computer to perform the method described in any one of claims 1 to 10.