Data processing method and apparatus, and computing device

By scheduling and virtualizing the underlying pooled resources, the problems of wasted computing resources and slow execution speed in serverless architecture are solved, achieving efficient resource utilization and improved user experience.

WO2025261384A1PCT designated stage Publication Date: 2025-12-26HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/101672
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-19
Filing Date
2025-06-18
Publication Date
2025-12-26

AI Technical Summary

Technical Problem

When running AI applications using a serverless architecture, users need to adapt the underlying resources themselves, which leads to a waste of computing resources and affects the application's execution speed.

Method used

By scheduling underlying pooled resources, computing resources are automatically adapted to the application's workload, including splitting the workload into the smallest execution unit and determining the corresponding resource instance in the target resource pool for execution, and managing the physical resources processed by virtualization.

Benefits of technology

This avoids wasting precious computing resources, improves application execution speed, and enhances the user experience of using serverless cloud services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025101672_26122025_PF_FP_ABST
    Figure CN2025101672_26122025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present application is a data processing method. The method comprises: acquiring a base load of a target application; splitting the base load into at least one minimum execution unit; and on the basis of resource specifications required by the at least one minimum execution unit, determining, from a target resource pool, a target resource instance corresponding to the at least one minimum execution unit, and using the target resource instance to execute the at least one minimum execution unit, wherein the target resource pool comprises a plurality of pooled resource instances, the plurality of pooled resource instances are obtained after performing virtualization processing on physical resources, and the physical resources are provided in at least one cloud data center managed by a cloud management platform. The solution can avoid the waste of computing resources and increase the execution speed of an application.
Need to check novelty before this filing date? Find Prior Art

Description

Method, apparatus, and computing device for data processing

[0001] The present application claims priority to the Chinese patent application No. 202410800112.9, filed on June 19, 2024, with the State Intellectual Property Office of China, and entitled “Method, apparatus, and computing device for data processing”, the entire content of which is incorporated herein by reference. TECHNICAL FIELD

[0002] The present application relates to the field of cloud computing, and more particularly, to a method, apparatus, and computing device for data processing. BACKGROUND

[0003] Resource pooling is a core concept in cloud computing, which refers to virtualizing physical resources (such as computing, storage, network, etc.) to form a unified and manageable resource pool that can provide strong computing power and low threshold for artificial intelligence (AI).

[0004] Resource pooling can make the allocation, management, and use of resources more flexible and efficient. It realizes on-demand allocation, automatic management, and optimization of resources, improves resource utilization and response speed, and reduces costs, providing a solid foundation for the development of enterprises. Therefore, in view of the form of underlying resource pooling and the increasingly popular artificial intelligence (AI) applications, how to provide users with an out-of-the-box, pay-as-you-go serverless (serverless) usage experience has become a technical problem that needs to be solved.

[0005] In related technical solutions, when a user uses a serverless architecture to run an AI application, the user needs to adapt the corresponding underlying resources for the AI application, which may, on the one hand, cause waste of valuable computing resources, and on the other hand, affect the execution speed of the AI application.

[0006] Therefore, how to avoid waste of computing resources and improve the execution speed of the application has become a technical problem that needs to be solved. SUMMARY

[0007] The present application provides a method, apparatus, and computing device for data processing, which can avoid waste of computing resources and improve the execution speed of the application.

[0008] In a first aspect, a method for data processing is provided, which includes: obtaining a basic load of a target application; splitting the basic load into at least one minimum execution unit; determining a target resource instance corresponding to the at least one minimum execution unit from a target resource pool according to a resource specification required by the at least one minimum execution unit, and executing the at least one minimum execution unit by the target resource instance, wherein the target resource pool includes a plurality of pooled resource instances obtained by virtualizing physical resources, and the physical resources are arranged in at least one cloud data center managed by a cloud management platform.

[0009] In the above technical solution, by scheduling the underlying pooled resources, when a user runs an application using a serverless architecture, appropriate computing resources can be automatically matched for the workload of the application. In this way, on the one hand, the waste of precious computing resources can be avoided, and the execution speed of the application can be improved, and on the other hand, the user experience of using a serverless-based cloud service can be improved.

[0010] With reference to the first aspect, in some implementations of the first aspect, the method further includes: applying for computing resources to an infrastructure as a service (IaaS); and pooling the computing resources to obtain the target resource pool.

[0011] With reference to the first aspect, in some implementations of the first aspect, the basic load of the target application input by the user is obtained through a first application programming interface (API) of a serverless platform.

[0012] With reference to the first aspect, in some implementations of the first aspect, the high-level load of the target application input by the user is obtained through a second API of the serverless platform; and the high-level load is split into the basic load.

[0013] With reference to the first aspect, in some implementations of the first aspect, the target application is an artificial intelligence (AI) application, and the high-level load includes at least one of: a training load of an AI model, and an inference load of the AI model.

[0014] With reference to the first aspect, in some implementations of the first aspect, the high-level load includes at least one of the following information: a type of the high-level load, a supply mode of a corresponding resource pool, a performance parameter of a resource instance required for executing the high-level load, and a topology relationship of deployment of the resource instance.

[0015] With reference to the first aspect, in some implementations of the first aspect, the kubernetes basic load input by the user is obtained through a third API of kubernetes.

[0016] With reference to the first aspect, in some implementations of the first aspect, the method further includes: applying, to an infrastructure as a service (IaaS), a resource instance when a quantity of resource instances included in the target resource pool is less than a preset threshold.

[0017] With reference to the first aspect, in some implementations of the first aspect, the method further includes: determining, according to labels corresponding to the plurality of resource instances respectively, that the plurality of resource instances belong to the target resource pool, wherein the labels include at least one of the following information: a type of the resource instance, a specification of the resource instance, a supply mode of the resource instance, and a topological relationship of the resource instance.

[0018] A second aspect provides a device for data processing, the device including: an obtaining module, a splitting module, and a determining module. The obtaining module is configured to obtain a base load of a target application. The splitting module is configured to split the base load into at least one minimum execution unit. The determining module is configured to determine, according to a resource specification required by the at least one minimum execution unit, a target resource instance corresponding to the at least one minimum execution unit from a target resource pool, and execute the at least one minimum execution unit by the target resource instance. The target resource pool includes a plurality of pooled resource instances, which are obtained by virtualizing physical resources disposed in at least one cloud data center managed by a cloud management platform.

[0019] With reference to the second aspect, in some implementations of the second aspect, the device further includes: an applying module configured to apply, to an infrastructure as a service (IaaS), a computing resource; and a virtualizing module configured to virtualize the computing resource to obtain the target resource pool.

[0020] With reference to the second aspect, in some implementations of the second aspect, the obtaining module is specifically configured to obtain, through a first application programming interface (API) of a serverless platform, a base load of the target application input by a user.

[0021] With reference to the second aspect, in some implementations of the second aspect, the obtaining module is specifically configured to obtain, through a second API of the serverless platform, a high-order load of the target application input by the user; and split the high-order load into the base load.

[0022] With reference to the second aspect, in some implementations of the second aspect, the target application is an artificial intelligence (AI) application, and the high-order load includes at least one of the following: a training load of an AI model and an inference load of the AI model.

[0023] In some implementations of the second aspect, the high-level load includes at least one of the following information: a type of the high-level load, a supply mode of a corresponding resource pool, a performance parameter of a resource instance required for executing the high-level load, and a topology relationship of deployment of the resource instance.

[0024] In some implementations of the second aspect, the obtaining module is specifically configured to obtain the user-inputted Kubernetes basic load through a third API of Kubernetes.

[0025] In some implementations of the second aspect, the applying module is further configured to apply for a resource instance from an IaaS when a number of resource instances included in the target resource pool is less than a preset threshold.

[0026] In some implementations of the second aspect, the determining module is further configured to determine that the plurality of resource instances belong to the target resource pool according to labels corresponding to the plurality of resource instances, wherein the labels include at least one of the following information: a type of the resource instance, a specification of the resource instance, a supply mode of the resource instance, and a topology relationship of the resource instance.

[0027] In a third aspect, a computing device is provided, which includes a processor and a memory, and optionally, an input / output interface. The processor is configured to control the input / output interface to receive and send information, and the memory is configured to store a computer program. The processor is configured to call and run the computer program from the memory, so as to execute the method in the first aspect or any possible implementation manner of the first aspect.

[0028] Optionally, the processor can be a general-purpose processor, which can be implemented by hardware or software. When implemented by hardware, the processor can be a logic circuit or an integrated circuit. When implemented by software, the processor can be a general-purpose processor, which reads software codes stored in the memory to implement the processor. The memory can be integrated in the processor or exist independently of the processor.

[0029] In a fourth aspect, a computing device cluster is provided, which includes at least one computing device, and each computing device includes a processor and a memory. The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so as to enable the computing device cluster to execute the method in the first aspect or any possible implementation manner of the first aspect.

[0030] In a fifth aspect, a chip is provided, which obtains instructions and executes the instructions to implement the method in the first aspect or any possible implementation manner of the first aspect.

[0031] Optionally, as an implementation form, the chip comprises a processor and a data interface, the processor reads instructions stored on a memory through the data interface, and executes the method in the first aspect and any implementation form of the first aspect.

[0032] Optionally, as an implementation form, the chip can further comprise a memory, the memory stores instructions, and the processor is configured to execute the instructions stored on the memory, and when the instructions are executed, the processor is configured to execute the method in the first aspect and any implementation form of the first aspect.

[0033] In a sixth aspect, a computer program product comprising instructions which, when executed by a computing device, cause the computing device to perform the method in the first aspect and any implementation form of the first aspect.

[0034] In a seventh aspect, a computer program product comprising instructions which, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the method in the first aspect and any implementation form of the first aspect.

[0035] In an eighth aspect, a computer-readable storage medium comprising computer program instructions, which, when executed by a computing device, cause the computing device to perform the method in the first aspect and any implementation form of the first aspect.

[0036] As an example, the computer-readable storage includes, but is not limited to, one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), Flash memory, electrically EPROM (EEPROM), and hard drive.

[0037] Optionally, as an implementation form, the storage medium can be a non-volatile storage medium.

[0038] In a ninth aspect, a computer-readable storage medium comprising computer program instructions, which, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the method in the first aspect and any implementation form of the first aspect.

[0039] By way of example, such computer-readable storage can include one or more of the following: read-only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), Flash memory, electrically EPROM (EEPROM), and hard drives.

[0040] Optionally, as an implementation manner, the storage medium can be a nonvolatile storage medium. BRIEF DESCRIPTION OF DRAWINGS

[0041] FIG. 1 is a schematic diagram of an architecture of a serverless platform according to an embodiment of the present application.

[0042] FIG. 2 is a schematic diagram of division of server instances.

[0043] FIG. 3 is a schematic diagram of an API template according to an embodiment of the present application.

[0044] FIG. 4 is a schematic diagram of a cloud scenario according to an embodiment of the present application.

[0045] FIG. 5 is a schematic flowchart of a data processing method according to an embodiment of the present application.

[0046] FIG. 6 is a schematic block diagram of a data processing apparatus 600 according to an embodiment of the present application.

[0047] FIG. 7 is a schematic diagram of an architecture of a computing device 1500 according to an embodiment of the present application.

[0048] FIG. 8 is a schematic diagram of an architecture of a computing device cluster according to an embodiment of the present application.

[0049] FIG. 9 is a schematic diagram of connection between computing devices 1500A and 1500B through a network according to an embodiment of the present application. DETAILED DESCRIPTION

[0050] The technical solutions in the present application will be described below with reference to the accompanying drawings.

[0051] The present application will present various aspects, embodiments or features around systems including a plurality of devices, components, modules, etc. It should be understood and appreciated that each system can include additional devices, components, modules, etc., and / or can not include all of the devices, components, modules, etc. discussed in connection with the accompanying drawings. In addition, combinations of these solutions can also be used.

[0052] In addition, in the embodiments of the present application, the words "example" and "for example" are used to mean serving as an example or illustration. Any embodiment or design presented as an "example" in the present application should not be construed as preferable or advantageous over other embodiments or design schemes. In fact, the word "example" is used to present the concept in a specific manner.

[0053] In the embodiments of the present application, "corresponding" and "relevant" can be used interchangeably, and it should be pointed out that when the distinction is not emphasized, the meanings expressed are consistent.

[0054] The business scenarios described in the embodiments of the present application are used to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. Those skilled in the art can know that, with the evolution of network architecture and the appearance of new business scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems.

[0055] In the present specification, the reference to "one embodiment" or "some embodiments" and the like means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the application. Thus, the appearances of the phrases "in one embodiment" or "in some embodiments" or "in other embodiments" or "in other alternate embodiments" and so on, in various places in the specification are not necessarily all referring to the same embodiment, unless otherwise beherently specifically stated. The terms "comprising", "including", "having" and the like, mean "including but not limited to", unless otherwise beherently specifically stated.

[0056] In the present application, "at least one" means one or more, and "multiple" means two or more. The association relationship between the associated objects is described by "and / or", which means that there can be three kinds of relationships, for example, A and / or B can represent the following cases: A exists alone, A and B exist together, and B exists alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after it. "At least one of the following" or similar expressions means any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can represent a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, and c can be single or multiple.

[0057] Resource pooling is a core concept in cloud computing, which refers to the virtualization of physical resources (such as computing, storage, network, etc.) to form a unified and manageable resource pool. This resource pool can provide strong computing power and low threshold for artificial intelligence (AI). Resource pooling can make the allocation, management and use of resources more flexible and efficient. It realizes on-demand allocation, automatic management and optimization of resources, improves resource utilization and response speed, and reduces costs, providing a solid foundation for enterprise development.

[0058] As an example, the following lists the advantages and characteristics of resource pooling.

[0059] 1. High scalability:

[0060] Resource pools can be quickly expanded or reduced according to business needs, meeting changing computing needs. Physical resources can also be dynamically allocated to different workloads, improving resource utilization.

[0061] 2. On-demand allocation:

[0062] Users can obtain the required computing resources from the resource pool at any time according to their needs. When these resources are no longer needed, they can be released back to the resource pool for use by other users or workloads.

[0063] 3. Lower cost:

[0064] Resource pools allow multiple users to share the same resources, reducing the use threshold and reducing hardware and operation and maintenance costs. By dynamically allocating and releasing resources, the occurrence of idle IT resources can be reduced, further reducing IT construction costs.

[0065] 4. Automatic management and optimization: The resource pool can automatically allocate and adjust resources in real time to maintain an optimal state and meet performance and availability requirements. Automated management tools can help users monitor, manage and optimize their resource usage, improving management efficiency.

[0066] 5. Improve resource utilization: Through virtualization technology, multiple physical resources can be integrated into a unified resource pool, improving resource utilization. Resource pooling makes resource allocation more flexible, allowing dynamic adjustment of resource usage according to actual needs.

[0067] 6. Quickly respond to business needs: Cloud platforms based on resource pooling can quickly respond to business needs, dynamically allocate resources and quickly deploy and release resources according to business needs. This allows enterprises to adapt more quickly to market changes and business needs, improving competitiveness.

[0068] Serverless is an architecture concept in which developers do not need to care about the configuration, management, expansion and running state of the underlying server (for example, whether the server is working or not), but only need to dynamically apply for the resources required by the application, write code and upload it to the cloud service provider. Then the cloud service provider will automatically allocate and release resources to run the code as needed. In this way, on the one hand, developers only need to pay for the resources actually used, rather than for pre-allocated server instances, which helps to save enterprise IT costs and improve resource utilization. On the other hand, the server can be left to the maintenance personnel for management and maintenance, and the developers can then focus on application development, thereby improving the efficiency of application development.

[0069] Therefore, in view of the form of underlying resource pooling and the increasingly popular artificial intelligence (AI) application, how to provide users with an out-of-the-box, pay-as-you-go serverless usage experience has become a technical problem that needs to be solved.

[0070] In related technical solutions, when a user uses a serverless architecture to run an AI application, the user needs to adapt the corresponding underlying resources for the AI application. In this way, on the one hand, it may cause waste of valuable computing resources, and on the other hand, it may also affect the execution speed of the AI application.

[0071] Therefore, the embodiments of the present application provide a data processing method, which can automatically adapt appropriate computing resources for the workload of an application when the user uses a serverless architecture to run the application by scheduling the underlying pooled resources. In this way, on the one hand, it can avoid waste of valuable computing resources, improve the execution speed of the application, and on the other hand, it can also improve the user's experience of using serverless-based cloud services.

[0072] The embodiments of the present application can provide users with high-level cloud services based on serverless, and the user can run the user's own application based on serverless. The application can be an AI application, or it can also be other applications that require high-speed interconnection resources (for example, applications in the High Performance Computing (HPC) scenario), which are not limited by the present application.

[0073] For ease of description, the architecture of the serverless platform provided by the embodiments of the present application will be described in detail below taking an AI application as an example.

[0074] As an example, FIG. 1 is a schematic diagram of an architecture of a serverless platform provided by an embodiment of the present application, as shown in FIG. 1, the architecture can include a resource base layer, a resource management layer, and a workload input layer. The functions of each layer included in the architecture will be described in detail below.

[0075] 1. Resource base layer

[0076] As an example, the resource base layer includes a resource pool constructed by an operator, and the resource pool includes various pooled computing resources. For example, the operator can apply for computing resources from an infrastructure as a service (IaaS) and perform virtualization processing on the computing resources, thereby obtaining the pooled computing resources in the resource base layer.

[0077] It should be understood that the IaaS is a cloud computing service provided by a cloud service platform, which provides IT infrastructure (such as servers, storage, networks, etc.) as a service through a network. Users do not need to build their own hardware facilities such as data centers, but can obtain these infrastructure services from IaaS service providers through rental.

[0078] It should also be understood that the resource pool is a logical concept, and a resource instance can be divided into a certain resource pool according to the label of the resource instance. The implementation of how to divide resources into corresponding resource pools will be described in detail below with specific examples, which will not be described here.

[0079] For example, the above-mentioned computing resources can include but are not limited to central processing units (CPUs), graphics processing units (GPUs), neural processing units (NPUs), memories, etc.

[0080] Optionally, the operator can also set the configuration of the resource pool according to the needs of the user, and divide the resource pool into two types of exclusive resource pool and public resource pool. The exclusive resource pool refers to that the resources in the resource pool are directed to supply to a certain user, and the public resource pool refers to that the resources in the resource pool can be shared by all users.

[0081] It should be noted that the resources included in the resource base layer are not limited to: resources constructed based on containers, resources constructed based on virtual machine instances, resources constructed based on process-level sandboxes, etc. When the resource base layer applies for resources to the IaaS platform, it needs to be able to support such instance packaging methods. For example, the smallest running instance created by the resource layer is scheduled to execute on a virtual machine, and the resource base layer applies for a bare metal instance (BMS) to the IaaS layer, and dynamically allocates a virtual machine instance to supply the resource management layer.

[0082] 2. Resource management layer

[0083] In Example 1, the resource management layer is responsible for managing the pooled resources in the resource base layer. For example, the resource management layer can divide the resources in a server instance into a certain resource pool according to the tags of the server instance. For another example, the resource management layer can also divide multiple server instances in a resource pool into corresponding hypernodes according to the interconnection speed of each server instance.

[0084] In a possible implementation, for the pooled resources, each server instance usually has different interconnection speed levels, and each level covers a different range. The resource management layer can divide the server instances into corresponding HyperNodes according to the interconnection speed levels of each server instance. For example, as shown in FIG. 2, a group of servers in the same highest speed communication domain is called a HyperNode, and a HyperCluster includes multiple HyperNodes. Among them, the interconnection speed of the servers in different HyperNodes is one order of magnitude slower than the interconnection speed of the servers in the same HyperNode.

[0085] It should be understood that, taking AI applications as an example, the minimum granularity of resource management is HyperNode, so as to ensure that the connection speed between a group of servers supplying AI applications is high-speed connection.

[0086] In another implementation, for the pooled resources, the resource management layer can also manage which resource pool the resource belongs to through the tags of the resource instance. For example, the tags of the resource instance can include but are not limited to the following two types: 1) attributes of the resource instance, such as the type corresponding to the resource instance, the specification of the resource instance, the performance type of the resource instance, and the HyperCluster topology information to which the resource instance belongs; 2) operation information of the resource instance, such as whether the preheating level of the resource instance is a public resource or a tenant-oriented reserved resource, etc.

[0087] For example, the resource management layer can manage multiple resource pools, and the resource instances included in a resource pool instance have the following tags:

[0088] 1. Resource instance's specification type: C7

[0089] 2. Resource instance's specification: 2u4g

[0090] 3. Resource instance's warm-up level: tenant-oriented

[0091] 4. Resource instance's performance type: network enhanced

[0092] 5. HyperCluster topology information that the resource instance belongs to: HyperCluster

[0093] In the embodiments of the present application, the resource management layer can also dynamically observe the number of resource pools through the capacity management and operation algorithm, and create or delete resource pools or delete resource instances in the resource pools in real time. For example, the resource management layer can also include an RM-Server module responsible for dynamically observing the number of resource pools through the capacity management and operation algorithm, and creating or deleting resource pools or deleting resource instances in the resource pools in real time.

[0094] It should be understood that the above resource management configuration can be applied by the user and configured by the cloud platform operation team.

[0095] In Example 2, the resource management layer is also responsible for obtaining the smallest execution unit of the workload (workload) and scheduling the smallest execution unit of the workload to the resource instance in the resource base layer, and the resource instance is responsible for executing the smallest execution unit of the workload. For example, the resource management layer can include a schedule module responsible for scheduling the smallest execution unit of the workload to the resource instance in the resource base layer.

[0096] In an implementation manner, the resource management layer can obtain the smallest execution unit of the workload from the workload input layer. For example, the resource management layer can include a resource-apiserver module responsible for obtaining the smallest execution unit of the workload from the workload layer.

[0097] As an example, the workload input layer includes but is not limited to an input interface provided by a serverless platform, an input interface provided by Kubernetes, etc.

[0098] For example, the smallest execution unit of the workload described above can include but is not limited to Job, Pod.

[0099] In the embodiments of the present application, the resource management layer can also detect the remaining amount of resource instances in the resource base layer while processing the minimum execution unit of workload to resource scheduling. When the remaining amount of resource instances in the resource base layer is insufficient, the resource management layer can apply to the resource base layer for access to the resource instances of the resource management layer or Kubernetes. For example, the resource management layer can also include an RM-client module, which can apply to the RM-Server module in the resource base layer for access to the resource instances of the resource management layer or Kubernetes when the remaining amount of resource instances in the resource base layer is insufficient.

[0100] It should be understood that in order to meet the inventory resources in the resource base layer, the resource base layer will also continue to apply for resources from the underlying layer (for example, IaaS), so as to ensure that there are sufficient resource instances in the resource base layer to access the resource management layer or Kubernetes.

[0101] The resource pool management mode of the above AI scenario can guarantee resource supply while minimizing operating costs and saving operating costs.

[0102] 3, workload input layer

[0103] As an example, the workload input layer provided by the embodiments of the present application is used to provide an application programming interface (application programming interface, API) for users to input workload.

[0104] In the embodiments of the present application, in order to adapt to different users, a plurality of different API modes are designed to realize hierarchical management of the Workload entry. The following will illustrate several different types of API.

[0105] As an example, the workload input layer includes a first type of API, which is mainly aimed at self-built microservices and customers with strong operation and maintenance capabilities. This type of API only provides instance API, such as kubernetes pod, and does not provide higher-order load management capabilities. On the system implementation, a set of management and control surfaces can be provided for multiple tenants to share, so as to reduce the use cost of such tenants.

[0106] Another example, the workload input layer includes a second type of API, which is mainly targeted at users of cloud-native open source systems such as Kubernetes, and this type of API can provide an API portal native to the open source suite and corresponding plug-ins suitable for customers who have already interfaced with the cloud-native suite. In terms of system implementation, a set of open source component management interfaces can be built for each tenant, and at this time the management interface is exclusively for a single tenant.

[0107] Another example, the workload input layer includes a third type of API, which is mainly used to receive basic loads such as Job / JobSet, etc. For example, after the basic workload layer receives the basic load, it is further split into the smallest execution unit through the Workload API-server and the corresponding Controller module, and the smallest execution unit is issued to the resource management layer.

[0108] It should be understood that the third type of API provides basic load management logic similar to the deployment of kubernetes, which can control the number of pods, and is suitable for customers who need to shield the underlying operation but need to interface with self-built AI systems. In terms of implementation, a basic load management layer can be separately built, and the object of its basic management is the instance provided in the first type, that is, the direct interface with the underlying basic instance management interface.

[0109] Another example, the workload input layer includes a fourth type of API, which is mainly used to receive high-level loads, and the high-level Workload layer converts the high-level load into a basic load, and then the basic Workload layer obtains the basic load and further splits it into the smallest execution unit, and issues the smallest execution unit to the resource management layer. For example, the high-level load is converted into a basic load through the Workload API-server and the corresponding Controller module in the high-level Workload layer, and then the Workload API-server and the corresponding Controller module in the basic Workload layer obtain the basic load and further split it into the smallest execution unit.

[0110] The above-mentioned high-level load can include but is not limited to: workload for AI training, workload for AI inference, and workload defined by a third party but integrated by the platform.

[0111] The above-mentioned Serverless platform can fully utilize the characteristics of the underlying resource pool and the Serverless business portal to support the construction of Serverless-based AI cloud services.

[0112] To quickly expand the Serverless AI application API supporting online, the embodiment of the application proposes an API template design for pooled resources.

[0113] For example, as shown in FIG. 3, the API entry first needs to determine the type of workload, such as training workload, inference workload, 3rd workload, etc. Moreover, high-level load is usually composed of its data plane and control plane, therefore, the API template shown in FIG. 4 provides two levels of definition, respectively, data plane configuration and control plane configuration.

[0114] In the above-mentioned data plane configuration, the topology relationship needs to be specified. Since the communication speed between servers decreases in multiple levels, it is preferred to describe the topology relationship of instance deployment. As shown in FIG. 4, first, the instances within the fastest communication range and the number of replicas are described; then, how many sets of the minimum range are deployed within the second-level communication range are described, and finally, the instance deployment within the outermost communication range is described.

[0115] In the API template provided by the embodiment of the application, in addition to topology description, the supply information of such application also needs to be specified, as shown in FIG. 4, two kinds of which are exemplified in this template: 1) performance, that is, the performance parameters that CPU / NPU / GPU should have; 2) supply mode, whether the resource pool is supplied by the tenant or the public resource pool. Such configuration can also be added or reduced as needed.

[0116] The above-mentioned control plane usually does not need to use high-speed network connection resources, so there is no need for three-layer topology description. In addition to instance information, the control plane description mainly describes the link relationship with the data plane, such as full connection (full mesh / star), etc.

[0117] It should be understood that the above-mentioned control plane configuration is optional.

[0118] In one possible implementation manner, the serverless platform provided by the embodiment of the application can be applied to a cloud service scenario. For ease of description, the cloud service scenario is described in detail below in combination with FIG. 4.

[0119] FIG. 4 is a schematic block diagram of a cloud scenario suitable for the embodiment of the application. As shown in FIG. 4, the cloud scenario can include a cloud management platform 110, an Internet 120, and a client 130.

[0120] As shown in FIG. 4, the cloud management platform 110 is configured to manage the infrastructure that provides multiple cloud services. The infrastructure includes multiple cloud data centers, each of which includes multiple servers, each of which includes cloud service resources, to provide corresponding cloud services for tenants.

[0121] The cloud management platform 110 can be located in a cloud data center, which can provide an access interface (such as an interface or an application program interface (API)). A tenant can remotely access the access interface to register a cloud account and a password with the cloud management platform 110 using a client 130, and log in to the cloud management platform 110. After the cloud management platform 110 successfully authenticates the cloud account and the password, the tenant can further select and purchase a virtual machine of a specific specification (processor, memory, disk) in the cloud management platform 110 by paying a fee. After the purchase is successful, the cloud management platform 110 provides a remote login account and password of the purchased virtual machine, and the client 130 can remotely log in to the virtual machine, install and run the tenant's application in the virtual machine. Therefore, the tenant can create, manage, log in to, and operate the virtual machine in the cloud data center through the cloud management platform 110. The virtual machine can also be referred to as a cloud server (elastic compute service, ECS), an elastic instance (different cloud service providers have different names).

[0122] The cloud management platform described above can also be referred to as a cloud service platform, which can provide multiple cloud computing services, including infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS), etc. These services can be provided to users through a network, so that users do not need to purchase and maintain hardware and software, but only need to use the services as needed.

[0123] It should be understood that the tenant of the cloud service can be an individual, an enterprise, a school, a hospital, an administrative organ, etc.

[0124] The functions of the cloud management platform 110 include, but are not limited to, a user console, a computing management service, a network management service, a storage management service, an authentication service, and an image management service. The user console provides an interface or an API to interact with the tenant, the computing management service is configured to manage servers running virtual machines and containers and bare metal servers, the network management service is configured to manage network services (such as gateways, firewalls, etc.), the storage management service is configured to manage storage services (such as data bucket services), the authentication service is configured to manage the account and password of the tenant, and the image management service is configured to manage virtual machine images. The tenant uses the client 130 to log in to the cloud management platform 110 through the Internet 120 to manage the rented cloud services.

[0125] The method for processing data provided by the embodiments of the present application will be described in detail below in combination with FIG. 5. It should be understood that the example of FIG. 5 is only to help those skilled in the art to understand the embodiments of the present application, and is not intended to limit the embodiments of the present application to the specific values or specific scenarios shown in the example of FIG. 5. Those skilled in the art can obviously make various equivalent modifications or changes according to the examples given below in FIG. 5, and such modifications and changes also fall within the scope of the embodiments of the present application.

[0126] FIG. 5 is a schematic flowchart of a method for processing data provided by the embodiments of the present application. As shown in FIG. 5, the method can include steps 510-530, which will be described in detail below respectively.

[0127] Step 510: Obtain the base load of the target application.

[0128] In the embodiments of the present application, there are various implementation manners for obtaining the base load of the target application, and several possible implementation manners will be introduced below.

[0129] Implementation manner 1: Obtain the base load of the target application input by the user through a first application programming interface (API) of the serverless platform.

[0130] Implementation manner 2: Obtain the high-order load of the target application received by the user through a second API of the serverless platform; and split the high-order load into the base load.

[0131] Implementation manner 3: Obtain the kubernetes base load input by the user through a third API of the kubernetes.

[0132] It should be understood that specific details can be referred to the related description in FIG. 2 above, which will not be described here again.

[0133] Step 520: Split the base load into at least one minimum execution unit.

[0134] For example, the minimum execution unit of the workload can include, but is not limited to, Job and Pod.

[0135] Step 530: Determine the target resource instance corresponding to the at least one minimum execution unit from the target resource pool according to the resource specification required by the at least one minimum execution unit, and execute the at least one minimum execution unit by the target resource instance.

[0136] The target resource pool includes a plurality of pooled resource instances, which are obtained by virtualizing physical resources arranged in at least one cloud data center managed by the cloud management platform.

[0137] Optionally, the method further includes: applying for a computing resource to an infrastructure as a service (IaaS); and pooling the computing resource to obtain the target resource pool.

[0138] Optionally, the target application is an artificial intelligence (AI) application, and the high-order load includes at least one of a training load of an AI model and an inference load of the AI model.

[0139] Optionally, the high-order load includes at least one of the following information: a type of the high-order load, a supply mode of a corresponding resource pool, a performance parameter of a resource instance required for executing the high-order load, and a topology relationship of deployment of the resource instance.

[0140] Optionally, the method further includes: applying for a resource instance to an infrastructure as a service (IaaS) when a number of resource instances included in the target resource pool is less than a preset threshold.

[0141] Optionally, the method further includes: determining that the plurality of resource instances belong to the target resource pool according to labels corresponding to the plurality of resource instances, wherein the labels include at least one of the following information: a type of a resource instance, a specification of the resource instance, a supply mode of the resource instance, and a topology relationship of the resource instance.

[0142] The method provided by the embodiments of the present application is described in detail above in combination with FIGS. 1-5, and the embodiments of the device of the present application will be described in detail below in combination with FIGS. 6-9. It should be understood that the description of the method embodiments and the description of the device embodiments correspond to each other, and therefore, the parts not described in detail can be referred to the foregoing method embodiments.

[0143] FIG. 6 is a schematic block diagram of an apparatus 600 for data processing provided in an embodiment of the present application. The apparatus 600 can be implemented by software, hardware, or a combination of both. The apparatus 600 provided in an embodiment of the present application can implement the method flow shown in FIG. 5 of the present application. The apparatus 600 includes an obtaining module 610, a splitting module 620, and a determining module 630. The obtaining module 610 is configured to obtain a basic load of a target application. The splitting module 620 is configured to split the basic load into at least one minimum execution unit. The determining module 630 is configured to determine, according to a resource specification required by the at least one minimum execution unit, a target resource instance corresponding to the at least one minimum execution unit from a target resource pool, and execute the at least one minimum execution unit by the target resource instance. The target resource pool includes a plurality of pooled resource instances obtained by virtualizing physical resources, and the physical resources are arranged in at least one cloud data center managed by a cloud management platform.

[0144] Optionally, the apparatus 600 further includes an applying module configured to apply for a computing resource from an infrastructure as a service (IaaS), and a virtualizing module configured to perform virtualization processing on the computing resource to obtain the target resource pool.

[0145] Optionally, the obtaining module 610 is specifically configured to obtain the basic load of the target application input by a user through a first application programming interface (API) of a serverless platform.

[0146] Optionally, the obtaining module 610 is specifically configured to obtain the high-level load of the target application input by a user through a second API of the serverless platform, and split the high-level load into the basic load.

[0147] Optionally, the target application is an artificial intelligence (AI) application, and the high-level load includes at least one of a training load of an AI model and an inference load of the AI model.

[0148] Optionally, the high-level load includes at least one of the following information: a type of the high-level load, a supply mode of a corresponding resource pool, a performance parameter of a resource instance required for executing the high-level load, and a topology relationship of deployment of the resource instance.

[0149] Optionally, the obtaining module 610 is specifically configured to obtain a kubernetes basic load input by a user through a third API of kubernetes.

[0150] Optionally, the applying module is further configured to apply for a resource instance from the IaaS when a number of resource instances included in the target resource pool is less than a preset threshold.

[0151] Optionally, the determining module is further configured to determine that the plurality of resource instances belong to the target resource pool according to labels corresponding to the plurality of resource instances respectively, wherein the labels include at least one of the following information: a type of the resource instance, a specification of the resource instance, a supply mode of the resource instance, and a topological relationship of the resource instance.

[0152] The apparatus 600 here can be embodied in the form of functional modules. The term "module" here can be implemented in the form of software and / or hardware, and is not limited in specific form.

[0153] For example, the "module" can be a software program, a hardware circuit, or a combination of both, which implements the above functions. For example, the implementation of the obtaining module 610 is described below. Similarly, the implementation of other modules, such as the splitting module 620, the determining module 630, the application module, and the virtualization module, can refer to the implementation of the obtaining module 610.

[0154] As an example of a software functional unit, the obtaining module 610 can include code running on a computing instance. The computing instance can include at least one of a physical host (computing device), a virtual machine, and a container. Further, the computing instance can be one or more. For example, the obtaining module 610 can include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region (region), or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ), or in different AZs, each AZ including a data center or multiple data centers with similar geographical locations. Generally, one region can include multiple AZs.

[0155] Similarly, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC), or in multiple VPCs. Generally, one VPC is set in one region, and communication between two VPCs in the same region, or between VPCs in different regions, needs to be set in each VPC to realize interconnection between VPCs through a communication gateway.

[0156] As an example of a hardware functional unit, the acquisition module 610 may include at least one computing device, such as a server. Alternatively, the acquisition module 610 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.

[0157] The multiple computing devices included in the acquisition module 610 can be distributed in the same region or in different regions. Similarly, the multiple computing devices included in the acquisition module 610 can be distributed in the same Availability Zone (AZ) or in different AZs. Likewise, the multiple computing devices included in the acquisition module 610 can be distributed in the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0158] Therefore, the modules of the various examples described in the embodiments of this application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0159] It should be noted that the device provided in the above embodiments is only illustrated by the division of the functional modules described above when executing the above methods. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. For example, the acquisition module 610 can be used to execute any step in the above methods, the splitting module 620 can be used to execute any step in the above methods, the determining module 630 can be used to execute any step in the above methods, the application module can be used to execute any step in the above methods, and the virtualization module can be used to execute any step in the above methods. The steps implemented by the acquisition module 610, splitting module 620, determining module 630, application module, and virtualization module can be specified as needed. By implementing different steps in the above methods through the acquisition module 610, splitting module 620, determining module 630, application module, and virtualization module, all the functions of the above device can be realized.

[0160] Furthermore, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process can be found in the method embodiments above, which will not be repeated here.

[0161] The method provided in this application can be executed by a computing device, which can also be referred to as a computer system. It includes a hardware layer, an operating system layer running on top of the hardware layer, and an application layer running on the operating system layer. The hardware layer includes hardware such as processing units, memory, and memory control units; the functions and structure of this hardware will be described in detail later. The operating system can be any one or more computer operating systems that implement business processing through processes, such as Linux, Unix, Android, iOS, or Windows. The application layer includes applications such as browsers, address books, word processing software, and instant messaging software. Optionally, the computer system can be a handheld device such as a smartphone, or a terminal device such as a personal computer; this application does not particularly limit this, as long as the method provided in this application can be used. The executing entity of the method provided in this application can be a computing device, or a functional module within the computing device capable of calling and executing programs.

[0162] The following describes in detail, with reference to Figure 7, a computing device provided in an embodiment of this application.

[0163] Figure 7 is a schematic diagram of the architecture of a computing device 1500 provided in an embodiment of this application. The computing device 1500 can be a server, a computer, or other device with computing capabilities. The computing device 1500 shown in Figure 7 includes at least one processor 1510 and a memory 1520.

[0164] It should be understood that this application does not limit the number of processors and memories in the computing device 1500.

[0165] The processor 1510 executes instructions in the memory 1520, causing the computing device 1500 to implement the method provided in this application. Alternatively, the processor 1510 executes instructions in the memory 1520, causing the computing device 1500 to implement the various functional modules provided in this application, thereby implementing the method provided in this application.

[0166] Optionally, the computing device 1500 also includes a communication interface 1530. The communication interface 1530 uses a transceiver module, such as, but not limited to, a network interface card or a transceiver, to enable communication between the computing device 1500 and other devices or communication networks.

[0167] Optionally, the computing device 1500 also includes a system bus 1540, wherein the processor 1510, memory 1520, and communication interface 1530 are respectively connected to the system bus 1540. The processor 1510 can access the memory 1520 through the system bus 1540; for example, the processor 1510 can perform data read / write or code execution in the memory 1520 through the system bus 1540. The system bus 1540 is a peripheral component interconnect express (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The system bus 1540 is divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is used in Figure 7, but this does not mean that there is only one bus or one type of bus.

[0168] In one possible implementation, the processor 1510 primarily functions to interpret the instructions (or code) of a computer program and process data within the computer software. The instructions of the computer program and the data within the computer software can be stored in memory 1520 or cache 1516.

[0169] Optionally, processor 1510 may be an integrated circuit chip with signal processing capabilities. By way of example and not limitation, processor 1510 may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. Among these, a general-purpose processor is a microprocessor, etc. For example, processor 1510 may be a central processing unit (CPU).

[0170] Optionally, each processor 1510 includes at least one processing unit 1512 and a memory control unit 1514.

[0171] Optionally, the processing unit 1512, also known as the core, is the most important component of the processor. The processing unit 1512 is manufactured from single-crystal silicon using a specific production process. All calculations, command reception, command storage, and data processing are performed by the core. Each processing unit independently executes program instructions, utilizing parallel computing capabilities to accelerate program execution. Various processing units have fixed logical structures; for example, a processing unit includes logical units such as a Level 1 cache, a Level 2 cache, an execution unit, an instruction-level unit, and a bus interface.

[0172] In one implementation example, the memory control unit 1514 controls the data interaction between the memory 1520 and the processing unit 1512. Specifically, the memory control unit 1514 receives memory access requests from the processing unit 1512 and controls access to memory based on the memory access requests. By way of example and not limitation, the memory control unit is a device such as a memory management unit (MMU).

[0173] In one implementation example, each memory control unit 1514 addresses the memory 1520 via the system bus. An arbitrator (not shown in Figure 7) is configured on the system bus to handle and coordinate contention for access by the multiple processing units 1512.

[0174] In one implementation example, the processing unit 1512 and the memory control unit 1514 are connected via internal chip connection lines, such as address lines, thereby enabling communication between the processing unit 1512 and the memory control unit 1514.

[0175] Optionally, each processor 1510 also includes a cache 1516, which is a buffer for data exchange (called a cache). When the processing unit 1512 needs to read data, it first looks for the required data in the cache. If the data is found, it is executed directly; otherwise, it looks for the data in memory. Since the cache operates much faster than memory, its purpose is to help the processing unit 1512 run faster.

[0176] The memory 1520 provides runtime space for processes in the computing device 1500. For example, the memory 1520 stores the computer program (specifically, the program code) used to generate the process. After the computer program is run by the processor to generate a process, the processor allocates corresponding storage space for the process in the memory 1520. Furthermore, the aforementioned storage space further includes text segments, initialized data segments, bit initialized data segments, stack segments, heap segments, etc. The memory 1520 stores data generated during the process's execution, such as intermediate data or process data, in the aforementioned process-specific storage space.

[0177] Optionally, the memory, also known as RAM, is used to temporarily store the data processed by the processor 1510, as well as data exchanged with external storage devices such as hard disks. As long as the computer is running, the processor 1510 will load the data that needs to be processed into RAM for processing, and after the processing is completed, the processing unit 1512 will send the result out.

[0178] By way of example and not limitation, memory 1520 is volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Non-volatile memory is 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. Volatile memory is random access memory (RAM) 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). It should be noted that the memory 1520 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0179] The structure of the computing device 1500 listed above is merely illustrative and is not limited thereto. The computing device 1500 in this application includes various hardware components in existing computer systems. For example, the computing device 1500 also includes other memories besides memory 1520, such as disk storage. Those skilled in the art should understand that the computing device 1500 may also include other devices necessary for normal operation. Furthermore, depending on specific needs, those skilled in the art should understand that the computing device 1500 may also include hardware devices for implementing other additional functions. In addition, those skilled in the art should understand that the computing device 1500 may only include the devices necessary for implementing the embodiments of this application, and not necessarily all the devices shown in FIG. 7.

[0180] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device may be a server. In some embodiments, the computing device may also be a desktop computer, a laptop computer, or a smartphone, or other terminal device.

[0181] As shown in Figure 8, the computing device cluster includes at least one computing device 1500. The memory 1520 of one or more computing devices 1500 in the computing device cluster may store the same instructions for performing the above-described method.

[0182] In some possible implementations, the memory 1520 of one or more computing devices 1500 in the computing device cluster may also each store a portion of the instructions for executing the above-described methods. In other words, a combination of one or more computing devices 1500 can jointly execute the instructions of the above-described methods.

[0183] It should be noted that the memory 1520 in different computing devices 1500 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the aforementioned device. That is, the instructions stored in the memory 1520 of different computing devices 1500 can implement the functions of one or more modules within the aforementioned device.

[0184] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 9 illustrates one possible implementation. As shown in Figure 9, two computing devices, 1500A and 1500B, are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device.

[0185] It should be understood that the functions of computing device 1500A shown in Figure 9 can also be performed by multiple computing devices 1500. Similarly, the functions of computing device 1500B can also be performed by multiple computing devices 1500.

[0186] In this embodiment, a computer program product containing instructions is also provided. The computer program product may be a software or program product containing instructions capable of running on a computing device or stored on any usable medium. When run on a computing device, it causes the computing device to perform the methods provided above, or causes the computing device to perform the functions of the apparatus provided above.

[0187] In this embodiment, a computer-readable storage medium is also provided. This computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that, when executed on a computing device, cause the computing device to perform the method described above.

[0188] It should be understood that in the various embodiments of this application, the order of the above-mentioned processes does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0189] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0190] Those skilled in the art will 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.

[0191] 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 through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0192] 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.

[0193] In addition, 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.

[0194] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they 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 a portion 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.

[0195] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method of data processing, characterized by, The method comprises: obtaining a basic load of a target application; splitting the basic load into at least one minimum execution unit; determining a target resource instance corresponding to the at least one minimum execution unit from a target resource pool according to a resource specification required by the at least one minimum execution unit, and executing the at least one minimum execution unit by the target resource instance, wherein the target resource pool comprises a plurality of pooled resource instances, the plurality of pooled resource instances are obtained by virtualizing physical resources, and the physical resources are arranged in at least one cloud data center managed by a cloud management platform.

2. The method of claim 1, wherein, The method further comprises: applying for a computing resource to an infrastructure as a service (IaaS); pooling the computing resource to obtain the target resource pool.

3. The method according to claim 1 or 2, characterized in that, The obtaining of the basic load of the target application comprises: obtaining the basic load of the target application input by a user through a first application programming interface (API) of a serverless platform.

4. The method according to claim 1 or 2, characterized in that, The obtaining of the basic load of the target application comprises: obtaining a high-order load of the target application input by a user through a second API of a serverless platform; splitting the high-order load into the basic load.

5. The method of claim 4, wherein, The target application is an artificial intelligence (AI) application, and the high-order load comprises at least one of a training load of an AI model and an inference load of the AI model.

6. The method according to claim 4 or 5, characterized in that, The high-order load comprises at least one of the following information: a type of the high-order load, a supply mode of a corresponding resource pool, a performance parameter of a resource instance required for executing the high-order load, and a topology relationship of deployment of the resource instance.

7. The method according to claim 1 or 2, characterized in that, The obtaining of the basic load of the target application comprises: obtaining a kubernetes basic load input by a user through a third API of kubernetes.

8. The method according to any one of claims 1 to 7, characterized in that, The method further comprises: applying for a resource instance to an infrastructure as a service (IaaS) when a number of resource instances included in the target resource pool is less than a preset threshold.

9. The method according to any one of claims 1 to 8, characterized in that, The method further comprises: determining that the plurality of resource instances belong to the target resource pool according to labels corresponding to the plurality of resource instances, wherein the labels comprise at least one of the following information: a type of a resource instance, a specification of a resource instance, a supply mode of a resource instance, and a topology relationship of a resource instance.

10. An apparatus for data processing, characterized by The apparatus comprises: an obtaining module configured to obtain a basic load of a target application; a splitting module configured to split the basic load into at least one minimum execution unit; a determining module configured to determine a target resource instance corresponding to the at least one minimum execution unit from a target resource pool according to a resource specification required by the at least one minimum execution unit, and execute the at least one minimum execution unit by the target resource instance, wherein the target resource pool comprises a plurality of pooled resource instances, the plurality of pooled resource instances are obtained by virtualizing physical resources, and the physical resources are arranged in at least one cloud data center managed by a cloud management platform.

11. The apparatus of claim 10, wherein, The apparatus further comprises: an applying module configured to apply for a computing resource to an infrastructure as a service (IaaS); A virtualization module is configured to perform virtualization on the computing resources to obtain the target resource pool.

12. The apparatus of claim 10 or 11, wherein, The obtaining module is specifically configured to: obtain, through a first application programming interface (API) of a serverless platform, a base load of the target application input by a user.

13. The apparatus of claim 10 or 11, wherein, The obtaining module is specifically configured to: obtain, through a second API of the serverless platform, a high-order load of the target application input by the user. The high-order load is split into the base load.

14. The apparatus of claim 13, wherein, The target application is an artificial intelligence (AI) application, and the high-order load includes at least one of a training load of an AI model and an inference load of the AI model.

15. The apparatus of claim 13 or 14, wherein, The high-order load includes at least one of the following information: a type of the high-order load, a supply mode of a corresponding resource pool, a performance parameter of a resource instance required for executing the high-order load, and a topology relationship of deployment of the resource instance.

16. The apparatus of claim 10 or 11, wherein, The obtaining module is specifically configured to: obtain, through a third API of kubernetes, a kubernetes base load input by a user.

17. The apparatus of any one of claims 10-16, wherein, The application module is further configured to apply for a resource instance from an IaaS when a number of resource instances included in the target resource pool is less than a preset threshold.

18. The apparatus of any one of claims 10-17, wherein, The determination module is further configured to determine that the plurality of resource instances belong to the target resource pool according to labels corresponding to the plurality of resource instances, wherein the labels include at least one of the following information: a type of a resource instance, a specification of a resource instance, a supply mode of a resource instance, and a topology relationship of a resource instance.

19. A cluster of computing devices, characterized in that, at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method of any one of claims 1-8.

20. A computer program product comprising instructions, characterized in that, The instructions, when executed by the cluster of computing devices, cause the cluster of computing devices to perform the method of any one of claims 1-8.

21. A computer-readable storage medium, characterized in that, computer program instructions, which, when executed by the cluster of computing devices, cause the cluster of computing devices to perform the method of any one of claims 1-8.

Citation Information

Patent Citations

  • High-performance computing cloud platform resource scheduling method and system and storage medium

    CN114780213A

  • Cloud game platform heterogeneous resource allocation method, computer device and storage medium

    CN117076133A

  • Scheduler for planetary-level computing system

    CN117099083A

  • Artificial Intelligence And Machine Learning Hyperscale Infrastructure

    US20230073931A1

  • Planet-scale, fully managed artificial intelligence infrastructure service

    WO2022211980A1