Task processing method and system
By working collaboratively with the task management and processing platform, the problem of high operational complexity of heterogeneous computing nodes is solved, enabling efficient heterogeneous computing task processing without user awareness, supporting various heterogeneous computing scenarios and improving resource utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ALIBABA (CHINA) CO LTD
- Filing Date
- 2022-04-24
- Publication Date
- 2026-04-21
AI Technical Summary
In existing technologies, the operation and maintenance management of heterogeneous computing nodes is highly complex, which prevents users from focusing on heterogeneous computing tasks and reduces execution efficiency.
Through the collaborative work of the task management platform and the task processing platform, the target virtual node is determined from the initial virtual nodes based on the attribute information of the target task, and the task is sent to the task processing platform. The resources of different processing modules are used to process the target task, avoiding user management operations on the virtual node.
It enables heterogeneous computing task processing without the user's awareness, improves task processing efficiency, reduces operation and maintenance complexity, and ensures full utilization of heterogeneous resources and support for various heterogeneous computing scenarios.
Smart Images

Figure CN114995994B_ABST
Abstract
Description
Technical Field
[0001] The embodiments in this specification relate to the field of computer technology, and in particular to a task processing method. Background Technology
[0002] With the continuous development of computer technology and virtualization, the proportion of heterogeneous computing tasks based on heterogeneous computing devices is rapidly increasing. For example, the proportion of heterogeneous computing based on heterogeneous computing processors (such as graphics processing units, GPUs) is rapidly increasing, and thus it is widely used in fields such as audio and video production, graphics and image processing, AI training, etc.
[0003] In existing technologies, many internet companies virtualize heterogeneous computing processors to obtain virtual computing nodes, which are then provided to users to execute heterogeneous computing tasks. However, existing technologies do not take into account the high complexity of the operation and maintenance of virtual computing nodes, such as the need for management and diagnostics. When users perform heterogeneous computing based on virtual computing nodes, they cannot focus on the heterogeneous computing tasks themselves, thus reducing the execution efficiency of heterogeneous computing tasks. Summary of the Invention
[0004] In view of the above, embodiments of this specification provide a task processing method. One or more embodiments of this specification also relate to a task processing system, a computing device, a computer-readable storage medium, and a computer program, to address the technical deficiencies existing in the prior art.
[0005] According to a first aspect of the embodiments of this specification, a task processing method is provided, applied to a task processing system, the system including a task management platform and a task processing platform, wherein...
[0006] The task management platform, based on the received task attribute information of the target task, determines the target virtual node corresponding to the task attribute information from the initial virtual nodes; and
[0007] The target task is sent to the task processing platform based on the target virtual node;
[0008] The task processing platform determines the task resource parameters corresponding to the target task, and based on the task resource parameters, determines the processing resources of a first processing module and a second processing module for the target task, wherein the first processing module and the second processing module are different; and
[0009] The target task is processed based on the processing resources of the first processing module and the processing resources of the second processing module.
[0010] According to a second aspect of the embodiments of this specification, a task processing system is provided, including a task management platform and a task processing platform, wherein...
[0011] The task management platform is configured to determine, based on the received task attribute information of the target task, a target virtual node corresponding to the task attribute information from the initial virtual nodes; and
[0012] The target task is sent to the task processing platform based on the target virtual node;
[0013] The task processing platform is configured to determine the task resource parameters corresponding to the target task, and based on the task resource parameters, determine the processing resources of a first processing module and a second processing module for the target task, wherein the first processing module and the second processing module are different; and
[0014] The target task is processed based on the processing resources of the first processing module and the processing resources of the second processing module.
[0015] According to a third aspect of the embodiments of this specification, a computing device is provided, comprising:
[0016] Memory and processor;
[0017] The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, they implement the steps of the task management platform in the task processing system to which the task processing method is applied, or implement the steps of the task processing platform in the task processing system to which the task processing method is applied.
[0018] According to a fourth aspect of the embodiments of this specification, a computer-readable storage medium is provided that stores computer-executable instructions, which, when executed by a processor, implement the steps of a task management platform in a task processing system to which the task processing method is applied, or implement the steps of a task processing platform in a task processing system to which the task processing method is applied.
[0019] According to a fifth aspect of the embodiments of this specification, a computer program is provided, wherein when the computer program is executed in a computer, it causes the computer to perform the steps of a task management platform in a task processing system to which the task processing method is applied, or to implement the steps of a task processing platform in a task processing system to which the task processing method is applied.
[0020] The task processing method provided in this specification is applied to a task processing system, which includes a task management platform and a task processing platform. The task management platform determines a target virtual node corresponding to the task attribute information from an initial set of virtual nodes based on the received target task's task attribute information; and sends the target task to the task processing platform based on the target virtual node. The task processing platform determines task resource parameters corresponding to the target task, and determines processing resources for a first processing module and a second processing module for the target task based on the task resource parameters, wherein the first processing module and the second processing module are different; and processes the target task based on the processing resources of the first processing module and the second processing module.
[0021] Specifically, this task processing method manages virtual nodes through a task management platform, thereby sending the target task to the task processing platform and processing the target task based on the first and second processing modules of the task processing platform. This achieves the execution of the target task while avoiding the problem of users needing to manage virtual nodes, further enabling users to focus on the target task itself and improving the processing efficiency of the target task. Attached Figure Description
[0022] Figure 1 This is a schematic diagram of the structure of a heterogeneous computing pooling system for AI inference scenarios provided in one embodiment of this specification;
[0023] Figure 2 This is a schematic diagram illustrating an application scenario of a task processing method provided in one embodiment of this specification;
[0024] Figure 3 This is a flowchart illustrating a task processing method provided in one embodiment of this specification;
[0025] Figure 4 This is a schematic diagram of algorithm library interception in a task processing method provided in one embodiment of this specification;
[0026] Figure 5 This is a flowchart illustrating the processing procedure of a task processing method provided in one embodiment of this specification.
[0027] Figure 6 This is a schematic diagram of the structure of a task processing system provided in one embodiment of this specification;
[0028] Figure 7 This is a structural block diagram of a computing device provided in one embodiment of this specification. Detailed Implementation
[0029] Many specific details are set forth in the following description to provide a full understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar extensions without departing from the spirit of this specification. Therefore, this specification is not limited to the specific implementations disclosed below.
[0030] The terminology used in one or more embodiments of this specification is for the purpose of describing particular embodiments only and is not intended to be limiting of the one or more embodiments of this specification. The singular forms “a,” “described,” and “the” as used in one or more embodiments of this specification and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.
[0031] It should be understood that although the terms first, second, etc., may be used to describe various information in one or more embodiments of this specification, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, first may also be referred to as second without departing from the scope of one or more embodiments of this specification, and similarly, second may also be referred to as first. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to a determination."
[0032] First, the terms and concepts used in one or more embodiments of this specification will be explained.
[0033] GPU: Generally refers to Graphics Processing Unit. A graphics processing unit (GPU), also known as a display core, visual processor, or display chip, is a microprocessor specifically designed to perform image and graphics-related calculations on personal computers, workstations, game consoles, and some mobile devices (such as tablets and smartphones).
[0034] VPU: VPU (Video Processing Unit) is a new core engine for video processing platforms, featuring hardware decoding capabilities and the ability to reduce CPU (Central Processing Unit) load. Additionally, VPUs can reduce server load and network bandwidth consumption. This distinguishes it from GPU (Graphics Processing Unit). A graphics processing unit comprises three main modules: a video processing unit, an external video module, and a post-processing module.
[0035] TPU: A processor for training neural networks, primarily used for deep learning and AI (artificial intelligence) computations. TPUs are programmable like GPUs and CPUs, and use a CISC (Complex Instruction Set Computing) instruction set. As a machine learning processor, it supports not only a single type of neural network but also convolutional neural networks, LSTM (Long Short-Term Memory) artificial neural networks, fully connected networks, and many others. TPUs employ low-precision (8-bit) computation to reduce the number of transistors used per operation.
[0036] GPGPU: General-purpose computing on graphics processing units (GPGPUs) are graphics processing units that utilize graphics processing capabilities to perform general-purpose computing tasks that would otherwise be handled by the central processing unit (CPU). These general-purpose computations are often unrelated to graphics processing. Due to the powerful parallel processing capabilities and programmable pipelines of modern GPUs, stream processors can handle non-graphics data. Especially when dealing with Single Instruction Multiple Data (SIMD) applications where the computational load far exceeds the data scheduling and transfer requirements, GPGPUs significantly outperform CPU-based applications.
[0037] Hardware Encoder (NVENC): A video encoding unit built into a graphics card; other manufacturers' graphics cards do not have corresponding hardware video encoding units.
[0038] Hardware Decoder (NVDEC): A video decoding unit built into a graphics card; graphics cards from other manufacturers do not have corresponding hardware video decoding units.
[0039] SP (Streaming Processor, Stream Processing Units): Stream processors are used to directly map multimedia graphics data streams onto the stream processor for processing. There are two types: programmable and non-programmable.
[0040] CUDA Core: The abbreviation for Stream Processor is SP, but NVIDIA names its SP as CUDA Core.
[0041] Tensor Core: A Tensor Core is a dedicated execution unit designed specifically for performing tensor or matrix operations.
[0042] AI: Artificial Intelligence.
[0043] Filter: A filter that filters out other substances.
[0044] ResNet: A neural network for image recognition.
[0045] VGG-Net: A deep convolutional neural network for image recognition.
[0046] With the advancement of computer technology and support for heterogeneous computing hardware in serverless scenarios, many enterprises will gradually migrate various types of heterogeneous computing tasks to serverless platforms. For example, these heterogeneous computing tasks can be audio and video production, AI training, AI inference, graphics and image processing, rendering scenarios, etc.
[0047] On the one hand, the proportion of GPU-based heterogeneous computing is rapidly increasing. For example, GPUs are widely used in audio and video production, graphics and image processing, AI training, AI inference, and rendering scenarios to achieve speedups of several times or even tens of thousands of times compared to CPUs. On the other hand, based on the popularization of cloud computing and the continuous upward shift of computing interfaces, more and more customers are migrating from VMs (virtual machines) and containers to serverless elastic computing platforms, allowing customers to focus on their own heterogeneous computing tasks and shield themselves from many details beyond heterogeneous computing tasks such as cluster management, observability, and diagnostics.
[0048] However, with the support of serverless platforms for GPU heterogeneous computing tasks, the limitations imposed by the von Neumann single-computer architecture on both general-purpose computing processors (e.g., CPUs) and heterogeneous computing processors (e.g., GPUs, VPUs, TPUs), and the increasing scale of heterogeneous computing in serverless scenarios, have fully exposed the problems caused by the inability to decouple general-purpose and heterogeneous computing. These problems include low cluster resource utilization, the inability to seamlessly integrate various heterogeneous hardware resources, and high operational complexity. Specifically, these problems include three aspects:
[0049] The first aspect is low resource utilization: when one type of general-purpose computing hardware or heterogeneous computing hardware reaches full resource utilization, the other type cannot continue to use its resources. In particular, when CPU utilization is full, expensive GPU hardware cannot continue to be used. This constraint, where a bottleneck in one resource causes the other to be unusable, macroscopically leads to waste of cluster resources and costs. Looking further, a GPU board integrates different computing and storage units, such as CUDA Cores, Tensor Cores, hardware encoders, hardware decoders, video memory, and interconnect links. Under limited heterogeneous computing workloads running on a single machine, such as running only AI or only audio / video production, not all computing and storage units can be used, microscopically resulting in waste of board resources and costs.
[0050] The second aspect is the inability to seamlessly integrate various heterogeneous hardware resources: With the emergence of heterogeneous computing hardware for various workloads, especially GPUs and VPUs for audio and video production scenarios, and GPUs, TPUs, and NPUs for AI production scenarios, the newly emerging heterogeneous computing hardware cannot be integrated into the Serverless platform in a form that is not perceived by users, which objectively makes it difficult for various heterogeneous resources to be quickly put into production.
[0051] The third aspect is the high complexity of operation and maintenance: heterogeneous computing hardware has a certain failure rate, for example, the failure rate of GPU boards remains at around 3% per year. When heterogeneous computing hardware fails, downtime maintenance will cause both general-purpose computing hardware and heterogeneous computing hardware to be taken offline for maintenance. Even if the other side is still running normally, it will objectively cause waste of resources and costs; at the same time, this failure rate will also introduce complexity to system operation and maintenance.
[0052] Based on this, this specification provides a heterogeneous computing pooling system architecture for AI inference scenarios, see [link to documentation]. Figure 1 , Figure 1 This is a schematic diagram of a heterogeneous computing pooling system for AI inference scenarios, provided in one embodiment of this specification. The heterogeneous computing pooling system includes general-purpose computing nodes and a heterogeneous computing cluster. The general-purpose computing nodes run an AI algorithm library used to execute AI inference tasks and intercept AI algorithm requests. The algorithm library also includes a remote transfer module used to send heterogeneous computing tasks submitted by users to the general-purpose computing nodes to the heterogeneous computing cluster. The heterogeneous computing cluster contains multiple heterogeneous GPU models used to execute the heterogeneous computing tasks. The working principle of this heterogeneous computing pooling system includes:
[0053] First, the user needs to purchase a general-purpose computing node and manage it. This general-purpose computing node is used to run code programs. This general-purpose computing node can be understood as the node that runs the code program, such as a cloud server, virtual machine, instance, container, etc.
[0054] Secondly, users write AI inference programs and send them to general computing nodes; by running the AI computing library method in the general computing nodes, operator interception logic is implemented on the AI inference programs, thereby enabling the implementation of operators to be computed by the local GPU and intercepted to be implemented by the heterogeneous computing cluster at the remote end of the high-speed transmission network.
[0055] Finally, the heterogeneous computing cluster is responsible for distributing heterogeneous computing tasks (i.e., AI inference programs) from the host side (general computing node side) to the actual heterogeneous computing device side (heterogeneous GPU side), thereby executing the actual heterogeneous computing processing flow.
[0056] However, this heterogeneous computing pooling system architecture has the following three drawbacks:
[0057] The first issue is the limited range of heterogeneous computing scenarios it supports: the system architecture only supports AI inference scenarios and cannot cover AI training scenarios, audio and video production scenarios, and graphics and image processing scenarios.
[0058] The second aspect is the low utilization rate of heterogeneous resources: Figure 1 It is evident that for heterogeneous computing tasks in AI inference scenarios, only [the following method was used] Figure 1 The CUDA Core, Tensor Core, and memory units are in use, while the hardware encoding unit, hardware decoding unit, and inter-card interconnect unit are completely idle.
[0059] The third aspect is the high complexity of operation and maintenance: Figure 1 As can be seen, this system architecture is designed for VM (virtual machine) users, who need to manage and maintain general computing nodes and mount heterogeneous computing pool clusters themselves, resulting in high complexity in operation and maintenance.
[0060] Based on this, the embodiments of this specification provide a task processing method, which proposes a heterogeneous computing pooling system structure in a serverless scenario, thereby ensuring that heterogeneous computing tasks on the user side are unaware of the problem and solving various problems caused by the inability to decouple general computing and heterogeneous computing in a serverless scenario.
[0061] Specifically, this specification provides a task processing method, and also relates to a task processing system, a computing device, a computer-readable storage medium, and a computer program, which will be described in detail in the following embodiments.
[0062] See Figure 2 , Figure 2 This is a schematic diagram of a heterogeneous computing pooling system applied to a serverless scenario in a task processing method according to an embodiment of this specification. The heterogeneous pooling system includes a serverless platform, general-purpose computing nodes, and a heterogeneous computing cluster. The serverless platform can be understood as a platform capable of managing the general-purpose computing nodes. These general-purpose computing nodes can run various types of algorithm libraries, such as AI algorithm libraries, audio / video algorithm libraries, and general-purpose algorithm libraries. It should be noted that the general-purpose algorithm library refers to algorithm libraries other than AI and audio / video algorithm libraries, such as graphics and image processing algorithm libraries, AI training algorithm libraries, graphics and image algorithm libraries, rendering scene algorithm libraries, etc.
[0063] In addition, each algorithm library includes a remote deployment module, which is used to send heterogeneous computing tasks submitted by users to general-purpose computing nodes to a heterogeneous computing cluster. This heterogeneous computing cluster contains heterogeneous GPUs and heterogeneous VPUs, each containing different computing units, such as hardware encoding units, hardware decoding units, and video memory units. By incorporating different computing units in these heterogeneous GPUs and VPUs, different types of heterogeneous computing tasks can be executed. For example, image recognition heterogeneous computing tasks can be performed through... Figure 2 The task is executed using units such as CUDACore, Tensor Core, and memory units. This heterogeneous audio and video computing task can be performed through... Figure 2 The hardware decoding unit and hardware encoding unit in the system perform the execution.
[0064] Based on this, taking heterogeneous computing tasks as image recognition tasks as an example, for... Figure 2 This document explains the working principle of the heterogeneous computing pooling system. It should be noted that the heterogeneous computing tasks that this system can handle include, but are not limited to, AI inference, audio / video production, and image processing. To avoid excessive detail, the processing procedures for audio / video production and image processing tasks can be referenced from the processing procedures for image recognition tasks.
[0065] Specifically, Figure 2 The working principle of the system architecture includes steps one through three:
[0066] Step 1: The user writes heterogeneous computing code, which includes, but is not limited to, AI inference scenarios, audio and video production scenarios, graphics and image processing scenarios, etc. For example, this heterogeneous computing code is image recognition code.
[0067] Step 2: The user submits the written image recognition code to the Serverless platform. The Serverless platform treats the image recognition code as an image recognition task (workload) and assigns a corresponding general computing node to the image recognition task. The general computing node runs a library of graphics and image algorithms that are designed to process the image recognition task.
[0068] The general-purpose computing node processes the image recognition task in a program flow manner; specifically, it can be:
[0069] First, the general-purpose computing node determines the corresponding image recognition algorithm for the image recognition task from a library of graphics and image algorithms. It also determines the operators included in that image recognition algorithm. This image recognition algorithm can be ResNet, VGG-Net, etc., and this specification does not specifically limit it.
[0070] The user-written images to be recognized, included in the image recognition task, are input into the operators (algorithm logic) contained in the image recognition algorithm.
[0071] Secondly, the system intercepts graphics and image algorithm libraries; these libraries intercept operators (algorithm logic) implemented using local GPUs and local CPUs.
[0072] Finally, through the remote extension module in this graphics and image algorithm library, operators implemented on the local CPU and local GPU are extended to a remote heterogeneous computing cluster via a high-speed transmission network.
[0073] Step 3: This heterogeneous computing cluster, after considering the utilization of various heterogeneous hardware models, distributes heterogeneous computing tasks from different users to heterogeneous hardware models with lower utilization. This further distributes the tasks to the actual heterogeneous computing devices, thus executing the actual heterogeneous computing processing flow. For example, after receiving the operator (algorithm logic) determined based on the image recognition task, the heterogeneous computing cluster, considering the utilization of various heterogeneous hardware models, distributes the operator to... Figure 2 It is executed in the hardware coding unit of the heterogeneous GPU model with low utilization.
[0074] Based on this, the task processing method provided in this specification takes into account some problems existing in heterogeneous computing systems, including but not limited to the limited support for heterogeneous computing scenarios, low utilization of heterogeneous resources, and high operational complexity; therefore, it provides a heterogeneous computing pooling system in a Servlet-less scenario to solve the above three shortcomings, specifically including:
[0075] First, it enables heterogeneous computing scenarios to evolve from a single type to a diverse range: it not only supports AI inference scenarios, but also covers AI training scenarios, audio and video production scenarios, image recognition, graphics and image processing, and general heterogeneous computing processing scenarios.
[0076] Secondly, it achieves full utilization of heterogeneous resources: various types of heterogeneous computing tasks from multiple users are fully scheduled in the heterogeneous computing cluster, enabling... Figure 2 The CUDA Cores, Tensor Cores, and memory units in the GPU are fully utilized in AI inference and training scenarios; Figure 2 The hardware encoding and decoding units are fully utilized in audio and video production scenarios. Figure 2 The card-to-card interconnection unit is fully utilized in general heterogeneous production scenarios.
[0077] Finally, it achieves low operation and maintenance complexity: it enables users to operate and maintain general computing nodes and mount heterogeneous computing pool clusters themselves, and all operation and maintenance work is transferred from the user side to the platform side.
[0078] Furthermore, the heterogeneous computing pooling system in the Serverless scenario can also achieve seamless integration of various heterogeneous resource hardware: that is, the algorithm library APIs that users face do not need any modification, and the Serverless platform is responsible for the implementation of the algorithm library APIs, thereby ensuring that the user's heterogeneous computing workloads are scheduled to remote heterogeneous computing clusters without the user's awareness.
[0079] Figure 3 A flowchart of a task processing method according to an embodiment of this specification is shown. This task processing method is applied to a task processing system, which includes a task management platform and a task processing platform. Specifically, the task processing method includes the following steps.
[0080] Step 302: The task management platform, based on the received task attribute information of the target task, determines the target virtual node corresponding to the task attribute information from the initial virtual nodes; and
[0081] The target task is sent to the task processing platform based on the target virtual node.
[0082] The task management platform can be understood as a platform that can manage the execution of the target task, such as the Serverless platform in the above embodiment; the task processing platform can be understood as a platform that executes heterogeneous computing tasks, such as the heterogeneous computing cluster in the above embodiment; the target task can be understood as a task that requires heterogeneous computing. It should be noted that the heterogeneous computing task includes, but is not limited to, AI inference, audio and video production, image recognition tasks, graphics and image processing tasks, etc.
[0083] The target task's attribute information includes, but is not limited to, the target task's type information or the corresponding API interface. In practical applications, users can call the capabilities provided by the algorithm library through the API interface provided by the Serverless platform. For example, if the API interface is an image recognition interface, then when calling the image recognition interface, the user needs to input the image to be recognized into the Serverless platform through the API interface. Generally, the Serverless platform performs recognition calculations on the image to be recognized, realizing the image recognition function required by the user.
[0084] The initial virtual node is understood as a general-purpose computing node in the Serverless platform that can be configured to perform the heterogeneous computing task; the target virtual node can be understood as a general-purpose computing node that can perform a specific type of heterogeneous computing task. For example, if the heterogeneous computing task is an image task, the target virtual node can be a general-purpose computing node running an audio and video processing algorithm library.
[0085] Specifically, users can send target tasks to the task management platform. After receiving the target task, the task management platform can determine the target virtual node corresponding to the task attribute information from the initial virtual nodes based on the task attribute information. Then, it sends the target task to the task processing platform through the target virtual node, so that the task management platform can execute the target task.
[0086] The following example illustrates how a task processing method can be applied in a serverless scenario. It explains how the task management platform determines the target virtual node corresponding to the target task and sends the target task to the task processing platform through this virtual node. In this example, the task management platform is a serverless platform, the task processing platform is a heterogeneous computing cluster, and the target task is an image recognition task.
[0087] Based on this, users can submit image recognition tasks to the Serverless platform to identify the animal in an image. The image recognition task contains an image of the animal to be identified. After receiving the image recognition task, the Serverless platform can allocate a general computing node with an audio and video processing algorithm library to the image recognition task based on the task type.
[0088] Based on this, the image recognition task, originally implemented on the local CPU and GPU, is intercepted by the computing node and redirected to a remote heterogeneous computing cluster. This facilitates the subsequent execution of the image recognition task on the heterogeneous computing cluster.
[0089] Furthermore, in the embodiments provided in this specification, the initial virtual node is a general-purpose computing node;
[0090] Accordingly, determining the target virtual node corresponding to the task attribute information from the initial virtual nodes based on the received target task's task attribute information includes:
[0091] The task management platform determines the target general computing node corresponding to the task attribute information from the general computing nodes based on the received task attribute information of the target task.
[0092] In this context, the general-purpose computing node can be understood as a node in the serverless platform used to process heterogeneous computing tasks sent by the terminal. For example, the general-purpose computing node can be a virtual machine, an instance, etc.
[0093] Specifically, the user can send a target task to the task management platform. After receiving the target task, the platform can determine the target general computing node corresponding to the task's attribute information from the general computing nodes. This avoids the need for the user to manage general computing nodes, allowing the user to focus on the target task itself and improving its processing efficiency.
[0094] In one embodiment provided in this specification, the computing node runs an algorithm library, and the processing of the image recognition task by the computing node can be implemented through the algorithm library, thereby achieving the purpose of intercepting the image recognition task and directing it to the heterogeneous computing cluster based on the algorithm library. The specific implementation method is as follows.
[0095] Sending the target task to the task processing platform based on the target virtual node includes:
[0096] The task management platform identifies the task execution module running in the target virtual node;
[0097] The target task is sent to the task processing platform based on the task execution module.
[0098] The task execution module is an algorithm library that runs on a general-purpose computing node.
[0099] Specifically, after the task management platform determines the corresponding target virtual node for the target task, it can identify the task execution module running on that target virtual node and send the target task to the task processing platform based on that task execution module. For example, after the serverless platform determines a general computing node for an image recognition task, it can intercept the image recognition task and send it to a heterogeneous computing cluster based on the algorithm library running on the general computing node.
[0100] Furthermore, in one embodiment provided in this specification, the detailed steps of intercepting the image recognition task to a remote purchased computing cluster based on the algorithm library are as follows.
[0101] The step of sending the target task to the task processing platform based on the task execution module includes:
[0102] The task management platform determines the task parameters of the target task and determines the initial execution unit corresponding to the target task from the task execution module;
[0103] The task parameters and the initial execution unit are used to generate the target execution unit corresponding to the target task.
[0104] Based on the task sending unit in the task execution module, the target execution unit is sent to the task processing platform.
[0105] In this context, the initial execution unit can be understood as the internal algorithmic logic contained within an algorithm capable of processing the target task. For example, if the target task is image recognition, the initial execution unit can be understood as the image recognition operator corresponding to the image recognition algorithm in the image algorithm library. If the target task is AI inference, the initial execution unit can be understood as the AI operator corresponding to the AI inference algorithm in the AI algorithm library. If the target task is audio / video processing, the initial execution unit can be understood as the encoding filter and interface filter corresponding to the audio / video processing algorithm in the audio / video database.
[0106] The task parameters of the target task can be understood as the data required during the task execution process; for example, if the target task is an image recognition task, the task parameter can be the image to be recognized; if the target task is an AI inference task, the task parameter can be the AI code to be inferred; if the target task is a scene rendering task, the task parameter can be the scene file to be rendered; if the target task is an audio and video processing task, the task parameter can be the audio and video file to be processed.
[0107] The target execution unit can be understood as an initial execution unit containing task parameters. For example, a serverless platform inputs the image to be recognized into an image recognition operator, and then executes the image recognition operator containing the image to be recognized through a heterogeneous computing cluster to obtain the image recognition result.
[0108] This task sending unit can be understood as a remote extension module in the algorithm library.
[0109] Specifically, the task management platform is able to determine the task parameters from the target task and the initial execution unit corresponding to the target task from the task execution module; by inputting the task parameters into the initial execution unit, the target execution unit corresponding to the target task is generated; and the target execution unit is sent to the task processing platform through the task sending unit in the task execution module.
[0110] Following the example above, see [link to example]. Figure 4 , Figure 4This is a schematic diagram illustrating algorithm library interception in a task processing method provided in one embodiment of this specification. Specifically, heterogeneous computing pooling in a serverless scenario is achieved through algorithm library layer interception, see [link to documentation]. Figure 4 , Figure 4 This paper introduces the interception details of different types of algorithm libraries. This algorithm library consists of four layers, namely... Figure 4 Layer 1 to Layer 4 in the middle.
[0111] Layer 1 (the first layer) allows users to write heterogeneous computing tasks for different scenarios. In other words, the Serverless platform can provide users with a variety of algorithm libraries applicable to various heterogeneous scenarios, including but not limited to AI training, AI inference, audio and video production, and graphics and image processing.
[0112] This makes it easier for users to write heterogeneous computing tasks for different scenarios based on this algorithm library.
[0113] Layer 2 (first layer) users can write heterogeneous computing tasks based on algorithm libraries for different scenarios. These algorithm libraries include AI algorithm libraries, audio / video algorithm libraries, and general heterogeneous algorithm libraries. The general heterogeneous algorithm library can be understood as other algorithm libraries capable of heterogeneous computing besides the AI algorithm library and audio / video algorithm library, such as graphics and image algorithm libraries.
[0114] In other words, the serverless platform can provide users with various types of API interfaces, which are implemented by various types of algorithm libraries. For example, the image recognition API interface is implemented by an image processing algorithm library. When users need to implement image recognition functions, they can call the image recognition functions provided by the image processing algorithm library through this API interface.
[0115] Meanwhile, the algorithm library provided by the serverless platform ensures that the upstream API remains unchanged, thus guaranteeing a seamless user experience. This means that the API interface provided to the user remains consistent, even if the algorithm library implementing that API interface changes; thus ensuring a seamless user experience.
[0116] Among them, layer 3 (the third layer) is implemented by the algorithm library through different internal logic.
[0117] In a serverless platform, the API functionality provided to users by the algorithm library is implemented through its internal algorithmic logic. For example, the AI inference functionality provided to users through the API interface of the AI algorithm library is implemented through the AI operators of the AI inference algorithms contained in the AI algorithm library.
[0118] Based on this, when users call the image recognition function provided by the graphics and image algorithm library through the API interface, they need to input the image to be recognized to the Serverless platform through the API interface. The Serverless platform takes the image to be recognized as the image recognition task and abstracts the computation task (image recognition task) into several image recognition operators through the algorithm library. Subsequently, the recognition operation on the image to be recognized is performed based on the image recognition operator.
[0119] Similarly, AI algorithm libraries can abstract computational tasks into several AI operators, and audio / video algorithm libraries can abstract computational tasks into encoding filters and decoding filters, mapping the corresponding algorithm logic to hardware implementations. Furthermore, mapping the corresponding algorithm logic to hardware implementations can be understood as mapping the algorithm logic (AI operators, encoding filters, or decoding filters) to heterogeneous computing hardware devices for execution.
[0120] Layer 4 (the fourth layer) is achieved by adding a remote heterogeneous computing cluster forwarding mechanism, thereby pulling the corresponding algorithm logic to a remote heterogeneous computing cluster.
[0121] The algorithm library in the serverless platform adds a remote heterogeneous computing cluster forwarding function. This function intercepts the algorithm library and redirects the implementation of heterogeneous computing tasks from local heterogeneous computing (local CPU, local GPU) to a remote heterogeneous computing cluster over the network. This achieves the goal of pulling the corresponding algorithm logic to a remote heterogeneous computing cluster, avoiding the decoupling problem between general computing and heterogeneous computing.
[0122] In one embodiment provided in this specification, the task management platform determines the target virtual node corresponding to the task attribute information from the initial virtual nodes based on the received task attribute information of the target task, including:
[0123] The task management platform determines the task execution interface provided by the task execution module and provides the task execution interface to the task generation object;
[0124] Receive the target task sent by the task generation object based on the task execution interface.
[0125] The task execution interface can be understood as the interface provided by the algorithm library to the user to implement specific functions. This interface can be an API interface.
[0126] The task generation object can be understood as the object that generates the target task and sends the target task to the task management platform, such as code writers, tenants of general computing nodes, etc.
[0127] Using the previous example, the graphics and image algorithm library in the Serverless platform can provide users with an API interface for implementing image recognition functions. After the Serverless platform provides this API interface to users, users can initiate image recognition tasks to the Serverless platform based on this API interface, thus ensuring that users are completely unaware of the process.
[0128] Furthermore, in the embodiments provided in this specification, when the task management platform determines the corresponding general computing node for a target task, it can refer to which API function interface the target task was initiated based on. Based on this, the target task is assigned to the general computing node that runs on the algorithm library that provides the API function interface, thereby avoiding the need for users to perform operation and maintenance management on the general computing node and improving the user experience; the specific implementation method is as follows.
[0129] The task management platform, based on the received task attribute information of the target task, determines the target virtual node corresponding to the task attribute information from the initial virtual nodes, including:
[0130] The task management platform receives the target task, determines the task execution interface corresponding to the target task, and identifies the target virtual node that provides the task execution interface from the initial virtual nodes.
[0131] Continuing with the previous example, after a user initiates an image recognition task to the serverless platform through an API interface that implements image recognition functionality, the serverless platform can determine that the image recognition task was initiated through the image recognition API interface. Based on this, the serverless platform allocates the image recognition task to a general-purpose computing node running a graphics and image algorithm library.
[0132] Furthermore, the serverless platform can also allocate corresponding virtual nodes based on the type of the target task, as shown in the following implementation method.
[0133] The task management platform, based on the received task attribute information of the target task, determines the target virtual node corresponding to the task attribute information from the initial virtual nodes, including:
[0134] The task management platform determines the task type information of the received target task and identifies the target virtual node corresponding to the task attribute information from the initial virtual nodes.
[0135] Using the previous example, after receiving an image recognition task, the serverless platform can determine that the task is image recognition. Based on this, the serverless platform assigns the image recognition task to a general computing node that runs a graphics and image algorithm library.
[0136] Step 304: The task processing platform determines the task resource parameters corresponding to the target task, and based on the task resource parameters, determines the processing resources of the first processing module and the processing resources of the second processing module for the target task, wherein the first processing module and the second processing module are different; and
[0137] The target task is processed based on the processing resources of the first processing module and the processing resources of the second processing module.
[0138] The resource parameters for this task can be understood as the resources required to run the target task. For example, performing an image recognition task requires 5% of the computing power of a CPU, as well as the full computing power of the hardware encoding and decoding units in two GPUs.
[0139] The first processing module can be understood as a general-purpose computing device in a heterogeneous computing cluster, such as a CPU. The second processing module can be understood as a heterogeneous computing device in a heterogeneous computing cluster, such as a GPU or VPU.
[0140] Specifically, after receiving the target task sent by the task management platform based on the target virtual node, the task processing platform can calculate the task resource parameters required to execute the target task. Based on the task resource parameters, the platform allocates the processing resources of the first processing module and the second processing module to the target task from the processing resources corresponding to the first processing module and the second processing module. The first processing module is different from the second processing module.
[0141] Subsequently, the task processing platform processes the target task based on the processing resources of the first processing module and the processing resources of the second processing module.
[0142] Continuing with the previous example, after receiving an image recognition task, the heterogeneous computing cluster can calculate that the CPU computing resources required to execute the task are 5% and the GPU computing resources are 200%. Based on this, the heterogeneous computing cluster allocates 5% of the computing power of one CPU to the image recognition task and all the computing power of two GPUs to the image recognition task, and executes the image recognition task together through the CPU and the two GPUs, thereby realizing heterogeneous computing.
[0143] Furthermore, after the task processing platform processes the target task based on the processing resources of the first processing module and the second processing module, it can obtain the task processing result of the target task. Based on this, the task processing platform can send the task processing result to the task management platform, which will then provide the task processing result to the task generation object.
[0144] Furthermore, in the embodiments provided in this specification, the task processing platform is a heterogeneous computing cluster;
[0145] Accordingly, determining the processing resources of the first processing module and the second processing module for the target task based on the task resource parameters includes:
[0146] The heterogeneous computing cluster determines the computing resources of the first physical computing module and the second physical computing module for the target task based on the task resource parameters.
[0147] In this context, the heterogeneous computing cluster can be understood as a cluster of physical computing modules that execute heterogeneous computing tasks, independent of the task management platform. For example, it could include a cluster of heterogeneous GPU and CPU models that execute heterogeneous computing tasks, independent of the serverless platform. In practical applications, this heterogeneous computing cluster is connected to the task management platform via a high-speed transmission network.
[0148] The first physical computing module can be understood as a general-purpose computing device, such as a CPU, contained in the heterogeneous computing cluster for processing heterogeneous computing tasks.
[0149] The second physical computing module can be understood as a heterogeneous computing device, such as a GPU or VPU, contained in a heterogeneous computing cluster and used to process heterogeneous computing tasks.
[0150] Specifically, after receiving the target task sent by the task management platform based on the target virtual node, and calculating the task resource parameters required to execute the target task, the heterogeneous computing cluster allocates computing resources from the computing resources corresponding to the first and second physical computing modules to the target task based on these parameters. The heterogeneous computing cluster then processes the target task using the computing resources of the first and second physical computing modules.
[0151] Continuing with the previous example, the heterogeneous computing cluster receives an image recognition task and calculates that the CPU computing resources required to execute the task are 5% and the GPU computing resources are 200%. Based on this, the heterogeneous computing cluster allocates 5% of the computing power of one CPU to the image recognition task and allocates the computing power of both GPUs to the image recognition task. The image recognition task is then executed jointly by the CPU and the two GPUs, thereby achieving heterogeneous computing.
[0152] In one embodiment provided in this specification, determining the processing resources of the first processing module and the processing resources of the second processing module for the target task based on the task resource parameters includes:
[0153] The task processing platform determines the first resource parameter and the second resource parameter corresponding to the target task from the task resource parameters;
[0154] The task processing platform determines the first resource parameter and the second resource parameter corresponding to the target task from the task resource parameters;
[0155] Based on the current status information of the first processing module and the second processing module, the target first processing module is determined from the first processing module, and the target second processing module is determined from the second processing module;
[0156] Based on the first resource parameter, a first processing resource is allocated for the target task from the resources to be allocated in the target first processing module;
[0157] Based on the second resource parameter, a second processing resource is allocated for the target task from the resources to be allocated in the target second processing module.
[0158] The first resource parameter can be understood as the general computing resources required to execute the target task, such as CPU computing power; the second resource parameter is the heterogeneous computing resources required to execute the target task, such as GPU computing power; the resources to be allocated to the first processing module are the remaining computing resources of the general computing device; the resources to be allocated to the second processing module can be understood as the remaining computing resources of the heterogeneous computing device.
[0159] The current operating status information of the first processing module can be understood as the current utilization rate of the general-purpose computing device; the current operating status information of the second processing module can be understood as the current utilization rate of the heterogeneous computing device. The first processing module can be understood as the general-purpose computing device with the lowest utilization rate; the second processing module can be understood as the heterogeneous computing device with the lowest utilization rate.
[0160] It should be noted that the general-purpose computing device can be understood as a CPU, or a general-purpose machine hardware with a CPU deployed; the heterogeneous computing device can be understood as a GPU, VPU, or a heterogeneous machine hardware with a GPU and / or VPU deployed.
[0161] Specifically, after calculating the task resource parameters corresponding to the target task, the task processing platform can determine the first resource parameter and the second resource parameter required to execute the target task from the task resource parameters.
[0162] Based on the current state information of the first and second processing modules, a target first processing module is determined from the first processing module, and a target second processing module is determined from the second processing module. For example, a heterogeneous computing cluster determines the CPU with the lowest utilization rate from multiple CPUs and the GPU with the lowest utilization rate from multiple GPUs based on the utilization rates of the CPU and GPU.
[0163] Based on the first resource parameter, the first processing resource is allocated for the target task from the remaining unallocated resources of the target first processing module;
[0164] Furthermore, based on the second resource parameter, the second processing resource is allocated from the remaining unallocated resources of the target second processing module to the target task, thereby enabling the Serverless platform to determine the heterogeneous hardware models with lower heterogeneous hardware utilization for heterogeneous computing tasks by combining the utilization of different types of heterogeneous computing tasks of different tenants through heterogeneous computing clusters.
[0165] In the embodiments provided in this specification, determining the target first processing module from the first processing module and the target second processing module from the second processing module based on the current state information of the first processing module and the second processing module includes:
[0166] The task processing platform determines the resources to be allocated to the first processing module and the resources to be allocated to the second processing module based on the current status information of the first processing module and the second processing module.
[0167] Based on the resources to be allocated in the first processing module, the first processing modules are sorted in descending order to obtain a first sorting result, and the first processing module at a preset position in the first sorting result is determined as the target first processing module.
[0168] Based on the resources to be allocated in the second processing module, the second processing modules are sorted in descending order to obtain a second sorting result, and the second processing module at a preset position in the second sorting result is determined as the target second processing module.
[0169] The preset position can be set according to the actual application scenario. For example, the preset position can be the first position, the second position, etc.
[0170] Continuing with the previous example, this current status information represents hardware utilization. Based on this, the heterogeneous computing cluster can monitor the utilization of its CPUs and GPUs. It then determines the remaining computing resources of the CPUs and GPUs based on this utilization. Subsequently, the heterogeneous computing cluster can sort the GPUs in descending order based on their remaining computing resources, obtain the descending sort result, and select the GPU in the first position from this descending sort result, which is the GPU with the largest remaining computing resources.
[0171] Furthermore, the heterogeneous computing cluster can sort the CPUs in descending order based on their remaining computing resources, obtain the descending sorting results, and select the CPU in the first position from the descending sorting results, which is the CPU with the largest remaining computing resources.
[0172] In the embodiments provided in this specification, the step of allocating second processing resources for the target task from the resources to be allocated in the target second processing module based on the second resource parameters includes:
[0173] The task processing platform determines the target resource to be allocated corresponding to the task type information from the resources to be allocated in the second processing module, based on the task type information of the target task.
[0174] Based on the second resource parameter, a second processing resource is allocated from the target resources to be allocated to the target task.
[0175] The resources to be allocated in the second processing module can be understood as the remaining computing resources of multiple computing units contained in a heterogeneous computing device. For example, the remaining computing resources of CUDA Cores, Tensor Cores, memory units, hardware encoding units, hardware decoding units, and inter-card interconnect units in a GPU.
[0176] Correspondingly, the target resources to be allocated can be understood as the remaining computing resources of the computing units capable of executing the target task. For example, in a GPU, the image recognition task is executed through hardware encoding units and hardware decoding units. Based on this, the target resources to be allocated can be understood as the remaining computing resources of the hardware encoding units and hardware decoding units.
[0177] Using the previous example, during the execution of the image recognition task, the heterogeneous computing cluster can determine that the task needs to be executed by the hardware encoding unit and hardware decoding unit in the GPU based on the task type. Therefore, the heterogeneous computing cluster allocates the corresponding computing resources for the image recognition task from the remaining computing resources of the hardware encoding unit and hardware decoding unit in the GPU.
[0178] This enables the creation of heterogeneous computing clusters, which distribute different types of heterogeneous computing tasks to heterogeneous machines with lower hardware utilization based on the utilization of each heterogeneous machine, and then to the actual heterogeneous computing devices to execute the true heterogeneous computing processing flow.
[0179] The task processing method provided in this manual manages virtual nodes through a task management platform, thereby sending the target task to the task processing platform and processing the target task based on the first and second processing modules of the task processing platform. This achieves the execution of the target task while avoiding the problem of users needing to manage virtual nodes, further enabling users to focus on the target task itself and improving the processing efficiency of the target task.
[0180] The following is in conjunction with the appendix Figure 5 Taking the application of the task processing method provided in this specification in a serverless scenario as an example, the task processing method will be further explained. Figure 5 The present specification shows a flowchart of a task processing method according to an embodiment, which includes the following steps.
[0181] Step 502: The user submits heterogeneous computing code to the Serverless platform.
[0182] Specifically, the Serverless platform has various types of algorithm libraries that can be applied to a variety of scenarios, including but not limited to AI inference scenarios, audio and video production scenarios, and graphics and image processing scenarios.
[0183] Meanwhile, the various algorithm libraries within this serverless platform provide API interfaces for implementing different functions. For example, the graphics and image algorithm library provides an image recognition API interface. The serverless platform can then provide these API interfaces to users.
[0184] Users write heterogeneous computing code, which is not limited to AI inference scenarios, but includes, but is not limited to, audio and video production scenarios, graphics and image processing scenarios, etc. For example, the heterogeneous computing code contains an image to be recognized.
[0185] Based on this, after completing the heterogeneous computing code, the user can submit the heterogeneous computing code containing the image to be recognized to the Serverless platform through the image recognition API interface provided by the graphics and image algorithm library, so as to call the image recognition function of the graphics and image algorithm library in the Serverless platform to recognize the image to be recognized.
[0186] Step 504: The Serverless platform identifies common computing nodes for heterogeneous computing code.
[0187] Specifically, the Serverless platform identifies the heterogeneous computing code of the image to be recognized as a heterogeneous computing task for image recognition, and determines a corresponding communication computing node for the heterogeneous computing task. The general computing node runs a graphics and image algorithm library.
[0188] Step 506: The Serverless platform intercepts heterogeneous computing tasks through the algorithm library and redirects them to a heterogeneous computing cluster at a remote location on the network.
[0189] Specifically, the serverless platform determines an image recognition algorithm (such as ResNet) from the graphics and image algorithm library of general computing nodes, processes the image to be recognized through several operators contained in the image recognition algorithm, and maps the operator (algorithm logic) to hardware implementation during the processing.
[0190] Furthermore, by adding the ability to forward remote heterogeneous computing clusters, algorithm library interception is achieved. The implementation of heterogeneous computing tasks (i.e., processing the image to be recognized through operators) is implemented by local heterogeneous computing, and intercepted to the heterogeneous computing cluster at the remote end of the network.
[0191] Step 508: The heterogeneous computing cluster determines the corresponding heterogeneous computing device for the heterogeneous computing task and executes the heterogeneous computing processing flow.
[0192] After receiving a heterogeneous computing task, the heterogeneous computing cluster considers the utilization rate of various heterogeneous hardware models, determines the heterogeneous hardware model with the lowest utilization rate for the task, and distributes the task to the heterogeneous hardware model with the lowest utilization rate. Then, it distributes the task to the actual heterogeneous computing device side to execute the actual heterogeneous computing process.
[0193] The task processing method provided in this manual is a heterogeneous computing method based on a multi-heterogeneous computing pooling system architecture in a serverless scenario. Based on this heterogeneous computing pooling system architecture, the method decouples general-purpose computing and heterogeneous computing through algorithm library interception. It fully schedules different types of heterogeneous computing workloads of different tenants to different types of heterogeneous hardware, thereby solving various problems caused by the inability to decouple general-purpose computing and heterogeneous computing. It ensures that the heterogeneous computing tasks on the user side are unaware of the problems caused by the inability to decouple general-purpose computing and heterogeneous computing in a serverless scenario.
[0194] Corresponding to the above method embodiments, this specification also provides embodiments of a task processing system. Figure 6A schematic diagram of the structure of a task processing system according to one embodiment of this specification is shown. Figure 6 As shown, the task processing system includes a task management platform 602 and a task processing platform 604, wherein...
[0195] The task management platform 602 is configured to determine, based on the received task attribute information of the target task, a target virtual node corresponding to the task attribute information from the initial virtual nodes; and
[0196] The target task is sent to the task processing platform 604 based on the target virtual node;
[0197] The task processing platform 604 is configured to determine the task resource parameters corresponding to the target task, and based on the task resource parameters, determine the processing resources of a first processing module and a second processing module for the target task, wherein the first processing module and the second processing module are different; and
[0198] The target task is processed based on the processing resources of the first processing module and the processing resources of the second processing module.
[0199] Optionally, the task management platform 602 is further configured as follows:
[0200] Identify the task execution module running in the target virtual node;
[0201] The target task is sent to the task processing platform 604 based on the task execution module.
[0202] Optionally, the task management platform 602 is further configured as follows:
[0203] The task parameters of the target task are determined, and the initial execution unit corresponding to the target task is determined from the task execution module;
[0204] The task parameters and the initial execution unit are used to generate the target execution unit corresponding to the target task.
[0205] Based on the task sending unit in the task execution module, the target execution unit is sent to the task processing platform 604.
[0206] Optionally, the task management platform 602 is further configured as follows:
[0207] Determine the task execution interface provided by the task execution module, and provide the task execution interface to the task generation object;
[0208] Receive the target task sent by the task generation object based on the task execution interface.
[0209] Optionally, the task management platform 602 is further configured as follows:
[0210] The target task is received, the task execution interface corresponding to the target task is determined, and the target virtual node providing the task execution interface is determined from the initial virtual nodes.
[0211] Optionally, the task management platform 602 is further configured as follows:
[0212] Determine the task type information of the received target task, and identify the target virtual node corresponding to the task attribute information from the initial virtual nodes.
[0213] Optionally, the task processing platform 604 is further configured to:
[0214] Determine the first resource parameter and the second resource parameter corresponding to the target task from the task resource parameters;
[0215] Based on the current status information of the first processing module and the second processing module, the target first processing module is determined from the first processing module, and the target second processing module is determined from the second processing module;
[0216] Based on the first resource parameter, a first processing resource is allocated for the target task from the resources to be allocated in the target first processing module;
[0217] Based on the second resource parameter, a second processing resource is allocated for the target task from the resources to be allocated in the target second processing module.
[0218] Optionally, the task processing platform 604 is further configured to:
[0219] Based on the current status information of the first processing module and the second processing module, the resources to be allocated to the first processing module and the resources to be allocated to the second processing module are determined.
[0220] Based on the resources to be allocated in the first processing module, the first processing modules are sorted in descending order to obtain a first sorting result, and the first processing module at a preset position in the first sorting result is determined as the target first processing module.
[0221] Based on the resources to be allocated in the second processing module, the second processing modules are sorted in descending order to obtain a second sorting result, and the second processing module at a preset position in the second sorting result is determined as the target second processing module.
[0222] Optionally, the task processing platform 604 is further configured to:
[0223] Based on the task type information of the target task, the target resource to be allocated corresponding to the task type information is determined from the resources to be allocated in the second processing module;
[0224] Based on the second resource parameter, a second processing resource is allocated from the target resources to be allocated to the target task.
[0225] The task processing system provided in this manual manages virtual nodes through a task management platform, thereby enabling the sending of target tasks to the task processing platform and processing of the target tasks based on the first and second processing modules of the task processing platform. This achieves the execution of the target task while avoiding the need for user management of virtual nodes, allowing users to focus on the target task itself and improving the processing efficiency of the target task.
[0226] The above is an illustrative scheme of a task processing system according to this embodiment. It should be noted that the technical solution of this task processing system and the technical solution of the task processing method described above belong to the same concept. For details not described in detail in the technical solution of the task processing system, please refer to the description of the technical solution of the task processing method described above.
[0227] Figure 7 A structural block diagram of a computing device 700 according to one embodiment of this specification is shown. The components of the computing device 700 include, but are not limited to, a memory 710 and a processor 720. The processor 720 is connected to the memory 710 via a bus 730, and a database 750 is used to store data.
[0228] The computing device 700 also includes an access device 740, which enables the computing device 700 to communicate via one or more networks 760. Examples of these networks include a Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), a Personal Area Network (PAN), or a combination of communication networks such as the Internet. The access device 740 may include one or more of any type of wired or wireless network interface (e.g., a Network Interface Card (NIC)), such as an IEEE 802.11 Wireless Local Area Network (WLAN) interface, a Wi-MAX interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, a Near Field Communication (NFC) interface, and so on.
[0229] In one embodiment of this specification, the above-described components of the computing device 700 and Figure 7 Other components, not shown, can also be connected to each other, for example, via a bus. It should be understood that... Figure 7The block diagram of the computing device shown is for illustrative purposes only and is not intended to limit the scope of this specification. Those skilled in the art can add or replace other components as needed.
[0230] The computing device 700 can be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile phones (e.g., smartphones), wearable computing devices (e.g., smartwatches, smart glasses, etc.) or other types of mobile devices, or stationary computing devices such as desktop computers or PCs. The computing device 700 can also be a mobile or stationary server.
[0231] The processor 720 is configured to execute the following computer-executable instructions, which, when executed by the processor 720, implement the steps of the task management platform in the task processing system to which the above-mentioned task processing method is applied, or implement the steps of the task processing platform in the task processing system to which the task processing method is applied.
[0232] The above is an illustrative scheme of a computing device according to this embodiment. It should be noted that the technical solution of this computing device and the technical solution of the task processing method described above belong to the same concept. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the task processing method described above.
[0233] An embodiment of this specification also provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, implement the steps of the task management platform in the task processing system to which the above-described task processing method is applied, or implement the steps of the task processing platform in the task processing system to which the task processing method is applied.
[0234] The above is an illustrative scheme of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium and the technical solution of the task processing method described above belong to the same concept. For details not described in detail in the technical solution of the storage medium, please refer to the description of the technical solution of the task processing method described above.
[0235] An embodiment of this specification also provides a computer program, wherein when the computer program is executed in a computer, it causes the computer to perform the steps of the task management platform in the task processing system to which the above-described task processing method is applied, or to implement the steps of the task processing platform in the task processing system to which the task processing method is applied.
[0236] The above is an illustrative example of a computer program according to this embodiment. It should be noted that the technical solution of this computer program and the technical solution of the task processing method described above belong to the same concept. Details not described in detail in the technical solution of the computer program can be found in the description of the technical solution of the task processing method described above.
[0237] The foregoing has described specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.
[0238] The computer instructions include computer program code, which may be in the form of source code, object code, executable file, or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording media, USB flash drive, portable hard drive, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc. It should be noted that the content contained in the computer-readable medium may be appropriately added to or subtracted according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media may not include electrical carrier signals and telecommunication signals.
[0239] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that the embodiments in this specification are not limited to the described order of actions, because according to the embodiments in this specification, some steps can be performed in other orders or simultaneously. Furthermore, those skilled in the art should also understand that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily essential to the embodiments in this specification.
[0240] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0241] The preferred embodiments disclosed above are merely illustrative of this specification. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific implementations described. Clearly, many modifications and variations can be made based on the embodiments described herein. These embodiments are selected and specifically described in this specification to better explain the principles and practical applications of the embodiments, thereby enabling those skilled in the art to better understand and utilize this specification. This specification is limited only by the claims and their full scope and equivalents.
Claims
1. A task processing method applied to a task processing system, the system comprising a task management platform and a task processing platform, wherein the task processing platform is a heterogeneous computing cluster, wherein... The task management platform, based on the received task attribute information of the target task, determines a target virtual node corresponding to the task attribute information from the initial virtual nodes. The target task is a heterogeneous computing task, and the task attribute information includes the type information of the target task or the programming interface corresponding to the target task. The initial virtual node is a general-purpose computing node in the task management platform configured to execute the heterogeneous computing task. Based on the algorithm library running in the target virtual node, the target task is sent to the task processing platform. This process includes: determining task parameters from the target task, determining the initial execution unit corresponding to the target task from the algorithm library, inputting the task parameters into the initial execution unit, generating a target execution unit corresponding to the target task, and sending the target execution unit to the task processing platform. The task parameters are data required during the execution of the target task, the initial execution unit is the internal algorithm logic contained in the algorithm that processes the target task, and the target execution unit is the initial execution unit containing the task parameters. The task processing platform determines the task resource parameters corresponding to the target task, and based on the task resource parameters, determines the processing resources of a first processing module and a second processing module for the target task. The first processing module and the second processing module are different. The task resource parameters are determined based on the target execution unit and are the resources required to run the target task. The target task is processed based on the processing resources of the first processing module and the processing resources of the second processing module.
2. The task processing method according to claim 1, wherein the task management platform, based on the received task attribute information of the target task, determines the target virtual node corresponding to the task attribute information from the initial virtual nodes, including: The task management platform determines the task execution interface provided by the task execution module and provides the task execution interface to the task generation object; Receive the target task sent by the task generation object based on the task execution interface.
3. The task processing method according to claim 2, wherein the task management platform, based on the received task attribute information of the target task, determines the target virtual node corresponding to the task attribute information from the initial virtual nodes, including: The task management platform receives the target task, determines the task execution interface corresponding to the target task, and identifies the target virtual node that provides the task execution interface from the initial virtual nodes.
4. The task processing method according to claim 1, wherein the task management platform, based on the received task attribute information of the target task, determines the target virtual node corresponding to the task attribute information from the initial virtual nodes, including: The task management platform determines the task type information of the received target task and identifies the target virtual node corresponding to the task attribute information from the initial virtual nodes.
5. The task processing method according to claim 1, wherein determining the processing resources of the first processing module and the processing resources of the second processing module for the target task based on the task resource parameters includes: The task processing platform determines the first resource parameter and the second resource parameter corresponding to the target task from the task resource parameters; Based on the current status information of the first processing module and the second processing module, the target first processing module is determined from the first processing module, and the target second processing module is determined from the second processing module; Based on the first resource parameter, a first processing resource is allocated for the target task from the resources to be allocated in the target first processing module; Based on the second resource parameter, a second processing resource is allocated for the target task from the resources to be allocated in the target second processing module.
6. The task processing method according to claim 5, wherein determining the target first processing module from the first processing module and determining the target second processing module from the second processing module based on the current state information of the first processing module and the second processing module comprises: The task processing platform determines the resources to be allocated to the first processing module and the resources to be allocated to the second processing module based on the current status information of the first processing module and the second processing module. Based on the resources to be allocated in the first processing module, the first processing modules are sorted in descending order to obtain a first sorting result, and the first processing module at a preset position in the first sorting result is determined as the target first processing module. Based on the resources to be allocated in the second processing module, the second processing modules are sorted in descending order to obtain a second sorting result, and the second processing module at a preset position in the second sorting result is determined as the target second processing module.
7. The task processing method according to claim 5, wherein the step of allocating second processing resources for the target task from the unallocated resources of the target second processing module based on the second resource parameters includes: The task processing platform determines the target resource to be allocated corresponding to the task type information from the resources to be allocated in the second processing module, based on the task type information of the target task. Based on the second resource parameter, a second processing resource is allocated from the target resources to be allocated to the target task.
8. The task processing method according to claim 1, wherein the initial virtual node is a general-purpose computing node; Accordingly, determining the target virtual node corresponding to the task attribute information from the initial virtual nodes based on the received target task's task attribute information includes: The task management platform determines the target general computing node corresponding to the task attribute information from the general computing nodes based on the received task attribute information of the target task.
9. The task processing method according to claim 1, wherein the task processing platform is a heterogeneous computing cluster; Accordingly, determining the processing resources of the first processing module and the second processing module for the target task based on the task resource parameters includes: The heterogeneous computing cluster determines the computing resources of the first physical computing module and the second physical computing module for the target task based on the task resource parameters.
10. A task processing system, comprising a task management platform and a task processing platform, wherein the task processing platform is a heterogeneous computing cluster, wherein... The task management platform is configured to determine a target virtual node corresponding to the received target task's task attribute information from an initial set of virtual nodes. The target task is a heterogeneous computing task, and the task attribute information includes the target task's type information or a corresponding programming interface. The initial virtual node is a general-purpose computing node in the task management platform configured to execute the heterogeneous computing task. Based on the algorithm library running in the target virtual node, the target task is sent to the task processing platform. This process includes: determining task parameters from the target task, determining the initial execution unit corresponding to the target task from the algorithm library, inputting the task parameters into the initial execution unit, generating a target execution unit corresponding to the target task, and sending the target execution unit to the task processing platform. The task parameters are data required during the execution of the target task, the initial execution unit is the internal algorithm logic contained in the algorithm that processes the target task, and the target execution unit is the initial execution unit containing the task parameters. The task processing platform is configured to determine the task resource parameters corresponding to the target task, and based on the task resource parameters, determine the processing resources of a first processing module and a second processing module for the target task. The first processing module and the second processing module are different. The task resource parameters are determined based on the target execution unit and are the resources required to run the target task. The target task is processed based on the processing resources of the first processing module and the processing resources of the second processing module.
Citation Information
Patent Citations
Refined resource allocation method and device, electronic equipment and medium
CN114371926A