Resource unified scheduling method and system for multiple types of loads

By implementing a unified resource scheduling method and system for multi-type loads in user terminal devices, the problems of low efficiency and unbalanced resource loads in the prior art are solved, and efficient scheduling of multi-type load application tasks and Optimal utilization of resources.

CN118819864BActive Publication Date: 2024-12-20BEIJING JINGXING RUICHUANG SOFTWARE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411295538.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-18
Publication Date
2024-12-20
Estimated Expiration
2044-09-18

AI Technical Summary

Technical Problem

The prior art is inefficient when the user terminal device connects to the server, resulting in unbalanced server resource load and the inability to effectively schedule application tasks of multiple types of loads, such as graphical application session tasks, AI model training tasks, etc.

Method used

Provide a unified resource scheduling method and system for multiple types of loads. By receiving application tasks and resource requirements information of different types of target job load types, searching for candidate servers in the cluster resource information table, and selecting the server with the lowest load for task allocation. , ensure that the terminal equipment directly connects to the target server, and improves connection efficiency and resource utilization.

Benefits of technology

It improves the efficiency of terminal devices connecting to servers, improves the overall utilization rate of cluster server resources, and can uniformly schedule application tasks for multiple types of loads, including graphics application session tasks, AI model training tasks, etc., avoiding idleness and overloading of server resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118819864B_ABST
    Figure CN118819864B_ABST
Patent Text Reader

Abstract

The present application discloses a unified resource scheduling method and system for multiple types of loads, which relates to the field of data processing. The method includes: receiving application tasks of different types of target workload types, and resource demand information corresponding to application tasks of each target workload type, wherein application tasks of different types of target workload types at least include graphic application session tasks; searching for candidate servers that meet the resource demand information corresponding to application tasks of the current target workload type in a cluster resource information table according to the resource demand information corresponding to application tasks of the current target workload type; and sending the application tasks of the current target workload type and the resource demand information corresponding to the application tasks of the current target workload type to the candidate servers to select the server with the lowest load. The present application can improve the efficiency of terminal devices connecting to servers and the overall utilization of server resources in a cluster.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data processing, and in particular to a method and system for unified resource scheduling of multiple types of loads. Background Art

[0002] When users use applications through terminal devices, they often need to enable the server to perform related operations.

[0003] Currently, users will use terminal devices to find a server in the server cluster and try to connect to it to start the graphics application. If all resources of the server being connected are occupied by other terminal devices, it means that the terminal device's attempt has failed. The terminal device will then try to connect to other servers until it successfully connects to a server, allowing the server to start the terminal device's graphics application.

[0004] However, in this way, since the terminal device may need to try to connect to the server multiple times, the connection time of the terminal device is too long, the efficiency of starting the server is low, and different terminal devices may use the same server to run application tasks, resulting in some servers being very busy and some servers being idle, and the server resource load in the cluster is unbalanced. Summary of the invention

[0005] The purpose of this application is to provide a method and system for unified resource scheduling of multiple types of loads, which can improve the efficiency of terminal devices connecting to servers and the overall utilization of server resources in a cluster.

[0006] To achieve the above objectives, this application provides the following solutions:

[0007] In a first aspect, the present application provides a method for unified resource scheduling of multiple types of loads, and the method for unified resource scheduling of multiple types of loads includes:

[0008] Receiving application tasks of different types of target workload types and resource requirement information corresponding to each of the application tasks of the target workload types, wherein the application tasks of the different types of target workload types at least include a graphics application session task;

[0009] According to the resource demand information corresponding to the application task of the current target workload type, searching the cluster resource information table for a candidate server that meets the resource demand information corresponding to the application task of the current target workload type; the cluster resource information table includes: attribute information, used resource information and idle resource information of each server in the cluster;

[0010] Selecting a server with the lowest load among the candidate servers as the first target server;

[0011] The application tasks of the current target workload type and resource requirement information corresponding to the application tasks of the current target workload type are sent to the first target server, so that the first target server runs the application tasks of the current target workload type.

[0012] In a second aspect, the present application provides a unified resource scheduling system for multiple types of loads, and the unified resource scheduling system for multiple types of loads includes:

[0013] A terminal device, a scheduling server and a cluster including a plurality of servers, wherein the plurality of servers include a first target server;

[0014] The terminal device is used to send application tasks of different types of target workload types and resource requirement information corresponding to each application task of the target workload type to the scheduling server, wherein the application tasks of different types of target workload types at least include graphic application session tasks;

[0015] The scheduling server is used to search for a candidate server that meets the resource demand information corresponding to the application task of the current target workload type in the cluster resource information table according to the resource demand information corresponding to the application task of the current target workload type; the cluster resource information table includes: attribute information, used resource information and idle resource information of each server in the cluster;

[0016] The scheduling server is used to select the server with the lowest load from the candidate servers as the first target server, and send the application tasks of the current target workload type and the resource demand information corresponding to the application tasks of the current target workload type to the first target server;

[0017] The first target server is used to run the application task of the current target job load type according to the resource requirement information corresponding to the application task of the current target job load type after receiving the application task of the current target job load type and the resource requirement information corresponding to the application task of the current target job load type.

[0018] According to the specific embodiments provided in this application, this application discloses the following technical effects:

[0019] The present application provides a method and system for unified resource scheduling of multiple types of loads, the method comprising: receiving application tasks of different types of target job load types, and resource requirement information corresponding to each of the application tasks of the target job load types, wherein the application tasks of the different types of target job load types include at least a graphic application session task; searching a cluster resource information table for a candidate server that meets the resource requirement information corresponding to the application task of the current target job load type according to the resource requirement information corresponding to the application task of the current target job load type; the cluster resource information table comprising: attribute information, used resource information, and idle resource information of each server in the cluster; selecting a server with the lowest load from the candidate servers as a first target server; and sending the application task of the current target job load type and the resource requirement information corresponding to the application task of the current target job load type to the first target server, so that the first target server runs the application task of the current target job load type. In this way, when allocating a server to a terminal device, the scheduling server can directly search the cluster resource information table for a server that can meet the resource demand information of the target job, so that the terminal device can directly connect to the target server to allow the target server to process the target job for the terminal device. There is no need, as in the related technology, for the terminal device to try to connect to each server in the cluster one by one until a successful connection is established, thereby improving the efficiency of the terminal device connecting to the server. Furthermore, the server selected by the scheduling server is the server with the lowest load in the cluster, thereby improving the overall utilization of server resources in the cluster. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0021] Figure 1 A flowchart of a method for unified resource scheduling of multiple types of loads shown in an embodiment of the present application;

[0022] Figure 2 This is a flowchart of starting a graphic application session task in a related technology according to an embodiment of the present application;

[0023] Figure 3 A flowchart of starting a graphics application session task in the present disclosure is shown as an embodiment of the present application;

[0024] Figure 4A functional module architecture diagram of a resource unified scheduling system for multiple types of loads provided in an embodiment of the present application;

[0025] Figure 5 A schematic diagram of functional modules of a resource unified scheduling device for multiple types of loads provided in one embodiment of the present application;

[0026] Figure 6 A schematic diagram of the structure of a computer device provided in one embodiment of the present application. DETAILED DESCRIPTION

[0027] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0028] In order to make the above-mentioned objects, features and advantages of the present application more obvious and easy to understand, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0029] Figure 1 This is a flow chart of a method for unified resource scheduling of multiple types of loads shown in an embodiment of the present application. The method for unified resource scheduling of multiple types of loads includes the following steps S101-S102:

[0030] In step S101, application tasks of different target workload types and resource requirement information corresponding to the application tasks of each target workload type are received, wherein the application tasks of different target workload types at least include graphic application session tasks.

[0031] Among them, graphics application session tasks include digital twin applications and graphics rendering applications.

[0032] Application tasks of the target workload type may also include: HPC parallel computing tasks, batch computing tasks, AI model training tasks, and AI model reasoning tasks.

[0033] Resource requirement information includes: CPU quantity, memory size, operating system version, GPU model, GPU quantity, GPU mode, and graphics rendering library type.

[0034] That is, in addition to the common CPU quantity, memory size, and operating system version, the resource information required for the target job also includes the GPU model, the number of GPUs (divided into the number of stream processors and the number of video memories), the GPU mode (rendering / computing / balanced mode), and the type of graphics rendering library, such as DirectX, OpenGL, and Vulkan.

[0035] This disclosure provides several examples of application tasks and the resource requirement information corresponding to the application tasks, including Siemens UGNX, Unreal Engine, PyTorch model training, and MATLAB parallel computing.

[0036] 1) The application task is a graphics application session task (graphics rendering class). Taking the graphics session of the industrial design application Siemens UG NX as an example, its corresponding resource requirement information is as follows:

[0037] CPU model: "x86, amd64";

[0038] Number of CPU cores: 4

[0039] Memory: 32GB

[0040] Operating system: "Windows Server 2016";

[0041] GPU model: "Quadro M4000";

[0042] Number of GPUs: “gmem=8GB, cuda_core=1000”;

[0043] GPU mode: "Rendering";

[0044] Rendering library type: "DirectX 12".

[0045] 2) The application task is a graphics application session task (digital twin class). Taking the graphics session of the game engine Unreal Engine as an example, its corresponding resource requirement information is as follows:

[0046] CPU model: "x86, amd64";

[0047] Number of CPU cores: 8

[0048] Memory quantity: 128GB

[0049] Operating system: “Ubuntu 22.04”;

[0050] GPU model: "RTX A40";

[0051] Number of GPUs: “gmem=48GB, cuda_core=10000”;

[0052] GPU mode: "Rendering";

[0053] Rendering library type: "Vulkan 1.3".

[0054] 3) The application task is a parallel computing application. Taking the scientific computing application WRF for climate prediction as an example, its corresponding resource demand information is as follows:

[0055] CPU model: "aarch64";

[0056] Number of CPU cores: 256;

[0057] Memory: 512GB

[0058] Operating system: “Kylin Linux Server V10 SP1”.

[0059] 4) The application task is a batch computing application. Taking Cadence Virtuoso, an EDA application for chip design, as an example, its corresponding resource requirement information is as follows:

[0060] CPU model: "x86, amd64";

[0061] Number of CPU cores: 64;

[0062] Memory: 256GB

[0063] Operating system: "CentOS 7";

[0064] GPU model: "RTX A4000";

[0065] Number of GPUs: "gmem=4GB, cuda_core=500";

[0066] GPU Mode: "Balanced";

[0067] Rendering library type: "OpenGL 2.1".

[0068] 5) The application task is AI model training. Taking the large model training framework Deepspeed as an example, its corresponding resource demand information is as follows:

[0069] CPU model: "aarch64";

[0070] Number of CPU cores: 8

[0071] Memory quantity: 1024GB;

[0072] Operating system: “Ubuntu 22.04”;

[0073] GPU model: “NVIDIA A800”;

[0074] Number of GPUs: “gmem=640GB, cuda_core=100000”;

[0075] GPU Mode: "Compute".

[0076] 6) The application task is AI model reasoning. Taking the deep learning framework Pytorch as an example, the corresponding resource requirement information is as follows:

[0077] CPU model: "aarch64";

[0078] Number of CPU cores: 4

[0079] Memory quantity: 128GB

[0080] Operating system: “Ubuntu 20.04”;

[0081] GPU model: "Ascend 310b";

[0082] Number of GPUs: “gmem=10GB, cuda_core=2000”;

[0083] GPU Mode: "Compute".

[0084] Existing HPC cluster resource scheduling software, such as IBM Spectrum LSF and Slurm scheduling software, can only schedule parallel computing tasks and batch computing tasks, but cannot schedule digital twin application tasks, graphics rendering application tasks, AI model training tasks, or AI model reasoning tasks. The most commonly used K8S open source management software for container clusters can only orchestrate and schedule container-encapsulated computing tasks and AI model training tasks or AI model reasoning tasks by pod, but cannot schedule HPC parallel computing tasks, let alone digital twin application tasks and graphics rendering application tasks. Cloud desktop system software, such as the world's leading Citrix and VMware, only has the management function of cloud desktop sessions and remote graphics application sessions, but does not schedule cloud desktop or graphics application session tasks by GPU resources, and does not support the management and resource scheduling of other types of computing tasks or AI model training and reasoning tasks. The present disclosure can uniformly schedule Windows and Linux digital twin applications, graphics rendering applications, AI model training tasks, AI model reasoning tasks, and traditional parallel computing tasks in server clusters of public clouds and private clouds. Furthermore, the present disclosure can abstract digital twin application tasks or graphics rendering application tasks running in a cloud cluster as a load task of a GPU resource, and schedule and manage them together with other load types as remote graphics session jobs.

[0085] In the present disclosure, digital twin application tasks and graphics rendering application tasks, AI model training tasks, AI model reasoning tasks, HPC parallel computing tasks, and batch computing tasks are all abstracted as "job" objects. The terminal device uses the command line of the scheduling system in the scheduling server or calls the API of the scheduling system through a graphical interface to submit a job to the scheduling server. The load type of the target job and the resource information required for the target job are described through command line parameters or a job description file, which may include: operating system version, resources required by the graphics application, mainly GPU model, number of GPUs, GPU mode, and graphics rendering library type and version.

[0086] For example, users can submit jobs through the scheduling system's command line jsub, and submit the job object description file to the scheduling system as a command line parameter: "jsub-jobfile myjob.json";

[0087] Describe the resource requirements, application startup path, and parameters of the job in myjob.json, such as:

[0088] App_start_cmd=" / opt / unreal-engine / Engine / Binaries / Linux / UnrealEditor–graphic".

[0089] In step S102, based on the resource demand information corresponding to the application task of the current target job load type, a candidate server that meets the resource demand information corresponding to the application task of the current target job load type is searched in the cluster resource information table; the cluster resource information table includes: attribute information, used resource information and idle resource information of each server in the cluster.

[0090] Among them, searching the cluster resource information table for candidate servers that meet the resource demand information corresponding to the application tasks of the current target workload type can be understood as: finding a suitable candidate server for each application task. The candidate server here can serve multiple application tasks at the same time. When serving multiple application tasks, the idle resources of the candidate server meet the requirements of the resource demand information of these application tasks.

[0091] The attribute information of the server includes: operating system version, GPU model, GPU mode (rendering / computing / balanced mode) and graphics rendering library type, such as DirectX, OpenGL, Vulkan; the used resource information of each server and the idle resource information of each server may include: the number of used CPUs, the used memory size, the number of used GPUs, the number of idle CPUs, the idle memory size and the number of idle GPUs.

[0092] In step S103, a server with the lowest load is selected from the candidate servers as the first target server.

[0093] In order to balance the utilization of each server in the cluster and avoid overloading some servers while idling some servers, the present disclosure selects the server with the lowest load as the first target server from the candidate servers.

[0094] In step S104, the application tasks of the current target workload type and resource requirement information corresponding to the application tasks of the current target workload type are sent to the first target server, so that the first target server runs the application tasks of the current target workload type.

[0095] After selecting the first target server for the current application task, the application task of the current target job load type and the resource requirement information corresponding to the application task of the current target job load type can be sent to the first target server. In this way, the first target server can run the application task of the current target job load type based on the received information.

[0096] Taking the current target job load type application task as a graphics application session task, and the first target server as a graphics server, the scheduling server selects the graphics server with the lowest load from the candidate servers as the first target server according to the resource demand information of the graphics application and the resource load of each graphics server in the cluster (the above-mentioned cluster resource information table), if there is a candidate server that meets the resource demand information requirements of the graphics application session task, and the scheduling server immediately starts the graphics application session task on the server through its job startup program on the graphics server according to the application startup command line and parameters in the job description file, and returns the graphics server IP address and Linux graphics DISPLAY number or Windows remote session number to the terminal device corresponding to the application task of the current target job load type for the terminal device to connect and use; if there is no idle graphics server at present, then the graphics application session task will be queued in the scheduling queue and wait for resources to be met before starting. That is, in the present disclosure, if there are many jobs in the scheduling server, at this time, the application task submitted by the terminal device can be placed in the queue of the scheduling server first, and then scheduled and dispatched by the scheduling server.

[0097] Among them, when the server resources are insufficient, the target job can queue up in the scheduling server and will not fail to start or run slowly due to competition for the same server resources.

[0098] Among them, when starting a graphics application session task on a graphics server, according to the type and version of the graphics rendering library required by the graphics application session task, the graphics rendering library is pre-installed or switched to the version required by the application through system environment variables and Windows registry, and the graphics application corresponding to the graphics application session task is started; before starting the graphics application, according to the specific GPU card number and CPU core number assigned by the scheduler, the process tree of the graphics application session task will be bound to the allocated GPU card and CPU core through the system API and the underlying resource isolation mechanism, such as the cgroup of the Linux system and the job object of the Windows system.

[0099] In related technologies, such as Figure 2 As shown, when a user starts a digital twin application or a graphics rendering application in a terminal device, he logs in to the graphics server to obtain a graphical interface or a remote graphics session, and then starts the graphics application on the graphics desktop. If the server is occupied by other terminal devices, it is necessary to log in to other terminal devices again. For example, there are 10 servers, and the terminal device logs in to the fourth server. If the fourth server is occupied by other terminal devices, the login will fail, and the terminal device needs to try to connect to other servers.

[0100] In the present disclosure, digital twin applications and graphics rendering applications, AI model training and reasoning tasks, HPC parallel computing tasks, and batch computing tasks are abstracted as "job" objects. The terminal device uses the command line of the scheduling system in the scheduling server or calls the API of the scheduling system through a graphical interface to submit a job to the scheduling server. The load type of the target job and the resource information required for the target job are described through command line parameters or a job description file, which may include: operating system version, resources required for the graphics application session task, mainly GPU model, number of GPUs, GPU mode, and graphics rendering library type and version.

[0101] For example, users can submit jobs through the scheduling system's command line jsub, and submit the job object description file to the scheduling system as a command line parameter: "jsub-jobfile myjob.json";

[0102] Describe the resource requirements, application startup path, and parameters of the job in myjob.json, such as:

[0103] App_start_cmd=" / opt / unreal-engine / Engine / Binaries / Linux / UnrealEditor–graphic".

[0104] like Figure 3 As shown, taking the target job load type as a graphics application session task as an example, the terminal device submits the graphics application session task to the scheduling server through a command line or API, the scheduling server schedules and allocates resources on the graphics server, and then the scheduling server starts the graphics application session task and returns the graphical interface or remote graphics session.

[0105] The present application provides a method for unified resource scheduling of multiple types of loads, including: receiving application tasks of different types of target job load types, and resource demand information corresponding to the application tasks of each target job load type, wherein the application tasks of different types of target job load types include at least a graphic application session task; searching a cluster resource information table for a candidate server that meets the resource demand information corresponding to the application task of the current target job load type according to the resource demand information corresponding to the application task of the current target job load type; the cluster resource information table includes: attribute information, used resource information, and idle resource information of each server in the cluster; selecting a server with the lowest load among the candidate servers as the first target server; and sending the application task of the current target job load type and the resource demand information corresponding to the application task of the current target job load type to the first target server, so that the first target server runs the application task of the current target job load type. In this way, when allocating a server to a terminal device, the scheduling server can directly search the cluster resource information table for a server that can meet the resource demand information of the target job, so that the terminal device can directly connect to the target server to allow the target server to process the target job for the terminal device. There is no need, as in the related technology, for the terminal device to try to connect to each server in the cluster one by one until a successful connection is established, thereby improving the efficiency of the terminal device connecting to the server. Furthermore, the server selected by the scheduling server is the server with the lowest load in the cluster, thereby improving the overall utilization of server resources in the cluster.

[0106] A new scheduling strategy is designed for cross-type applications, especially graphics rendering application tasks. In order to maximize the use of server resources in the cluster and ensure the user experience of graphics rendering application tasks in the new way, the present disclosure adds complementary scheduling strategy, time window scheduling strategy, resource preemptive scheduling strategy, and session reuse scheduling strategy to the scheduling system, which are described in detail below.

[0107] 1. Complementary Scheduling Strategy

[0108] The application task of the current target workload type is an application task currently being processed among the received application tasks of different types of target workload types, and may be one application task or multiple application tasks.

[0109] The following description is made by taking the case where the application tasks of the current target workload type are multiple application tasks.

[0110] In one implementable method, the first target server assigned to the application task of the current target job load type is a server that is running the application task but has idle resources. At this time, the idle resources of the server can meet the resource demand information corresponding to the application task of the current target job load type, and the application task running on the first target server is different from the application task of the current target job load type. After running the application task of the current target job load type, different types of application tasks run in the first target server.

[0111] When it is obtained that the first target server has remaining resources, multiple target resource demand information can be obtained from the resource demand information corresponding to the application tasks of each target workload type received, wherein the sum of the multiple target resource demand information is less than or equal to the remaining resources of the first target server, and the type of application tasks running in the first target server is different from the type of application tasks corresponding to each target resource demand information. In this way, multiple target resource demand information and application tasks corresponding to each target resource demand information can be sent to the first target server, so that the first target server can run these application tasks simultaneously.

[0112] In another possible implementation, when an idle server is detected in the cluster, multiple target resource demand information can be obtained from the resource demand information corresponding to the application tasks of each target workload type received, wherein the sum of the multiple target resource demand information is less than or equal to the resources of the first target server, and the types of application tasks corresponding to each target resource demand information are different. In this way, multiple target resource demand information and application tasks corresponding to each target resource demand information can be sent to the first target server to allow the first target server to run these application tasks simultaneously.

[0113] Specifically, the existing job scheduling systems generally dispatch jobs one by one to the server for execution in the order of job queuing. When batch dispatching jobs, a batch of jobs of the same application type are also dispatched. It has not been considered to combine jobs of different application types according to resource complementarity and dispatch them in batches. The complementary scheduling strategy proposed by the present invention can dispatch two or more jobs of completely different application types to the same server at one time for execution according to the server resource configuration when there are load jobs of different application types queued in the scheduling queue and the resources are complementary. For example, a server A is idle in the cluster, and the server is configured with a 32-core CPU and 2 GPU cards; there is a parallel computing job in the queue that requires a 24-core CPU, and a graphics job that requires a 2-core CPU core + 1 GPU card, and there happens to be an AI model reasoning job that requires a 6-core CPU + 1 GPU card; then the scheduling system will "carpool" for these three jobs, dispatch these three jobs to server A at one time to start, ensure the maximum utilization of server A's resources, and realize the "one machine for multiple uses" of the cluster server.

[0114] Since some graphics application session tasks heavily use GPU for graphics rendering and only use a small amount of CPU resources, the CPU computing resources of physical servers or virtual machines allocated by traditional methods are often wasted. The present disclosure can achieve the purpose of "one machine for multiple uses". Parallel computing tasks, batch computing tasks, graphics application session tasks, and AI model training and reasoning tasks can be mixed and run on the same server at the same time, making full use of the server's CPU and GPU resources.

[0115] The existing job scheduling systems generally dispatch jobs one by one to the server for execution in the order of job queuing. When dispatching jobs in batches, a batch of jobs of the same application type are dispatched. It has not been considered to combine jobs of different application types according to resource complementarity and dispatch them in batches. The present disclosure proposes a complementary scheduling strategy. In the complementary scheduling strategy, several terminal devices can use the same server in the cluster at the same time. For example, the first target server has been performing jobs for other terminal devices, but the first target server still has idle resources, and the idle resources can meet the resource demand information requirements of the target job, and the load type of the job already performed by the first target server is different from the load type of the target job. In this way, they can share the first target server, so as to maximize the utilization of the resources of the first target server.

[0116] 2. Time Window Scheduling Strategy

[0117] In one embodiment, the above step S102 includes the following sub-steps A1-A3:

[0118] A1. Obtain the running time corresponding to the application task of the current target workload type, and put it into the corresponding target time window, wherein different time windows correspond to different running time periods, and application tasks of different types of target workload types correspond to different running time periods.

[0119] A2. If the current time meets the time period requirement corresponding to the target time window, then according to the resource requirement information corresponding to the application task of the current target workload type, search the cluster resource information table for a candidate server that meets the resource requirement information corresponding to the application task of the current target workload type.

[0120] A3. If the current time does not meet the time period requirement corresponding to the target time window, a rejection processing instruction is sent to the terminal device corresponding to the application task of the current target job load type, and the rejection processing instruction indicates that the current time does not meet the running time corresponding to the application task of the current target job load type; alternatively, the application task of the current target job load type and the resource demand information corresponding to the application task of the current target job load type are placed in a corresponding waiting queue, and when it is detected that the time period requirement corresponding to the target time window is met, the candidate server that meets the resource demand information corresponding to the application task of the current target job load type is searched again in the cluster resource information table according to the resource demand information corresponding to the application task of the current target job load type.

[0121] Several time windows are set in the scheduling server, such as the time window corresponding to the daytime working period, the time window corresponding to the night period, and the time window corresponding to the weekend rest period. In the scheduling server, a running time window is specified for each type of application task. For example, the graphics application session task job that requires user interaction is assigned to the time window corresponding to the daytime working period, and the batch computing job or AI model training job is assigned to the time window corresponding to the night period or the time window corresponding to the weekend rest period. This strategy can be called a time window scheduling strategy. When the daytime working period ends, the scheduling server will save the checkpoint of the graphics application environment running on the server and clean up and release resources, automatically prepare the operating environment required for batch computing and AI model training, and provide computing jobs with resources for nighttime use; when the time window corresponding to the night period or the time window corresponding to the weekend rest period ends, the computing job environment is saved and cleaned up and released, and the server is automatically restored to the graphics application environment for interactive use by office workers. The time window scheduling strategy can realize the time-sharing use of graphics application session tasks and batch computing tasks on the same server, making full use of the GPU resources and CPU resources on the server, and achieving the effect of "one machine for two uses".

[0122] Digital twin applications and graphics rendering applications generally use a large amount of GPU resources when users interact with them. When users get off work at night, GPU resources are often idle and cannot be used for AI model training and reasoning tasks. The "one machine for two uses" in this disclosure sets the GPU card to rendering mode during the day for users to interact with digital twin applications and graphics rendering applications, and automatically switches the GPU card to computing mode at night for AI model training and reasoning tasks.

[0123] Specifically, when allocating a server for a target job, first, the running time corresponding to the application task of the current target job load type can be obtained and placed in the corresponding target time window; then, it is checked whether the current time meets the time period requirement corresponding to the target time window; if the current time meets the time period requirement corresponding to the time window, then, according to the resource demand information corresponding to the application task of the current target job load type, a candidate server that meets the resource demand information corresponding to the application task of the current target job load type is searched in the cluster resource information table; if the current time does not meet the time period requirement corresponding to the target time window, a rejection processing instruction is sent to the terminal device corresponding to the application task of the current target job load type, and the rejection processing instruction indicates that the current time does not meet the running time corresponding to the application task of the current target job load type; alternatively, the application task of the current target job load type and the resource demand information corresponding to the application task of the current target job load type are placed in a corresponding waiting queue, and when it is detected that the time period requirement corresponding to the target time window is met, according to the resource demand information corresponding to the application task of the current target job load type, a candidate server that meets the resource demand information corresponding to the application task of the current target job load type is searched in the cluster resource information table again, so that the effect of "one machine for two uses" can be achieved.

[0124] 3. Resource Preemptive Scheduling Strategy

[0125] In one embodiment, the method for unified resource scheduling of multiple types of loads in the present disclosure further includes the following sub-steps B1-B5:

[0126] B1. If no candidate server that meets the resource requirement information corresponding to the application task of the current target workload type is found in the cluster resource information table, the priority of the application task of the current target workload type is obtained.

[0127] B2. Detect whether there is a second target server among the servers in the cluster, wherein the priority of the load type of the first application task running in the second target server is lower than the priority of the application task of the current target job load type, and after the second target server releases the resources allocated to the running first application task, the idle resources in the second target server meet the resource demand information corresponding to the application task of the current target job load type.

[0128] B3. Control the second target server to suspend or terminate the running first application task, so that the second target server releases the resources allocated to the first application task.

[0129] B4. Sending the application tasks of the current target workload type and the resource requirement information corresponding to the application tasks of the current target workload type to the second target server, so that the second target server runs the application tasks of the current target workload type.

[0130] B5. After detecting that the application task of the current target workload type has completed execution, control the second target server to continue executing the first application task.

[0131] In actual usage scenarios, parallel computing and AI model training often require long-term continuous use of CPU and GPU server resources. When users urgently need resources to use a certain graphics application session task or use AI models for reasoning, they need to immediately obtain the required resources and start related applications. The scheduling server can deal with the above scenarios through a preemptive job scheduling strategy. Different priorities can be configured for different load types in the scheduling server. The higher the priority, the more urgent the application operation. When encountering a high-priority urgent task, the scheduling server will find a server in the cluster that can be preempted to run a low-priority job, and suspend or terminate the low-priority job to release resources for the urgent graphics application session task. When the graphics application session task is used up, the scheduling system will automatically restore the server environment and resume the low-priority job from the checkpoint.

[0132] For example, the scheduling server can be configured with multiple queues, and different queues can be set with different priorities. When encountering an urgent task, such as a graphics application session task, the scheduling server can submit the graphics application session task to a high-priority preemptible queue. The scheduling server will find a low-priority job and server that meets the requirements in the preemptible low-priority queue in the cluster, and suspend or terminate the low-priority job to release resources for the urgent graphics application session task. When the graphics application session task is used up, the scheduling system will automatically restore the server environment and resume the low-priority job to continue running from the checkpoint.

[0133] 4. Session Reuse Scheduling Strategy

[0134] In one embodiment, when the application task of the target workload type is a graphics application session task, the resource unified scheduling method for multiple types of workloads in the present disclosure further includes the following sub-steps C1-C2:

[0135] C1. If no candidate server that meets the resource requirement information corresponding to the application task of the current target job load type is found in the cluster resource information table, detect whether there is a third target server in the cluster, wherein the third target server is running other application tasks belonging to the same terminal device as the application task of the current target job load type, and the load type of the other application tasks is the same as the current target job load type;

[0136] C2. If yes, the application tasks of the current target workload type and the resource demand information corresponding to the application tasks of the current target workload type are sent to the third target server.

[0137] When the GPU resources of each server in the cluster are tight, creating a separate session or assigning a separate GPU graphics card to each graphics session task will increase the resource burden of the cluster. To this end, the scheduling server can provide a scheduling strategy for session reuse, that is, for multiple graphics application session tasks of the same type started by the same terminal device, they are scheduled and assigned to the same session job and use the same GPU graphics card. Because the same terminal device generally only operates one application at a time during the interactive operation process, the GPU resources occupied by other graphics application session tasks of the terminal device are relatively low, which will not affect the interactive performance of the currently operating graphics application session task. The session reuse scheduling strategy at the terminal device level will not cause resource conflicts and coordination work between the terminal devices, which not only ensures the security isolation between the terminal devices, but also makes full use of GPU resources.

[0138] Since the resources of each server in the cluster are dynamically changing, it is necessary to update the cluster resource information table. At this time, the unified resource scheduling method for multiple types of loads also includes the following sub-steps D1-D2:

[0139] D1. Receive cluster resource update information sent by each server in the cluster, where the cluster resource update information includes: used resource information and idle resource information of each server corresponding to the current time point.

[0140] D2. Update the cluster resource information table according to the cluster resource update information.

[0141] The used resource information and idle resource information at the current time point are identified on various servers in the cluster, and reported to the scheduling server for the scheduling server to update the cluster resource information table, so that the scheduling server can be more accurate when allocating servers for target jobs of terminal devices.

[0142] The present disclosure also provides a unified resource scheduling system for multiple types of loads, and the unified resource scheduling system for multiple types of loads includes:

[0143] A terminal device, a scheduling server, and a cluster including a plurality of servers, wherein the plurality of servers include a first target server;

[0144] The terminal device is used to send application tasks of different types of target workload types and resource demand information corresponding to the application tasks of each target workload type to the scheduling server, wherein the application tasks of different types of target workload types at least include graphic application session tasks;

[0145] The scheduling server is used to search for a candidate server that meets the resource demand information corresponding to the application task of the current target workload type in the cluster resource information table according to the resource demand information corresponding to the application task of the current target workload type; the cluster resource information table includes: attribute information, used resource information and idle resource information of each server in the cluster;

[0146] A scheduling server, configured to select a server with the lowest load from the candidate servers as a first target server, and send application tasks of the current target job load type and resource demand information corresponding to the application tasks of the current target job load type to the first target server;

[0147] The first target server is used to run the application task of the current target workload type according to the resource demand information corresponding to the application task of the current target workload type after receiving the application task of the current target workload type and the resource demand information corresponding to the application task of the current target workload type.

[0148] In one embodiment, the first target server is a server that is running application tasks but has idle resources. The idle resources can meet the resource demand information corresponding to the application tasks of the current target job load type, and the application tasks running on the first target server are different from the application tasks of the current target job load type. After running the application tasks of the current target job load type, different types of application tasks run in the first target server.

[0149] In one embodiment, the scheduling server is specifically configured to:

[0150] Obtain the running time corresponding to the application task of the current target workload type, and put it into the corresponding target time window, where different time windows correspond to different running time periods, and application tasks of different types of target workload types correspond to different running time periods;

[0151] If the current time meets the time period requirement corresponding to the target time window, then according to the resource requirement information corresponding to the application task of the current target workload type, search the cluster resource information table for a candidate server that meets the resource requirement information corresponding to the application task of the current target workload type;

[0152] If the current time does not meet the time period requirement corresponding to the target time window, a rejection processing instruction is sent to the terminal device corresponding to the application task of the current target job load type, and the rejection processing instruction indicates that the current time does not meet the running time corresponding to the application task of the current target job load type; alternatively, the application task of the current target job load type and the resource requirement information corresponding to the application task of the current target job load type are stored in the cache, and when it is detected that the time period requirement corresponding to the target time window is met, the candidate server that meets the resource requirement information corresponding to the application task of the current target job load type is re-searched in the cluster resource information table according to the resource requirement information corresponding to the application task of the current target job load type.

[0153] In one embodiment, the scheduling server is also used to: if a candidate server that meets the resource requirement information corresponding to the application task of the current target job load type is not found in the cluster resource information table, obtain the priority of the application task of the current target job load type; detect whether there is a second target server among the servers in the cluster, wherein the priority of the load type of the first application task running in the second target server is lower than the priority of the application task of the current target job load type, and after the second target server releases the resources allocated to the running first application task, the idle resources in the second target server meet the resource requirement information corresponding to the application task of the current target job load type; control the second target server to suspend or terminate the running first application task so that the second target server releases the resources allocated to the first application task; send the application task of the current target job load type and the resource requirement information corresponding to the application task of the current target job load type to the second target server, so that the second target server runs the application task of the current target job load type; after detecting that the application task of the current target job load type has completed running, control the second target server to continue running the first application task;

[0154] or,

[0155] The scheduling server is also used for: when the application task of the target job load type is a graphic application session task, if a candidate server that meets the resource requirement information corresponding to the application task of the current target job load type is not found in the cluster resource information table, detecting whether there is a third target server in the cluster, wherein the third target server is running other application tasks belonging to the same terminal device as the application task of the current target job load type, and the load type of the other application tasks is the same as the current target job load type; if so, sending the application task of the current target job load type and the resource requirement information corresponding to the application task of the current target job load type to the third target server.

[0156] In existing public and private clouds, when users use digital twins and graphics rendering applications, the required graphics server resources are often allocated as a whole GPU server, or virtualization technology is used to isolate the server into multiple virtual machines, and GPU penetration or vGPU technology is used to allocate Windows and Linux virtual machines to different users for interactive use. This can easily lead to low utilization of the server's GPU resources, and the interactive performance of graphics applications is also greatly affected by virtualization and degraded.

[0157] Some digital twins and graphics applications heavily use GPUs for graphics rendering and only use a small amount of CPU resources. In physical servers or virtual machines allocated using traditional methods, CPU computing resources are often wasted.

[0158] Some public and private clouds use containerization technology and Kubernetes (K8S) to solve the problem of dynamic matching of Linux applications and resources. However, most digital twin and graphics rendering applications use the Windows operating system, and Windows containers do not support graphical interface applications. Therefore, Windows graphics applications can only use Windows physical servers or cloud desktop virtual machines in the cluster.

[0159] Digital twin and graphics rendering applications generally use a large amount of GPU resources during user interaction. When users get off work at night, GPU resources are often idle and cannot be used for AI model training and inference tasks.

[0160] Existing HPC cluster resource scheduling software, such as IBM Spectrum LSF and Slurm scheduling software, can only schedule parallel computing and batch computing tasks, but cannot schedule digital twin applications, graphics rendering applications, or AI model training and reasoning tasks. The most commonly used K8S open source management software for container clusters can only orchestrate and schedule container-encapsulated computing tasks and AI model training and reasoning tasks by pod, but cannot schedule HPC parallel computing jobs, let alone digital twin and graphics applications. Cloud desktop system software, such as the world's leading Citrix and VMware, only has the management function of cloud desktop sessions and remote graphics application sessions, but does not schedule cloud desktop or graphics application sessions by GPU resources, and does not support the management and resource scheduling of other types of computing tasks or AI model training and reasoning tasks.

[0161] Effects and advantages of the present invention:

[0162] 1. The present disclosure can uniformly schedule Windows and Linux digital twin applications, graphics rendering applications, and AI model training and reasoning tasks, as well as traditional parallel computing tasks and batch computing tasks in server clusters of public clouds and private clouds.

[0163] 2. Abstract the digital twin application or graphics rendering application running in the cloud cluster as a load task of GPU resources and schedule and manage it as a remote graphics session job together with other types of computing jobs.

[0164] 3. When the server GPU resources are insufficient, graphics application jobs can queue up in the resource scheduling system and will not fail to start or run slowly due to competition for the same GPU resources.

[0165] 4. Without relying on virtualization technology, digital twins and graphics rendering applications can share the same GPU card with AI model training and inference tasks, achieving better performance.

[0166] 5. "One machine for multiple uses": parallel computing tasks, batch computing tasks, digital twins and graphics rendering applications, as well as AI model training and inference tasks can be mixed and run on the same server at the same time, making full use of the server's CPU and GPU resources.

[0167] 6. "One machine for two purposes": set the GPU card to rendering mode during the day for users to interactively use digital twins and graphics rendering applications, and automatically switch the GPU card to computing mode at night for use in AI model training and inference tasks.

[0168] Figure 4 The functional module architecture diagram of the resource unified scheduling system for multiple types of loads provided in one embodiment of the present application is as follows: Figure 4 As shown, it includes: a terminal device, a scheduling server and a cluster including multiple servers, wherein the servers in the cluster may be application / computing servers, and the multiple servers include a first target server;

[0169] Among them, the scheduling command line program is a group of command line programs, including command line programs such as job submission, job query, and job control. The terminal device can manually call these command lines in the operating system to perform job submission, job query, and job control operations. The command line program returns the job calculation results or the remote interface connection information of the graphics application to the terminal device. Before the terminal device submits a job, the resource category, resource quantity, rendering library type version, application startup path, and parameters required by the application are written in a job description file, and the job description file is specified when submitting the job. The scheduling command line program generally runs on the terminal device, and can also run on the scheduling server.

[0170] The scheduling engine program in the scheduling server is used to accept job submission, job query, job control and other requests submitted by the scheduling command line, and return job data or graphical interface connection information to the scheduling command line program. There is a configuration file inside the scheduling engine program, and the administrator can pre-set parameters related to the scheduling strategy, such as: complementary scheduling strategy switch parameters, time window settings for each type of load, queuing queues for preemptive scheduling strategies, or session reuse scheduling test switches, etc. The scheduling engine program periodically receives the used resource information and idle resource information corresponding to the current time point reported by the resource monitoring program on each application / computing server (for example, every 15 seconds), and schedules the target job to the appropriate application / computing server based on the resource demand information of the target job, the resource status of each application / computing server in the current cluster, and the scheduling strategy configured by the administrator. The scheduling engine program will specify the CPU, GPU device number and resource quantity available on the server for the target job based on the resource equipment status of the application / computing server. This information will be sent to the job launcher on the application / computing server through network communication along with the job object to realize the dispatch of the target job. The scheduling engine program runs on the scheduling server.

[0171] The resource monitoring program runs on each application / computing server, scans the application / computing server system through various methods such as operating system commands, system API and IPMI, automatically identifies the CPU, memory, GPU and other devices and resource usage on the application / computing server, as well as the actual amount of resources used by various jobs running on the application / computing server (that is, the attribute information, used resource information and idle resource information of each application / computing server in the above embodiment), and reports it to the scheduling engine program on the scheduling server through network communication at regular intervals.

[0172] The job startup program runs on each application / computing server. After receiving the job object information (the resource requirement information of the target job in the above embodiment) sent by the scheduling engine program through network communication, the rendering library type and version requirements in the job object information are set by setting the operating system's environment variables and registry to switch the rendering library of the current program running environment to the type and version required by the job. If the system reports an error due to the lack of relevant dependent libraries during the switching process, the job startup program will automatically download and install it from the Internet. After the operating environment is prepared, the job startup program will execute the application startup path and startup parameters in the job object to start the target job, and call the operating system's API to set the application's process properties, thereby limiting the CPU, memory, GPU and other devices and quantities that the target job can use according to the resource quota in the job object. After the target job is started, the job startup program will track and scan the process tree of each job, and can subsequently suspend, resume or terminate the job process according to the job control instructions sent by the scheduling engine program.

[0173] In the related technologies, some public and private clouds use containerization technology and Kubernetes (K8S) to solve the dynamic matching problem of Linux applications and resources, but most digital twin applications and graphics rendering applications use the Windows operating system, and Windows containers do not support graphical interface applications, so Windows graphics applications can only use Windows physical servers or cloud desktop virtual machines in the cluster. However, the present disclosure does not rely on virtualization technology, and digital twin applications and graphics rendering applications can share the same GPU card with AI model training and reasoning tasks, with better performance.

[0174] Based on the same inventive concept, the embodiment of the present application also provides a device for unified resource scheduling of multiple types of loads for implementing the method for unified resource scheduling of multiple types of loads involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in the embodiments of one or more devices for unified resource scheduling of multiple types of loads provided below can refer to the limitations of the method for unified resource scheduling of multiple types of loads above, and will not be repeated here.

[0175] In an exemplary embodiment, Figure 5 As shown, a resource unified scheduling device for multiple types of loads is provided, and the resource unified scheduling device for multiple types of loads includes:

[0176] The receiving module 11 is used to receive application tasks of different types of target workload types and resource demand information corresponding to the application tasks of each target workload type, wherein the application tasks of different types of target workload types at least include graphic application session tasks;

[0177] A search module 12 is used to search for a candidate server that meets the resource demand information corresponding to the application task of the current target workload type in the cluster resource information table according to the resource demand information corresponding to the application task of the current target workload type; the cluster resource information table includes: attribute information, used resource information and idle resource information of each server in the cluster;

[0178] A selection module 13, configured to select a server with the lowest load from among the candidate servers as a first target server;

[0179] The sending module 14 is used to send the application tasks of the current target workload type and the resource requirement information corresponding to the application tasks of the current target workload type to the first target server, so that the first target server runs the application tasks of the current target workload type.

[0180] In an exemplary embodiment, a computer device is provided. The computer device may be a server or a terminal. The internal structure diagram thereof may be as follows: Figure 6 As shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store data required for the unified scheduling of resources of multiple types of loads. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a method for unified scheduling of resources of multiple types of loads is implemented.

[0181] Those skilled in the art will understand that Figure 6The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0182] In an exemplary embodiment, a computer device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above-mentioned method embodiments when executing the computer program.

[0183] In an exemplary embodiment, a computer-readable storage medium is provided, storing a computer program, and when the computer program is executed by a processor, the steps in the above method embodiments are implemented.

[0184] In an exemplary embodiment, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the steps in the above method embodiments are implemented.

[0185] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.

[0186] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM may be in various forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM).

[0187] The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. The non-relational database may include a distributed database based on blockchain, etc., but is not limited thereto. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but is not limited thereto.

[0188] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0189] This article uses specific examples to illustrate the principles and implementation methods of this application. The description of the above embodiments is only used to help understand the method and core ideas of this application. At the same time, for those skilled in the art, according to the ideas of this application, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as limiting this application.

Claims

1. A method for unified resource scheduling of multiple types of loads, characterized in that: The method for unified resource scheduling of multiple types of loads includes: Receiving application tasks of different types of target workload types and resource requirement information corresponding to each of the application tasks of the target workload types, wherein the application tasks of the different types of target workload types at least include a graphics application session task; According to the resource demand information corresponding to the application task of the current target workload type, searching the cluster resource information table for a candidate server that meets the resource demand information corresponding to the application task of the current target workload type; the cluster resource information table includes: attribute information, used resource information and idle resource information of each server in the cluster; Selecting a server with the lowest load among the candidate servers as the first target server; Sending the application tasks of the current target workload type and resource requirement information corresponding to the application tasks of the current target workload type to the first target server, so that the first target server runs the application tasks of the current target workload type; When the application task of the target workload type is a graphics application session task, the method for unified resource scheduling of multiple types of workloads further includes: If no candidate server that satisfies the resource requirement information corresponding to the application task of the current target job load type is found in the cluster resource information table, detecting whether there is a third target server in the cluster, wherein the third target server is running other application tasks belonging to the same terminal device as the application task of the current target job load type, and the load type of the other application tasks is the same as the current target job load type; If yes, the application tasks of the current target workload type and the resource demand information corresponding to the application tasks of the current target workload type are sent to the third target server.

2. The method for unified resource scheduling of multiple types of loads according to claim 1, characterized in that: The first target server is a server that is running application tasks but has idle resources. The idle resources can meet the resource demand information corresponding to the application tasks of the current target job load type. The application tasks running on the first target server are different from the application tasks of the current target job load type. After running the application tasks of the current target job load type, different types of application tasks are run in the first target server.

3. The method for unified resource scheduling of multiple types of loads according to claim 1, characterized in that: According to the resource requirement information corresponding to the application task of the current target workload type, searching the cluster resource information table for the resource requirement information corresponding to the application task that meets the current target workload type Candidate servers include: Obtaining the running time corresponding to the application task of the current target workload type, and placing it into the corresponding target time window, wherein different time windows correspond to different running time periods, and application tasks of different types of target workload types correspond to different running time periods; If the current time meets the time period requirement corresponding to the target time window, searching the cluster resource information table for the candidate server that meets the resource requirement information corresponding to the application task of the current target workload type according to the resource requirement information corresponding to the application task of the current target workload type; If the current time does not meet the time period requirement corresponding to the target time window, a rejection processing instruction is sent to the terminal device corresponding to the application task of the current target job load type, and the rejection processing instruction indicates that the current time does not meet the running time corresponding to the application task of the current target job load type; or, the application task of the current target job load type and the resource demand information corresponding to the application task of the current target job load type are placed in a corresponding waiting queue, and when it is detected that the time period requirement corresponding to the target time window is met, the candidate server that meets the resource demand information corresponding to the application task of the current target job load type is re-searched in the cluster resource information table according to the resource demand information corresponding to the application task of the current target job load type.

4. The method for unified resource scheduling of multiple types of loads according to claim 1, characterized in that: The method for unified resource scheduling of multiple types of loads further includes: If no candidate server that meets the resource requirement information corresponding to the application task of the current target workload type is found in the cluster resource information table, obtaining the priority of the application task of the current target workload type; Detecting whether there is a second target server among the servers of the cluster, wherein the priority of the load type of the first application task running in the second target server is lower than the priority of the application task of the current target workload type, and after the second target server releases the resources allocated to the running first application task, the idle resources in the second target server meet the resource demand information corresponding to the application task of the current target workload type; Controlling the second target server to suspend or terminate the running first application task, so that the second target server releases the resources allocated to the first application task; Sending the application tasks of the current target workload type and resource requirement information corresponding to the application tasks of the current target workload type to the second target server, so that the second target server runs the application tasks of the current target workload type; After detecting that the application task of the current target workload type has finished running, controlling the second target server to continue running the first application task.

5. The method for unified resource scheduling of multiple types of loads according to any one of claims 1 to 4, characterized in that: The method for unified resource scheduling of multiple types of loads further includes: Receiving cluster resource update information sent by each of the servers in the cluster, wherein the cluster resource update information includes: used resource information and idle resource information of each of the servers corresponding to a current time point; The cluster resource information table is updated according to the cluster resource update information.

6. A unified resource scheduling system for multiple types of loads, characterized in that: The unified resource scheduling system for multiple types of loads includes: A terminal device, a scheduling server and a cluster including a plurality of servers, wherein the plurality of servers include a first target server; The terminal device is used to send application tasks of different types of target workload types and resource demand information corresponding to each application task of the target workload type to the scheduling server, wherein the application tasks of different types of target workload types at least include graphic application session tasks; The scheduling server is used to search for a candidate server that meets the resource demand information corresponding to the application task of the current target workload type in the cluster resource information table according to the resource demand information corresponding to the application task of the current target workload type; the cluster resource information table includes: attribute information, used resource information and idle resource information of each server in the cluster; The scheduling server is used to select the server with the lowest load from the candidate servers as the first target server, and send the application tasks of the current target workload type and the resource demand information corresponding to the application tasks of the current target workload type to the first target server; The first target server is configured to run the application task of the current target workload type according to the resource requirement information corresponding to the application task of the current target workload type after receiving the application task of the current target workload type and the resource requirement information corresponding to the application task of the current target workload type; When the application task of the target workload type is a graphics application session task, if no candidate server that meets the resource requirement information corresponding to the application task of the current target workload type is found in the cluster resource information table, it is detected whether there is a third target server in the cluster, wherein the third target server is running an application task of the same terminal as the application task of the current target workload type. Other application tasks of the terminal device, the load type of the other application tasks is the same as the current target job load type; if any, the application tasks of the current target job load type and the resource demand information corresponding to the application tasks of the current target job load type are sent to the third target server.

7. The resource unified scheduling system for multiple types of loads according to claim 6, characterized in that: The first target server is a server that is running application tasks but has idle resources. The idle resources can meet the resource demand information corresponding to the application tasks of the current target job load type. The application tasks running on the first target server are different from the application tasks of the current target job load type. After running the application tasks of the current target job load type, different types of application tasks are run in the first target server.

8. The resource unified scheduling system for multiple types of loads according to claim 6, characterized in that: The scheduling server is specifically used for: Obtaining the running time corresponding to the application task of the current target workload type, and placing it into the corresponding target time window, wherein different time windows correspond to different running time periods, and application tasks of different types of target workload types correspond to different running time periods; If the current time meets the time period requirement corresponding to the target time window, then according to the resource requirement information corresponding to the application task of the current target workload type, search the cluster resource information table for a candidate server that meets the resource requirement information corresponding to the application task of the current target workload type; If the current time does not meet the time period requirement corresponding to the target time window, a rejection processing instruction is sent to the terminal device corresponding to the application task of the current target job load type, and the rejection processing instruction indicates that the current time does not meet the running time corresponding to the application task of the current target job load type; or, the application task of the current target job load type and the resource requirement information corresponding to the application task of the current target job load type are stored in the cache, and when it is detected that the time period requirement corresponding to the target time window is met, the candidate server that meets the resource requirement information corresponding to the application task of the current target job load type is re-searched in the cluster resource information table according to the resource requirement information corresponding to the application task of the current target job load type.

9. The resource unified scheduling system for multiple types of loads according to claim 6, characterized in that: The scheduling server is further configured to: if no candidate server that satisfies the resource requirement information corresponding to the application task of the current target workload type is found in the cluster resource information table, obtain the priority of the application task of the current target workload type; Detect whether there is a second target server in each of the servers in the cluster, wherein the first application task that is running in the second target server The priority of the load type is lower than the priority of the application task of the current target job load type, and after the second target server releases the resources allocated to the running first application task, the idle resources in the second target server meet the resource demand information corresponding to the application task of the current target job load type; the second target server is controlled to suspend or terminate the running first application task so that the second target server releases the resources allocated to the first application task; the application task of the current target job load type and the resource demand information corresponding to the application task of the current target job load type are sent to the second target server so that the second target server runs the application task of the current target job load type; after detecting that the application task of the current target job load type has been completed, the second target server is controlled to continue running the first application task.