Method, device and equipment for scheduling rendering tasks in heterogeneous multi-clusters

By receiving rendering tasks in a multi -cluster environment, determine the computing power resources of the cluster, calculate the rendering task load, select the target cluster and server, and realize the efficient scheduling of the rendering task, solve the problem of low rendering task scheduling efficiency in the multi -cluster environment, improved Mission processing efficiency.

CN118535345BActive Publication Date: 2025-01-24HANGZHOU QUNHE INFORMATION TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410989884.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-23
Publication Date
2025-01-24
Estimated Expiration
2044-07-23

AI Technical Summary

Technical Problem

In multi-cluster scenarios, the rendering environments supported by different servers vary greatly, making it difficult to effectively schedule and allocate rendering tasks, affecting task processing efficiency.

Method used

By receiving rendering tasks, determine the computing resources according to the current task type and quantity of the cluster, calculate the rendering task load, compare the loads of multiple clusters, select the target cluster, and select the target server that supports the rendering task based on the server hardware performance detection results to implement the rendering task. efficient scheduling.

Benefits of technology

Use high-performance servers to prioritize rendering tasks, improve task processing efficiency, and ensure that rendering tasks can be efficiently allocated and executed in a heterogeneous multi-cluster environment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118535345B_ABST
    Figure CN118535345B_ABST
Patent Text Reader

Abstract

The present disclosure provides a rendering task scheduling method, device and equipment in heterogeneous multi-clusters, and relates to the field of computer technology. The rendering task scheduling method includes: receiving a rendering task, the type of the rendering task is a target type; determining the computing power resources allocated by the cluster for the rendering task of the target type according to the type and number of tasks currently being processed by a cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks; determining the load of the cluster for the rendering task of the target type according to the computing power resources allocated by the cluster for the rendering task of the target type; comparing the loads of multiple clusters for the rendering task of the target type to select a target cluster from multiple clusters; selecting a target server that supports the rendering task from the target cluster according to the hardware performance detection results of the servers in the target cluster; and scheduling the rendering task to the target server.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to a rendering task scheduling method, apparatus and device in a heterogeneous multi-cluster. Background Art

[0002] In a multi-cluster scenario where a multi-task environment is co-located, different servers in the cluster may support different rendering environments, and different rendering environments can run different rendering tasks. Therefore, in a multi-cluster scenario, you need to select a suitable server to run the rendering task based on the rendering environment required by the rendering task. Summary of the invention

[0003] The present disclosure provides a rendering task scheduling method, apparatus, device, and storage medium in a heterogeneous multi-cluster to solve or alleviate one or more technical problems in the prior art.

[0004] In a first aspect, the present disclosure provides a rendering task scheduling method in a heterogeneous multi-cluster, comprising:

[0005] Receive a rendering task, the type of which is a target type;

[0006] Determine the computing resources allocated by a cluster for rendering tasks of the target type according to the type and number of tasks currently being processed by the cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0007] Determine the load of the cluster for the rendering task of the target type according to the computing resources allocated by the cluster for the rendering task of the target type;

[0008] comparing the loads of multiple clusters for rendering tasks of the target type to select a target cluster from the multiple clusters;

[0009] According to the hardware performance test results of the servers in the target cluster, a target server supporting the rendering task is selected from the target cluster;

[0010] The rendering task is dispatched to the target server.

[0011] In a second aspect, the present disclosure provides a method for scheduling a rendering task set in a heterogeneous multi-cluster, including:

[0012] Receive a rendering task set, the rendering task set includes rendering tasks of different types, and the number of rendering tasks in the rendering task set is not higher than a set maximum concurrency number;

[0013] According to the type and quantity of tasks currently being processed by a cluster, determine the computing resources allocated by the cluster for each type of rendering task, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0014] Determine the load of the cluster for each type of rendering task according to the computing resources allocated by the cluster for each type of rendering task;

[0015] comparing the loads of multiple clusters for each type of rendering tasks to select a target cluster from the multiple clusters;

[0016] Selecting a target cluster for each rendering task from the multiple clusters according to hardware performance detection results of the servers in the target cluster;

[0017] According to the hardware performance test results of the servers in the target cluster, a target server supporting each rendering task is selected from the target cluster;

[0018] Each rendering task is dispatched to the corresponding target server.

[0019] In a third aspect, the present disclosure provides a rendering task scheduling device in a heterogeneous multi-cluster, comprising:

[0020] A receiving module, used for receiving a rendering task, where the type of the rendering task is a target type;

[0021] An allocation module, used to determine the computing resources allocated by a cluster to a rendering task of the target type according to the type and quantity of tasks currently being processed by the cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0022] A load determination module, used to determine the load of the cluster for the rendering task of the target type according to the computing resources allocated by the cluster for the rendering task of the target type;

[0023] A cluster selection module, used for comparing the loads of multiple clusters for rendering tasks of the target type to select a target cluster from the multiple clusters;

[0024] A server selection module, used to select a target server supporting the rendering task from the target cluster according to the hardware performance detection result of the servers in the target cluster;

[0025] The scheduling module is used to schedule the rendering task to the target server.

[0026] In a fourth aspect, the present disclosure provides a rendering task set scheduling device in a heterogeneous multi-cluster, including:

[0027] A receiving module, used for receiving a rendering task set, the rendering task set including rendering tasks of different types, and the number of rendering tasks in the rendering task set is not higher than a set maximum concurrency number;

[0028] An allocation module, used to determine the computing resources allocated by a cluster to each type of rendering task according to the type and quantity of tasks currently being processed by the cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0029] A load determination module, used to determine the load of the cluster for each type of rendering task according to the computing resources allocated by the cluster for each type of rendering task;

[0030] A target cluster selection module, used for comparing the loads of multiple clusters for each type of rendering task, so as to select a target cluster from the multiple clusters;

[0031] A rendering task target cluster selection module, used to select a target cluster for each rendering task from the multiple clusters according to the hardware performance detection results of the servers in the target cluster;

[0032] A server selection module, used to select a target server supporting each rendering task from the target cluster according to the hardware performance detection result of the server in the target cluster;

[0033] The scheduling module is used to schedule each rendering task to the corresponding target server.

[0034] In a fifth aspect, an electronic device is provided, including:

[0035] at least one processor; and

[0036] a memory communicatively connected to the at least one processor; wherein,

[0037] The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute any method in the embodiments of the present disclosure.

[0038] In a sixth aspect, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to cause the computer to execute any method according to the embodiments of the present disclosure.

[0039] In a seventh aspect, a computer program product is provided, comprising a computer program, which, when executed by a processor, implements any method according to the embodiments of the present disclosure.

[0040] The present disclosure schedules rendering tasks by clustering according to the load of rendering tasks of target types and the hardware performance of servers in the cluster, and can use high-performance servers to process rendering tasks preferentially, thereby improving task processing efficiency.

[0041] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the multiple drawings represent the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments provided according to the present disclosure and should not be regarded as limiting the scope of the present disclosure.

[0043] Figure 1 is a flowchart of a rendering task scheduling method in a heterogeneous multi-cluster according to an embodiment of the present disclosure;

[0044] Figure 2 is a flowchart of a rendering task scheduling method in a heterogeneous multi-cluster according to another embodiment of the present disclosure;

[0045] Figure 3 is a flowchart of a rendering task scheduling method in a heterogeneous multi-cluster according to another embodiment of the present disclosure;

[0046] Figure 4 is a flowchart of a rendering task scheduling method in a heterogeneous multi-cluster according to an embodiment of the present disclosure;

[0047] Figure 5 is a specific flow chart of a method for scheduling rendering tasks in a heterogeneous multi-cluster according to an embodiment of the present disclosure;

[0048] Figure 6 is a structural schematic diagram of a rendering task set scheduling device in a heterogeneous multi-cluster according to an embodiment of the present disclosure;

[0049] Figure 7 is a structural schematic diagram of a rendering task set scheduling device in a heterogeneous multi-cluster according to another embodiment of the present disclosure;

[0050] Figure 8 is a structural schematic diagram of a rendering task set scheduling device in a heterogeneous multi-cluster according to an embodiment of the present disclosure;

[0051] Fig. 9 is a block diagram of an electronic device for implementing an embodiment of the present disclosure. DETAILED DESCRIPTION

[0052] The present disclosure will be further described in detail below with reference to the accompanying drawings. The same reference numerals in the accompanying drawings represent elements with the same or similar functions. Although various aspects of the embodiments are shown in the accompanying drawings, the drawings are not necessarily drawn to scale unless otherwise specified.

[0053] In addition, in order to better illustrate the present disclosure, numerous specific details are given in the following specific embodiments. It should be understood by those skilled in the art that the present disclosure can also be implemented without certain specific details. In some examples, methods, means, components and circuits well known to those skilled in the art are not described in detail in order to highlight the main purpose of the present disclosure.

[0054] Figure 1 : is a flow chart of a method for scheduling rendering tasks in a heterogeneous multi-cluster according to an embodiment of the present disclosure. The method may include:

[0055] S110, receiving a rendering task, where the type of the rendering task is a target type;

[0056] S120, determining computing resources allocated by a cluster for rendering tasks of the target type according to the type and number of tasks currently being processed by the cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0057] S130, determining the load of the cluster for the rendering task of the target type according to the computing resources allocated by the cluster for the rendering task of the target type;

[0058] S140, comparing the loads of multiple clusters for rendering tasks of the target type to select a target cluster from the multiple clusters;

[0059] S150, selecting a target server that supports the rendering task from the target cluster according to the hardware performance test results of the servers in the target cluster;

[0060] S160: dispatching the rendering task to the target server.

[0061] In the disclosed embodiment, heterogeneous multi-clusters may also be referred to as clusters of multiple different architectures. Each cluster may include multiple servers, and different types of servers may support different types of rendering environments, and different rendering environments may handle different rendering tasks, that is, different types of servers may support different types of rendering tasks. The rendering environment may include multiple types, for example, panoramic image rendering, channel image rendering, video rendering, image rendering based on a GPU (Graphics Processing Unit, graphics processing unit) engine, and the like. The rendering environments supported by server S1 include panoramic image rendering and channel image rendering, the rendering environments supported by server S2 include panoramic image rendering, channel image rendering, and video rendering, and the rendering environments supported by server S3 include GPU engine image rendering.

[0062] In the disclosed embodiment, the type of rendering task is related to the rendering environment required to process the rendering task. A server used to process one type of rendering task can support multiple rendering environments. For example, if rendering task T1 needs to render a panorama with channel map output, the set of rendering environments supported by the server includes panorama rendering and channel map rendering. Servers S1 and S2 can process rendering task T1. If rendering task T2 needs to render a video, the set of rendering environments supported by the server includes video rendering. Server S2 can process rendering task T2. Server S3 can neither process T1 nor T2.

[0063] In the disclosed embodiments, the type and number of rendering tasks being processed by a cluster at different times may change. A server in a cluster may currently be processing multiple types of rendering tasks at the same time, and the load can be calculated based on the computing power contribution made by the server to each type of rendering task. In the case where the task scheduling center receives a rendering task of a target type, the computing power resources allocated to the rendering tasks of the target type by each cluster in a plurality of clusters can be first calculated based on the type and number of tasks currently being processed by each cluster in a plurality of clusters. Then, based on the computing power resources allocated by each cluster to the rendering tasks of the target type, the load of each cluster for the rendering tasks of the target type is calculated. Then, the loads of different clusters in a plurality of clusters for the rendering tasks of the target type are compared, and a cluster with the smallest load, for example, is selected from a plurality of clusters as the target cluster.

[0064] In an embodiment of the present disclosure, the target cluster includes multiple servers that may support multiple types of rendering tasks. In one method, the hardware performance of each server in the target cluster can be detected first; when a rendering task is received, the servers that can support the rendering tasks of the target type are screened out from the target cluster, and the servers are sorted according to the hardware performance test results of the servers, and the servers with better hardware performance test results and capable of supporting the rendering tasks of the target type are selected as the target servers. Among them, the hardware performance test results may include hardware performance scores, for example, the higher the hardware performance score, the better the hardware performance test results. If the hardware performance score exceeds the set threshold, it can indicate that the hardware performance test results are better. In another method, the servers that can support the rendering tasks of the target type can be screened out from the target cluster first, and then the hardware performance of each screened server can be detected; the servers are sorted according to the hardware performance test results, and the servers with better hardware performance test results are selected as the target servers.

[0065] In an embodiment of the present disclosure, after selecting a target server for a received rendering task, the task scheduling center can schedule the rendering task to the target server for processing. In one approach, multiple clusters can share a general task scheduling center. The general task scheduling center can directly schedule rendering tasks to any server of any cluster. In another approach, each cluster can have its own task scheduling center. The general task scheduling center can schedule rendering tasks to the task scheduling center of a cluster, which in turn is scheduled to the server of the cluster by the task scheduling center of the cluster. The task scheduling center of a cluster can exchange information with the task scheduling centers of other clusters, and schedule rendering tasks that need to be processed by other clusters to the servers of the other clusters through the task scheduling centers of other clusters.

[0066] According to the embodiments of the present disclosure, by scheduling rendering tasks according to the load of the target type of rendering tasks and the hardware performance of the servers in the cluster, high-performance servers can be used to process rendering tasks preferentially, thereby improving task processing efficiency.

[0067] In one implementation, determining computing resources allocated by a cluster for rendering tasks of the target type according to the type and number of tasks currently being processed by a cluster includes:

[0068] The computing power resources allocated by the cluster for rendering tasks of the target type are determined based on the number of resource units in the cluster that only process rendering tasks of the target type, the number of resource units that simultaneously process rendering tasks of the target type and other types of rendering tasks, the number of rendering tasks of the target type, the number of rendering tasks of the other types, and one or more of the resource quantity adjustment coefficient and the task quantity adjustment coefficient.

[0069] In the disclosed embodiment, the number of resource units may include the number of servers. If in a cluster, the number of servers that only process the rendering task T1 of the target type is pod(T1); the number of servers that simultaneously process the rendering task T1 of the target type and other types of rendering tasks T2 is pod(T1T2), the number of T1 is C1, and the number of T2 is C2, then the computing power resources allocated by the cluster for T1 are calculated. Source ( T1 An example of a formula for ) is as follows:

[0070] Formula 1

[0071] After calculating the computing power resources allocated by a cluster for rendering task T1, the load of the cluster for rendering task T1 can be determined based on the computing power resources. Load ( T1 ), the formula example is as follows:

[0072] Formula 2

[0073] According to the embodiments of the present disclosure, the computing power resources allocated by the server cluster for the rendering tasks of the target type can be determined by the number of resource units that can process the rendering tasks of the target type, and then the load of the cluster for the rendering tasks of the target type can be determined, and the rendering tasks can be reasonably allocated.

[0074] In one implementation, the resource quantity adjustment coefficient is determined based on one or more of the number of resource units that only process rendering tasks of the target type and the number of resource units that simultaneously process rendering tasks of the target type and other types of rendering tasks.

[0075] In the disclosed embodiment, the resource quantity adjustment coefficient may be obtained based on the resource unit quantity by mathematical means such as addition, ratio, weight, etc. When calculating the resource quantity adjustment coefficient, only the resource unit quantity of the target type of rendering task may be used, or the resource unit quantity of the target type of rendering task and the resource unit quantity of other types of rendering tasks may be used at the same time.

[0076] In one example, the formula of computing power resources can be optimized based on the resource quantity adjustment coefficient. For example, by optimizing Formula 1 based on the resource quantity adjustment coefficient a, the following Formula 3 can be obtained.

[0077] Formula 3

[0078] in, .

[0079] According to an embodiment of the present disclosure, the resource quantity adjustment coefficient can adjust the amount of server resources allocated by the cluster to the rendering tasks of the target type, thereby optimizing the computing resources allocated by the cluster to the rendering tasks of the target type.

[0080] In the embodiment of the present disclosure, the task quantity adjustment coefficient may be a preset value, which may adjust the number of rendering tasks of the target type in the formula of the computing power resource so that the number of rendering tasks of the target type is not 0. The task quantity adjustment coefficient may be a preset value such as 1, 2, ..., n, where n is greater than 1.

[0081] For example, if the task quantity adjustment coefficient is 1, Formula 1 can be optimized to the following Formula 4:

[0082] Formula 4

[0083] For another example, if the task quantity adjustment coefficient is 1, Formula 3 can be optimized to the following Formula 5:

[0084] Formula 5

[0085] In the embodiment of the present disclosure, the load and pod Examples of what this means are as follows:

[0086] Load: It is used to evaluate the number of rendering tasks carried by the cluster at a certain moment. A higher load indicates that the cluster carries a large number of rendering tasks. A load exceeding the set threshold indicates that congestion may exist.

[0087] pod : The smallest basic unit for performing tasks, such as a server in a cluster.

[0088] Figure 2 : is a flow chart of a method for scheduling rendering tasks in a heterogeneous multi-cluster according to another embodiment of the present disclosure, and the method may include one or more features of the above-mentioned method for scheduling rendering tasks. In one embodiment, it also includes:

[0089] S210: Input the hardware configuration information of a server into a hardware performance detection model to obtain a hardware performance detection result of the server.

[0090] In the disclosed embodiments, the hardware configuration of the server may affect the rendering speed of the rendering task. For example, the hardware configuration information that affects the rendering speed of the server may be determined based on one or more of the following: video memory capacity, memory bandwidth, number of CUDA (Compute Unified Device Architecture) cores, clock frequency, and graphics processing performance. For example, the hardware configuration information of a server may include a score corresponding to the video memory capacity and a score corresponding to the memory bandwidth. The hardware configuration information of the server is input into a trained hardware performance detection model, and the hardware performance detection result can be output.

[0091] According to the embodiments of the present disclosure, a pre-trained hardware detection model can be used to detect the hardware configuration information of the server, and the hardware performance detection results such as the hardware performance score can be output. The rendering tasks can be scheduled according to the hardware performance detection results. The rendering tasks can be scheduled to a server with better performance for processing, thereby improving the processing speed of the rendering tasks.

[0092] In one embodiment, the method for obtaining the training set of the hardware performance detection model includes:

[0093] Sending a batch of rendering task sets to multiple servers with different hardware configurations for processing, wherein the rendering task sets include multiple types of rendering tasks;

[0094] Obtaining the rendering task processing time of each server, where the rendering task processing time includes the time consumed by the server to process all rendering tasks in the rendering task set;

[0095] The training samples in the training set are constructed according to the reference value corresponding to the processing time of the rendering task of the server, the type of the rendering task and the hardware configuration information of the server.

[0096] For example, a set of rendering tasks includes multiple types of rendering tasks T1, T2, and T3. T1, T2, and T3 are sent to servers S1, S2, and S3 for processing, respectively. The time consumed by S1 to process T1, T2, and T3 is S1t1, the time consumed by S2 to process T1 and T3 is S2t1, and the time consumed by S3 to process T1 and T2 is S3t1. In one method, a training sample may include the hardware configuration information of the server and the time consumed by the server to execute the rendering task, such as {hardware configuration information of S1, S1t1}, {hardware configuration information of S2, S2t1}, {hardware configuration information of S3, S3t1}. In another method, a training sample may include the hardware configuration information of the server and the reference value corresponding to the time consumed by the server to execute the rendering task {reference value corresponding to hardware configuration information of S1, S1t1}, {reference value corresponding to hardware configuration information of S2, S2t1}, {reference value corresponding to hardware configuration information of S3, S3t1}. In another way, a training sample may include the hardware configuration information of the server and the time taken by the server to perform the rendering task and its corresponding reference value. The above reference value may also be referred to as the actual value of the training sample, which may be in the form of a score or the like. For example, if the time taken is scored as 3 within the first duration, the score is 2 if it is greater than the first duration and less than the second duration, and the score is 1 if it is greater than the second duration and less than the third duration.

[0097] According to the embodiments of the present disclosure, the processing time and hardware configuration information can be used to construct training samples to train the hardware detection model, which can improve the accuracy of the hardware detection model.

[0098] In one embodiment, the hardware performance detection result is determined based on the hardware configuration information and its corresponding weight coefficient through a linear fitting training process; wherein, the linear fitting training process includes: obtaining the weight coefficient and bias constant of the hardware performance detection model by minimizing the loss function of the hardware performance detection model; wherein the loss function is determined based on the predicted value output by the hardware performance detection model for the hardware configuration information and the actual value of the training sample.

[0099] An example of a linear fitting training formula for a hardware performance detection model is as follows:

[0100]

[0101] in, Indicates the weight coefficient of different performance indicators participating in the scoring, b Indicates the bias constant of the model, hardware configuration parameters such as video memory capacity, memory bandwidth, number of CUDA cores, clock frequency, graphics processing performance, and task type have corresponding scores according to different values Score() . Cost(Task)Indicates the task rendering time, which can be mapped to the final server hardware performance score. For example, the shorter the task rendering time, the higher the hardware performance score.

[0102] In the embodiment of the present disclosure, examples of the meanings of the parameters of the hardware performance detection model are as follows:

[0103] Video memory capacity: Video memory size determines the resolution, color depth, and number of textures of images and videos that the GPU can process. Larger video memory capacity means that the GPU can process larger amounts of data, which is crucial for rendering complex scenes and large texture images.

[0104] Memory bandwidth: Memory bandwidth determines how fast the GPU can transfer data to video memory. Higher memory bandwidth means the GPU can read and write data faster, thus speeding up graphics rendering.

[0105] CUDA core count: This indicates the number of parallel computing tasks that the GPU can perform simultaneously. More CUDA cores or stream processors generally mean that the GPU can handle more graphics rendering tasks, improving rendering speed and efficiency.

[0106] Clock rate: The clock rate of a GPU determines how fast it runs. A higher clock rate generally means faster calculations and responsiveness.

[0107] Graphics performance: This is the GPU's ability to accelerate graphics rendering, usually measured by a series of benchmark tests and the performance of specific applications.

[0108] Task type: can include multiple types, such as panorama rendering task, channel map rendering task, video rendering task, GPU engine-based image rendering task, etc.

[0109] In the embodiment of the present disclosure, a training data set is used to perform linear fitting training on the hardware detection model, and the optimal weight coefficient ω and bias constant b of the hardware detection model are obtained by minimizing the loss function of the hardware detection model. An example of a loss function is as follows:

[0110]

[0111] in , is the sample data x i The predicted value of y i Sample Data x i The corresponding actual value; the total number of samples is M ; is a vector composed of the weights of each feature, b is the bias constant.

[0112] For example, the hardware detection model can be built based on neural networks such as feedforward neural networks, convolutional neural networks, recurrent neural networks, transformers, etc. The dataset parameter vector (training sample) used for training can include the hardware configuration parameter score and hardware performance score of the rendering server. The hardware performance score is a score obtained by converting the task running time of a batch of combined rendering tasks processed by the above rendering server. The model is trained by linear fitting using the linear regression formula to obtain the final hardware detection model.

[0113] Figure 3 1 is a flow chart of a method for scheduling rendering tasks in heterogeneous multi-clusters according to another embodiment of the present disclosure, and the method may include one or more features of the above-mentioned method for scheduling rendering tasks. In one embodiment, step S150 selects a target server that supports the rendering task from the target cluster according to the hardware performance detection result of the server in the target cluster, including:

[0114] S310, selecting a candidate server that supports the rendering task in the target cluster according to the sorting result of the hardware performance detection result;

[0115] S320: When the selected candidate server has no idle resources, select another candidate server that supports the rendering task from the servers that have not been selected in the sorting results of the hardware performance detection results in the target cluster;

[0116] S330, until the selected candidate server has idle resources, wherein the candidate server with idle resources is the target server.

[0117] In an embodiment of the present disclosure, after obtaining the hardware performance test results of the servers in the target server cluster, they can be sorted directly, or the servers whose hardware performance test results do not meet the standards can be excluded first and then the hardware performance test results of the remaining servers can be sorted. For example, servers with hardware performance test scores less than 60 points are excluded. Specifically, the servers can be sorted from high to low according to the hardware performance test scores. For example, in the sorting results, the server with the highest hardware performance test score and that can support the rendering task is first selected. Determine whether the selected server has idle resources. If so, the rendering task is dispatched to the server for processing. If not, the server with the second highest hardware performance test score and that can support the rendering task can be selected in the sorting results. Determine whether the selected server has idle resources. If so, the rendering task is dispatched to the server for processing. If not, continue to select in order from high to low according to the hardware performance test scores until a server with idle resources is found.

[0118] According to the embodiment of the present disclosure, by sorting the hardware performance test results of the servers, servers with good hardware performance test results and idle resources can be preferentially selected to process rendering tasks, thereby better utilizing the idle resources of the servers and improving the processing speed of rendering tasks.

[0119] Figure 4 1 is a flow chart of a method for scheduling rendering tasks in a heterogeneous multi-cluster according to an embodiment of the present disclosure. The method may include:

[0120] S410, receiving a rendering task set, the rendering task set including rendering tasks of different types, and the number of rendering tasks in the rendering task set is not higher than a set maximum concurrency number;

[0121] S420, determining computing resources allocated by a cluster to each type of rendering task according to the type and quantity of tasks currently being processed by a cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0122] S430, determining the load of the cluster for each type of rendering task according to the computing resources allocated by the cluster for each type of rendering task;

[0123] S440, comparing the loads of multiple clusters for each type of rendering task to select a target cluster from the multiple clusters;

[0124] S450, selecting a target cluster for each rendering task from the multiple clusters according to the hardware performance detection result of the server in the target cluster;

[0125] S460, selecting a target server that supports each rendering task from the target cluster according to the hardware performance test results of the servers in the target cluster;

[0126] S470: Dispatching each rendering task to a corresponding target server.

[0127] In the disclosed embodiments, different types of servers may support different types of rendering tasks, and a rendering task set may include multiple different types of rendering tasks. The task scheduling center may calculate the computing resources allocated to each type of rendering task for each type of rendering task, and then calculate the load of the cluster for each type of rendering task. The calculation process can refer to the explanations and examples related to steps S120 and S130 in the above embodiments. The task scheduling center may calculate the computing resources and loads of multiple clusters for multiple types of rendering tasks in parallel, or may select the calculation order according to the processing power.

[0128] In the embodiment of the present disclosure, for a rendering task set, priorities can also be set for the rendering tasks in the set according to task types, user types, etc. Target servers are allocated to rendering tasks with high priorities first, and then to rendering tasks with low priorities.

[0129] In an embodiment of the present disclosure, after calculating the loads of multiple clusters for multiple types of rendering tasks, the loads of multiple clusters for each type of rendering task can be compared, and a cluster with the smallest load can be selected as a target cluster for each type of rendering task from the multiple clusters.

[0130] In an embodiment of the present disclosure, the target cluster corresponding to each type of rendering task includes multiple servers that may support multiple types of rendering tasks. In one method, the hardware performance of each server in the target cluster can be first detected; the servers are sorted according to the hardware performance test results, and the servers with better hardware performance test results and capable of supporting a certain type of rendering tasks are selected as the target servers for this type of rendering tasks. In another method, the servers that can support a certain type of rendering tasks can be first screened out from the target cluster, and then the hardware performance of each screened out server can be detected; the servers are sorted according to the hardware performance test results, and the servers with better hardware performance test results are selected as the target servers.

[0131] After selecting a target server for each type of rendering task in the received rendering task set, the task scheduling center can schedule each type of rendering task in the rendering task set to the corresponding target server for processing. In one approach, multiple clusters can share a general task scheduling center. The general task scheduling center can directly schedule each type of rendering task to any server in any cluster. In another approach, each cluster can have its own task scheduling center. The general task scheduling center can schedule each type of rendering task to the task scheduling center of a cluster, which in turn schedules it to the server of the cluster.

[0132] According to an embodiment of the present disclosure, a cluster is used to schedule various types of rendering tasks in a rendering task set based on the load of various types of rendering tasks in the rendering task set and the hardware performance of servers in the cluster. High-performance servers can be used to prioritize various types of rendering tasks in the rendering task set, thereby improving task processing efficiency.

[0133] In one application scenario, the service architecture of cloud rendering can include a task scheduling center and a large number of rendering servers. The servers can be deployed in multiple remote computer rooms. The task scheduling center is responsible for receiving rendering task requests and scheduling the task to the appropriate rendering server for consumption. The rendering environment and hardware configuration supported by each server are slightly different. For example, the rendering environment supported by server A is (panoramic rendering, channel map rendering, video rendering), and the rendering environment supported by server B is (GPU engine image rendering). Different rendering tasks require different rendering environments. For example, if rendering task C wants to render a panorama with channel map output, the environment set supported by the server is (panoramic rendering, channel map rendering), and if rendering task D wants to render a roaming video, the environment set supported by the server is (video rendering). Based on the above example: rendering tasks C and D can both be processed (or consumed) by server A, and cannot be processed by server B.

[0134] 1. The specific process of a rendering task scheduling method in a heterogeneous multi-cluster is as follows Figure 5 As shown:

[0135] S501. A hardware performance scoring model is obtained through linear regression training, and hardware scores of all servers in each cluster are calculated according to the trained hardware performance scoring model.

[0136] S502: The server reports its own hardware score and supported rendering environment to the task scheduling center.

[0137] S503: After receiving the rendering task, the task scheduling center parses the detailed information of the rendering task and obtains the rendering environment required by the rendering task.

[0138] S504: Calculate the real-time load of each cluster according to the cluster load calculation method for multi-environment colocation.

[0139] S505: Select the cluster with the lowest load, sort all servers in the cluster from high to low according to the hardware score, and obtain an ordered server score list. It can be assumed that the higher the score of the server, the higher the priority.

[0140] S506, obtaining the server with the highest priority. For example, selecting the server that supports the environment required by the rendering task and has the highest score, and determining whether the server is idle. If it is idle, executing step S507; otherwise, executing step S508.

[0141] S507, dispatching the server to process (or consume) the current rendering task, and executing step S509.

[0142] S508, obtaining the server with the next highest priority. For example, select the server with the second highest score next to the current one, and determine whether the server is idle. If so, proceed to step S507; otherwise, continue to execute step S508 to continue to select servers with lower scores until an idle server is selected or all servers are traversed.

[0143] S509, end.

[0144] 2. A GPU performance scoring model based on graphics rendering is introduced in detail as follows:

[0145] Performance indicators that affect graphics rendering speed include one or more of the following: video memory capacity, memory bandwidth, number of CUDA (Compute Unified Device Architecture) cores, clock frequency, and graphics processing performance.

[0146] Pull a batch of combined rendering task sets, which contain rendering tasks of multiple resolutions, and send the task sets to rendering servers with different hardware configurations for consumption multiple times. Obtain the running time of all tasks in the task set, and finally obtain the data set used to train the GPU performance scoring model. The data set parameter vector contains the task resolution, task running time, and the hardware configuration of the task running server (including video memory capacity, memory bandwidth, number of CUDA cores, clock frequency, and graphics processing performance). The graphics processing performance is scored through the performance benchmark module. The constructed GPU performance scoring model is as follows:

[0147]

[0148] in Indicates the weight coefficient of different performance indicators participating in the scoring, b Represents the bias constant of the model. The training strategy adopted is to use the data set to perform linear fitting training on the model, and obtain the optimal weight coefficient and bias constant of the model by minimizing the loss function of the model. The loss function is:

[0149]

[0150] in, It is the sample data x i The predicted value of y i Sample Data x i The corresponding actual value; the total number of samples is M ; is a vector composed of the weights of each feature, bis the bias constant. Hardware configuration parameters (video memory capacity, memory bandwidth, number of CUDA cores, clock frequency, graphics processing performance, task type) have corresponding scores according to different values.

[0151] For example, the GPU performance scoring model can be built based on a neural network. The dataset parameter vector used for training can include the hardware configuration parameter score of the rendering server and the GPU performance score. The GPU performance score can be a score converted based on the task running time of a batch of combined rendering task sets processed by the rendering server.

[0152] Then, the linear regression formula is used to perform linear fitting training on the model to obtain the final GPU performance scoring model.

[0153] 3. An example of cluster load calculation method based on multi-environment colocation is as follows:

[0154] Each server can accept multiple types of tasks at the same time, so the load is calculated based on the computing power contribution that the server can make to each type of task (that is, the computing power resources allocated to each type of task). For any type of rendering task, the server can be divided into three situations:

[0155] (1) Servers that only support the environment required for this task type;

[0156] (2) Servers that support the environment required for this task type and other environments;

[0157] (3) The server does not support the environment required for this task type.

[0158] For example, task A can refer to a task that requires rendering environment set A, task B can refer to a task that requires rendering environment set B, and task AB can refer to tasks that require rendering environment sets A and B. Rendering environment set A can refer to a set that contains one or more rendering environments. Based on the tasks in the cluster, there are the following situations:

[0159] 1. When there are tasks AB in the cluster at the same time, and the server can run tasks AB at the same time, then the cluster contributes computing power to both tasks A and B.

[0160] 2. When the cluster only has task A and the server can run tasks AB at the same time, the cluster only contributes computing power to task A.

[0161] 3. When there are tasks AB in the cluster at the same time, and the server can only run task A, then the cluster only contributes computing power to task A.

[0162] 4. When the cluster only has task B and the server can only run task A, the cluster still only contributes computing power to task A.

[0163] An example of a calculation formula for computing resources allocated by a cluster to task A is as follows:

[0164]

[0165] An example of a calculation formula for the load of task A in a cluster is as follows:

[0166]

[0167] in Source(A) Refers to the support tasks assigned by the cluster A (Requires rendering environment collection A the total number of resources for the task, pod(A) It means that only tasks can be run A The number of servers, pod(AB) Refers to the ability to run tasks A and tasks B The number of servers, Count(A) Refers to the task A The number of Count(B) Refers to the task B The number of Load(A) Refers to the supported tasks in the cluster A (Requires rendering environment collection A tasks) of the server.

[0168] If the cluster has tasks A and tasks B The tasks are half and half, and there are a large number of running tasks A of pod , a small number of running tasks B of pod , several running tasks A and tasks B of pod , if we directly allocate according to the task ratio pod(AB) There are still a lot of machines running tasks. A .

[0169] Therefore, according to pod(A) and pod(B) to adjust the proportion pod(AB) To the task A and tasks B The distribution of , and the example of the optimization formula is as follows:

[0170]

[0171] The coefficient Can be based on pod(A) Dynamic adjustment of the number of pod(AB)Should be assigned to tasks A The number of resources, pod(A) The more you need pod(AB) The fewer tasks A are processed, the more tasks need to be processed. A The fewer resources provided; conversely, pod(A) The less, the more pod(AB) To the task A The more resources provided.

[0172] If tasks are assigned based on the amount of resources, then when there are no tasks in the cluster A And no pod(A) , Task A The resources are 0. To avoid the task A The resource is always 0, and there is 1 task by default (which can be regarded as the currently added task and used to determine the idlest cluster). The formula for further optimization is as follows:

[0173]

[0174] Among them, the default number of tasks is a preset value, which can also be 2 tasks, 3 tasks...n tasks in a server cluster.

[0175] Figure 6 6 is a schematic diagram of a rendering task set scheduling device 600 in a heterogeneous multi-cluster according to an embodiment of the present disclosure. The device includes:

[0176] A receiving module 601 is used to receive a rendering task, where the type of the rendering task is a target type;

[0177] An allocation module 602 is used to determine the computing resources allocated by a cluster to the rendering tasks of the target type according to the type and quantity of tasks currently being processed by the cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0178] A load determination module 603, configured to determine the load of the cluster for the rendering task of the target type according to the computing resources allocated by the cluster for the rendering task of the target type;

[0179] A cluster selection module 604, configured to compare the loads of multiple clusters for rendering tasks of the target type to select a target cluster from the multiple clusters;

[0180] A server selection module 605, configured to select a target server supporting the rendering task from the target cluster according to a hardware performance detection result of the servers in the target cluster;

[0181] The scheduling module 606 is used to schedule the rendering task to the target server.

[0182] In one implementation, determining computing resources allocated by a cluster for rendering tasks of the target type according to the type and number of tasks currently being processed by a cluster includes:

[0183] The computing power resources allocated by the cluster for rendering tasks of the target type are determined based on the number of resource units in the cluster that only process rendering tasks of the target type, the number of resource units that simultaneously process rendering tasks of the target type and other types of rendering tasks, the number of rendering tasks of the target type, the number of rendering tasks of the other types, and one or more of the resource quantity adjustment coefficient and the task quantity adjustment coefficient.

[0184] In one implementation, the resource quantity adjustment coefficient is determined based on one or more of the number of resource units that only process rendering tasks of the target type and the number of resource units that simultaneously process rendering tasks of the target type and other types of rendering tasks.

[0185] Figure 7 is a schematic diagram of a rendering task set scheduling device 700 in a heterogeneous multi-cluster according to another embodiment of the present disclosure, and the device may include one or more features of the above-mentioned image processing device. In one embodiment, the device further includes:

[0186] The input module 701 is used to input the hardware configuration information of a server into the hardware performance detection model to obtain the hardware performance detection result of the server.

[0187] In one embodiment, the method for obtaining the training set of the hardware performance detection model includes:

[0188] Sending a batch of rendering task sets to multiple servers with different hardware configurations for processing, wherein the rendering task sets include multiple types of rendering tasks;

[0189] Obtaining the rendering task processing time of each server, where the rendering task processing time includes the time consumed by the server to process all rendering tasks in the rendering task set;

[0190] The training samples in the training set are constructed according to the reference value corresponding to the processing time of the rendering task of the server, the type of the rendering task and the hardware configuration information of the server.

[0191] In one embodiment, the hardware performance detection result is determined based on the hardware configuration information and its corresponding weight coefficient through a linear fitting training process; wherein, the linear fitting training process includes: obtaining the weight coefficient and bias constant of the hardware performance detection model by minimizing the loss function of the hardware performance detection model; wherein the loss function is determined based on the predicted value output by the hardware performance detection model for the hardware configuration information and the actual value of the training sample.

[0192] In one implementation, selecting a target server supporting the rendering task from the target cluster according to hardware performance detection results of the servers in the target cluster includes:

[0193] Select a candidate server that supports the rendering task in the target cluster according to the sorting result of the hardware performance detection result;

[0194] In a state where the selected candidate server has no idle resources, selecting another candidate server supporting the rendering task from the servers that have not been selected in the sorting results of the hardware performance detection results in the target cluster;

[0195] Until the selected candidate server has idle resources, wherein the candidate server with idle resources is the target server.

[0196] Figure 8 8 is a schematic diagram of a rendering task set scheduling device 800 in a heterogeneous multi-cluster according to an embodiment of the present disclosure. The device includes:

[0197] A receiving module 801 is used to receive a rendering task set, where the rendering task set includes rendering tasks of different types, and the number of rendering tasks in the rendering task set is not higher than a set maximum concurrency number;

[0198] An allocation module 802 is used to determine the computing resources allocated by a cluster to each type of rendering task according to the type and quantity of tasks currently being processed by the cluster, wherein a cluster includes multiple servers, and different types of servers support different types of rendering tasks;

[0199] A load determination module 803, configured to determine the load of the cluster for each type of rendering task according to the computing resources allocated by the cluster for each type of rendering task;

[0200] A target cluster selection module 804 is used to compare the loads of multiple clusters for each type of rendering task to select a target cluster from the multiple clusters;

[0201] A rendering task target cluster selection module 805 is used to select a target cluster for each rendering task from the multiple clusters according to the hardware performance detection result of the servers in the target cluster;

[0202] A server selection module 806, configured to select a target server supporting each rendering task from the target cluster according to a hardware performance detection result of the servers in the target cluster;

[0203] The scheduling module 807 is used to schedule each rendering task to the corresponding target server.

[0204] Fig. 9 FIG. 1 is a structural block diagram of an electronic device according to an embodiment of the present disclosure. Fig. 9 As shown, the electronic device includes: a memory 910 and a processor 920, and the memory 910 stores a computer program that can be run on the processor 920. The number of memories 910 and processors 920 can be one or more. The memory 910 can store one or more computer programs. When the one or more computer programs are executed by the electronic device, the electronic device executes the method provided by the above method embodiment. The electronic device may also include: a communication interface 930, which is used to communicate with external devices and perform data exchange transmission.

[0205] If the memory 910, the processor 920 and the communication interface 930 are implemented independently, the memory 910, the processor 920 and the communication interface 930 can be connected to each other through a bus and communicate with each other. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig. 9 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0206] Optionally, in a specific implementation, if the memory 910, the processor 920 and the communication interface 930 are integrated on a chip, the memory 910, the processor 920 and the communication interface 930 can communicate with each other through an internal interface.

[0207] It should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the Advanced RISC Machines (ARM) architecture.

[0208] Further, optionally, the above-mentioned memory may include a read-only memory and a random access memory, and may also include a non-volatile random access memory. The memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may include a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may include a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct memory bus random access memory (DR RAM).

[0209] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instruction is loaded and executed on a computer, the process or function according to the embodiment of the present disclosure is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instruction can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instruction can be transmitted from a website site, computer, server or data center by wired (for example: coaxial cable, optical fiber, data subscriber line (Digital Subscriber Line, DSL)) or wireless (for example: infrared, Bluetooth, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access, or a data storage device such as a server or data center that includes one or more available media integrations. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a digital versatile disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)), etc. It is worth noting that the computer-readable storage medium mentioned in the present disclosure may be a non-volatile storage medium, in other words, a non-transient storage medium.

[0210] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0211] In the description of the embodiments of the present disclosure, the description with reference to the terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present disclosure. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art may combine and combine the different embodiments or examples described in this specification and the features of the different embodiments or examples, unless they are contradictory.

[0212] In the description of the embodiments of the present disclosure, unless otherwise specified, " / " means or, for example, A / B can mean A or B. "And / or" in this article is only a way to describe the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone.

[0213] In the description of the embodiments of the present disclosure, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of the present disclosure, unless otherwise specified, "plurality" means two or more.

[0214] The above description is only an exemplary embodiment of the present disclosure and is not intended to limit the present disclosure. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present disclosure shall be included in the protection scope of the present disclosure.

Claims

1. A rendering task scheduling method in a heterogeneous multi-cluster, comprising: receiving a rendering task, wherein the type of the rendering task is a target type; Determining computing resources allocated by a cluster to rendering tasks of the target type according to the type and quantity of tasks currently being processed by a cluster, wherein the cluster includes multiple servers, and different types of servers support different types of rendering tasks; Determining the load of the cluster for the rendering tasks of the target type according to the computing resources allocated by the cluster for the rendering tasks of the target type; comparing the loads of multiple clusters for rendering tasks of the target type to select a target cluster from the multiple clusters; Selecting a target server supporting the rendering task from the target cluster according to a hardware performance test result of the server in the target cluster; Dispatching the rendering task to the target server; Among them, according to the hardware performance test results of the servers in the target cluster, a target server supporting the rendering task is selected from the target cluster, including: selecting a candidate server supporting the rendering task in the target cluster according to the sorting results of the hardware performance test results; in a state where the selected candidate server does not have free resources, selecting again a candidate server supporting the rendering task from the servers in the target cluster that have not been selected in the sorting results of the hardware performance test results; until the selected candidate server has free resources, wherein the candidate server with free resources is the target server.

2. The method according to claim 1, wherein: Determining computing resources allocated by a cluster to rendering tasks of the target type according to the type and quantity of tasks currently being processed by a cluster includes: The computing power resources allocated by the cluster to the rendering tasks of the target type are determined based on the number of resource units in the cluster that only process rendering tasks of the target type, the number of resource units that simultaneously process rendering tasks of the target type and other types of rendering tasks, the number of rendering tasks of the target type, the number of rendering tasks of other types, a resource quantity adjustment coefficient, and one or more of a task quantity adjustment coefficient.

3. The method according to claim 2, wherein: The resource quantity adjustment coefficient is determined according to one or more of the number of resource units that only process the rendering tasks of the target type and the number of resource units that simultaneously process the rendering tasks of the target type and the rendering tasks of the other types.

4. The method according to any one of claims 1 to 3, further comprising: The hardware configuration information of a server is input into the hardware performance detection model to obtain the hardware performance detection result of the server.

5. The method according to claim 4, wherein: The method of obtaining the training set of the hardware performance detection model includes: Sending a batch of rendering task sets to multiple servers with different hardware configurations for processing, wherein the rendering task sets include multiple types of rendering tasks; Obtaining the rendering task processing time of each server, where the rendering task processing time includes the time consumed by the server to process all rendering tasks in the rendering task set; The training samples in the training set are constructed according to the reference value corresponding to the processing time of the rendering task of the server, the type of the rendering task and the hardware configuration information of the server.

6. The method according to claim 5, wherein: The hardware performance detection result is determined through a linear fitting training process based on the hardware configuration information and its corresponding weight coefficient; wherein the linear fitting training process includes: obtaining the weight coefficient and bias constant of the hardware performance detection model by minimizing the loss function of the hardware performance detection model; wherein the loss function is determined based on the predicted value output by the hardware performance detection model for the hardware configuration information and the actual value of the training sample.

7. A method for scheduling a rendering task set in a heterogeneous multi-cluster, comprising: Receive a rendering task set, the rendering task set including rendering tasks of different types, and the number of rendering tasks in the rendering task set is not higher than a set maximum concurrency number; Determining computing resources allocated by a cluster to each type of rendering task according to the type and number of tasks currently being processed by the cluster, wherein the cluster includes multiple servers, and different types of servers support different types of rendering tasks; Determining the load of the cluster for each type of rendering task according to the computing resources allocated by the cluster to each type of rendering task; comparing the loads of a plurality of clusters for each type of rendering tasks to select a target cluster from the plurality of clusters; Selecting a target cluster for each rendering task from the multiple clusters according to hardware performance detection results of servers in the target cluster; According to the hardware performance detection results of the servers in the target cluster, selecting a target server supporting each of the rendering tasks from the target cluster; Each of the rendering tasks is dispatched to corresponding target servers respectively.

8. A rendering task scheduling device in a heterogeneous multi-cluster, comprising: A receiving module, used for receiving a rendering task, wherein the type of the rendering task is a target type; An allocation module, configured to determine the computing resources allocated by a cluster to the rendering tasks of the target type according to the type and quantity of tasks currently being processed by the cluster, wherein the cluster includes multiple servers, and different types of servers support different types of rendering tasks; A load determination module, configured to determine the load of the cluster for the rendering task of the target type according to the computing resources allocated by the cluster for the rendering task of the target type; A cluster selection module, configured to compare the loads of multiple clusters for rendering tasks of the target type to select a target cluster from the multiple clusters; A server selection module, configured to select a target server supporting the rendering task from the target cluster according to a hardware performance detection result of the servers in the target cluster; A scheduling module, used for scheduling the rendering task to the target server; Among them, the server selection module is also used to select a candidate server supporting the rendering task in the target cluster according to the sorting results of the hardware performance test results; when the selected candidate server does not have free resources, select another candidate server supporting the rendering task from the servers in the target cluster that have not been selected according to the sorting results of the hardware performance test results; until the selected candidate server has free resources, wherein the candidate server with free resources is the target server.

9. The device according to claim 8, wherein: The server selection module is used for: Selecting a candidate server that supports the rendering task in the target cluster according to the sorting result of the hardware performance detection result; In a state where the selected candidate server has no idle resources, selecting again a candidate server supporting the rendering task from servers in the target cluster that have not been selected in the sorting results according to the hardware performance detection results; Until the selected candidate server has idle resources, wherein the candidate server with idle resources is the target server.

10. A rendering task set scheduling device in a heterogeneous multi-cluster, comprising: A receiving module, configured to receive a rendering task set, wherein the rendering task set includes rendering tasks of different types, and the number of rendering tasks in the rendering task set is not higher than a set maximum concurrency number; An allocation module, configured to determine the computing resources allocated by a cluster to each type of rendering task according to the type and quantity of tasks currently being processed by the cluster, wherein the cluster includes multiple servers, and different types of servers support different types of rendering tasks; A load determination module, configured to determine the load of the cluster for each type of rendering task according to the computing resources allocated by the cluster for each type of rendering task; a target cluster selection module, configured to compare the loads of multiple clusters for each type of rendering task to select a target cluster from the multiple clusters; A rendering task target cluster selection module, configured to select a target cluster for each rendering task from the multiple clusters according to hardware performance detection results of servers in the target cluster; A server selection module, configured to select a target server supporting each rendering task from the target cluster according to a hardware performance detection result of the servers in the target cluster; The scheduling module is used to schedule each of the rendering tasks to the corresponding target servers.

11. An electronic device, comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 7.

12. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to any one of claims 1-7.

13. A computer program product, comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Scene rendering method and device, cluster, storage medium and electronic equipment

    CN112473130A

  • Scheduling method and equipment

    CN112491978A