Application tuning method and computing device
By matching the target tuning strategy from the tuning database, the running parameters or environment of HPC applications are automatically adjusted, solving the problem of low efficiency of manual tuning in existing technologies and achieving optimal performance for untuned applications.
Patent Information
- Application Number
- CN202511093041.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-05
- Publication Date
- 2025-11-21
AI Technical Summary
Existing technologies require manual tuning of each HPC application on a one-to-one basis. Untuned HPC applications cannot achieve optimal performance, resulting in low tuning efficiency.
By acquiring the operational characteristics of the application to be tuned, the target tuning strategy is matched from a pre-established tuning database, and the application's operating parameters or environment are automatically adjusted to achieve optimal performance.
It improves the efficiency and accuracy of application tuning, reduces manual intervention, and ensures that untuned applications can run at optimal performance.
Smart Images

Figure CN120994638A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of server technology, and in particular to application optimization methods and computing devices. Background Technology
[0002] In the field of HPC (high-performance computing), as the complexity of scientific research and engineering simulations increases, the types of tasks that computing systems need to handle are becoming increasingly diverse. From large-scale physical simulations for climate modeling and fluid dynamics, to life science computing for molecular dynamics and genome sequencing, to artificial intelligence training for large model pre-training and deep learning inference, different applications exhibit significant differences in their hardware resource allocation patterns, software stack dependencies, and the distribution of performance bottlenecks.
[0003] In related technologies, in scenarios where HPC applications run on local devices, the management node allocates and processes jobs sent by the local devices, generates tuning templates based on the job type and the HPC application, and distributes the tuning templates and jobs to the corresponding computing nodes. This allows the HPC application's runtime environment parameters to be adjusted using the tuning templates, enabling the HPC application to run the job with optimal parameter configuration and achieve the best performance.
[0004] However, the relevant technologies require manual pre-tuning of each HPC application one-to-one to obtain the optimal operating parameters for that HPC application in a specific environment. For untuned HPC applications, it is impossible to obtain the optimal tuning parameters, resulting in untuned HPC applications not being able to run at their best performance. Summary of the Invention
[0005] This application provides an application tuning method and computing device, which can obtain target tuning strategies from a tuning database for untuned applications, enabling untuned applications to run with optimal performance.
[0006] According to a first aspect of the embodiments of this application, an application optimization method is provided, the method comprising:
[0007] Obtain the target runtime characteristics of the application to be optimized during its operation;
[0008] Obtain target tuning strategies that match the target operating characteristics from a pre-established tuning database; wherein, the tuning database includes multiple sets of correspondences between operating characteristics and tuning strategies;
[0009] Run the application to be optimized based on the target optimization strategy.
[0010] When an application needs to be optimized, this solution retrieves a target optimization strategy from a pre-established optimization database that matches the target characteristics of the application during its operation. This optimization strategy enables the application to run at its best performance without the need for manual optimization of each application beforehand, thus greatly improving the efficiency of application optimization.
[0011] In one possible implementation, the target runtime characteristics of the application to be tuned during operation are obtained, including:
[0012] Multiple feature extraction strategies are obtained, and each strategy is used to extract the runtime features of the application to be optimized from different dimensions during the running process.
[0013] Multiple feature extraction strategies are used to extract target operational features with different dimensions from the application to be optimized during its operation.
[0014] This solution significantly improves the accuracy and effectiveness of automatic optimization results by comprehensively matching features from various dimensions.
[0015] In one possible implementation, the target runtime characteristics include at least one of the following: top-down data characteristics, hotspot function characteristics, roofline characteristics, CPU / memory characteristics, input / output (I / O) characteristics, and network characteristics.
[0016] This solution can more accurately reflect the program's running status by acquiring multi-dimensional running characteristics, thereby improving the accuracy of strategy matching when matching based on these running characteristics.
[0017] In one possible implementation, the method further includes:
[0018] Obtain multiple operational characteristics of the target application during its operation, and identify the operational characteristics that do not meet expectations from these characteristics.
[0019] Based on unexpected operational characteristics, optimization strategies are generated, which are used to adjust the operating parameters or deployment environment of the target application.
[0020] An optimization database is generated based on operational characteristics and optimization strategies.
[0021] In one possible implementation, the target operational characteristics include multiple operational characteristics;
[0022] Obtain target tuning strategies that match the target operating characteristics from a pre-established tuning database, including:
[0023] Multiple tuning strategies are obtained from a pre-established tuning database; among them, multiple matching tuning strategies are obtained by matching multiple runtime features with runtime features stored in the tuning database.
[0024] By combining multiple tuning strategies, the target tuning strategy is obtained.
[0025] When an application needs optimization in the future, this solution only needs to obtain the running characteristics of the application during its operation. By matching these running characteristics with the running characteristics in the optimization database, a matching optimization strategy can be automatically obtained.
[0026] In one possible implementation, the application to be tuned is run based on a target tuning strategy, including:
[0027] Run the application to be tuned based on the target tuning strategy and obtain the first running characteristics of the application to be tuned when executing the target tuning strategy;
[0028] When the deviation between the first operating characteristic and the target operating characteristic exceeds a threshold, the target tuning strategy is stopped.
[0029] This solution obtains the first operational characteristic of the application to be tuned when executing the target tuning strategy. By comparing the first characteristic with the target operational characteristic of the application before tuning, if the deviation between the first operational characteristic and the target operational characteristic is greater than a threshold, it indicates that the target tuning strategy is no longer suitable for the application to be tuned. At this time, the execution of the target tuning strategy can be stopped for the application to be tuned.
[0030] In one possible implementation, the method further includes:
[0031] Obtain the first performance metric generated by the target application when executing the tuning strategy, and obtain the second performance metric generated by the target application when it stops executing the tuning strategy;
[0032] If the first performance metric is higher than the first performance metric, the target tuning strategy is re-executed for the application to be tuned.
[0033] This approach compares the performance metrics of the application to be tuned before and after implementing the target tuning strategy. Specifically, by comparing the first performance metric and the second performance metric, if the first performance metric is higher than the second performance metric, it indicates that the target tuning strategy has a positive effect and helps the application to be tuned to achieve better performance. In this case, the target tuning strategy can continue to be implemented.
[0034] In one possible implementation, the method further includes:
[0035] When the first performance metric is not higher than the first performance metric, the application to be tuned should continue to stop executing the target tuning strategy.
[0036] When the first performance indicator is not higher than the first performance indicator, it means that the target tuning strategy is no longer suitable for the application to be tuned. The application to be tuned needs to stop executing the target tuning strategy and a new tuning strategy can be rematched from the tuning database based on the current running characteristics of the application to be tuned.
[0037] In one possible implementation, the method further includes:
[0038] Obtain the second runtime characteristics of the application to be tuned when executing the target tuning strategy;
[0039] If the second running characteristic does not match the target tuning strategy, the target tuning strategy is stopped.
[0040] Since the target strategy of this scheme is to adjust the running parameters of the application to be optimized or change its running environment, the running characteristics of the application to be optimized will change after the target optimization strategy is executed. If the current second running characteristics do not match the target optimization strategy, the execution of the target optimization strategy can be stopped. The target optimization strategy can also be verified through the above embodiments. If the performance of the application to be optimized degrades after stopping the execution of the target optimization strategy, then the target optimization strategy can continue to be executed; otherwise, the execution of the target optimization strategy should be stopped.
[0041] According to a second aspect of the embodiments of this application, an application optimization apparatus is provided, the apparatus comprising:
[0042] The feature acquisition module is used to acquire the target runtime features of the application to be optimized during its operation.
[0043] The strategy matching module is used to obtain target optimization strategies that match the target operating characteristics from a pre-established optimization database; wherein, the optimization database includes multiple sets of correspondences between operating characteristics and optimization strategies;
[0044] The strategy execution module is used to run the application to be optimized based on the target optimization strategy.
[0045] According to a third aspect of the embodiments of this application, a computing unit is provided. The computing unit includes a memory and a processor, wherein the memory stores a computer program, and the processor executes the program to implement the method described above.
[0046] According to a fourth aspect of this application, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the methods described above in this application.
[0047] According to a fifth aspect of the embodiments of this application, a computer program product is provided, including a computer program that, when executed by a processor, implements the methods described above in this application. Attached Figure Description
[0048] Further details, features, and advantages of this application are disclosed in the following description of exemplary embodiments in conjunction with the accompanying drawings, in which:
[0049] Figure 1 A schematic diagram of the system architecture provided for an exemplary embodiment of this application;
[0050] Figure 2 A schematic diagram illustrating the optimization of an unoptimized application based on an already optimized application, provided as an exemplary embodiment of this application;
[0051] Figure 3 A schematic diagram illustrating the matching of tuning strategies for different applications provided in an exemplary embodiment of this application;
[0052] Figure 4 A flowchart of an application optimization method provided as an exemplary embodiment of this application;
[0053] Figure 5 A schematic block diagram of the functional modules of an application optimization device provided in an exemplary embodiment of this application;
[0054] Figure 6 A structural block diagram of a computing device provided for an exemplary embodiment of this application. Detailed Implementation
[0055] Embodiments of this application will now be described in more detail with reference to the accompanying drawings. While some embodiments of this application are shown in the drawings, it should be understood that this application can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this application. It should be understood that the drawings and embodiments of this application are for illustrative purposes only and are not intended to limit the scope of protection of this application.
[0056] It should be understood that the steps described in the method embodiments of this application may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this application is not limited in this respect.
[0057] The term "comprising" and its variations as used herein are open-ended, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the following description. It should be noted that the concepts of "first", "second", etc., mentioned in this application are used only to distinguish different devices, modules, or units, and are not intended to limit the order of functions performed by these devices, modules, or units or their interdependencies.
[0058] It should be noted that the terms "a" and "a plurality of" used in this application are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0059] The names of the messages or information exchanged between multiple devices in the embodiments of this application are for illustrative purposes only and are not intended to limit the scope of these messages or information.
[0060] It is understood that before using the technical solutions disclosed in the various embodiments of this application, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this application in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0061] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this application's technical solution, based on the prompt message.
[0062] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device. It is understood that the above notification and user authorization process is merely illustrative and does not limit the implementation of this application; other methods that comply with relevant laws and regulations may also be applied to the implementation of this application.
[0063] To address the technical problems existing in related technologies, this application embodiment firstly involves manually performing performance tuning on some applications in a computing device and collecting the operational characteristics of these applications during operation. These operational characteristics are then associated with tuning methods (i.e., tuning strategies) to generate a tuning database containing corresponding relationships between operational characteristics and tuning strategies. When a new application (i.e., an untuned application) is running, its operational characteristics are recorded and matched with the operational characteristics in the aforementioned tuning database to obtain the corresponding tuning strategy for the new application. By executing this tuning strategy on the new application, it can be made to run with optimal parameters.
[0064] In this embodiment, for applications that have already been optimized, their operational characteristics are continuously monitored. When a change in the operational characteristics of an optimized application is detected, it is tested whether the original optimization strategy of the optimized application is still effective. If the original optimization strategy of the optimized application is invalid, the original optimization strategy executed by the optimized application is deleted, and a new optimization strategy is re-matched from the optimization database.
[0065] It should be noted that the applications involved in the embodiments of this application can be HPC application software, and the optimization strategies involved in the embodiments can also be called optimization methods. The embodiments are not limited to this.
[0066] Specifically, such as Figure 1 As shown, Figure 1 This is a schematic diagram of the system architecture provided for an embodiment of this application. The system includes a terminal 10, a switch 20, a management node 30, and multiple computing nodes 40. The management node 30 includes a scheduler 31, a tuning command-line program 32, a tuning service 33, and a tuning database 34. The number of computing nodes 40 can be multiple.
[0067] In this embodiment, terminal 10 is a device used by users to log in to management node 30 via the network, and can serve as a local device for the user. Users can issue jobs through terminal 10, which can be HPC computing tasks, including, for example, the required amount of computing resources and the type of computing.
[0068] Switch 20 is used to forward job or login requests issued by terminal 10.
[0069] The management node 30 receives login requests and jobs forwarded by the switch 20 and distributes jobs and optimization strategies to the corresponding compute nodes 40. The scheduler 31 can be open-source; commonly used schedulers include Slurm or PBS, and it receives job scheduling commands from the terminal 10 to perform job scheduling. Before job scheduling, optimization actions can be inserted into the pre-script of the scheduler 31. The optimization command-line program 32 sends optimization requests to the optimization service 33, which matches the corresponding optimization strategy in the optimization database 34 based on the application name and its corresponding runtime characteristics. The optimization database 34 pre-configures the characteristic values and corresponding optimization methods of some manually optimized applications, as well as the runtime characteristics of some unoptimized applications. The optimization service 33 can obtain the runtime characteristics of the compute nodes 40 during operation, match the corresponding optimization strategy from the optimization database 34 based on these characteristics, and distribute the optimization strategy to the corresponding compute node 40.
[0070] Compute node 40 receives jobs, acquires runtime characteristics generated by the HPC application during job execution, sends these characteristics to tuning service 33, and receives tuning strategies from tuning service 33, executing these tuning strategies on the HPC application. Therefore, the compute node can collect runtime characteristics of HPC applications, receive tuning strategies required for job execution, and apply them to the current environment. Compute node 40 may also include a tuning agent, which dynamically sets tuning parameters during HPC program runtime according to the tuning strategies.
[0071] It should be noted that in this embodiment, the user logs into the management node 30 via terminal 10, and issues jobs through the scheduler 31 and command-line program 32. The issued jobs are matched with existing feature values in the optimization database 34 by the optimization service 33 based on the application name and the set of recorded feature values to obtain the optimization strategy set for the application. The optimization strategies in this embodiment are mainly divided into two types. The first type dynamically sets the optimization parameters at runtime on the compute node 40 through the optimization agent in preparation for application operation. The second type requires redeploying the runtime environment on the compute node 40 (e.g., a restart is required after BIOS configuration to take effect, and the application is recompiled and deployed by adjusting compilation parameters, linking acceleration libraries, etc.). After the optimization strategy takes effect on the compute node 40, running the HPC application can obtain the best running performance of the HPC program.
[0072] In the embodiments provided in this application, for example, applications A and B can be pre-optimized manually to obtain an optimization strategy list A-L1 for application A and an optimization strategy list B-L1 for application B, and to obtain an operational characteristic list A-L2 for application A and an operational characteristic list B-L2 for application B. For details, please refer to... Figure 2As shown, Figure 2 This is a schematic diagram illustrating the optimization of an unoptimized application based on an already optimized application, as provided in this embodiment of the application. The optimization strategy list and runtime feature list, including those of optimized applications A and B, can be stored in an optimization database. For an unoptimized application C, a runtime feature list C-L2 is generated by obtaining the runtime features of application C. Then, the runtime features in runtime feature list C-L2 are matched with the runtime features in runtime feature lists A-L2 and B-L2, respectively, to obtain a optimization strategy list C-L1 containing the matched features, thus achieving the automatic generation of optimization strategies for application C.
[0073] Specifically, feature analysis can be performed on already optimized applications A and B, and a correspondence can be established between the features and known fixed optimization strategies. Features can include: top-down optimization, roofline optimization, hotspot functions, CPU (central processing unit) / memory features, I / O (input / output) features, network features, etc. Among these, top-down optimization is a top-down approach that guides the network to focus on task-related local features through high-level prior knowledge (such as semantic labels and contextual information) or global objectives.
[0074] In this embodiment, the tuning process for the new application C that has not been tuned includes the following:
[0075] a) Apply C to collect runtime features and save them to the optimization database during the first N runs (N can be a value that can be adjusted according to the actual situation, such as 3).
[0076] b) Match the runtime characteristics collected by application C with the feature list of optimized applications pre-set in the tuning database. If the matching conditions are met, record the corresponding tuning strategy. Apply the tuning strategy or provide tuning suggestions during the next run and observe the performance value. If the performance is improved, add the corresponding tuning strategy to the "Tuning Strategy List C-L1" and record application C as an optimized application. If there is no improvement, continue to observe. If there is still no improvement after the number of observations reaches a certain threshold, mark the tuning strategy as unusable.
[0077] In this embodiment, the optimization process for an already optimized application may include the following:
[0078] During job scheduling, feature values are observed periodically. If the real-time feature value deviates from the original recorded feature value by more than a certain range, the tuning strategy corresponding to the feature value is invalidated. The performance is compared the next time the tuning strategy is not executed. If the performance degrades, the tuning strategy is retained. If the performance improves, the strategy is invalidated and the job is processed as a new application.
[0079] In this embodiment, the running characteristics of the untuned program C are matched with the running characteristics in the tuning database. When the running characteristics in program C cannot be associated with the tuning strategies in the tuning database, a tuning strategy cannot be automatically generated for program C. Instead, a tuning strategy can be generated manually for program C, and the running characteristics of program C and the generated tuning strategies are managed and stored in the tuning database.
[0080] In the embodiments provided in this application, optimization strategies can be automatically matched to unoptimized applications based on the operating characteristics and optimization strategies of existing applications. The embodiments use the optimization of an HPC application on a certain platform as an example to illustrate the process of matching optimization strategies based on the operating characteristics of a new application.
[0081] like Figure 3 As shown, Application A and Application B are applications that have been pre-tuned manually. The operational characteristics and corresponding tuning strategies of the applications have been obtained in advance and stored in the tuning database. Application A detected four characteristic values during operation, including: 1) IPC (instructions per clock) = 2.19 (recommended range: 1-4); 2) Computation-intensive index > 40; 3) Backend Bound = 33.79%; 4) Retiring = 54.51% (recommended range: 30%-70%).
[0082] In the embodiment, for the operating characteristic of "computation-intensive index > 40", the optimization strategies confirmed by manual tuning include two types: 1) Strategy 1: BIOS configuration, power policy changed to performance mode; performance policy changed to HPC; 2) Strategy 2: SIMD optimization. Different compilers may have different compilation options. Taking a certain platform as an example, a certain compiler can be used to add the parameter "-lksvml-fveclib=MATHLIB-lkm-lm-O3" in the linking options to achieve vectorization. After manual tuning, two tuning strategies were confirmed for Application B. Strategy 3 was adopted for the feature that "the hot function dgemm accounts for 69.91%, exceeding 30%": "using KML compilation optimization". Strategy 4 was adopted for the feature that "Backend Bound = 53.69% (recommended value range: 20%-40%)", which includes four sub-strategies: 1) recompile the application using the jemalloc library for linking; 2) set the compilation option Wrap-memset / memcpy; 3) enable software prefetching with the compilation parameter tsv110; 4) enable large pages with the kernel parameter.
[0083] Application C, being an unoptimized application, collected four operational features during its operation. Two of these features appeared in applications A and B. For example, the feature "computation-intensive index > 40" matches the feature in application A. Therefore, optimization strategies 1 and 2 for this feature in application A were adopted as the optimization strategies for application C. The feature "hotspot function dgemm accounts for 49.71%, exceeding 30%" matches the feature in application B. Therefore, optimization strategy 3 for this feature in application B was adopted as the optimization strategy for application C. Ultimately, the optimization strategy for application C is the sum of strategies 1 to 3.
[0084] Based on the above embodiments, it should be noted that:
[0085] 1) The operational characteristics of an application can be a combination of 1 to N metrics, and the tuning strategy can also be a combination of 1 to N strategies. For example, the tuning strategy used for the characteristic of "computation-intensive metrics > 40" includes a combination of strategy 1 and strategy 2.
[0086] 2) Feature value comparison can be based on the range of feature points and corresponding feature values, or matching can be performed based on the similarity of feature value ranges. For example, if the proportion of the hotspot function dgemm is greater than 30%, it can be considered a feature match; the backend bound suggests a range of 20%-40%, and if both feature values exceed 40%, it is also considered a feature match. The feature value can be a specific quantification of the running feature, that is, the feature value is the specific manifestation of the running feature. The running feature can also be a numerical range or a numerical interval; the examples are not limited to these.
[0087] This application's embodiments are based on the correspondence between the operational characteristics of optimized applications and optimization strategies, and combine the operational characteristics of new applications to match and automatically generate optimization strategies. This can solve the problems of low efficiency and high cost of manual optimization in related technologies.
[0088] In the embodiments provided in this application, feature analysis methods can be used to analyze and extract feature values from the application. Feature analysis can include seven aspects, including: top-down, roofline, hotspot functions, branch misses, and CPU clock speed; memory features such as L1, L2, and L3 load misses, memory read / write bandwidth, and memory capacity; I / O features such as I / O bandwidth and IOPS (input / output operations per second); and network features such as network bandwidth and MPI communication function distribution. These feature extraction methods are generally related to the processor platform and architecture, and there can be multiple methods. Taking a Linux platform with a certain architecture as an example, the analysis and extraction methods for some key features are illustrated. Specifically, they can include the following:
[0089] 1) Top-Down Feature Analysis.
[0090] The core idea of the Top-Down method is to start from the perspective of overall system performance, gradually decompose and analyze the system's performance bottlenecks, and identify the key factors affecting system performance. Different processors may use different data acquisition tools. Here, we take a certain architecture as an example and use the following command to collect Top-Down data.
[0091] kperf --topdown --duration 1 --interval 1 --iter-num times --excel excel_name.
[0092] Where: excel_name represents the name of the Excel document where the data is stored, times represents the specific number of data collections, duration represents the collection period, and interval represents the collection interval time.
[0093] The output results are used to calculate the proportions of Retiring, Frontend Bound, Bad Speculation, and Backend Bound, and these proportions are saved to the tuning database, as shown in Table 1 below. If a feature value is within the recommended range, it indicates that the performance meets expectations; if it is outside the range, it means that this feature value may affect performance. During the feature value matching process, only features outside the recommended range are matched.
[0094] Table 1:
[0095] feature Recommended value Eigenvalues Retiring 30-70% 36.51% Frontend Bound 5-10% 7.02% Bad Speculation 1-5% 2.78% Backend Bound 20-40% 53.69%
[0096] 2) Hotspot function extraction.
[0097] Hotspot functions can be extracted using the Perf tool, a system performance optimization tool included in the Linux kernel. Perf can be used to identify hotspot functions and optimize program performance. Hotspot functions are those that are called too frequently or consume too much memory. Usage methods include:
[0098] a) Install using the Perf tool. For example, on a Linux system managed by yum, you can use: yum install -yperf.
[0099] b) Use the command perf.data to collect sampled data of the system or a specific process. For example: perf record-F99-ag-p10000--sleep 60 means to sample CPU events of process ID 10000 for 60 seconds, sample 99 events per second, and record the program's call stack.
[0100] c) Use commands to print the percentage of hot functions. For example, the perf report command can print information such as the percentage of hot functions. For example, the hot function swapper accounts for 18.91% of the total CPU load.
[0101] d) Hotspot functions whose statistical proportion exceeds a certain threshold (e.g., 20%) can be saved to the tuning database in the following format for feature value matching between applications.
[0102] 3) Roofline feature analysis.
[0103] The Roofline model, proposed by Berlik of Caltech, is used to establish the theoretical upper limit of computational performance that current computing platforms can achieve under different computational intensities. The implementation examples can be based on this theory, using Operational Intensity for quantitative analysis, and provide the theoretical upper limit of computational performance that the model can achieve on a specified computing platform. By comparing this with actual test results, the optimization direction for the current application can be determined: for computationally intensive programs, it is recommended to use the SIMD vectorization method for optimization; for memory-intensive programs, it is recommended to use the soft prefetching optimization method.
[0104] The main methods are described below:
[0105] a) Two metrics for the computing platform: computing power π and bandwidth β.
[0106] Computing power π: also known as the performance ceiling of a computing platform, refers to the number of floating-point operations a computing platform can perform per second at its maximum capacity. The unit is FLOPS, which is the number of floating-point operations performed per second.
[0107] π:Maximum FLOPs Per Second.
[0108] Bandwidth β: also known as the bandwidth limit of a computing platform, refers to the amount of memory swapping that a computing platform can complete per second at full capacity. The unit is Byte / s.
[0109] β: Maximum Memory Access Per Second.
[0110] The upper limit of computational intensity, Imax, is obtained by dividing the two metrics. It describes the maximum number of computations that can be performed per unit of memory swap on this computing platform. The unit is FLOPs / Byte. Where Imax = πβ.
[0111] b) Two metrics for the computation program: computational load and memory access load.
[0112] Computational complexity: The number of floating-point operations performed by the computing program in one complete calculation, i.e., time complexity, measured in FLOPS, corresponding to the computing power π of the computing platform.
[0113] Memory access: The total amount of memory swapping that occurs when a computing program performs a complete computation, i.e., space complexity, measured in bytes, corresponding to the bandwidth β of the computing platform.
[0114] Computational Intensity I: The computational intensity of a program can be obtained by dividing the computational load by the memory access load. It represents how many floating-point operations are performed per byte of memory swap during computation. The unit is FLOPs / Byte. As can be seen, the higher the computational intensity, the higher the memory utilization efficiency.
[0115] c) The theoretical performance P of the calculation program.
[0116] P represents the number of floating-point operations per second that can be achieved on a specified computing platform. According to the theory of the Roofline model, as shown in the figure below, the theoretical performance P of the computing program can be obtained.
[0117] in,
[0118] d) Determining the optimization strategy for the computation program.
[0119] The direction of program optimization can be determined by whether the computation actually falls within the Memory Bound or Compute Bound. When the program is within the Memory Bound, the larger the bandwidth β of the computing platform (the steeper the eaves), or the greater the computational intensity I of the program, its theoretical performance P can increase linearly. Increasing the program's memory access frequency through soft prefetching can improve program performance. When the program is within the Compute Bound, the theoretical performance P is limited by the theoretical computing power π of the computing platform. In this case, the program fully utilizes the computing platform's total computing power, which is good for computing power utilization. The maximum theoretical computing power of the hardware platform can be adjusted by optimizing the hardware configuration, such as adjusting the BIOS power policy to performance mode or performance policy to HPC.
[0120] 4) Extraction of features such as CPU / memory, IO and network.
[0121] Feature extraction for CPU / memory, I / O, and network can be performed directly using command-line tools provided by the Linux system, as shown in Table 2 below.
[0122] Table 2:
[0123]
[0124] In this embodiment, the accuracy of feature extraction directly affects the feature matching result, thus impacting the final effect of automatic optimization. Therefore, this application embodiment summarizes six major application features (including: Top-Down, hotspot functions, Roofline features, CPU / memory, IO, and network features) through optimization practice, and collects them during the HPC application's operation using existing tools and strategies. By comprehensively matching features from various dimensions, the accuracy and effectiveness of automatic application optimization results can be significantly improved.
[0125] Based on the above embodiments, this application also provides an application optimization method, such as... Figure 4 As shown, the method may include the following steps:
[0126] In step S410, the target operating characteristics of the application to be optimized during operation are obtained.
[0127] In this embodiment, during the operation of the application to be optimized, the running characteristics of the application to be optimized can be monitored. These running characteristics may include one or more of the following: Top-Down characteristics, hot function characteristics, Roofline characteristics, CPU / memory characteristics, input / output IO characteristics, and network characteristics. The embodiment is not limited to these.
[0128] In step S420, a target optimization strategy matching the target operating characteristics is obtained from a pre-established optimization database; wherein, the optimization database includes multiple sets of correspondences between operating characteristics and optimization strategies.
[0129] In this embodiment, based on the above embodiments, some applications can be pre-tuned manually to generate tuning strategies for these applications, establish a correspondence between the tuned applications and the corresponding tuning strategies, and generate a tuning database.
[0130] For example, when optimizing an application manually in advance, the application's operational characteristics can be obtained, and operational characteristics that do not meet expectations can be extracted from these characteristics. Optimization strategies for these unsatisfactory operational characteristics can then be given, so that the application can meet expectations based on these optimization strategies.
[0131] In step S430, the application to be tuned is run based on the target tuning strategy.
[0132] In this embodiment, the optimization strategies can include two types: one is adjusting the running parameters of the application to be optimized, and the other is redeploying the running environment of the application to be optimized, so that the application to be optimized can run with optimal parameters and achieve its best performance. The first type of optimization strategy is equivalent to ensuring that the running parameters of the application to be optimized meet the requirements of the running environment, while the second type of optimization strategy is equivalent to adjusting the running environment of the application to be optimized so that the running environment meets the needs of the application to be optimized, thereby enabling the application to achieve its best performance.
[0133] The application tuning method provided in this application embodiment can, when an application needs to be tuned, obtain a target tuning strategy that matches the target characteristics of the application during its operation from a pre-established tuning database. This tuning strategy can enable the application to be tuned to run at its best performance without having to manually tune each application in advance, thereby greatly improving the efficiency of application tuning.
[0134] Based on the above embodiments, in another embodiment provided in this application, step S410 may further include the following steps:
[0135] In step S411, multiple feature extraction strategies are obtained.
[0136] These multiple feature extraction strategies are used to extract the operational features of the application to be optimized from different dimensions during its operation.
[0137] In step S412, target operating features with different dimensions of the application to be optimized are extracted during the running process through multiple feature extraction strategies.
[0138] In the embodiments, as can be seen from the above embodiments, feature analysis and extraction can be performed through Top-Down feature analysis, hotspot function extraction analysis, Roofline feature analysis, CPU / memory, IO and network feature extraction analysis, etc. By comprehensively matching features from various dimensions, the accuracy and effectiveness of automatic application optimization results can be greatly improved.
[0139] In step S440, based on the above embodiments, in another embodiment provided in this application, the method may further include the following steps:
[0140] In step S450, multiple operating features of the target application during operation are obtained, and operating features that do not meet expectations are identified from the multiple operating features.
[0141] In step S460, an optimization strategy is generated based on the unexpected operating characteristics.
[0142] This tuning strategy is used to adjust the running parameters or deployment environment of the target application.
[0143] In step S470, an optimization database is generated based on operational characteristics and optimization strategies.
[0144] In this embodiment, assuming there are application A and application B, application A detects four feature values during operation. Based on the description in the previous embodiment, the second feature does not meet expectations. This second feature is manually optimized, resulting in two optimization strategies: optimization strategy 1 and optimization strategy 2. A correspondence is established between this second feature and optimization strategies 1 and 2, and this correspondence is stored in the optimization database. Similarly, for application B, corresponding optimization strategies 3 and 4 are manually obtained, and a correspondence is established between the operating features and optimization strategies, which is then stored in the optimization database. Through this method, multiple correspondences between manually optimized operating features and optimization strategies can be obtained, resulting in a pre-established optimization database.
[0145] In this way, when there are applications that need to be optimized later, we only need to obtain the running characteristics of the application during its operation, and match these running characteristics with the running characteristics in the optimization database to automatically obtain the matching optimization strategy.
[0146] Based on the above embodiments, in another embodiment provided in this application, the target operating feature may include multiple operating features; the above step S420 may further include the following steps:
[0147] In step S421, a target tuning strategy matching the target operating characteristics is obtained from a pre-established tuning database, including:
[0148] In step S422, multiple tuning strategies are obtained from a pre-established tuning database.
[0149] In this process, multiple operational features are matched with operational features stored in the tuning database to obtain multiple matching tuning strategies.
[0150] In step S423, multiple tuning strategies are combined to obtain the target tuning strategy.
[0151] In this embodiment, since the pre-established tuning database includes the correspondence between runtime features and tuning strategies, the tuning database may include one runtime feature corresponding to one or more tuning strategies, or it may be a group of runtime features including several runtime features corresponding to one or more tuning strategies. Therefore, when obtaining a target tuning strategy that matches a target runtime feature from the pre-established tuning database, if the target feature includes multiple runtime features, these multiple runtime features can be matched with the runtime features stored in the tuning database to obtain multiple matched tuning strategies. Alternatively, the embodiment can also divide these multiple runtime features into multiple groups based on correlation, for example, by clustering runtime features with similar characteristics into a group. This allows each group of runtime features to be matched with the runtime features stored in the tuning database to obtain matched tuning strategies. This enables timely retrieval of the corresponding target tuning strategy from the tuning database based on the target runtime features of the application to be tuned.
[0152] Based on the above embodiments, in another embodiment provided in this application, step S430 may further include the following steps:
[0153] In step S431, the application to be tuned is run based on the target tuning strategy, and the first running characteristics of the application to be tuned when executing the target tuning strategy are obtained.
[0154] In step S432, when the deviation between the first running feature and the target running feature is greater than a threshold, the target optimization strategy is stopped.
[0155] In the embodiments, in order to verify whether the obtained target tuning strategy is applicable to the application to be tuned, or if the running characteristics of the application to be tuned change after running based on the target tuning strategy, the target tuning strategy may not be applicable to the current application to be tuned.
[0156] Therefore, the embodiment obtains the first operating characteristics of the application to be tuned when executing the target tuning strategy, and compares the first characteristic with the target operating characteristics of the application to be tuned before tuning. If the deviation between the first operating characteristic and the target operating characteristic is greater than a threshold, it indicates that the target tuning strategy is no longer suitable for the application to be tuned. At this time, the execution of the target tuning strategy can be stopped for the application to be tuned.
[0157] Based on the above embodiments, in another embodiment provided in this application, the method can also obtain a first performance index generated by the target application when executing the tuning strategy, and obtain a second performance index generated by the target application when it stops executing the tuning strategy; when the first performance index is higher than the first performance index, the target tuning strategy is re-executed for the application to be tuned.
[0158] In the embodiment, the performance indicators of the application to be tuned can also be compared before and after the execution of the target tuning strategy. That is, by comparing the first performance indicator and the second performance indicator, if the first performance indicator is higher than the second performance indicator, it indicates that the target tuning strategy has a positive effect and is conducive to the application to be tuned to achieve better performance. At this time, the target tuning strategy can continue to be executed.
[0159] In this embodiment, if the first performance index is not higher than the first performance index, it indicates that the target tuning strategy is no longer suitable for the tuning application. The target tuning strategy needs to be stopped from being executed in the application to be tuned. A new tuning strategy can be rematched from the tuning database according to the current running characteristics of the application to be tuned.
[0160] In the embodiments provided in this application, a second running characteristic of the application to be tuned when executing the target tuning strategy can also be obtained; when the second running characteristic does not match the target tuning strategy, the execution of the target tuning strategy is stopped.
[0161] In this embodiment, since the target strategy adjusts the running parameters of the application to be tuned or changes its running environment, the running characteristics of the application to be tuned will change after the target tuning strategy is executed. If the current second running characteristic does not match the target tuning strategy, the execution of the target tuning strategy can be stopped. The target tuning strategy can also be verified through the above embodiment. If the performance of the application to be tuned degrades after stopping the execution of the target tuning strategy, then the target tuning strategy can continue to be executed; otherwise, the execution of the target tuning strategy should be stopped.
[0162] In the case of dividing each functional module according to its corresponding functions, this application embodiment provides an application optimization device, which can be a server, a terminal, or a chip applied to a server. Figure 5 A schematic block diagram of the functional modules of an application optimization device provided for an exemplary embodiment of this application. (See diagram below.) Figure 5 As shown, the application tuning device includes:
[0163] Feature acquisition module 51 is used to acquire the target running features of the application to be optimized during its operation.
[0164] The strategy matching module 52 is used to obtain target optimization strategies that match the target operating characteristics from a pre-established optimization database; wherein, the optimization database includes multiple sets of correspondences between operating characteristics and optimization strategies;
[0165] The strategy execution module 53 is used to run the application to be optimized based on the target optimization strategy.
[0166] When an application needs to be optimized, this solution retrieves a target optimization strategy from a pre-established optimization database that matches the target characteristics of the application during its operation. This optimization strategy enables the application to run at its best performance without the need for manual optimization of each application beforehand, thus greatly improving the efficiency of application optimization.
[0167] In another embodiment provided in this application, the feature acquisition module is specifically used for:
[0168] Multiple feature extraction strategies are obtained, and each strategy is used to extract the runtime features of the application to be optimized from different dimensions during the running process.
[0169] Multiple feature extraction strategies are used to extract target operational features with different dimensions from the application to be optimized during its operation.
[0170] This solution significantly improves the accuracy and effectiveness of automatic optimization results by comprehensively matching features from various dimensions.
[0171] In another embodiment provided in this application, the target operating characteristics include at least one of the following: top-down data characteristics, hotspot function characteristics, roofline characteristics, CPU / memory characteristics, input / output (IO) characteristics, and network characteristics.
[0172] This solution can more accurately reflect the program's running status by acquiring multi-dimensional running characteristics, thereby improving the accuracy of strategy matching when matching based on these running characteristics.
[0173] In another embodiment provided in this application, the device further includes an optimization database generation module, specifically used for:
[0174] Obtain multiple operational characteristics of the target application during its operation, and identify the operational characteristics that do not meet expectations from these characteristics.
[0175] Based on unexpected operational characteristics, optimization strategies are generated, which are used to adjust the operating parameters or deployment environment of the target application.
[0176] An optimization database is generated based on operational characteristics and optimization strategies.
[0177] In another embodiment provided in this application, the target operational characteristics include multiple operational characteristics; the policy matching module is further used for:
[0178] Multiple tuning strategies are obtained from a pre-established tuning database; among them, multiple matching tuning strategies are obtained by matching multiple runtime features with runtime features stored in the tuning database.
[0179] By combining multiple tuning strategies, the target tuning strategy is obtained.
[0180] When an application needs optimization in the future, this solution only needs to obtain the running characteristics of the application during its operation. By matching these running characteristics with the running characteristics in the optimization database, a matching optimization strategy can be automatically obtained.
[0181] In another embodiment provided in this application, the policy execution module is further configured to:
[0182] Run the application to be tuned based on the target tuning strategy and obtain the first running characteristics of the application to be tuned when executing the target tuning strategy;
[0183] When the deviation between the first operating characteristic and the target operating characteristic exceeds a threshold, the target tuning strategy is stopped.
[0184] This solution obtains the first operational characteristic of the application to be tuned when executing the target tuning strategy. By comparing the first characteristic with the target operational characteristic of the application before tuning, if the deviation between the first operational characteristic and the target operational characteristic is greater than a threshold, it indicates that the target tuning strategy is no longer suitable for the application to be tuned. At this time, the execution of the target tuning strategy can be stopped for the application to be tuned.
[0185] In another embodiment provided in this application, the device further includes a first strategy adjustment module, specifically used for:
[0186] Obtain the first performance metric generated by the target application when executing the tuning strategy, and obtain the second performance metric generated by the target application when it stops executing the tuning strategy;
[0187] If the first performance metric is higher than the first performance metric, the target tuning strategy is re-executed for the application to be tuned.
[0188] This approach compares the performance metrics of the application to be tuned before and after implementing the target tuning strategy. Specifically, by comparing the first performance metric and the second performance metric, if the first performance metric is higher than the second performance metric, it indicates that the target tuning strategy has a positive effect and helps the application to be tuned to achieve better performance. In this case, the target tuning strategy can continue to be implemented.
[0189] In another embodiment provided in this application, the device further includes a second strategy adjustment module, specifically used for:
[0190] When the first performance metric is not higher than the first performance metric, the application to be tuned should continue to stop executing the target tuning strategy.
[0191] When the first performance indicator is not higher than the first performance indicator, it means that the target tuning strategy is no longer suitable for the application to be tuned. The application to be tuned needs to stop executing the target tuning strategy and a new tuning strategy can be rematched from the tuning database based on the current running characteristics of the application to be tuned.
[0192] In another embodiment provided in this application, the device further includes a third strategy adjustment module, specifically used for:
[0193] Obtain the second runtime characteristics of the application to be tuned when executing the target tuning strategy;
[0194] If the second running characteristic does not match the target tuning strategy, the target tuning strategy is stopped.
[0195] Since the target strategy of this scheme is to adjust the running parameters of the application to be optimized or change its running environment, the running characteristics of the application to be optimized will change after the target optimization strategy is executed. If the current second running characteristics do not match the target optimization strategy, the execution of the target optimization strategy can be stopped. The target optimization strategy can also be verified through the above embodiments. If the performance of the application to be optimized degrades after stopping the execution of the target optimization strategy, then the target optimization strategy can continue to be executed; otherwise, the execution of the target optimization strategy should be stopped.
[0196] This application also provides a computing device, including: at least one processor; a memory for storing at least one processor-executable instruction; wherein the at least one processor is configured to execute instructions to implement the methods disclosed in the embodiments of this application.
[0197] The aforementioned processor can also be called a central processing unit (CPU), which can be an integrated circuit chip with signal processing capabilities. Each step in the method disclosed in this application can be implemented by integrated logic circuits in the processor's hardware or by software instructions. The aforementioned processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this application can be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor. The software modules can be located in memory, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method.
[0198] Furthermore, various operations / processes according to embodiments of this application, when implemented via software and / or firmware, can be transmitted from a storage medium or network to a computing device with a dedicated hardware architecture, such as... Figure 6 The computing device 600 shown is equipped with programs that constitute the software. When various programs are installed, the computing device is able to perform various functions, including functions such as those mentioned above. Figure 6 A structural block diagram of a computing device provided for an exemplary embodiment of this application.
[0199] Computing device 600 is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, mainframe computers, and other suitable computers. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the embodiments of this application described and / or claimed herein.
[0200] like Figure 6As shown, the computing device 600 includes a computing unit 601, which can perform various appropriate actions and processes based on a computer program stored in a read-only memory (ROM) 602 or a computer program loaded from a storage unit 608 into a random access memory (RAM) 603. The RAM 603 may also store various programs and data required for the operation of the computing device 600. The computing unit 601, ROM 602, and RAM 603 are interconnected via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.
[0201] Multiple components in the computing device 600 are connected to the I / O interface 605, including: an input unit 606, an output unit 607, a storage unit 608, and a communication unit 609. The input unit 606 can be any type of device capable of inputting information to the computing device 600. The input unit 606 can receive input numerical or character information and generate key signal inputs related to user settings and / or function control of the computing device. The output unit 607 can be any type of device capable of presenting information and may include, but is not limited to, a display, speaker, video / audio output terminal, vibrator, and / or printer. The storage unit 608 may include, but is not limited to, a hard disk and an optical disk. The communication unit 609 allows the computing device 600 to exchange information / data with other devices via a network such as the Internet, and may include, but is not limited to, a modem, network card, infrared communication device, wireless communication transceiver, and / or chipset, such as Bluetooth™ device, WiFi device, WiMax device, cellular communication device, and / or the like.
[0202] The computing unit 601 can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 601 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 601 performs the various methods and processes described above. For example, in some embodiments, the methods disclosed in the embodiments of this application can be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage unit 608. In some embodiments, part or all of the computer program can be loaded and / or installed on a computing device via ROM 602 and / or communication unit 609. In some embodiments, the computing unit 601 can be configured to perform the methods disclosed in the embodiments of this application by any other suitable means (e.g., by means of firmware).
[0203] This application also provides a computer-readable storage medium, wherein when the instructions in the computer-readable storage medium are executed by the processor of a computing device, the computing device is able to perform the methods disclosed in the embodiments of this application.
[0204] The computer-readable storage medium in this application embodiment may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. The aforementioned computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specifically, the aforementioned computer-readable storage medium may include an electrical connection based on one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.
[0205] The aforementioned computer-readable medium may be included in the aforementioned computing device; or it may exist independently and not assembled into the computing device.
[0206] This application also provides a computer program product, including a computer program, wherein the computer program, when executed by a processor, implements the methods disclosed in the embodiments of this application.
[0207] In embodiments of this application, computer program code for performing the operations of this application can be written in one or more programming languages or a combination thereof. These programming languages include, but are not limited to, object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as C or similar languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)), or it can be connected to an external computer.
[0208] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0209] The modules, components, or units described in the embodiments of this application can be implemented in software or hardware. The names of the modules, components, or units do not necessarily constitute a limitation on the module, component, or unit itself.
[0210] The functions described above in this document can be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary hardware logic components that can be used include: field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip (SoCs), complex programmable logic devices (CPLDs), and so on.
[0211] The above description is merely an embodiment of this application and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of disclosure in this application is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features with similar functions disclosed in this application.
[0212] While specific embodiments of this application have been described in detail by way of examples, those skilled in the art should understand that the above examples are for illustrative purposes only and are not intended to limit the scope of this application. Those skilled in the art should understand that modifications can be made to the above embodiments without departing from the scope and spirit of this application. The scope of this application is defined by the appended claims.
Claims
1. An application tuning method, characterized by, The method comprises: obtaining a target running feature of a to-be-optimized application in a running process; obtaining a target optimization strategy matched with the target running feature from a pre-established optimization database; wherein the optimization database comprises a corresponding relationship between multiple groups of running features and optimization strategies; running the to-be-optimized application based on the target optimization strategy.
2. The method of claim 1, wherein, The method comprises: obtaining a target running feature of a to-be-optimized application in a running process; obtaining a target running feature of a to-be-optimized application in a running process; 3. The method of claim 1, wherein, The target running feature comprises at least one of the following: a Top-Down feature, a hot function feature, a Roofline feature, a CPU / memory feature, an input / output (IO) feature, and a network feature.
4. The method of claim 1, wherein, The method further comprises: obtaining multiple running features of a target application in a running process, and determining a running feature not meeting an expectation from the multiple running features respectively; generating an optimization strategy based on the running feature not meeting the expectation, the optimization strategy being used to adjust a running parameter or a deployment environment of the target application; generating an optimization database based on the running features and the optimization strategy.
5. The method of claim 1, wherein, The target running feature comprises multiple running features. The method further comprises: obtaining multiple optimization strategies from a pre-established optimization database; wherein the multiple optimization strategies are obtained by matching the multiple running features with running features stored in the optimization database respectively; combining the multiple optimization strategies to obtain the target optimization strategy.
6. The method of claim 1, wherein, The method further comprises: running the to-be-optimized application based on the target optimization strategy, and obtaining a first running feature of the to-be-optimized application when the target optimization strategy is executed; stopping execution of the target optimization strategy when a deviation value between the first running feature and the target running feature is greater than a threshold value.
7. The method of claim 6, wherein, The method further comprises: obtaining a first performance index of the target application when the optimization strategy is executed, and obtaining a second performance index of the target application when the optimization strategy is stopped; re-executing the target optimization strategy on the to-be-optimized application when the first performance index is higher than the second performance index.
8. The method of claim 7, wherein, The method further comprises: maintaining the to-be-optimized application to stop executing the target optimization strategy when the first performance index is not higher than the second performance index.
9. The method of claim 1, wherein, The method further comprises: obtaining a second running feature of the to-be-optimized application when the target optimization strategy is executed; stopping execution of the target optimization strategy when the second running feature does not match the target optimization strategy.
10. A computing device, comprising: The method comprises: at least one processor; a memory for storing executable instructions of the at least one processor; The at least one processor is configured to execute the instructions to implement the method of any one of claims 1-9.