Method for predicting performance of application program and computing equipment
By building performance feature data sets and training prediction models, combined with polynomial regression algorithm, the problem of insufficient accuracy of application performance prediction in high-performance computing cluster systems is solved, and accurate run-time prediction and resource optimization suggestions are provided.
Patent Information
- Application Number
- CN202411419372.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-11
- Publication Date
- 2024-12-31
- Estimated Expiration
- 2044-10-11
AI Technical Summary
The prior art faces the problems of difficulty in data acquisition, complexity and accuracy of prediction model construction when predicting application performance on high-performance computing cluster systems, especially in newly launched or short-lived cluster systems.
By constructing the performance feature data set of the application, the application performance prediction model is trained using the random forest algorithm, and the nonlinear relationship between the number of nodes and the runtime length is fitted based on the polynomial regression algorithm to generate accurate runtime prediction.
It improves the accuracy of the performance prediction of applications on high-performance computing cluster systems, provides accurate computing power usage selection suggestions, helping users optimize resource allocation and improve operational efficiency.
Smart Images

Figure CN119226115A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of high performance computing technology, and in particular to a method and computing device for predicting application performance. Background Art
[0002] In the field of high-performance computing, application performance prediction is a key research topic, which aims to predict the performance of applications on cluster systems in a specific time period in the future by analyzing and building models for cluster resource usage patterns. This prediction is crucial for users to effectively utilize cluster resources and optimize application performance. It also provides important decision-making support for the cluster center's management team, helping to improve the cluster center's operational efficiency and economic benefits.
[0003] Currently, research on predicting the performance of applications (i.e., HPC (High Performance Computing) applications) on cluster systems 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 they also have certain limitations. For example, when predicting a newly launched or short-lived cluster system, the accuracy of the prediction based on historical data may be affected due to the lack of sufficient historical data; the method based on machine learning depends on the accuracy and quantity of the data; and the model-based method 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 in practical applications, such as difficulty in data acquisition, complex prediction model construction, and insufficient accuracy of prediction results. 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 cluster systems, thereby providing strong technical support for the development of the cluster field. Summary of the invention
[0005] The present application provides a method and a computing device for predicting application performance, in an effort to solve or at least alleviate at least one of the above problems.
[0006] According to one aspect of the present application, a method for predicting application performance is provided, wherein the application runs on a cluster system, the cluster system includes multiple computing nodes, and each computing node includes multiple cores. The method is suitable for execution in a computing device, and the method includes: constructing a performance feature data set of the application based on running parameters of the application running in each job of the cluster system, wherein the performance feature data set includes multiple performance feature data, and each performance feature data indicates the performance characteristics and running time of the application running in the corresponding job; determining multiple similar feature data from the performance feature data set based on the running parameters of the application running on a single computing node of the cluster system; classifying the multiple similar feature data according to the number of computing nodes, and generating multiple simulated feature data using an application performance prediction model based on the number of similar feature data under each classification, wherein the application performance prediction model is suitable for predicting the running time of the application based on multiple input performance features; generating an application data set of the application using the similar feature data and the simulated feature data; fitting the relationship between the number of computing nodes and the running time using a polynomial regression algorithm based on the application data set; and predicting the running time of the application in each computing node of the cluster system through the fitted relationship.
[0007] Optionally, in the method according to the present application, a performance characteristic data set of the application is constructed based on the operating parameters of the application running in each job of the cluster system, including: obtaining the operating parameters corresponding to the application when it runs in each job of the cluster system, wherein each of the operating parameters includes the running time and the following characteristics: the number of computing nodes, the number of cores, the number of computing floating-point numbers, the node average floating-point computing capacity GFLOPS / G, the node average floating-point operation number (GFLOPS) ratio, the job average memory access bandwidth membw / GBps, the node average communication receiving bandwidth / MBps, the node average communication sending bandwidth / MBps; for each operating parameter, based on some of the characteristics, new features are added; for each feature in each operating parameter, by calculating the correlation between each feature and the running time, a first number of features most correlated with the running time are determined as performance features, and the performance features are associated with the corresponding running time as performance characteristic data of the application.
[0008] Optionally, in the method according to the present application, new features are added based on some of the features, including: determining the total floating-point computing amount of the node based on the average floating-point computing power of the node and the running time; determining the total memory access bandwidth of the node based on the average memory access bandwidth of the job and the running time; and using the total floating-point computing amount of the node and the total memory access bandwidth of the node as new features.
[0009] Optionally, in the method according to the present application, the performance characteristics include: total floating-point computing capacity of nodes, total memory access bandwidth of nodes, average floating-point computing capacity of nodes, and number of computing nodes.
[0010] Optionally, in the method according to the present application, obtaining the operating parameters corresponding to each operation of the application when it is running in the cluster system further includes: performing data cleaning on each of the obtained operating parameters to remove abnormal values in the operating parameters.
[0011] Optionally, in the method according to the present application, after constructing the performance characteristic data set of the application, it also includes: based on the performance characteristic data set, training and generating an application performance prediction model through a random forest algorithm.
[0012] Optionally, in the method according to the present application, training the application performance prediction model includes: based on the performance characteristic data set, using the performance characteristics of the application running in the corresponding job as training data, and using the running time of the application running in the corresponding job as label data; based on the 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 time after processing as prediction data; calculating the mean square error between the label data and the prediction data, and adjusting the model parameters with the goal of minimizing the mean square error, and repeating the steps of obtaining prediction data and adjusting model parameters until the training is completed to obtain a trained application performance prediction model.
[0013] Optionally, in the method according to the present application, based on the operating parameters of the application running on the single computing node of the cluster system, multiple similar characteristic data are determined from the performance characteristic data set, including: obtaining the operating parameters of the application running on the single computing node of the cluster system; determining multiple performance characteristic data that meet preset conditions from the performance characteristic data set 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, an application performance prediction model is used to generate multiple simulation feature data, including: determining whether the number of similar feature data under each category is less than a second number; if it is less than the second number, randomly generating simulation features that meet preset conditions, the simulation features at least including: the total floating-point computing amount of the node, the total memory access bandwidth of the node, and the average floating-point computing capacity of the node; inputting the simulation features and the number of computing nodes corresponding to the category to which they belong into the application performance prediction model to generate the corresponding running time, and associating the simulation features with the corresponding running time 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 conditions include: the errors between the three characteristics of the total floating-point computing amount of the node, the total memory access bandwidth of the node, and the average floating-point computing capacity of the node and the corresponding characteristics in the current operating parameters do not exceed a threshold.
[0016] Optionally, in the method according to the present application, a polynomial regression algorithm is used to fit the relationship between the number of computing nodes and the running time, including: taking the number of computing nodes as the independent variable and the running time as the dependent variable, and using the least squares method to generate a polynomial regression model indicating the nonlinear relationship between the number of computing nodes and the running time.
[0017] Optionally, the method according to the present application further includes: drawing a runtime curve of the application program based on the fitted relationship, and determining the shortest runtime under different computing node configurations.
[0018] Optionally, in the method according to the present application, abnormal values include: the average floating-point computing capability GFLOPS / G of the node is less than 50, the average memory access bandwidth membw / GBps of the job is less than 10, and under multi-core conditions, the average communication receiving bandwidth / MBps of the node and the average communication sending bandwidth / MBps of the node 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 another aspect of the present application, a computing device is provided, comprising: one or more processor memories; one or more programs, wherein the one or more programs are stored in the memories and configured to be executed by one or more processors, and the one or more programs include instructions for executing any of the above methods.
[0022] According to another aspect of the present application, a computer-readable storage medium storing one or more programs is provided. The one or more programs include instructions. When the instructions are executed by a computing device, the computing device executes any of the methods described above.
[0023] According to another aspect of the present application, a computer program product is provided, comprising a computer program / instruction, wherein the computer program / instruction implements the steps of the above-mentioned method when executed by a processor.
[0024] In summary, according to the solution of the present application, by summarizing a large number of operating parameters of the same application running in various jobs of the cluster system, the performance characteristics most relevant to the running time are determined, and a performance characteristic data set of the application is constructed. On the one hand, the performance characteristic data set is used to train and generate an application performance prediction model, which is used to predict the corresponding running time based on the input performance characteristics. On the other hand, based on the running parameters of the application on a single computing node, the performance characteristic data set and the application performance prediction model are combined to generate an application data set. Afterwards, based on the application data set, a polynomial regression algorithm is used to fit the nonlinear relationship between the number of computing nodes and the running time. Through the fitted relationship, the running time of the application on each computing node in the cluster system is predicted, providing accurate computing power usage selection recommendations for the application.
[0025] The above description is only an overview of the technical solution of the present application. In order to more clearly understand the technical means of the present application, it can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of the present application more obvious and easy to understand, the specific implementation methods of the present application are listed below. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] In order to achieve the above and related purposes, certain illustrative aspects are described herein in conjunction with the following description and accompanying drawings, which indicate various ways in which the principles applied herein can be practiced, and all aspects and their equivalents are intended to fall within the scope of the claimed subject matter. By reading the following detailed description in conjunction with the accompanying drawings, the above and other purposes, features and advantages of the present application will become more apparent. Throughout the application, the same reference numerals generally refer to the same parts 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 for predicting application performance according to some embodiments of the present application is shown;
[0030] Figure 4 The specific process of constructing a performance characteristic data set (S310) of an application program according to other embodiments of the present application is shown;
[0031] Figure 5 A result output comparison diagram of a performance prediction example according to an embodiment of the present application is shown. DETAILED DESCRIPTION
[0032] The exemplary embodiments of the present application will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present application are shown in the accompanying drawings, it should be understood that the present application can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided in order to enable a more thorough understanding of the present application and to fully convey the scope of the present application to those skilled in the art.
[0033] Figure 1 FIG. 1 is a schematic diagram of a cluster system 100 according to some embodiments of the present invention. The cluster system 100 is usually arranged in a supercomputing center, and various jobs submitted to the supercomputing center are run by computing nodes distributed in the cluster system 100. Figure 1 As shown, the cluster system 100 includes multiple computing nodes, and each computing node includes multiple cores. These computing nodes are the core components of the cluster system 100. Each computing node has an independent processor, memory, storage device, etc., and can independently run computing jobs or applications to complete computing tasks. At the same time, the computing node can also complete the computing tasks in the cluster system by cooperating with other computing nodes.
[0034] In addition to computing nodes, the cluster system 100 also includes one or more computing devices 200. For any application on the cluster system, the computing device 200 predicts the performance of the application by executing the method 300 for predicting application performance according to the present application.
[0035] Specifically, on the one hand, the computing device 200 collects the operating parameters of the application when it is running in each job on the cluster system 100, builds a performance feature data set, and then trains and generates an application performance prediction model. On the other hand, the computing device 200 obtains the operating parameters of the application running on a single computing node of the cluster system 100, and expands similar feature data and simulated feature data based on the performance feature data set and the application performance prediction model, and then generates an application data set of the application. Afterwards, based on the application data set, a polynomial regression model is fitted using a polynomial regression algorithm to represent the nonlinear relationship between the number of computing nodes and the running time. Based on the polynomial regression model, the running time of the application on each computing node in the cluster system 100 can be determined, and further, the corresponding running time under 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 corresponding running time 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 may be any device with storage and computing capabilities, such as a server, a workstation, etc., or a personal computer such as a desktop computer or a notebook computer, but is not limited thereto. In some embodiments, the computing device 200 may also output performance prediction results (such as the relationship between the number of computing nodes and the running time, and the running time of each computing node of the application in the cluster system 100, etc.) through a visualization screen. At the same time, the computing device 200 may also provide an input interface to the user so that the user can input computing requirements, related features, etc.
[0038] Figure 2 FIG. 2 shows a schematic diagram of a computing device 200 according to some embodiments of the present application. It should be noted that: Figure 2 The computing device 200 shown is only an example. In practice, the computing device used to implement the method of the present application can be any type of device, and its hardware configuration can be different from the above. Figure 2 The computing device 200 shown is the same as Figure 2 The computing device 200 shown is different. In practice, the computing device used to implement the embodiment of the present application can be Figure 2 The hardware components of the computing device 200 shown are increased or deleted, and the present 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 computing device, processing unit 202 can be implemented as a processor. System memory 204 includes, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. According to one aspect, system memory 204 includes operating system 205 and program modules 206.
[0040] According to one aspect, operating system 205 is suitable for controlling the operation of computing device 200, for example. Furthermore, examples are practiced in conjunction with graphics libraries, other operating systems, or any other application programs, and are not limited to any particular application or system. Figure 2 This basic configuration is illustrated in FIG. 2 by those components within dashed line 208. According to one aspect, computing device 200 has additional features or functionality. For example, according to one aspect, computing device 200 includes additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or tapes. Such additional storage Figure 2 2 is illustrated by removable storage 209 and non-removable storage 210.
[0041] As stated above, according to one aspect, program modules are stored in the system memory 204. According to one aspect, the program modules may include one or more application programs, and the present application does not limit the types of application programs, for example, the application programs may include: email and contact applications, word processing applications, spreadsheet applications, database applications, slide show applications, drawing or computer-aided applications, web browser applications, etc.
[0042] According to one aspect, the examples may be practiced on a circuit comprising discrete electronic components, a packaged or integrated electronic chip containing logic gates, a circuit utilizing a microprocessor, or a single chip containing electronic components or a microprocessor. Figure 2Each or many components shown in can be integrated in a system on chip (SOC) on a single integrated circuit to practice examples. According to one aspect, such a SOC device may include one or more processing units, a graphics unit, a communication unit, a system virtualization unit, and various application functions, all of which are integrated (or "burned") into a chip substrate as a single integrated circuit. When operated via SOC, the functions described in the present application can be operated via a dedicated logic integrated with other components of a computing device 200 on a single integrated circuit (chip). Other technologies that can perform logical operations (such as AND, OR, and NOT) can also be used to practice embodiments of the present application, including but not limited to mechanical, optical, fluid, and quantum technologies. In addition, embodiments of the present application can be practiced in a general-purpose computer or in any other circuit or system.
[0043] According to one aspect, the computing device 200 may also have one or more input devices 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 devices 214 may also be included, such as a display, a speaker, a printer, etc. The aforementioned devices are examples and other devices may also be used. The computing device 200 may include one or more communication connections 216 that allow communication with other computing devices 218. Examples of suitable communication connections 216 include, but are not limited to: RF transmitters, receivers and / or transceiver circuits; 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 may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (e.g., computer-readable instructions, data structures, or program modules). System memory 204, removable storage 209, and non-removable storage 210 are all examples of computer storage media (i.e., memory storage). Computer storage media may include random access memory (RAM), read-only memory (ROM), electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other products that can be used to store information and can be accessed by computing device 200. According to one aspect, any such computer storage media may be part of computing device 200. Computer storage media do not include carrier waves or other propagated data signals.
[0045] According to one aspect, communication media is implemented by computer readable instructions, data structures, program modules, or other data in a modulated data signal (e.g., a carrier wave or other transport mechanism), and includes any information delivery media. According to one aspect, the term "modulated data signal" describes a signal that has one or more characteristics set or changed in a manner that encodes information in the signal. By way of example and not limitation, communication media includes 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 an embodiment according to the present application, the computing device 200 is configured to execute the method 300 for predicting application performance according to the present application. The program module 206 includes a plurality of program instructions for executing the method 300, and these program instructions can instruct the processing unit 202 to execute the method 300 of the present application.
[0047] Figure 3 FIG. 3 is a flow chart showing a method 300 for predicting application program performance according to some embodiments of the present application. Figure 3 As shown, the method 300 starts at step S310 .
[0048] In S310, a performance characteristic data set of the application is constructed based on the running parameters of the application in each job of the cluster system 100. In other words, the performance characteristic data set of the application is constructed based on the running parameters of the same application in different jobs in the cluster system 100. It should be noted that the "same application" referred to in this application does not distinguish between its versions.
[0049] In this embodiment, the performance characteristic data set includes multiple pieces of performance characteristic data, and each piece of performance characteristic data indicates the performance characteristics and running time of the application program in the corresponding job.
[0050] Figure 4 The specific process of constructing a performance characteristic data set (S310) of an application program according to some embodiments of the present application is shown. The process includes S312 to S316.
[0051] In S312, the operating parameters corresponding to the application when it runs in each job of the cluster system 100 are obtained, and the operating parameters indicate the relevant characteristics of the application when it runs in the corresponding job. According to the present application, each operating parameter of the application in a job of the cluster system 100 is taken as a record of the operating parameters, that is, an operating parameter. And each operating parameter includes the running time and the following characteristics: the number of computing nodes, the number of cores, the number of computing floating-point numbers, the average floating-point computing power of the node (expressed in GFLOPS / G), the average floating-point operation number of nodes (GFLOPS) ratio, the average memory access bandwidth of the job (expressed in membw / GBps), the average communication receiving bandwidth of the node (expressed in MBps), and the average communication sending bandwidth of the node (expressed in MBps).
[0052] In some other embodiments, after the operation parameters are obtained, data cleaning is performed on the obtained operation parameters to remove abnormal values in the operation parameters. The abnormal values in the operation parameters include: the average floating point computing capacity of the node GFLOPS / G is less than 50, the average memory access bandwidth of the job membw / GBps is less than 10, and under multi-core conditions, the average communication receiving bandwidth of the node / MBps and the average communication sending bandwidth of the node / MBps are 0. Of course, abnormal values may also include data features that are empty or other situations determined according to historical experience rules of the application, but are not limited to this.
[0053] In S314, for each operating parameter, new features are added based on some of the features.
[0054] In some embodiments, the total floating-point computing capacity of the node GFLOP is determined based on the average floating-point computing capacity of the node GFLOPS / G and the running time; the total memory access bandwidth MEM of the node is determined based on the average memory access bandwidth membw / GBps and the running time of the job; then, the total floating-point computing capacity of the node GFLOP and the total memory access bandwidth MEM of the node are used as new features.
[0055] Among them, GFLOP is calculated by multiplying the node's average floating-point computing capacity GFLOPS / G by the running time, and MEM is calculated by multiplying the job's average memory access bandwidth by the running time.
[0056] In S316, for each feature in each operating parameter, the correlation between each feature and the operating duration is calculated to determine a first number of features that are most correlated with the operating duration as performance features, and the determined performance features are associated with the corresponding operating duration as performance feature data of the application.
[0057] In other words, for each operating parameter, including each feature obtained by S312 and S314, and the running time, the correlation between each feature and the running time is calculated respectively. Optionally, the Pearson Correlation Coefficient is used to measure the degree of linear correlation between two variables, and its value range is -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 coefficients of all features, a first number of features are selected as performance features in the order of the correlation indicated by them from strong to weak. In some embodiments, the value of the first number is 4. According to the method of the present application, the determined performance features include: the total floating-point computing capacity of the node GFLOP, the total memory access bandwidth of the node MEM, the average floating-point computing capacity of the node GFLOPS / G, and the number of computing nodes. These four performance features are associated with the running time as a performance feature data.
[0058] By executing the above process for each operating parameter, a plurality of performance characteristic data can be obtained, and these performance characteristic data constitute the performance characteristic data set of the application.
[0059] Performance characteristics are characteristics that have a high correlation with the running time. These characteristic data include but are not limited to processing requirements (such as GFLOP), memory requirements (such as MEM), node performance indicators (such as the average floating point computing capacity of nodes GFLOPS / G), and system configuration parameters (such as the number of computing nodes). This performance characteristic dataset is then used in the training and verification process of the performance prediction model to predict the running time of the application in the cluster system, which helps to improve the accuracy of the performance prediction model.
[0060] According to an implementation of the present application, after constructing the performance characteristic data set of the application, method 300 further includes: training and generating an application performance prediction model based on the performance characteristic data set by using a random forest algorithm.
[0061] In an embodiment of the present application, the application performance prediction model is suitable for predicting the running time of an application program based on a plurality of input performance characteristics.
[0062] During the training process, the performance feature dataset is randomly divided into a training set and a test set, which account for 80% and 20% of the performance feature dataset respectively. The training set is used to train the application performance prediction model, and the test set is used to verify the accuracy and versatility of the application performance prediction model.
[0063] In some embodiments, the application performance prediction model is trained in the following manner.
[0064] In the first step, based on the performance feature data set, the performance features of the application running in the corresponding job are used as training data, and the running time of the application running in the corresponding job is used as label data. In other words, for each performance feature data in the training set, the four performance features are used as training data, and the running time is used as label data.
[0065] The second step is to build an initial application performance prediction model and set the initial model parameters based on the random forest regression model. The random forest regression model is a machine learning model based on decision trees, which is used to predict continuous variables. It consists of multiple decision trees, each of which is trained using different samples and feature subsets, and finally averages or weighted averages the prediction results of each tree to obtain the final prediction result. In this embodiment, the RandomForestRegressor class can be used to build an initial application performance prediction model. The initial model parameters include, for example: the number of decision trees in the random forest (for example, set to 100), the random number seed (for example, set to 1), and the number of CPU cores used for training and prediction (for example, set to 1). The initial parameter values can be set by default values. In addition, the model parameters also include: the child node splitting rules of the decision tree and the combination method of the tree, etc., which are adjusted iteratively through the following steps.
[0066] In the third step, the training data is input into the random forest regression model, and the running time is output after processing as the prediction data.
[0067] In the fourth step, the mean square error between the label data and the predicted data is calculated, and the model parameters are adjusted with the goal of minimizing the mean square error. The steps of obtaining predicted data (i.e., the third step) and adjusting model parameters (i.e., the fourth step) are repeated until the training is completed and a trained application performance prediction model is obtained.
[0068] In some other embodiments, after the training is completed, the validation index of the application performance prediction model is 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 in subsequent processing steps.
[0069] Then, in S320 , based on the running parameters of the application program running on a single computing node of the cluster system 100 , a plurality of similar feature data are determined from the performance feature data set.
[0070] Specifically, first, the operating parameters of the application running on a single computing node of the cluster system 100 are obtained. In some embodiments, a single computing node (in this embodiment, a single computing node refers to a single node with full cores) in the cluster system 100 runs a certain job (computational example) of the application and obtains its operating parameters. In this embodiment, the obtained operating parameters mainly include the following three characteristics: total floating point computing power (GFLOP), memory requirement (MEM), node performance index (GFLOPS / G), and the running time of the application running on a single computing node. In some other embodiments, the user can also provide the above-mentioned operating parameters of the application running on a single computing node through the input interface of the computing device 200, and this application does not impose too many restrictions on this.
[0071] Next, multiple pieces of performance feature data that meet the preset conditions are determined from the performance feature data set as corresponding similar feature data. In some embodiments, a data neighbor search algorithm is started to search for performance feature data (that is, historical measured data records) that match or are similar to the three features obtained in the performance feature data set. These historical measured data records represent the actual operating performance of the application under different configurations and load conditions on the cluster system 100.
[0072] More specifically, the preset conditions include: in a performance feature data, the errors of the three features of the total floating-point computing amount of the node GFLOP, the total memory bandwidth of the node MEM, and the average floating-point computing capacity of the node GFLOPS / G and the corresponding features in the current operating parameters do not exceed the threshold. The threshold is defined as: 30% of the corresponding features in the current operating parameters, that is, in the current operating parameters: 30% of the value of the total floating-point computing amount of the node GFLOP, 30% of the value of the total memory bandwidth of the node MEM, and 30% of the value of the average floating-point computing capacity of the node GFLOPS / G. In other words, find out from the performance feature data set a value that satisfies the error of the three features of the total floating-point computing amount of the node GFLOP, the total memory bandwidth of the node MEM, and the average floating-point computing capacity of the node GFLOPS / G by no more than 30% of their respective values, and use the performance feature data to which it belongs as a similar feature data. This step does not take into account the error caused by the change in the number of computing nodes (the total number of cores of a single computing node).
[0073] Then, in S330 , the determined multiple similar feature data are classified according to the number of computing nodes, and based on the number of similar feature data in each classification, multiple simulated feature data are generated using the application performance prediction model.
[0074] As mentioned above, the application performance prediction model is suitable for predicting the running time of the application according to multiple input performance characteristics. The application performance prediction model is generated by training based on the performance characteristic data set, and the specific process can be referred to the above description.
[0075] Specifically, the similar feature data determined by S320 all contain the number of computing nodes and the number of cores, and these similar feature data are classified according to the number of computing nodes they contain. As mentioned above, a single computing node refers to a single node with full cores, so when classifying here, it is also classified according to the number of full cores of the computing node. In some embodiments, a computing node has 96 cores, so the similar feature data is classified according to 96 cores, 192 cores, 288 cores...
[0076] Afterwards, the number of similar feature data under each category is counted to ensure the data volume of each computing node and maintain the validity of statistical significance. Specifically, it is determined whether the number of similar feature data under each category is less than the second number (in this embodiment, the value of the second number is 5). If the number of similar feature data under a certain category is less than the second number, then based on the data distribution and statistical characteristics of the existing features under the category, a simulated feature that meets the preset conditions is randomly generated. The preset conditions can be referred to S320. In other words, the randomly generated simulated features also need to follow a certain error ratio to simulate the uncertainty of the real data.
[0077] In addition, 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. In this embodiment, the simulation features include at least: the total floating-point calculation amount GFLOP of the node, the total memory access bandwidth MEM of the node, and the average floating-point computing capacity GFLOPS / G of the node. That is, in the generated simulation features, the errors of the three features of the total floating-point calculation amount GFLOP of the node, the total memory access bandwidth MEM of the node, and the average floating-point computing capacity GFLOPS / G of the node and the corresponding features in the similar feature data under the current classification do not exceed the threshold. In other words, according to the data distribution of the existing GFLOP under the classification, several GFLOP values are randomly generated, and the error of the generated GFLOP value and the existing GFLOP value under the classification does not exceed 30% of the existing GFLOP value. "Existing GFLOP value" can be the average value of the existing GFLOP value, but is not limited to this. For MEM and GFLOPS / G, the same method is used to generate new data values. At the same time, a randomly generated set of {GFLOP, MEM, GFLOPS / G} is a set of simulation features. Assuming that there are 3 similar feature data under a certain category, two sets of simulation features {GFLOP, MEM, GFLOPS / G} need to be generated.
[0078] Afterwards, the simulation feature and the number of computing nodes corresponding to the classification to which it belongs are input into the application performance prediction model to generate the corresponding running time, and the simulation feature is associated with the corresponding running time as simulation feature data.
[0079] Continuing with the previous example, the two sets of generated simulation features are recorded as: {GFLOP1, MEM1, GFLOPS / G1} and {GFLOP2, MEM2, GFLOPS / G2}. Assuming that the number of computing nodes corresponding to this 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}. These two sets of performance features are input into the application performance prediction model, and the corresponding running time is obtained, which is recorded as T1 and T2. Then, the two sets of simulation feature data under this classification are: {GFLOP1, MEM1, GFLOPS / G1, 2, T1} and {GFLOP2, MEM2, GFLOPS / G2, 2, T2}.
[0080] In S340 , an application data set of the application program is generated by using the similar feature data and the simulated feature data.
[0081] In this way, the application data set contains both historical measured data (similar feature data) and, when the amount of data is insufficient, randomly generates a corresponding number of simulated features, and predicts the running time based on the application performance prediction model as simulated feature data, so as to enhance the integrity of the data set and the robustness of the prediction model, and provide more accurate data support for subsequent performance predictions.
[0082] In S350, based on the application data set, a polynomial regression algorithm is used to fit the relationship between the number of computing nodes and the running time.
[0083] The polynomial regression algorithm can capture the complex nonlinear relationship between 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. The least squares method is used to generate a polynomial regression model indicating the nonlinear relationship between the number of computing nodes and the running time. In this embodiment, a binomial is finally fitted, which is recorded as: y = ax 2 +bx+c, where x is the number of computing nodes (same as above, the number of computing nodes is calculated based on the full number of cores), y is the running time, and a, b, and c are parameters obtained through fitting.
[0084] Then, in S360 , the running time of the application program on each computing node in the cluster system 100 is predicted based on 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, which is the running time of the application program under the corresponding computing node.
[0086] According to some other embodiments, based on the fitted relationship, a runtime curve of the application is drawn, which shows the relationship between different numbers of computing nodes and expected runtime, and the shortest runtime under different computing node configurations can be determined based on the curve. This prediction result provides users with key information for optimizing resource configuration and improving application performance.
[0087] Figure 5 A result output comparison diagram of a performance prediction example according to an embodiment of the present application is shown.
[0088] Among them, the data ins=1 is the predicted value obtained according to the present method 300, and ins=2 is the actual measured value in the cluster system. In the "Time prediction of each node" section, n represents the number of cores, that is, the full number of cores of a single computing node is 64. The times value represents the running time. In the "Image drawing" section, the x-axis represents the number of computing nodes (expressed in the number of cores), 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, ins=1 group of data), Polynomial Regression 1 is a curve obtained by fitting Actual Data 1 using a polynomial regression algorithm; Actual Data 2 is the actual measured data of the application in the cluster system 100 (that is, ins=2 groups of 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, as shown in the "Lowest Point Prediction" section. The coordinates of the lowest point of the ins=1 group are (266, 1493.59), and the coordinates of the lowest point of the ins=2 group are (270, 1268.49). It can be seen that the shortest running time and computing node configuration determined by the method 300 of the present application are very close to the measured data.
[0090] In addition, based on the prediction data obtained by the method 300, the cluster system 100 can further provide the user with accurate computing power usage selection suggestions for the application. See the "Core Number Recommendation" section, the recommended optimal core number is 64, the total core time price required is estimated to be 9.68, and the predicted shortest core time is 266.
[0091] According to the method 300 of the present application, by summarizing a large number of operating parameters of the same application running in various jobs of the cluster system, the performance characteristics most relevant to the running time are determined, and a performance characteristic data set of the application is constructed. On the one hand, the performance characteristic data set is used to train and generate an application performance prediction model, which is used to predict the corresponding running time based on the input performance characteristics. On the other hand, based on the running parameters of the application on a single computing node, the performance characteristic data set and the application performance prediction model are combined to generate an application data set. Afterwards, based on the application data set, a polynomial regression algorithm is used to fit the nonlinear relationship between the number of computing nodes and the running time. Through the fitted relationship, the running time of the application on each computing node in the cluster system is predicted, providing accurate computing power usage selection suggestions for the application.
[0092] This application also discloses:
[0093] Optionally, a polynomial regression algorithm is used to fit the relationship between the number of computing nodes and the running time, including: taking the number of computing nodes as the independent variable and the running time as the dependent variable, and using the least squares method to generate a polynomial regression model indicating the nonlinear relationship between the number of computing nodes and the running time.
[0094] Optionally, the method further includes: drawing a runtime curve of the application program based on the fitted relationship, and determining the shortest runtime under different computing node configurations.
[0095] Optionally, abnormal values include: the average floating-point computing capability of the node is less than 50, the average memory access bandwidth of the job is less than 10, and under multi-core conditions, the average communication receiving bandwidth of the node and the average communication sending bandwidth of the node are 0.
[0096] Optionally, the first quantity is 4.
[0097] Optionally, the second number is 5.
[0098] Optionally, a computing device comprises: one or more processors; a memory; and 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 include instructions for executing the method described above.
[0099] Optionally, a computer-readable storage medium stores one or more programs, wherein the one or more programs include instructions, and when the instructions are executed by a computing device, the computing device performs the method as described above.
[0100] Optionally, a computer program product comprises a computer program / instructions, wherein the method is implemented when the computer program / instructions are executed by a processor.
[0101] The various techniques described herein may be implemented in combination with hardware or software, or a combination thereof. Thus, the method and apparatus of the present application, or certain aspects or portions of the method and apparatus of the present application may be in the form of program codes (i.e., instructions) embedded in a tangible medium, such as a removable hard disk, a USB flash drive, a floppy disk, a CD-ROM, or any other machine-readable storage medium, wherein when the program is loaded into a machine such as a computer and executed by the machine, the machine becomes a device for practicing the present application.
[0102] In the case where the program code is executed on a programmable computer, the computing device generally includes a processor, a storage medium readable by the processor (including volatile and non-volatile memory and / or storage elements), at least one input device, and at least one output device. The memory is configured to store the program code; the processor is configured to execute the method of the present application according to the instructions in the program code stored in the memory.
[0103] By way of example and not limitation, readable media include readable storage media and communication media. Readable storage media stores information such as computer readable instructions, data structures, program modules or other data. Communication media generally embody computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transmission mechanism, and include any information transfer medium. Any combination of the above is also included within the scope of readable media.
[0104] In the description provided herein, algorithms and displays are not inherently related to any particular computer, virtual system or other device. Various general purpose systems can also be used together with the examples of the present application. According to the above description, it is obvious to construct the structure required for such systems. In addition, the present application is not directed to any specific programming language either. It should be understood that the content of the present application described herein can be realized by various programming languages, and the description of the specific language above is to disclose the preferred implementation of the present application.
[0105] In the description provided herein, a large number of specific details are described. However, it is understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known methods, structures and techniques are not shown in detail so as not to obscure the understanding of this description.
[0106] Those skilled in the art will appreciate that the modules or units or components of the devices in the examples disclosed herein may be arranged in the devices described in the embodiment, or alternatively may be located in one or more devices different from the devices in the examples. The modules in the foregoing examples may be combined into one module or may be divided into multiple submodules.
[0107] Those skilled in the art will appreciate that the modules in the devices in the embodiments can be adaptively changed and arranged in one or more devices different from the embodiments. The modules or units or components in the embodiments can be combined into one module or unit or component, and in addition they can be divided into multiple submodules or subunits or subassemblies. Except that at least some of such features and / or processes or units are mutually exclusive, all features disclosed in this specification and all processes or units of any method or device disclosed in this manner can be combined in any combination. Unless otherwise clearly stated, each feature disclosed in this specification can be replaced by an alternative feature providing the same, equivalent or similar purpose.
[0108] Furthermore, those skilled in the art will appreciate that although some embodiments described herein include certain features included in other embodiments but not other features, the combination of features from different embodiments is meant to be within the scope of the present application and to form different embodiments.
[0109] In addition, some of the embodiments are described herein as methods or combinations of method elements that can be implemented by a processor of a computer system or by other devices that perform the functions. Therefore, a processor with necessary instructions for implementing the method or method elements forms a device for implementing the method or method elements. In addition, the elements described herein of the device embodiments are examples of devices that are used to implement the functions performed by the elements for the purpose of implementing the disclosure.
[0110] As used herein, unless otherwise specified, the use of ordinal numbers "first," "second," "third," etc. to describe common objects merely refers to different instances of similar objects and is not intended to imply that the objects so described must have a given order in time, space, order, or in any other manner. In addition, the quantifier "plurality" means "two" and / or "more than two."
[0111] Although the present application is described according to a limited number of embodiments, it will be appreciated by those skilled in the art, with the benefit of the above description, that other embodiments may be envisioned within the scope of the present application thus described. In addition, it should be noted that the language used in this specification is selected primarily for the purpose of readability and teaching, rather than for the purpose of explaining or limiting the subject matter of the present application. Therefore, many modifications and changes will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the appended claims. For the scope of the present application, the disclosure made to the present application is illustrative, not restrictive, and the scope of the present application is defined by the appended claims.
Claims
1. A method for predicting application performance, wherein the application is run on a cluster system, wherein the cluster system comprises a plurality of computing nodes, and each computing node comprises a plurality of cores, wherein the method is suitable for being executed in a computing device, and the method comprises: Based on the running parameters of the application program in each job of the cluster system, construct a performance characteristic data set of the application program, wherein the performance characteristic data set includes a plurality of performance characteristic data, and each performance characteristic data indicates the performance characteristic and running time of the application program in the corresponding job; Determining a plurality of similar characteristic data from the performance characteristic data set based on operating parameters of the application program 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 simulated feature data using an application performance prediction model based on the number of similar feature data in each classification, wherein the application performance prediction model is suitable for predicting the running time of the application program according to the plurality of input performance features; generating an application data set of the application program by using the similar feature data and the simulated feature data; Based on the application data set, a polynomial regression algorithm is used to fit the relationship between the number of computing nodes and the running time; The running time of the application program on each computing node in the cluster system is predicted through the fitted relationship.
2. The method of claim 1, wherein: The step of constructing a performance characteristic data set of the application based on the running parameters of the application in each job of the cluster system includes: Obtaining the operation parameters corresponding to the operation of the application in each job of the cluster system, wherein each of the operation parameters includes the operation duration and the following characteristics: the number of computing nodes, the number of cores, the number of computing floating-point numbers, the average floating-point computing capacity of the node, the average floating-point operation times ratio of the node, the average memory access bandwidth of the job, the average communication receiving bandwidth of the node, and the average communication sending bandwidth of the node; For each operating parameter, new features are added based on some of the features described; For each feature in each operating parameter, by calculating the correlation between each feature and the operating time, a first number of features most correlated with the operating time are determined as performance features, and the performance features are associated with the corresponding operating time as performance feature data of the application.
3. The method of claim 2, wherein: Based on some of the above features, new features are added, including: Determining a total floating-point computing amount of a node based on the average floating-point computing capability of the node and the running time; Determine the total memory access bandwidth of the node based on the average memory access bandwidth of the job and the running time; The total floating-point computation amount of the node and the total memory access bandwidth of the node are used as new features.
4. The method according to claim 2 or 3, wherein: The performance characteristics include: total floating-point computing capacity of nodes, total memory access bandwidth of nodes, average floating-point computing capacity of nodes and number of computing nodes.
5. The method according to any one of claims 2 to 4, wherein: The obtaining of the operating parameters corresponding to the application program when running each job of the cluster system also includes: Data cleaning is performed on each of the acquired operating parameters to remove abnormal values in the operating parameters.
6. The method according to any one of claims 1 to 5, wherein: After building a performance characteristics dataset for the application, it also includes: Based on the performance feature data set, an application performance prediction model is trained and generated through a random forest algorithm.
7. The method of claim 6, wherein: Training the application performance prediction model includes: Based on the performance characteristic data set, the performance characteristics of the application program running in the corresponding job are used as training data, and the running time of the application program running in the corresponding job is used as label data; Based on the random forest regression model, build an initial application performance prediction model and set the initial model parameters; The training data is input into the random forest regression model, and the running time is output after processing as the prediction data; The mean square error between the label data and the predicted data is calculated, and the model parameters are adjusted with the goal of minimizing the mean square error. The steps of obtaining the predicted data and adjusting the model parameters are repeated until the training is completed to obtain a trained application performance prediction model.
8. The method according to any one of claims 1 to 7, wherein: The determining of a plurality of similar characteristic data from the performance characteristic data set based on the operating parameters of the application program running on a single computing node of the cluster system includes: Obtaining running parameters of the application program running on a single computing node of the cluster system; A plurality of performance characteristic data satisfying preset conditions are determined from the performance characteristic data set as corresponding similar characteristic data.
9. The method according to any one of claims 1 to 8, wherein: Based on the number of similar feature data under each category, the application performance prediction model is used to generate multiple simulated feature data, including: Determine whether the number of similar feature data under each category is less than the second number; If it is less than the second number, randomly generate simulation features that meet preset conditions, and the simulation features at least include: the total floating-point computing capacity of the node, the total memory access bandwidth of the node, and the average floating-point computing capacity of the node; The simulation feature and the number of computing nodes corresponding to the classification to which it belongs are input into the application performance prediction model to generate the corresponding running time, and the simulation feature is associated with the corresponding running time as simulation feature data, The number of simulated 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.
10. The method according to claim 8 or 9, wherein the preset condition comprises: The errors between the three characteristics of the total floating-point computing amount of the node, the total memory access bandwidth of the node, and the average floating-point computing capacity of the node and the corresponding characteristics in the current operating parameters do not exceed the threshold.
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
Distributed deep learning training task-oriented efficient resource allocation system
CN113190351A
Cross-domain distributed processing system and scheduling optimization method
CN116389591A
Cost-optimal cluster configuration analytics package
US20190171494A1
