Cloud service system and operating method thereof

By using a task dispatch server to distribute tasks to resource pools with or without coprocessors in the cloud server, the problem of inflexible allocation of computing resources in existing technologies is solved, and efficient utilization of computing resources and task execution are achieved.

CN122240309APending Publication Date: 2026-06-19SHANGHAI BIREN TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHANGHAI BIREN TECH CO LTD
Filing Date
2021-07-30
Publication Date
2026-06-19

Smart Images

  • Figure CN122240309A_ABST
    Figure CN122240309A_ABST
Patent Text Reader

Abstract

This invention provides a cloud service system and its operating method. The cloud service system includes a first computing resource pool, a second computing resource pool, and a task dispatch server. Each computing platform in the first computing resource pool does not have a coprocessor. Each computing platform in the second computing resource pool has at least one coprocessor. The task dispatch server receives multiple tasks. The task dispatch server checks the task attributes of the currently pending task among the multiple tasks. Based on the task attributes, the task dispatch server selects whether to dispatch the currently pending task to the first computing resource pool or the second computing resource pool for execution.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese Invention Patent Application No. 202110871752.5, filed on July 30, 2021. Technical Field

[0002] This invention relates to cloud server technology, and more particularly to a cloud service system and its operation method. Background Technology

[0003] Cloud servers can provide a variety of services, such as computing power. They offer computing resources to perform various tasks. Generally, a cloud server refers to a cluster of one or more computing platforms. These platforms can be any type of computer, such as a personal computer, server, workstation, or other type of computer. These computing platforms may be located in different places. Summary of the Invention

[0004] This invention provides a cloud service system and its operating method to efficiently provide computing resources to perform tasks.

[0005] In an embodiment of the present invention, the cloud service system includes a first computing resource pool, a second computing resource pool, and a task dispatch server. Each computing platform in the first computing resource pool does not have a co-processor. Each computing platform in the second computing resource pool has at least one co-processor. The task dispatch server receives multiple tasks. The task dispatch server establishes a communication connection with each computing platform in the first computing resource pool. The task dispatch server establishes a communication connection with each computing platform in the second computing resource pool. The task dispatch server checks the task attributes of the currently assigned task among the multiple tasks. Based on the task attributes, the task dispatch server selects whether to assign the currently assigned task to the first computing resource pool or the second computing resource pool for execution.

[0006] In an embodiment of the present invention, the operation method includes: receiving multiple tasks by a task dispatch server of a cloud service system; checking the task attributes of a currently unassigned task among the multiple tasks; and selecting, based on the task attributes, to assign the currently unassigned task to a first computing resource pool or a second computing resource pool of the cloud service system for execution. Each computing platform in the first computing resource pool does not have a coprocessor, while each computing platform in the second computing resource pool has at least one coprocessor. The task dispatch server establishes a communication connection with each computing platform in the first computing resource pool. The task dispatch server establishes a communication connection with each computing platform in the second computing resource pool.

[0007] Based on the above, the task dispatch server described in the embodiments of the present invention can check the task attributes of the currently pending task. When the currently pending task requires the computing resources of a coprocessor, the task dispatch server can dispatch the currently pending task to a computing platform in a second computing resource pool for execution. When the currently pending task does not require the computing resources of a coprocessor, the task dispatch server can dispatch the currently pending task to a computing platform in a first computing resource pool for execution. Therefore, the cloud service system can efficiently and adaptively provide computing resources to execute tasks. Attached Figure Description

[0008] Figure 1 This is a schematic diagram of a cloud service system according to an embodiment of the present invention.

[0009] Figure 2 This is a flowchart illustrating the operation method of a cloud service system according to an embodiment of the present invention.

[0010] Figure 3 This is a flowchart illustrating the process of a task dispatch server checking tasks, according to an embodiment of the present invention.

[0011] Explanation of reference numerals in the attached figures

[0012] 100: Cloud Service System

[0013] 110: First Computing Resource Pool

[0014] 110_1, 110_m, 120_1, 120_n: Computing platforms

[0015] 120: Second computing resource pool

[0016] 121: Central Processing Unit (CPU)

[0017] 122: Coprocessor Programming Interface

[0018] 123: Coprocessor

[0019] 130: Task Dispatch Server

[0020] S210, S220, S230, S310, S320, S330, S340, S350, S360: Steps Detailed Implementation

[0021] Reference will now be made in detail to exemplary embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same element references are used in the drawings and description to denote the same or similar parts.

[0022] Figure 1 This is a schematic diagram of a cloud service system 100 according to an embodiment of the present invention. The cloud service system 100 can provide computing resources to perform various tasks. Figure 1 The cloud service system 100 shown includes a first computing resource pool 110, a second computing resource pool 120, and a task dispatch server 130. The first computing resource pool 110 and the second computing resource pool 120 are two parallel resource pools. That is, the task dispatch server 130 establishes a communication connection with each computing platform in the first computing resource pool 110, and the task dispatch server 130 establishes a communication connection with each computing platform in the second computing resource pool 120.

[0023] The first computing resource pool 110 includes one or more computing platforms, such as Figure 1The diagram shows m computing platforms 110_1, ..., 110_m, where m is an integer determined according to the actual design / application. Any one of the computing platforms 110_1 to 110_m can be any type of computer, such as a personal computer, server, workstation, or other type of computer. Depending on the actual design / application, these computing platforms 110_1 to 110_m may be distributed in different locations (or located in the same location). Each of the computing platforms 110_1 to 110_m in the first computing resource pool 110 is configured with a Central Processing Unit (CPU) and other components (not shown), but no co-processor. In any of the computing platforms 110_1 to 110_m, the "CPU" module represents one or more CPU chips and / or one or more CPU cores. The number of CPU chips and CPU cores in a computing platform can be determined according to the actual design / application.

[0024] The second computing resource pool 120 includes one or more computing platforms, such as Figure 1 The diagram shows n computing platforms 120_1, ..., 120_n, where n is an integer determined according to the actual design / application. Any of the computing platforms 120_1 to 120_n can be any type of computer, such as a personal computer, server, workstation, or other type of computer. Depending on the actual design / application, these computing platforms 120_1 to 120_n may be distributed in different locations (or located in the same location). Each of the computing platforms 120_1 to 120_n in the second computing resource pool 120 is configured with a CPU, a coprocessor, and other components (not shown). For example, computing platform 120_1 is configured with a CPU 121 and a coprocessor 123, and CPU 121 can dispatch work to coprocessor 123 for execution via a coprocessor programming interface 122. The coprocessor programming interface 122 can be an application programming interface (API). In any of the computing platforms 120_1 to 120_n, the "CPU" module represents one or more CPU chips and / or one or more CPU cores. The number of CPU chips and CPU cores in a computing platform can be determined based on the actual design / application.

[0025] In any of the computing platforms 120_1 to 120_n, a "coprocessor" module represents one or more coprocessor chips and / or one or more coprocessor cores. The number of coprocessor chips and coprocessor cores in a computing platform can be determined according to the actual design / application. Depending on the actual design / application, in some embodiments, the "coprocessor" may include a graphics processing unit (GPU), an artificial intelligence (AI) processor, or other coprocessors.

[0026] Figure 2 This is a flowchart illustrating an operation method of a cloud service system according to an embodiment of the present invention. Please refer to... Figure 1 and Figure 2 In step S210, the task dispatch server 130 can receive multiple tasks. In step S220, the task dispatch server 130 can check the task attributes of any one of the multiple tasks, such as the task currently to be dispatched. In step S230, the task dispatch server 130 can select either the first computing resource pool 110 or the second computing resource pool 120 based on the task attributes, and then dispatch the task currently to be dispatched to the selected computing resource pool for execution or startup.

[0027] The first computing resource pool 110 (which may be referred to as the CPU pool) and the second computing resource pool 120 (which may be referred to as the coprocessor pool) are independent of each other. The CPUs in any of the computing platforms 120_1 to 120_n (coprocessor physical systems) can be fully utilized. The task dispatch server 130 can choose the coprocessor pool 120, which runs parallel to the CPU pool 110, to independently start / execute tasks. The task dispatch server 130 can select either the first computing resource pool 110 or the second computing resource pool 120 based on task attributes (e.g., using only the CPU or using coprocessors). After selecting a computing resource pool, the task dispatch server 130 can implement any task dispatching technique (e.g., existing task dispatching algorithms or other task dispatching algorithms) to dispatch tasks.

[0028] The task dispatch server 130 can further apply any dispatch optimization techniques (such as existing task dispatch optimization algorithms or other task dispatch optimization algorithms) based on the coprocessor requirements of the currently pending task. For example, the task dispatch server 130 can select a computing platform from the second computing resource pool 120 as the dispatch destination for the currently pending task based on the number of coprocessors of each of the computing platforms 120_1 to 120_n in the second computing resource pool 120, the current computing power of each coprocessor, and the coprocessor computing power requirements of the currently pending task. All existing virtual machines (VMs) or container technologies can be applied to the task dispatch server 130 without modification.

[0029] Similarly, the task dispatch server 130 can further apply any dispatch optimization techniques based on the CPU requirements of the current task to be dispatched. For example, the task dispatch server 130 can select a computing platform from the first computing resource pool 110 as the dispatch destination for the current task to be dispatched, based on the current computing power of each CPU of computing platforms 110_1 to 110_n in the first computing resource pool 110 and the CPU computing power requirements of the current task to be dispatched.

[0030] Furthermore, as an optional implementation, in step S230, after the task dispatch server 130 selects either the first computing resource pool 110 or the second computing resource pool 120 based on the task attributes, and then dispatches the currently assigned task to the selected computing resource pool, the first computing resource pool 110 or the second computing resource pool 120 can select a computing platform as the dispatch destination for the currently assigned task based on the current computing power of the CPU or coprocessor of each computing platform and the CPU or coprocessor computing power requirement of the currently assigned task. That is, the currently assigned task can be re-dispatched by the first computing resource pool 110 or the second computing resource pool 120 (not shown).

[0031] exist Figure 1 In the illustrated embodiment, task dispatch server 130 can unify access to the coprocessor pool (second computing resource pool 120). Without needing to intercept and implement remote API calls, task dispatch server 130 can use coprocessors (e.g., coprocessor 123) through conventional local CPU (e.g., CPU 121) control. Therefore, cloud service system 100 can automatically maintain the native efficiencies of the computing platform and provide a unified solution for any type of coprocessor without limitation.

[0032] This embodiment does not limit the specific method by which the task dispatch server 130 checks tasks. Users can design specific interfaces to display identifiers of required coprocessor characteristics based on the task dispatch server 130. According to actual design, in some embodiments, the task dispatch server 130 can determine the task attributes of the currently pending task based on the identification characteristics of the command line in the task to be dispatched. For example, Figure 3 This is a flowchart illustrating the process of task dispatch server 130 checking tasks according to an embodiment of the present invention. Please refer to... Figure 1 and Figure 3 In step S310, the task dispatch server 130 can check the command line of the currently pending task. When the command line of the currently pending task contains the identification feature corresponding to the coprocessor (the judgment result of step S320 is "yes"), the task dispatch server 130 can proceed to step S330. When none of the command lines of the currently pending task contain the identification feature corresponding to the coprocessor (the judgment result of step S320 is "no"), the task dispatch server 130 can proceed to step S350.

[0033] The "identification feature" mentioned in steps S310 and S320 can be defined according to the actual design / application. For example, in some embodiments, if the word "-GPU" appears in the command line, it indicates that such a command line requires the computing power of a GPU. Therefore, in such an implementation scenario, "-GPU" can be used as the "identification feature".

[0034] In step S330, the task dispatch server 130 can assign the currently unassigned task to one of the computing platforms 120_1 to 120_n in the second computing resource pool 120 (coprocessor pool) for execution. For ease of explanation, it is assumed that in step S330, the task dispatch server 130 assigns the currently unassigned task to computing platform 120_1 in the second computing resource pool 120. The CPU 121 of computing platform 120_1 can accept the dispatched task dispatched by the task dispatch server 130. The CPU 121 can manage and dispatch multiple jobs of the dispatched task. The CPU 121 can dispatch at least one job of the multiple jobs to the coprocessor 123 for execution through the coprocessor programming interface 122. After computing platform 120_1 completes the execution of the dispatched task, the CPU 121 can notify the task dispatch server 130 (step S340), and the user can obtain and further use the execution results through the task dispatch server 130 in a conventional manner.

[0035] This embodiment does not limit the specific implementation of "CPU 121 assigning work to coprocessor 123". According to actual design, in some embodiments, CPU 121 can check the work attributes of the currently assigned work among the plurality of work tasks, and CPU 121 can choose to assign the currently assigned work to coprocessor 123 or execute it on CPU 121 based on the work attributes. CPU 121 can further apply any assignment optimization techniques (e.g., existing task assignment optimization algorithms or other task assignment optimization algorithms) according to the needs of the currently assigned work for coprocessor 123. For example, CPU 121 can select one coprocessor from the at least one coprocessor 123 as the assignment destination for the currently assigned work based on the number of coprocessors 123, the current computing power of each of the at least one coprocessor 123, and the computing power requirements of the coprocessor for the currently assigned work. The number of coprocessors may be the number of one or more computing accelerator cards (e.g., graphics cards or AI accelerator cards) installed on computing platform 120_1, and / or the number of computing accelerator integrated circuits (e.g., GPU chips or AI chips) in computing platform 120_1, and / or the number of computing accelerator cores (e.g., GPU cores or AI cores) installed in one or more integrated circuits in computing platform 120_1.

[0036] In step S350, the task dispatch server 130 can assign the currently unassigned task to one of the computing platforms 110_1 to 110_m in the first computing resource pool 110 (CPU pool) for execution. For ease of explanation, it is assumed that in step S350, the task dispatch server 130 assigns the currently unassigned task to computing platform 110_1 in the first computing resource pool 110. The CPU of computing platform 110_1 receives the dispatched task from the task dispatch server 130. The CPU of computing platform 110_1 can execute the dispatched task. After the CPU of computing platform 110_1 completes the execution of the dispatched task, the CPU of computing platform 110_1 can notify the task dispatch server 130 (step S360), and the user can obtain and further use the execution result through the task dispatch server 130 in a conventional manner.

[0037] In summary, the task dispatch server 130 can check the task attributes of the currently pending task. When the currently pending task requires computing resources from a coprocessor (such as a GPU or AI processor), the task dispatch server 130 can dispatch the currently pending task to one of the computing platforms 120_1 to 120_n in the second computing resource pool 120 (coprocessor pool) for execution. When the currently pending task does not require computing resources from a coprocessor, the task dispatch server 130 can dispatch the currently pending task to one of the computing platforms 110_1 to 110_m in the first computing resource pool 110 (CPU pool) for execution. Therefore, the cloud service system 100 can efficiently and adaptively provide computing resources to execute tasks.

[0038] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them. Although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A cloud service system, characterized in that, The cloud service system includes: A first computing resource pool, wherein each computing platform in the first computing resource pool comprises only a central processing unit; A second computing resource pool, wherein each computing platform in the second computing resource pool includes a central processing unit and at least one graphics processing unit; and A task dispatch server is used to receive multiple tasks. The task dispatch server establishes a communication connection with each computing platform in the first computing resource pool and with each computing platform in the second computing resource pool. The task dispatch server includes an interface for receiving explicitly identified graphics processing unit (GPU) computing power usage requests for the tasks. The task dispatch server is configured as follows: Check the command lines in the currently unassigned task among the multiple tasks; Identify whether the command line contains identifying features that indicate the need to use graphics processor computing power; Based on the identification results, the task to be assigned is selected to be executed in either the first computing resource pool or the second computing resource pool; and In response to the command line of the currently pending task including identification features indicating the need to use graphics processing unit (GPU) computing power, the currently pending task is assigned to a target computing platform in the second computing resource pool for execution. This allows the central processing unit (CPU) in the target computing platform to accept the assigned task from the task dispatch server and, through an application programming interface between the CPU and at least one GPU, assign at least one of the multiple jobs of the assigned task to the at least one GPU for execution. The task dispatch server neither intercepts nor implements remote application programming interface calls for the graphics processor.

2. The cloud service system according to claim 1, characterized in that, The first computing resource pool and the second computing resource pool are two parallel resource pools.

3. The cloud service system according to claim 1, characterized in that, The task dispatch server selects a computing platform from the second computing resource pool as the dispatch destination for the current task based on at least one of the following: the number of graphics processors on each computing platform in the second computing resource pool, the current computing power of each graphics processor, and the graphics processor computing power required for the current task to be dispatched.

4. The cloud service system according to claim 1, characterized in that, The task dispatch server is further configured as follows: In response to the fact that none of the command lines for the currently pending task indicate the need to use graphics processor computing power, the currently pending task is assigned to a computing platform in the first computing resource pool for execution.

5. The cloud service system according to claim 4, characterized in that, The central processing unit (CPU) of a computing platform in the first computing resource pool receives the assigned task from the task dispatch server, and the CPU executes the assigned task and then notifies the task dispatch server.

6. The cloud service system according to claim 1, characterized in that, The central processing unit in the target computing platform checks the job attributes of the currently pending job among the plurality of jobs, and the central processing unit in the target computing platform selects, based on the job attributes, to assign the currently pending job to at least one graphics processor or the central processing unit for execution.

7. The cloud service system according to claim 6, characterized in that, The central processing unit in the target computing platform selects one of the at least one graphics processors as the destination for the current task to be assigned, based on the number of graphics processors, the current computing power of each of the at least one graphics processors, and the computing power requirement of the graphics processors for the current task to be assigned.

8. A method for operating a cloud service system, characterized in that, The operation method includes: Multiple tasks are received by the task dispatch server of the cloud service system; The task dispatch server checks the command line in the currently pending task among the plurality of tasks; based on the identification result, the task dispatch server selects whether to dispatch the currently pending task to the first computing resource pool of the cloud service system or the second computing resource pool of the cloud service system for execution; and In response to the command line of the currently pending task including identification features indicating the need to utilize graphics processing unit (GPU) computing power, the task dispatch server dispatches the currently pending task to a target computing platform in the second computing resource pool for execution. This allows the central processing unit (CPU) in the target computing platform to accept the dispatched task from the task dispatch server and, through an application programming interface (API) between the CPU and at least one GPU, dispatch at least one of the multiple jobs of the dispatched task to the at least one GPU for execution. In this configuration, each computing platform in the first computing resource pool includes only a central processing unit (CPU), while each computing platform in the second computing resource pool has a CPU and at least one graphics processing unit (GPU). The task dispatch server establishes communication connections with each computing platform in the first computing resource pool and with each computing platform in the second computing resource pool. The task dispatch server includes an interface for receiving explicitly identified GPU computing power usage requests for tasks. The task dispatch server neither intercepts nor implements remote application programming interface calls for the graphics processor.

9. The operating method according to claim 8, characterized in that, The first computing resource pool and the second computing resource pool are two parallel resource pools.

10. The operating method according to claim 8, characterized in that, The operation method further includes: The task dispatch server selects a computing platform from the second computing resource pool as the dispatch destination for the current task based on at least one of the following: the number of graphics processors on each computing platform in the second computing resource pool, the current computing power of each graphics processor, and the graphics processor computing power required for the task to be dispatched.

11. The operating method according to claim 8, characterized in that, The operation method further includes: In response to the fact that none of the command lines for the currently pending task indicate the need to use graphics processor computing power, the task dispatch server dispatches the currently pending task to a computing platform in the first computing resource pool for execution.

12. The operating method according to claim 11, characterized in that, The operation method further includes: The central processing unit of a computing platform in the first computing resource pool receives the dispatched tasks from the task dispatch server; and The central processing unit executes the assigned task and then notifies the task assignment server.

13. The operating method according to claim 8, characterized in that, The operation method further includes: The central processing unit in the target computing platform checks the job attributes of the currently unassigned job among the plurality of jobs; and The central processing unit in the target computing platform selects, based on the working attributes, to assign the currently unassigned work to at least one graphics processor or the central processing unit for execution.

14. The operating method according to claim 13, characterized in that, The operation method further includes: The central processing unit in the target computing platform selects one of the at least one graphics processors as the destination for the current task to be assigned, based on the number of graphics processors, the current computing power of each of the at least one graphics processors, and the computing power requirement of the graphics processor for the current task to be assigned.