A method of predicting application performance and a computing device

By constructing a performance feature dataset and utilizing random forest and multinomial regression algorithms, the runtime of applications in a cluster system is predicted, solving the problem of insufficient accuracy in performance prediction in cluster systems and enabling more precise resource allocation and operational optimization.

CN119226115BActive Publication Date: 2025-11-04BEIJING PARATERA TECH +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411419372.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-11
Publication Date
2025-11-04
Estimated Expiration
2044-10-11

AI Technical Summary

Technical Problem

Existing technologies for predicting application performance on cluster systems face challenges such as difficulty in data acquisition, complexity in predictive model construction, and insufficient accuracy of prediction results, especially in newly launched or short-term used cluster systems where prediction accuracy is affected.

Method used

By constructing a dataset of application performance characteristics, a random forest algorithm is used to train and generate an application performance prediction model. A multinomial regression algorithm is then used to fit and calculate the nonlinear relationship between the number of nodes and runtime, thereby predicting the runtime of the application in the cluster system.

Benefits of technology

It improves the accuracy of application performance prediction, provides users with accurate suggestions for choosing computing power usage, optimizes resource allocation, and enhances the operational efficiency and economic benefits of the cluster system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119226115B_ABST
    Figure CN119226115B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of high-performance computing, and particularly discloses a method for predicting the performance of an application program and a computing device. The method comprises the following steps: constructing a performance characteristic data set based on the running parameters of an application program in each job of a cluster system; determining similar characteristic data from the performance characteristic data set based on the running parameters of the application program on a single computing node of the cluster system; classifying the similar characteristic data according to the number of computing nodes, generating simulation characteristic data by using an application performance prediction model based on the number of similar characteristic data in each classification; generating an application data set by using the similar characteristic data and the simulation characteristic data; fitting the relationship between the number of computing nodes and the running time by using a polynomial regression algorithm based on the application data set; and predicting the running time of the application program on each computing node of the cluster system by using the fitted relationship. According to the application, accurate computing power use selection suggestions can be provided for the application program.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of high-performance computing, and in particular to a method for predicting application performance and a computing device. BACKGROUND

[0002] In the field of high-performance computing, application performance prediction is a key research topic. The purpose is to analyze and establish models of the usage patterns of cluster resources to predict the performance of an application on a cluster system within a specific time period in the future. This prediction is crucial for users to effectively utilize cluster resources and optimize application performance, and also provides important decision support for the management team of the cluster center, helping to improve the operational efficiency and economic benefits of the cluster center.

[0003] Currently, the research on predicting the performance of applications (i.e., HPC (High Performance Computing) applications) on a cluster system mainly focuses on the following methods: performance prediction based on historical data, performance prediction based on machine learning, and performance prediction based on models. These methods have their own advantages, but also have certain limitations. For example, the method based on historical data may be affected by the lack of sufficient historical data when predicting new online or short-time cluster systems; the method based on machine learning relies on the accuracy and quantity of data; and the method based on models requires a deep understanding of the internal structure and operating mechanism of the cluster system, which often requires professional knowledge and technology.

[0004] Although existing technologies can provide performance prediction to varying degrees, they still face challenges such as difficulty in data acquisition, complexity in constructing prediction models, and insufficient accuracy of prediction results in practical applications. Therefore, there is an urgent need for a new performance prediction method that can solve the problems in existing technologies and improve the accuracy of predicting application performance on a cluster system, thereby providing strong technical support for the development of the cluster field. SUMMARY

[0005] The present application provides a method for predicting application performance and a computing device to attempt to solve or at least alleviate at least one of the problems existing above.

[0006] According to an aspect of the present application, a method for predicting application performance is provided, the application running on a cluster system, the cluster system comprising a plurality of computing nodes, and each computing node comprising a plurality of cores, the method being adapted to be executed in a computing device, the method comprising: constructing a performance feature dataset of the application based on running parameters of the application running in each job of the cluster system, wherein the performance feature dataset comprises a plurality of performance feature data, and each performance feature data indicates a performance feature and a running time of the application running in a corresponding job; determining a plurality of similar feature data from the performance feature dataset based on running parameters of the application running on a single computing node of the cluster system; classifying the plurality of similar feature data according to the number of computing nodes, and generating a plurality of simulation feature data based on the number of similar feature data in each classification, using an application performance prediction model adapted to predict the running time of the application according to a plurality of input performance features; generating an application dataset of the application using the similar feature data and the simulation feature data; fitting a relationship between the number of computing nodes and the running time using a polynomial regression algorithm based on the application dataset; and predicting the running time of the application on each computing node of the cluster system through the fitted relationship.

[0007] Optionally, in the method according to the present application, constructing a performance feature dataset of the application based on running parameters of the application running in each job of the cluster system comprises: obtaining respective running parameters of the application running in each job of the cluster system, wherein each running parameter comprises a running time and the following features: the number of computing nodes, the number of cores, the number of floating-point calculations, the average floating-point calculation capability GFLOPS / G of a node, the proportion of the average number of floating-point operations (GFLOPS) of a node, the average memory bandwidth membw / GBps of a job, the average communication receiving bandwidth / MBps of a node, and the average communication sending bandwidth / MBps of a node; for each running parameter, adding a new feature based on part of the features; for each feature in each running parameter, determining a first number of features most relevant to the running time by calculating the correlation between each feature and the running time, as performance features, and associating the performance features with the corresponding running time as performance feature data of the application.

[0008] Optionally, in the method according to the present application, adding a new feature based on part of the features comprises: determining the total floating-point calculation amount of a node based on the average floating-point calculation capability of a node and the running time; determining the total memory bandwidth amount of a node based on the average memory bandwidth of a job and the running time; and taking the total floating-point calculation amount of a node and the total memory bandwidth amount of a node as new features.

[0009] Optionally, in the method according to the present application, the performance characteristics include: total floating point computation amount of a node, total memory bandwidth amount of a node, average floating point computation capability of a node, and number of computing nodes.

[0010] Optionally, in the method according to the present application, the running parameters respectively corresponding to the running of the application program in each job of the cluster system are obtained, and the method further comprises: performing data cleaning on the obtained running parameters to remove outliers in the running parameters.

[0011] Optionally, in the method according to the present application, after the performance characteristic dataset of the application program is constructed, the method further comprises: based on the performance characteristic dataset, training an application performance prediction model by using a random forest algorithm.

[0012] Optionally, in the method according to the present application, training the application performance prediction model comprises: based on the performance characteristic dataset, taking the performance characteristics of the running of the application program in the corresponding job as training data and taking the running duration of the running of the application program in the corresponding job as label data; based on a random forest regression model, constructing an initial application performance prediction model and setting initial model parameters; inputting the training data into the random forest regression model, and outputting the running duration after processing as prediction data; calculating the mean square error of the label data and the prediction data, and adjusting the model parameters to minimize the mean square error, repeating the steps of obtaining the prediction data and adjusting the model parameters until the training is completed, and obtaining the trained application performance prediction model.

[0013] Optionally, in the method according to the present application, based on the running parameters of the running of the application program on a single computing node of the cluster system, the similar characteristic data from the performance characteristic dataset are determined, which comprises: obtaining the running parameters of the running of the application program on a single computing node of the cluster system; determining a plurality of performance characteristic data satisfying a preset condition from the performance characteristic dataset as corresponding similar characteristic data.

[0014] Optionally, in the method according to the present application, based on the number of similar feature data under each category, a plurality of simulation feature data are generated by using an application performance prediction model, comprising: judging whether the number of similar feature data under each category is less than a second number; if less than the second number, a simulation feature meeting a preset condition is randomly generated, the simulation feature at least comprising: node total floating point calculation amount, node total memory bandwidth amount, and node average floating point calculation capability; the simulation feature and the number of computing nodes corresponding to the category of the simulation feature are input into the application performance prediction model to generate a corresponding running time, and the simulation feature and the corresponding running time are associated as simulation feature data, wherein the number of simulation feature data generated under each category is equal to the difference between the second number and the number of similar feature data under the corresponding category.

[0015] Optionally, in the method according to the present application, the preset condition comprises that the error of the three features of the node total floating point calculation amount, the node total memory bandwidth amount, and the node average floating point calculation capability with respect to the corresponding features in the current running parameter does not exceed a threshold value.

[0016] Optionally, in the method according to the present application, a relationship between the number of computing nodes and the running time is fitted by using a polynomial regression algorithm, comprising: taking the number of computing nodes as the independent variable and the running time as the dependent variable, and generating a polynomial regression model indicating the nonlinear relationship between the number of computing nodes and the running time by using the least square method.

[0017] Optionally, the method according to the present application further comprises: based on the fitted relationship, drawing a running time curve of the application program to determine the shortest running time under different computing node configurations.

[0018] Optionally, in the method according to the present application, the abnormal values comprise: the node average floating point calculation capability GFLOPS / G is less than 50, the job average memory bandwidth membw / GBps is less than 10, and in the multi-core condition, the node average communication receiving bandwidth / MBps and the node average communication sending bandwidth / MBps are 0.

[0019] Optionally, in the method according to the present application, the first number is 4.

[0020] Optionally, in the method according to the present application, the second number is 5.

[0021] According to still another aspect of the present application, a computing device is provided, comprising: one or more processors and memories; one or more programs, wherein the one or more programs are stored in the memories and configured to be executed by the one or more processors, and the one or more programs comprise instructions for executing any of the above methods.

[0022] According to still another aspect of the present application, a computer readable storage medium storing one or more programs is provided, the one or more programs comprising instructions which, when executed by a computing device, cause the computing device to perform any of the methods described above.

[0023] According to still another aspect of the present application, a computer program product is provided, comprising computer programs / instructions, wherein the computer programs / instructions, when executed by a processor, implement the steps of the above-described methods.

[0024] To sum up, according to the scheme of the present application, by aggregating a large number of running parameters of the same application program running in each job of the cluster system, the performance characteristics most relevant to the running time are determined, and the performance characteristic dataset of the application program is constructed. On the one hand, the performance characteristic dataset is used to train the application performance prediction model, which is used to predict the corresponding running time according to the input performance characteristics. On the other hand, according to the running parameters of the application program in a single computing node, the performance characteristic dataset and the application performance prediction model are combined to generate the application dataset. Then, based on the application dataset, the non-linear relationship between the number of computing nodes and the running time is fitted by using the polynomial regression algorithm, and the running time of each computing node of the application program in the cluster system is predicted through the fitted relationship, thereby providing accurate computing power usage selection suggestions for the application program.

[0025] The above description is only a summary of the technical scheme of the present application. In order to enable the technical means of the present application to be more clearly understood, and to be implemented according to the content of the description, and in order to enable the above and other purposes, features and advantages of the present application to be more apparent and easy to understand, the following specific embodiments of the present application are described. BRIEF DESCRIPTION OF DRAWINGS

[0026] In order to achieve the above and related purposes, certain illustrative aspects will be described herein in connection with the following description and drawings, which are indicative of the various ways in which the principles set forth herein can be implemented and the all aspects and equivalents thereof are intended to fall within the scope of the claimed subject matter. The above and other objects, features and advantages of the present application will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings in which like reference numerals indicate like elements or features. The above and other objects, features and advantages of the present application will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings in which like reference numerals indicate like elements or features. Throughout this application, same reference numerals indicate same components or elements.

[0027] Figure 1 A schematic diagram of a cluster system 100 according to some embodiments of the present application is shown;

[0028] Figure 2 A schematic diagram of a computing device 200 according to some embodiments of the present application is shown;

[0029] Figure 3 A flowchart of a method 300 of predicting application performance according to some embodiments of the present application is shown;

[0030] Figure 4 The specific process of constructing an application performance characteristics dataset (S310) according to other embodiments of this application is illustrated;

[0031] Figure 5 A comparison chart of the results output of a performance prediction example according to an embodiment of this application is shown. Detailed Implementation

[0032] Exemplary embodiments of the present application will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this application will be thorough and complete, and will fully convey the scope of the present application to those skilled in the art.

[0033] Figure 1 A schematic diagram of a cluster system 100 according to some embodiments of the present invention is shown. The cluster system 100 is typically deployed in a supercomputing center, and various jobs submitted to the supercomputing center are run through computing nodes distributed throughout the cluster system 100. For example... Figure 1 As shown, the cluster system 100 includes multiple computing nodes, and each computing node contains multiple cores. These computing nodes are the core components of the cluster system 100. Each computing node has an independent processor, memory, storage devices, etc., and can independently run computing jobs or applications to complete computing tasks. At the same time, computing nodes can also complete computing tasks in the cluster system by cooperating with other computing nodes.

[0034] In addition to the compute nodes, the cluster system 100 also includes one or more compute devices 200. For any application on the cluster system, the compute device 200 predicts the performance of the application by executing the application performance prediction method 300 according to this application.

[0035] Specifically, on one hand, computing device 200 collects the runtime parameters of the application in each job on cluster system 100, constructs a performance feature dataset, and then trains and generates an application performance prediction model. On the other hand, computing device 200 obtains the runtime parameters of the application running on a single computing node of cluster system 100, and expands similar feature data and simulated feature data based on the performance feature dataset and application performance prediction model, thereby generating an application dataset for the application. Then, based on the application dataset, a multinomial regression model is fitted using a multinomial regression algorithm to represent the nonlinear relationship between the number of computing nodes and runtime. Based on this multinomial regression model, the runtime of the application on each computing node in cluster system 100 can be determined; furthermore, the runtime corresponding to different computing node configurations can also be determined.

[0036] For any application in the cluster system 100, the above method 300 can be used to determine the runtime of the application under various computing node configurations in the cluster system, so as to provide accurate computing power usage selection suggestions for the application.

[0037] The computing device 200 can be any device with storage and computing capabilities, such as a server, workstation, or a personal computer like a desktop or laptop computer, and is not limited thereto. In some embodiments, the computing device 200 can also output performance prediction results (e.g., the relationship between the number of computing nodes and runtime, and the runtime of the application on each computing node in the cluster system 100, etc.) through a visual screen. Simultaneously, the computing device 200 can also provide an input interface for users to input computing requirements, relevant characteristics, etc.

[0038] Figure 2 A schematic diagram of a computing device 200 according to some embodiments of this application is shown. It should be noted that... Figure 2 The computing device 200 shown is merely an example. In practice, the computing device used to implement the method of this application can be any type of device, and its hardware configuration can be similar to... Figure 2 The computing device 200 shown is the same as, and can also be with Figure 2 The computing device 200 shown is different. In practice, the computing device used to implement the embodiments of this application can... Figure 2 The hardware components of the computing device 200 shown may be added or removed. This application does not limit the specific hardware configuration of the computing device.

[0039] like Figure 2In a basic configuration, computing device 200 includes at least one processing unit 202 and system memory 204. According to one aspect, depending on the configuration and type of the computing device, the processing unit 202 may be implemented as a processor. System memory 204 includes, but is not limited to, volatile memory (e.g., random access memory), non-volatile memory (e.g., read-only memory), flash memory, or any combination of such memory. According to one aspect, system memory 204 includes an operating system 205 and program modules 206.

[0040] According to one aspect, operating system 205 is, for example, suitable for controlling the operation of computing device 200. Furthermore, examples are practiced in conjunction with graphics libraries, other operating systems, or any other applications, and are not limited to any particular application or system. Figure 2 The basic configuration is illustrated by the components within the dashed lines 208. According to one aspect, the computing device 200 has additional features or functions. For example, according to one aspect, the computing device 200 includes additional data storage devices (removable and / or non-removable), such as disks, optical discs, or magnetic tapes. This additional storage... Figure 2 The image is shown by removable storage 209 and non-removable storage 210.

[0041] As stated above, according to one aspect, a program module is stored in system memory 204. According to one aspect, the program module may include one or more applications. This application does not limit the type of application; for example, applications may include: email and contact applications, word processing applications, spreadsheet applications, database applications, slideshow applications, drawing or computer-aided applications, web browser applications, etc.

[0042] According to one aspect, examples can be practiced on circuits including discrete electronic components, packaged or integrated electronic chips containing logic gates, circuits utilizing microprocessors, or on a single chip containing electronic components or a microprocessor. For example, it can be practiced via wherein... Figure 2Each or any combination of the components shown in the FIGURE can be implemented as a system on a chip (SOC) practicing examples. According to one aspect, such a SOC device can include one or more processing units, graphics units, communications units, system virtualization units, and various application functionality all of which are integrated (or "burned") onto the chip substrate according to this aspect. When operating via the SOC, the functionality described in this application can be operated via application-specific logic integrated with other components of the computing device 200 on the single integrated circuit (chip). Embodiments of the application can also be practiced using other technologies that now exist or are later developed. In addition, embodiments of the application can be practiced within a general computer or in any other circuit or system.

[0043] According to one aspect, the computing device 200 can also have one or more input device(s) 212 such as a keyboard, a mouse, a pen, a voice input device, a touch input device, a VR motion capture input device, etc. Output device(s) 214 such as a display, speakers, a printer, etc. can also be included. The aforementioned devices are examples and others can be used. The computing device 200 can include one or more communication connections 216 allowing communications with other computing devices 218. Examples of suitable communication connections 216 include, but are not limited to: RF transmitter, receiver, and / or transceiver circuitry; universal serial bus (USB), parallel, and / or serial ports.

[0044] The term computer readable media as used in this application includes computer storage media. Computer storage media can include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, or program modules. The system memory 204, the removable storage 209, and the non-removable storage 210 are all computer storage media examples (i.e., memory storage.) Computer storage media can include Random Access Memory (RAM), Read-Only Memory (ROM), Electronically Erasable Programmable Read-Only Memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store information and which can be accessed by computing device 200. According to one aspect, any such computer storage media can be part of the computing device 200. Computer storage media does not include a modulated data signal or other propagated data signal.

[0045] According to an aspect, communication media are embodied by computer readable instructions, data structures, program modules, or other data by modulated data signals, such as carrier waves or other transport mechanisms, and include any information delivery media. According to an aspect, the term "modulated data signal" describes a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.

[0046] In embodiments according to the present application, the computing device 200 is configured to perform a method 300 of predicting application performance according to the present application. Wherein the program modules 206 contain a plurality of program instructions for performing the method 300, which can instruct the processing unit 202 to perform the method 300 according to the present application.

[0047] Figure 3 A flowchart of the method 300 of predicting application performance according to some embodiments of the present application is shown. As shown, the method 300 starts at step S310. Figure 3

[0048] In S310, a performance feature dataset of the application is constructed based on the running parameters of the application running in the jobs of the cluster system 100. In other words, the performance feature dataset of the application is constructed according to the running parameters of the same application running in different jobs of the cluster system 100. It should be noted that the "same application" referred to in the present application does not distinguish its versions.

[0049] In the present embodiment, the performance feature dataset contains a plurality of performance feature data, and each performance feature data indicates the performance feature and the running time of the application running in the corresponding job.

[0050] Figure 4 A specific flow of constructing the performance feature dataset of the application (S310) according to some embodiments of the present application is shown. The flow contains S312-S316.

[0051] ​In S312, the running parameters corresponding to the respective jobs of the application running on the cluster system 100 are obtained, and the running parameters indicate the relevant characteristics of the application running in the corresponding job. According to the present application, the running parameters of the application in a job of the cluster system 100 are taken as a record of the running parameters, i.e., a running parameter. Each running parameter includes the running time and the following characteristics: the number of computing nodes, the number of cores, the number of floating-point calculations, the average floating-point calculation capability of the node (represented by GFLOPS / G), the proportion of the average floating-point operation times (GFLOPS) of the node, the average memory bandwidth of the job (represented by membw / GBps), the average communication receiving bandwidth of the node (represented by MBps), and the average communication sending bandwidth of the node (represented by MBps).

[0052] In some embodiments, after obtaining the running parameters, the obtained running parameters are also subjected to data cleaning to remove abnormal values in the running parameters. The abnormal values in the running parameters include: the average floating-point calculation capability GFLOPS / G of the node is less than 50, the average memory bandwidth membw / GBps of the job is less than 10, and in the multi-core condition, the average communication receiving bandwidth / MBps and the average communication sending bandwidth / MBps of the node are 0. Of course, the abnormal values can also include the case that the data characteristics are empty or other cases determined according to the historical experience rules of the application, which are not limited thereto.

[0053] In S314, for each running parameter, new characteristics are added based on part of the characteristics.

[0054] In some embodiments, based on the average floating-point calculation capability GFLOPS / G of the node and the running time, the total floating-point calculation amount GFLOP of the node is determined; based on the average memory bandwidth membw / GBps of the job and the running time, the total memory bandwidth amount MEM of the node is determined; and then the total floating-point calculation amount GFLOP of the node and the total memory bandwidth amount MEM of the node are taken as new characteristics.

[0055] In some embodiments, the total floating-point calculation amount GFLOP of the node is calculated by multiplying the average floating-point calculation capability GFLOPS / G of the node by the running time, and the total memory bandwidth amount MEM is calculated by multiplying the average memory bandwidth of the job by the running time.

[0056] In S316, for each characteristic in each running parameter, the first number of characteristics most relevant to the running time are determined as performance characteristics by calculating the correlation between each characteristic and the running time, and the determined performance characteristics and the corresponding running time are associated as performance characteristic data of the application.

[0057] In other words, for each running parameter, the correlation between each feature and the running time is calculated, respectively, including the features obtained through S312 and S314, and the running time. Optionally, the Pearson Correlation Coefficient is used to measure the degree of linear correlation between two variables, which ranges from -1 to 1. The closer the value is to 1 or -1, the stronger the linear correlation between the two variables. The closer the value is to 0, the weaker the linear correlation between the two variables. After calculating the Pearson Correlation Coefficient of all features, the first number of features are selected as performance features in order of correlation from strong to weak. In some embodiments, the first number is 4. According to the manner of the present application, the determined performance features include: node total floating point computation GFLOP, node total memory bandwidth MEM, node average floating point computation capability GFLOPS / G, and number of computing nodes. These four performance features are associated with the running time as a piece of performance feature data.

[0058] The above process is performed for each running parameter to obtain a plurality of performance feature data, which constitutes the performance feature data set of the application program.

[0059] Performance features are features with high correlation with running time. These feature data include but are not limited to processing requirements (such as GFLOP), memory requirements (such as MEM), node performance indicators (such as node average floating point computation capability GFLOPS / G), and system configuration parameters (such as number of computing nodes). The performance feature data set is then used in the training and verification process of the performance prediction model to predict the running time of the application program in the cluster system, which helps to improve the accuracy of the performance prediction model.

[0060] According to the embodiments of the present application, after the performance feature data set of the application program is constructed, the method 300 further comprises: training an application performance prediction model based on the performance feature data set through a random forest algorithm.

[0061] In embodiments according to the present application, the application performance prediction model is adapted to predict the running time of the application program according to the input of a plurality of performance features.

[0062] In the training process, the performance feature data set is randomly divided into a training set and a test set, which respectively account for 80% and 20% of the performance feature data set. The training set is used to train the application performance prediction model, and the test set is used to verify the accuracy and universality of the application performance prediction model.

[0063] In some embodiments, the application performance prediction model is trained in the following manner.

[0064] In a first step, based on the performance characteristic dataset, the performance characteristics of the application running in the corresponding job are taken as training data, and the running time of the application running in the corresponding job is taken as label data. That is, for each piece of performance characteristic data in the training set, the four performance characteristics therein are taken as training data, and the running time is taken as label data.

[0065] In a second step, based on the random forest regression model, an initial application performance prediction model is constructed and initial model parameters are set. The random forest regression model is a machine learning model based on decision trees, used for predicting continuous variables. It is composed of multiple decision trees, each of which is trained using different sample and feature subsets, and finally the prediction results of each tree are averaged or weighted to obtain the final prediction result. In this embodiment, the RandomForestRegressor class can be used to construct the initial application performance prediction model, and the initial model parameters include, for example, the number of decision trees in the random forest (e.g., set to 100), the random number seed (e.g., set to 1), the number of CPU cores for training and prediction (e.g., set to 1), and the initial parameter values can be set by default. In addition, the model parameters also include the splitting rules of the sub-nodes of the decision trees and the combination method of the trees, which are adjusted iteratively through the following steps.

[0066] In a third step, the training data is input into the random forest regression model, and the running time is output after processing as prediction data.

[0067] In a fourth step, the mean square error of the label data and the prediction data is calculated, and the model parameters are adjusted to minimize the mean square error. The steps of obtaining prediction data (i.e., the third step) and adjusting model parameters (i.e., the fourth step) are repeated iteratively until the training is completed, and a trained application performance prediction model is obtained.

[0068] In yet other embodiments, after the training is completed, the validation indicators of the application performance prediction model are evaluated in the test set. When the prediction result of the application performance prediction model reaches the expected test target in the test set, the structure and parameters of the application performance prediction model are saved, and the application performance prediction model is used for subsequent processing steps.

[0069] Subsequently, in S320, based on the running parameters of the application running on a single computing node of the cluster system 100, multiple pieces of similar feature data are determined from the performance characteristic dataset.

[0070] Specifically, first, the running parameters of the application running on a single computing node of the cluster system 100 are acquired. In some embodiments, the running parameters of a certain job (example) of the application running on a single computing node (in this embodiment, a single computing node refers to a single full core) in the cluster system 100 are acquired, and in this embodiment, the acquired running parameters mainly include the following three characteristics: total floating point operation capability (GFLOP), memory requirement (MEM), node performance index (GFLOPS / G), and the running time of the application running on a single computing node. In yet some embodiments, the user can also provide the above running parameters of the application running on a single computing node through the input interface of the computing device 200, and the present application does not make too many limitations thereon.

[0071] Next, a plurality of performance characteristic data satisfying a preset condition are determined from the performance characteristic data set as corresponding similar characteristic data. In some embodiments, a data neighbor search algorithm is started to find performance characteristic data (that is, historical measured data records) matching or similar to the acquired three characteristics in the performance characteristic data set. These historical measured data records represent the actual running performance of the application under different configurations and load conditions on the cluster system 100.

[0072] More specifically, the preset condition includes that in a piece of performance characteristic data, the errors of the three characteristics of node total floating point calculation amount GFLOP, node total memory bandwidth amount MEM, and node average floating point calculation capability GFLOPS / G do not exceed the threshold value from the corresponding characteristics in the current running parameters. Among them, the threshold value is defined as 30% of the corresponding characteristics in the current running parameters, that is, 30% of the value of the node total floating point calculation amount GFLOP, 30% of the value of the node total memory bandwidth amount MEM, and 30% of the value of the node average floating point calculation capability GFLOPS / G in the current running parameters. In other words, the values simultaneously satisfying the errors of the three characteristics of node total floating point calculation amount GFLOP, node total memory bandwidth amount MEM, and node average floating point calculation capability GFLOPS / G not exceeding 30% of the respective values are found from the performance characteristic data set, and the performance characteristic data to which they belong is taken as a piece of similar characteristic data. This step does not consider the error caused by the change in the number of computing nodes (the total number of cores of a single computing node).

[0073] Subsequently in S330, the plurality of similar characteristic data determined are classified according to the number of computing nodes, and based on the number of similar characteristic data under each classification, a plurality of simulation characteristic data are generated by using the application performance prediction model.

[0074] As described above, the application performance prediction model is adapted to predict the running time of the application according to the inputted multiple performance characteristics. The application performance prediction model is generated by training according to the performance characteristic data set, and the specific process can refer to the description above.

[0075] Specifically, the similar characteristic data determined through S320 all contain the number of computing nodes and the number of cores, and the similar characteristic data are classified according to the number of computing nodes contained. As described above, a single computing node refers to a single-node full core, so the classification is also performed according to the number of computing nodes full cores in this case. In some embodiments, a computing node has 96 cores, so the similar characteristic data are classified according to 96 cores, 192 cores, 288 cores, and so on.

[0076] Then, the number of similar characteristic data under each classification is counted to ensure that the data amount of each computing node remains statistically significant. Specifically, it is determined whether the number of similar characteristic data under each classification is less than a second number (in this embodiment, the value of the second number is 5). If the number of similar characteristic data under a certain classification is less than the second number, a simulated characteristic satisfying a preset condition is randomly generated according to the data distribution and statistical characteristics of the existing characteristics under the classification. The preset condition can refer to S320, in other words, the randomly generated simulated characteristic also needs to follow a certain error ratio to simulate the uncertainty of the real data.

[0077] In addition, the number of simulated characteristic data generated under each classification is equal to the difference between the second number and the number of similar characteristic data under the corresponding classification. In this embodiment, the simulated characteristic at least includes: node total floating point calculation amount GFLOP, node total memory bandwidth amount MEM, and node average floating point calculation capability GFLOPS / G. That is, in the generated simulated characteristic, the error of the three characteristics of node total floating point calculation amount GFLOP, node total memory bandwidth amount MEM, and node average floating point calculation capability GFLOPS / G does not exceed the threshold value from the corresponding characteristics in the similar characteristic data under the current classification. That is, according to the data distribution of the existing GFLOP under the classification, a plurality of GFLOP values are randomly generated, and the error of the generated GFLOP value from the existing GFLOP value under the classification does not exceed 30% of the existing GFLOP value. The "existing GFLOP value" can be the average of the existing GFLOP value, but is not limited thereto. For MEM and GFLOPS / G, the same way is adopted to generate new data values. At the same time, a set of {GFLOP, MEM, GFLOPS / G} randomly generated is a set of simulated characteristics. Assuming that there are 3 similar characteristic data under a certain classification, two sets of simulated characteristics {GFLOP, MEM, GFLOPS / G} need to be generated.

[0078] Then, the simulation features and the corresponding number of computing nodes of the classification to which the simulation features belong are input into the application performance prediction model to generate the corresponding running time, and the simulation features and the corresponding running time are associated as simulation feature data.

[0079] With the above example, the generated two sets of simulation features are denoted as {GFLOP1, MEM1, GFLOPS / G1} and {GFLOP2, MEM2, GFLOPS / G2}, and it is assumed that the number of computing nodes corresponding to the classification is 2 (i.e., the number of cores is 192). Then, the two sets of performance features input into the application performance prediction model are {GFLOP1, MEM1, GFLOPS / G1, 2} and {GFLOP2, MEM2, GFLOPS / G2, 2}, and the two sets of performance features are input into the application performance prediction model to obtain the respective running time, denoted as T1 and T2. Then, the two sets of simulation feature data under the classification are {GFLOP1, MEM1, GFLOPS / G1, 2, T1} and {GFLOP2, MEM2, GFLOPS / G2, 2, T2}.

[0080] In S340, the application data set of the application program is generated by using the similar feature data and the simulation feature data.

[0081] In this way, the application data set contains both the historical measured data (similar feature data) and, in the case of insufficient data, a corresponding number of simulation features are randomly generated, and the running time is predicted based on the application performance prediction model as simulation feature data, so as to enhance the integrity of the data set and the robustness of the prediction model, and to provide more accurate data support for subsequent performance prediction.

[0082] In S350, the relationship between the number of computing nodes and the running time is fitted by using a polynomial regression algorithm based on the application data set.

[0083] The polynomial regression algorithm can capture the complex nonlinear relationship between the data, thereby improving the accuracy of performance prediction. According to some embodiments, the number of computing nodes is used as the independent variable, and the running time is used as the dependent variable, and a polynomial regression model indicating the nonlinear relationship between the number of computing nodes and the running time is generated by using the least squares method. In this embodiment, a binomial is finally fitted, denoted as: y = ax 2 + bx + c, where x is the number of computing nodes (as described above, the number of computing nodes is calculated according to the full core number), y is the running time, a, b, and c are parameters, and are obtained by fitting.

[0084] Subsequently, in S360, the running time of each computing node of the application program in the cluster system 100 is predicted by using the fitted relationship.

[0085] In this embodiment, according to the fitted binomial, each computing node in the cluster system 100 is substituted into x to obtain the corresponding y, that is, the running time of the application on the corresponding computing node.

[0086] According to still some embodiments, based on the fitted relationship, a running time curve of the application is drawn, which shows the relationship between different computing node numbers and expected running time, and according to the curve, the shortest running time under different computing node configurations can be determined. This prediction result provides the user with key information for optimizing resource allocation and improving application performance.

[0087] Figure 5 The comparative diagram of the result output of the performance prediction example according to one embodiment of the application is shown.

[0088] Among them, the data of ins=1 is the predicted value obtained according to the method 300, and ins=2 is the measured value in the cluster system. In the "each node time prediction" part, n represents the core number, that is, the full core number of a single computing node is 64. The times value represents the running time. In the "image drawing" part, the x-axis represents the number of computing nodes (in core number), and the y-axis represents the running time. Actual Data 1 is a scatter plot composed of data in the application data set (that is, the ins=1 group data), and Polynomial Regression 1 is a curve obtained by fitting Actual Data 1 using a polynomial regression algorithm; Actual Data 2 is the measured data of the application in the cluster system 100 (that is, the ins=2 group data), and Polynomial Regression 2 is a curve obtained by fitting Actual Data 2 using a polynomial regression algorithm.

[0089] Based on the two curves, the coordinates of the lowest point of the curve can be obtained, which can be seen in the "lowest point prediction" part. The lowest point coordinates of the ins=1 group are (266, 1493.59), and the lowest point coordinates of the ins=2 group are (270, 1268.49). It can be seen that the shortest running time and computing node configuration determined according to the method 300 of the application are very close to the measured data.

[0090] In addition, according to the predicted data obtained by the method 300, the cluster system 100 can further provide the user with accurate computing power usage selection suggestions for this application. See the "core number recommendation" part, the recommended best core number is 64, the total core time price required is expected to be 9.68, and the predicted shortest core number is 266.

[0091] According to the method 300 of the present application, by aggregating a large number of running parameters of the same application running in each job of the cluster system, the performance characteristics most relevant to the running time are determined to construct the performance characteristic dataset of the application. On the one hand, the performance characteristic dataset is used to train the application performance prediction model for predicting the corresponding running time according to the input performance characteristics. On the other hand, the application dataset is generated according to the running parameters of the application in a single computing node, combined with the performance characteristic dataset and the application performance prediction model. Then, based on the application dataset, the non-linear relationship between the number of computing nodes and the running time is fitted by using the polynomial regression algorithm, and the running time of each computing node of the application in the cluster system is predicted through the fitted relationship, thereby providing accurate computing power usage selection suggestions for the application.

[0092] The present application also discloses:

[0093] Optionally, the relationship between the number of computing nodes and the running time is fitted by using the polynomial regression algorithm, including: taking the number of computing nodes as the independent variable and the running time as the dependent variable, and generating a polynomial regression model indicating the non-linear relationship between the number of computing nodes and the running time by using the least square method.

[0094] Optionally, the method further comprises: drawing a running time curve of the application based on the fitted relationship to determine the shortest running time under different computing node configurations.

[0095] Optionally, the outliers include: the node average floating point computing power is less than 50, the job average memory bandwidth is less than 10, and in the multi-core condition, the node average communication receiving bandwidth and the node average communication sending bandwidth are 0.

[0096] Optionally, the first number is 4.

[0097] Optionally, the second number is 5.

[0098] Optionally, a computing device comprises: one or more processors; a memory; one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs comprise instructions for executing the method as described above.

[0099] Optionally, a computer readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by a computing device, cause the computing device to perform the method as described above.

[0100] Optionally, a computer program product comprising computer programs / instructions, wherein the computer programs / instructions are executed by a processor to implement the method.

[0101] The various techniques described herein can be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods and apparatus of the application, or certain aspects or portions thereof, can take the form of program code (i.e., instructions) embodied in tangible media, such as removable hard disks, USB flash drives, optical tapes, CD-ROMs, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the subject application.

[0102] Where a program code is executed on a programmable computer, the computing device generally includes a processor, a processor readable storage medium (including volatile and non-volatile memory and / or storage elements), at least one input device, and at least one output device. The storage medium is configured to store program code; the processor is configured to execute instructions in the program code stored in the storage medium to perform the methods of the application.

[0103] In the example of a computer system, various input devices can be present such as a keyboard, mouse, scanner, microphone, etc. Output devices can include speakers, monitor, etc. This implementation is of course not provided with these components but they are of course implicitly included in the description of the example. The procedures and methods described herein are implemented by program code, which is executed by the processor. The program code can be stored in the storage medium associated with the processor. The program code is written as computer program code by a skilled person in the art to which the application pertains, and can be implemented in various programming languages. The program code can include both the source code and the target code. The program code is stored in the storage medium of the computer system, and is executed by the processor.

[0104] In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the application can be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been described in detail in order not to obscure the understanding of this description.

[0105] In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the application can be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been described in detail in order not to obscure the understanding of this description.

[0106] It will be appreciated by those skilled in the art that the modules or units of the devices in the examples disclosed herein can be arranged in a device as described in the examples, or alternatively can be located in one or more devices different from the devices in the examples. The modules in the foregoing examples can be combined into one module or further divided into multiple sub-modules. Thus, the methods and apparatus of the application, or certain aspects or portions thereof, can take the form of program code (i.e., instructions) embodied in tangible media, such as removable hard disks, USB flash drives, optical tapes, CD-ROMs, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the subject application.

[0107] Those skilled in the art will appreciate that the modules in the apparatuses in the embodiments can be adapted and placed in one or more apparatuses other than the embodiments. The modules or units or components in the embodiments can be combined into one module or unit or component, and further can be divided into more sub-modules or sub-units or sub-components. Any combination of all the features disclosed in the specification and any method or device so disclosed can be made unless the contrary is clearly indicated. Each feature disclosed in the specification can be replaced by an alternative feature serving the same, equivalent or similar purpose unless the contrary is clearly indicated.

[0108] In addition, those skilled in the art will appreciate that, although some embodiments described herein include certain features that are not included in other embodiments, the combination of features of different embodiments implies that the scope of the present application is intended to be within the scope of the application and forms different embodiments.

[0109] In addition, some of the embodiments described herein are described as a combination of methods or method elements implemented by a processor of a computer system or by other means of carrying out the functions described by the methods or method elements. Accordingly, a processor with the necessary instructions for carrying out such methods or method elements forms a means for carrying out the methods or method elements. Furthermore, an element described herein of a means for carrying out a function can be formed from one or more processors of a computer system or by other means of carrying out the functions described by the element.

[0110] As used herein, unless otherwise indicated, the use of the ordinal adjectives "first", "second", "third", etc., merely to distinguish different instances of a same object, and are not intended to imply that a sequence or order to which the objects are described in the specification herein restricts the disclosure to a group or sequence of objects described with the ordinal adjectives.

[0111] Although the present application has been described in terms of several embodiments, those skilled in the art will appreciate that other embodiments can be devised without departing from the scope of the present application as described herein. Accordingly, the disclosure of the present application is intended to be illustrative, but not limiting, of the scope of the application, which is set forth in the following claims.

Claims

1. A method for predicting performance of an application running on a cluster system, the cluster system comprising a plurality of computing nodes, and each computing node comprising a plurality of cores, the method being adapted to be executed in a computing device, the method comprising: constructing a performance feature dataset of the application based on running parameters of the application running in jobs of the cluster system, wherein the performance feature dataset comprises a plurality of performance feature data, and each performance feature data indicates a performance feature and a running time of the application running in a corresponding job; determining a plurality of similar feature data from the performance feature dataset based on running parameters of the application running on a single computing node of the cluster system; classifying the plurality of similar feature data according to a number of computing nodes, and generating a plurality of simulation feature data based on a number of similar feature data in each classification, using an application performance prediction model adapted to predict a running time of the application according to a plurality of performance features as input; generating an application dataset of the application using the similar feature data and the simulation feature data; fitting a relationship between a number of computing nodes and a running time using a polynomial regression algorithm based on the application dataset; and predicting the running time of the application on each computing node of the cluster system through the fitted relationship. The constructing a performance feature dataset of the application based on running parameters of the application running in jobs of the cluster system comprises: obtaining running parameters respectively corresponding to the application running in jobs of the cluster system, wherein each of the running parameters comprises a running time and the following features: a number of computing nodes, a number of cores, a floating point number of computation, a node average floating point computation capability, a node average floating point operation frequency ratio, a job average memory bandwidth, a node average communication receiving bandwidth, and a node average communication sending bandwidth; increasing a new feature based on part of the features for each running parameter; determining a first number of features most relevant to the running time as performance features by calculating a correlation between each feature and the running time for each feature in each running parameter, and associating the performance features with the corresponding running time as performance feature data of the application. The increasing a new feature based on part of the features comprises: determining a total floating point computation amount of a node based on the node average floating point computation capability and the running time; determining a total memory bandwidth amount of a node based on the job average memory bandwidth and the running time; and taking the total floating point computation amount of the node and the total memory bandwidth amount of the node as the new feature. The performance features comprise: the total floating point computation amount of the node, the total memory bandwidth amount of the node, the node average floating point computation capability, and the number of computing nodes. The obtaining running parameters respectively corresponding to the application running in jobs of the cluster system further comprises: performing data cleaning on the obtained running parameters to remove outliers in the running parameters. After constructing the performance feature dataset of the application, the method further comprises: ​ 2. The method of claim 1, wherein, ​ ​ ​ ​ 3. The method of claim 2, wherein, ​ ​ ​ ​ 4. The method of claim 2 or 3, wherein, ​ 5. The method of claim 2, wherein, ​ ​ 6. The method of claim 1, wherein, ​ Based on the performance feature data set, an application performance prediction model is trained by a random forest algorithm.

7. The method of claim 6, wherein, Training the application performance prediction model comprises: Based on the performance feature data set, the performance features of the application running in the corresponding job are taken as training data, and the running time of the application running in the corresponding job is taken as label data; Based on the random forest regression model, an initial application performance prediction model is constructed and initial model parameters are set; The training data is input into the random forest regression model, and after processing, the running time is output as prediction data; The mean square error of the label data and the prediction data is calculated, and the model parameters are adjusted to minimize the mean square error. The steps of obtaining prediction data and adjusting model parameters are repeated until the training is completed, and a trained application performance prediction model is obtained.

8. The method of claim 1, wherein, Based on the running parameters of the application running on a single computing node of the cluster system, a plurality of similar feature data are determined from the performance feature data set, comprising: Obtaining the running parameters of the application running on a single computing node of the cluster system; From the performance feature data set, a plurality of performance feature data satisfying a preset condition are determined as corresponding similar feature data.

9. The method of claim 1, wherein, Based on the number of similar feature data under each classification, a plurality of simulation feature data are generated using the application performance prediction model, comprising: Determine whether the number of similar feature data under each classification is less than a second number; If less than the second number, a simulation feature satisfying a preset condition is randomly generated, the simulation feature at least including: node total floating point calculation amount, node total memory bandwidth amount, and node average floating point calculation capability; The simulation feature and the corresponding number of computing nodes of the classification are input into the application performance prediction model to generate the corresponding running time, and the simulation feature and the corresponding running time are associated as simulation feature data. Wherein, the number of simulation feature data generated under each classification is equal to the difference between the second number and the number of similar feature data under the corresponding classification.

10. The method of claim 9, wherein the pre-set condition comprises: The error of the three features: node total floating point calculation amount, node total memory bandwidth amount, and node average floating point calculation capability, and the corresponding feature in the current running parameter does not exceed a threshold value.

11. The method of claim 1, wherein, The relationship between the number of computing nodes and the running time is fitted by a polynomial regression algorithm, comprising: Taking the number of computing nodes as the independent variable and the running time as the dependent variable, a polynomial regression model indicating the non-linear relationship between the number of computing nodes and the running time is generated by using the least squares method.

12. The method of claim 1, further comprising: Based on the fitted relationship, a running time curve of the application program is drawn to determine the shortest running time under different computing node configurations.

13. The method of claim 5, wherein, The abnormal values include: the node average floating point calculation capability is less than 50, the job average memory bandwidth is less than 10, and in the multi-core condition, the node average communication receiving bandwidth and the node average communication sending bandwidth are 0.

14. The method of claim 2, wherein, The first number is 4.

15. The method of claim 9, wherein, The second number is 5.

16. A computing device, comprising: one or more processors; memory; one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the methods as claimed in any of claims 1-15.

17. A computer-readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computing device, cause the computing device to perform the methods as claimed in any of claims 1-15.

18. A computer program product comprising computer programs / instructions, wherein, The computer program / instructions which, when executed by the processor, carry out the methods as claimed in any of claims 1-15.

Citation Information

Patent Citations

  • Prediction model construction method and device based on machine learning and electronic equipment

    CN112287603A

  • Deep learning task resource optimal configuration method and system based on service quality demand

    CN113157413A