Software evaluation and migration method, electronic device, storage medium, program product

CN120523512BActive Publication Date: 2025-09-23INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511016517.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-07-23
Publication Date
2025-09-23
Estimated Expiration
2045-07-23

AI Technical Summary

Technical Problem

Existing technologies make it difficult to predict the running status and performance of software on different CPU platforms, resulting in high performance testing costs and difficulty in accurate prediction after software deployment.

Method used

By obtaining the processor scores of multiple preset devices, the performance of the target software on different devices is evaluated, and a performance prediction model of performance offset factor and processor offset factor is constructed. The model is used to predict the running performance of the target software on the target device.

Benefits of technology

It reduces software testing costs, improves the reliability and generalization of performance prediction after software migration, and achieves efficient and accurate cross-platform software performance prediction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120523512B_ABST
    Figure CN120523512B_ABST
Patent Text Reader

Abstract

The present application discloses a software evaluation and migration method, an electronic device, a storage medium, and a program product, and relates to the field of computer technology. The software evaluation method includes utilizing the performance offset factor and the processor offset factor of the target software between different preset devices to fit a performance prediction model that characterizes the mapping relationship between the performance offset factor and the processor offset factor. When the software needs to be migrated in the future, the performance score offset can be obtained based on the processor score offset between the target device and the benchmark device. The obtained performance score offset is superimposed on the performance score of the benchmark device to predict the current running performance of the software on the target device. This solves the technical problem of difficulty in predicting the running status of the software on the device, and achieves the technical effect of reducing software testing costs and generalizing performance prediction after software migration.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a software evaluation method, a software migration method, an electronic device, a computer-readable storage medium, and a computer program product. Background Art

[0002] With the advancement of information technology, software development and application often require deployment on multiple CPU (Central Processing Unit) platforms. To ensure reliable operation of the developed software, or target software, it is often necessary to actually deploy the target software on a real, appropriate CPU platform and conduct post-deployment performance testing. This makes it difficult to predict the operating status and performance of the developed software on different CPU platforms. Summary of the Invention

[0003] The present application provides a software evaluation method, a software migration method, an electronic device, a computer-readable storage medium, and a computer program product to at least solve the problem in related technologies that it is difficult to predict the running status of software on a device.

[0004] The present application provides a software evaluation method, which includes: obtaining target software to be evaluated; obtaining multiple preset devices; respectively obtaining processor scores of central processing units carried by the preset devices; respectively running the target software on each preset device, and evaluating the performance scores of the preset devices running the target software; forming multiple device evaluation groups from the preset devices, and evaluating the offset parameter combinations of the device evaluation groups; wherein the device evaluation group includes a first device and a second device selected from the multiple preset devices, and the offset parameter combination includes a performance offset factor of the first device compared to the second device and a processor offset factor; using the processor offset factor of the offset parameter combination as input and the performance offset factor as target output, to train a performance prediction model for evaluating the target software.

[0005] The present application also provides a software migration method, which includes: obtaining a processor score of a target processor carried by a target device as a first score; obtaining a baseline performance value of a benchmark processor and a processor score as a second score; wherein the baseline performance value is a performance score of a device carrying the benchmark processor running the target software; obtaining a performance prediction model of the target software; wherein the performance prediction model is obtained using the software evaluation method as described above; inputting the difference between the first score and the second score into the performance prediction model to obtain a performance offset value output by the performance prediction model; superimposing the performance offset value on the baseline performance value as a migration performance value of the target processor; evaluating whether the migration performance value reaches a migration threshold; and migrating the target software to the target device in response to the migration performance value reaching the migration threshold.

[0006] The present application also provides an electronic device, which includes: a memory for storing a computer program; a processor for implementing the steps of the above-mentioned software evaluation method when executing the computer program; or, implementing the steps of the above-mentioned software migration method.

[0007] The present application also provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of the software evaluation method described above are implemented; or the steps of the software migration method described above are implemented.

[0008] The present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of the above-mentioned software evaluation method; or, implements the steps of the above-mentioned software migration method.

[0009] Through the present application, by utilizing the performance offset factor and processor offset factor of the target software between different preset devices, a performance prediction model that characterizes the mapping relationship between the performance offset factor and the processor offset factor is fitted. Among them, the performance offset factor represents the performance score offset of the target software running between different preset devices, and the processor offset factor represents the processor score offset between each preset device. In this way, when the target software needs to be migrated in the future, the performance score offset can be obtained based on the processor score offset between the target device and the benchmark device, and the obtained performance score offset can be superimposed on the performance score of the benchmark device to predict the current software's running performance on the target device. Therefore, the technical problem of difficulty in predicting the running status of the software on the device can be solved, and the technical effect of reducing software testing costs and the generalizability of performance prediction after software migration can be achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0011] Figure 1 This is a structural diagram of an embodiment of an application scenario of the software migration method of the present application;

[0012] Figure 2 This is a flowchart of an embodiment of the software evaluation method of the present application;

[0013] Figure 3 This is a flowchart of another embodiment of the software evaluation method of the present application;

[0014] Figure 4 This is a flowchart of an embodiment of the software migration method of the present application;

[0015] Figure 5 This is a flowchart of another embodiment of the software migration method of the present application;

[0016] Figure 6 This is a structural diagram of an embodiment of an electronic device of the present application. DETAILED DESCRIPTION

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

[0018] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.

[0019] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0020] In order to solve the technical problem in the related art that it is difficult to predict the running status of software on a device, the present application provides a software evaluation method, a software migration method, an electronic device, a computer-readable storage medium, and a computer program product. The software evaluation method includes: obtaining the target software to be evaluated; obtaining multiple preset devices; obtaining the processor scores of the central processing units carried by the preset devices respectively; running the target software on each preset device respectively, and evaluating the performance scores of the preset devices running the target software; forming multiple device evaluation groups from the preset devices, and evaluating the offset parameter combinations of the device evaluation groups; wherein the device evaluation group includes a first device and a second device selected from the multiple preset devices, and the offset parameter combination includes a performance offset factor of the first device compared to the second device and a processor offset factor; using the processor offset factor of the offset parameter combination as input and the performance offset factor as target output, training a performance prediction model for evaluating the target software.

[0021] In conjunction with the specific application environment architecture or specific hardware architecture on which the execution of the software evaluation method and the software migration method depends, the specific application environment architecture or specific hardware architecture is described herein.

[0022] See also Figure 1 , Figure 1 This is a structural diagram of an embodiment of an application scenario of the software migration method of this application.

[0023] In one embodiment, the software migration system can be used to perform software evaluation on the target software using a preset device to obtain a performance prediction model of the target software. The performance prediction model can adapt to different processor offset factors to predict corresponding performance offset factors.

[0024] In this way, when migrating the target software to the target device, one of the preset devices can be selected as the benchmark device, and the performance offset factor of the target device compared to the benchmark device can be used to input the performance prediction model. It can be considered that the performance offset factor obtained by using the performance prediction model can characterize the performance score offset of the target software when running on the target device compared to the benchmark device. Therefore, the performance offset factor output by the performance prediction model can be superimposed with the performance score of the benchmark device (i.e., the benchmark performance value) as the performance score of the target software running on the target device.

[0025] The following is an example to illustrate the detailed working principle of this application.

[0026] The embodiments of the present application provide a software evaluation method, and describe in detail the specific working principle of the software evaluation method in combination with the execution process of the software evaluation method.

[0027] See also Figure 2 , Figure 2 This is a flowchart of an embodiment of the software evaluation method of the present application. It should be noted that the software evaluation method of this embodiment can be applied to application scenarios such as the software development test phase, the software pre-release test phase, the software pre-deployment phase, and the software migration phase, without limitation here.

[0028] S101: Obtain target software to be evaluated.

[0029] In this embodiment, the target software refers to the software that currently needs to be evaluated. The target software may be in the stage of completed development and ready to be installed on the target device, or may be in the stage of research and development and testing, etc., which is not strictly limited here.

[0030] S102: Acquire multiple preset devices.

[0031] In this embodiment, the pre-set device refers to the device used to load and run the target software during the software evaluation process. Furthermore, the number of pre-set devices during the software evaluation process can be multiple, for example, two, three, or four, to reduce the software evaluation burden caused by too many pre-set devices and the risk of unreliable software evaluation results caused by too few pre-set devices.

[0032] The preset devices may be randomly selected or selected based on certain screening conditions, which is not strictly limited here.

[0033] S103: Obtain processor scores of the central processing units carried by the preset devices respectively.

[0034] In this embodiment, the pre-set device may include a central processing unit (CPU). This embodiment considers that the target software's performance on the pre-set device is correlated with the overall performance of the CPU. Simply evaluating the mapping relationship between a single or limited number of CPU metrics and performance is insufficient to reliably represent the performance differences of the target software across different devices. Therefore, this embodiment obtains a processor score that comprehensively represents the CPU included in each pre-set device.

[0035] The processor score can be evaluated through an independently designed evaluation algorithm / pre-trained model, or can be obtained from public data, and is not strictly limited here.

[0036] S104: The target software is run on each preset device respectively, and the performance score of the preset device running the target software is evaluated.

[0037] In this embodiment, in response to obtaining the target software and multiple preset devices, the target software can be installed on each of the preset devices. In this manner, the target software can be run on each of the preset devices, and the status of the target software running on each of the preset devices can be monitored. The monitored running status and performance of the target software on the preset devices can be used to evaluate the performance score of the target software running on the preset devices.

[0038] S105: Forming multiple device evaluation groups from preset devices and evaluating offset parameter combinations of the device evaluation groups; wherein the device evaluation group includes a first device and a second device selected from multiple preset devices, and the offset parameter combination includes a performance offset factor and a processor offset factor of the first device compared to the second device.

[0039] In this embodiment, as described above, there may be multiple preset devices, so multiple device evaluation groups may be formed. Two of the multiple preset devices may be selected as the first device and the second device to form a device evaluation group.

[0040] The offset parameter combination of each device evaluation group is calculated separately. The offset parameter combination may include a performance offset factor and a processor offset factor.

[0041] The performance offset factor may represent the offset between the performance score of the first device and the performance score of the second device. For example, the performance offset factor may be directly used as the performance offset factor, or the performance offset factor may be used as the performance offset factor after processing, without any strict limitation.

[0042] The processor offset factor may represent the offset between the processor score of the first device and the processor score of the second device. For example, the performance offset factor may be directly derived from the difference in performance scores between the first and second devices, or it may be derived from the difference in performance scores between the first and second devices after processing. This is not strictly limited here.

[0043] In addition, there may be an intersection of preset devices between multiple device evaluation groups, or there may be no intersection of preset devices between multiple device evaluation groups, which is not limited here.

[0044] S106: Using the processor offset factor of the offset parameter combination as input and the performance offset factor as target output, a performance prediction model for evaluating target software is trained.

[0045] In this embodiment, in response to obtaining the device-evaluated offset parameter combination through evaluation, the offset parameter combination may be used to train a performance prediction model for predicting the performance of the target software.

[0046] The processor offset factor in each offset parameter combination can be used as input, and the performance offset factor belonging to the same offset parameter combination as the processor offset factor can be used as the target output to train a performance prediction model for evaluating the performance difference corresponding to the difference between the target software and the processor.

[0047] That is to say, by utilizing the performance offset factor and processor offset factor of the target software between different preset devices, a performance prediction model is fitted to characterize the mapping relationship between the performance offset factor and the processor offset factor. Among them, the performance offset factor represents the performance score offset of the target software running between different preset devices, and the processor offset factor represents the processor score offset between each preset device. In this way, when the target software needs to be migrated in the future, the performance score offset can be obtained based on the processor score offset between the target device and the benchmark device. The obtained performance score offset is superimposed on the performance score of the benchmark device to predict the current software's running performance on the target device, thereby reducing the software testing cost and the generalization technical effect of performance prediction after software migration.

[0048] See also Figure 3 , Figure 3 This is a flowchart of another embodiment of the software evaluation method of the present application.

[0049] S201: Obtain target software to be evaluated.

[0050] In this embodiment, the target software refers to the software that currently needs to be evaluated. The target software may be in the stage of completed development and ready to be installed on the target device, or may be in the stage of research and development and testing, etc., which is not strictly limited here.

[0051] S202: Acquire multiple preset devices.

[0052] In this embodiment, the preset device may be pre-selected or may be selected immediately based on actual software deployment requirements, and is not strictly limited here.

[0053] In this embodiment, the selection principle of obtaining multiple preset devices is described by taking the selection of the preset device according to the actual software deployment requirements of the target software as an example.

[0054] Optionally, filtering conditions can be set based on the target devices that the target software actually needs to be deployed on. For example, a preparatory device with a matching system architecture and / or processor model as the target device can be selected as the preset device for the current software evaluation of the target software. In detail, a preparatory device with a matching system architecture as the target device can be selected as the preset device for the current software evaluation of the target software. Alternatively, a preparatory device with a matching processor model as the target device can be selected as the preset device for the current software evaluation of the target software. Alternatively, a preparatory device with a matching system architecture and processor model as the target device can be selected as the preset device for the current software evaluation of the target software.

[0055] Among them, having a system architecture and / or processor model that matches the target device can mean requiring the same system architecture and / or processor model, or a system architecture and / or processor model belonging to the same series, and there is no strict limitation here.

[0056] Specifically, the device information of the target device of the target software can be obtained. The device information is parsed to identify the system architecture of the target device, which is used as the target architecture. A preliminary device whose system architecture matches the target architecture is selected as the preset device.

[0057] Optionally, the device information of the target device of the target software's intended device can be obtained. The device information is parsed to identify the processor model of the central processing unit it carries, and this is used as the target model. A preliminary device whose processor model matches the target model is selected as the preset device. Furthermore, on this basis, the number of cores of the central processing unit can also be constrained, such as constraining a 64-core central processing unit to 48 cores, 32 cores, 24 cores, 16 cores, 8 cores, and 4 cores, etc., and their processor scores and performance scores can be measured respectively. More measured data can be obtained based on a small number of preset devices, which can help to effectively improve the prediction accuracy.

[0058] In layman's terms, when testing the performance of the target software, you can choose three different CPU device platforms, and you can choose a CPU device platform with the same system architecture and CPU model based on the target device on which you want to load the target software. This can eliminate hardware variables to a certain extent so that the testing process can focus on the target software behavior, thereby improving the accuracy of cross-platform predictions of the target software. In addition, it can help ensure basic compatibility. The target software usually needs to be compiled for a specific target architecture for deployment and operation, and use a system architecture and / or processor model that matches the target device. The operating reliability of the target software on this system architecture and / or processor model can be simultaneously verified, which is conducive to serving as a basic guarantee for the normal operation of the target software on the target device, such as startup and activation of core functions. It can also improve the predictability and consistency of the test environment.

[0059] For example, when the target device is of x86 architecture (a system architecture) and carries a CPU from a first manufacturer, a backup device that is also of x86 architecture and carries a CPU from the first manufacturer may be selected as the default device.

[0060] S203: Connect to an open source processor system benchmark platform.

[0061] In this embodiment, the processor system benchmark test platform may include a variety of central processing units and their processor calibration scores.

[0062] S204: Obtain a processor score of a preset device from a processor system benchmark test platform.

[0063] In this embodiment, the processor calibration score of the central processing unit carried by the preset device can be queried from the processor system benchmark platform and used as the processor score of the central processing unit carried by the preset device. In this way, the complex evaluation process of evaluating the processor score can be reduced, thereby effectively reducing computing resource overhead. At the same time, it can be considered that the processor performance data released by open source processor system benchmark platforms such as SPEC CPU already has a certain degree of scientificity, objectivity, and practicality, and can achieve standardized horizontal comparison and reflect real-world performance.

[0064] Among them, SPEC CPU is a CPU subsystem benchmark suite that can provide processor performance evaluation standards that are closer to actual applications.

[0065] That is to say, the processor score is obtained from the open source processor system benchmark platform, and the open source processor system benchmark platform may have already stored the processor score; or, the open source processor system benchmark platform may be used to "run the score" of the central processor of the preset device, that is, the central processor performance indicators are tested through the open source processor system benchmark platform to obtain the processor score of the central processor of the preset device.

[0066] S205: Parse the software type to which the target software belongs as the target type.

[0067] In this embodiment, the software evaluation can also be adaptively performed based on the performance aspects focused on by the target software. That is, the software type to which the target software belongs can be parsed as the target type, so that the performance score of the target software running on various preset devices can be adaptively tested based on the target type.

[0068] In an alternative embodiment, the target type may also be determined based on the device type of the target device, that is, the software type to which the target software belongs may be associated with the device type of the target device.

[0069] S206: Obtain a performance test case that is pre-associated with the target type.

[0070] In this embodiment, performance test cases associated with each software type may be pre-designed.

[0071] If so, in response to obtaining the target type of the target software, a query may be made to obtain test case information of a performance test case associated with the target type, so as to call the performance test case based on the test case information.

[0072] The performance test cases may be independently designed or included in an open source processor system benchmark test platform, which is not limited here.

[0073] For example, in response to the target type being a storage type, the number of input and output operations per second is used as the target performance value, and a performance test case for testing the number of input and output operations per second is obtained.

[0074] In response to the target type being the running type, the running time is used as the target performance value, and a performance test case for testing the running time is obtained.

[0075] S207: Testing the performance scores of each preset device in a matching test environment.

[0076] In this embodiment, a plurality of preset devices may be maintained in a matching test environment, wherein the test environment includes at least one of an operating system version and a system configuration parameter.

[0077] In other words, the test environment can be maintained in a relatively stable state during the software evaluation process on multiple preset devices. Multiple preset devices can be used to perform software evaluations separately under the same test environment, so that the performance of each preset device when executing performance test cases when the target software is loaded can be tested separately, and the performance score that matches the performance can be evaluated. This ensures a high degree of consistency in the test environment, helps eliminate the impact of environmental differences on test results, allows the performance score to focus more on the running status of the target software on the preset device, improves the comparability of performance scores between different preset devices, helps accurately locate preset device-specific problems, and helps optimize resource utilization in the test environment.

[0078] S208: Establish a device evaluation group and evaluate its offset parameter combination.

[0079] In this embodiment, multiple device evaluation groups can be formed from pre-set devices to evaluate offset parameter combinations of the device evaluation groups. The device evaluation group includes a first device and a second device selected from the plurality of pre-set devices, and the offset parameter combination includes a performance offset factor and a processor offset factor of the first device compared to the second device.

[0080] Furthermore, the performance offset factor and the processor offset factor can be obtained by performing certain processing on the offset between the first device and the second device, for example, in the form of a percentage of the difference. The specific calculation formula can be as follows:

[0081] P αAB =(S αA -S αB ) / S αB *100% Formula 1-1

[0082] P ωAB =(S ωA -S ωB ) / S ωB *100% formula 1-2

[0083] Among them, P αAB represents the performance deviation factor; S αA Indicates the performance score of the first device; S αB Indicates the performance score of the second device; P ωAB Indicates the processor offset factor; S ωA Indicates the processor score of the first device; S ωB Indicates the processor rating of the second device.

[0084] S209: Utilize the offset parameter combination to train a performance prediction model for evaluating the target software.

[0085] In this embodiment, a performance prediction model for evaluating target software is trained by taking the processor offset factor of the offset parameter combination as input and the performance offset factor as target output.

[0086] Specifically, the offset parameter combination of the device evaluation group can be used as a discrete data point. Data fitting is performed on the discrete data points to construct a connection curve, and a linear function expressing the connection curve is generated. The linear function is used as a performance prediction model. That is to say, compared with training deep learning models, reinforcement learning models, etc. as performance prediction models, a linear function can also be constructed as a performance prediction model in this embodiment. This can simplify the system architecture of the performance prediction model, so as to significantly improve the computing efficiency and speed in the construction of the performance prediction model and the actual application process, and can improve the prediction and reasoning efficiency of the performance prediction model after obtaining the input, and can also have good explainability and transparency of the prediction process. At the same time, when constructing the performance prediction model, the demand for the number of training samples can be reduced, that is, the reliability of the performance prediction model trained with a small number of preset devices as mentioned in this embodiment can be further improved, and the risk of overfitting of the performance prediction model can be reduced, thereby effectively achieving both the training efficiency of the performance prediction model and the prediction reliability of the performance prediction model.

[0087] Furthermore, a hypothetical linear relationship expression containing coefficients to be solved can be constructed. The coefficients to be solved include intercept coefficients and slope coefficients. A set of equations for solving the intercept coefficients and slope coefficients of the linear relationship expression is constructed.

[0088] For example, you can construct a function for the residual sum of squares of a linear relationship expression. By taking the partial derivative of the residual sum of squares function and setting it to zero, you can construct a system of equations containing intercept and slope coefficients. Solving this system of equations can yield multiple sets of coefficients to be solved, which serve as the coefficients to be verified.

[0089] The predicted value corresponding to the processor offset factor can be predicted using each coefficient to be verified and the linear relationship expression. The error factor of each coefficient to be verified is evaluated. The error factor is used to represent the error between the predicted value corresponding to the processor offset factor calculated using the coefficient to be verified and the performance offset factor.

[0090] In general, the linear relationship between the performance offset factor and the processor offset factor can be solved to associate the performance offset factor and the processor factor within the same offset parameter combination obtained in the above steps.

[0091] Assuming a linear relationship, the expression can be shown as follows:

[0092] y=ax+b Formula 2-1

[0093] Among them, x represents the variable, that is, the processor offset factor; y represents the dependent variable, that is, the performance offset factor; a and b are the coefficients to be solved, a represents the slope coefficient, and b represents the intercept coefficient.

[0094] The goal of constructing the linear function in this embodiment can be considered to be to find a set of values ​​of a and b such that all measured data points (i.e., offset parameter combinations) (x i ,y i ) to the straight line y = ax + b can be minimized. The calculation expression for the sum of squared errors can be as follows:

[0095] Formula 2-2

[0096] Among them, E i represents the sum of squared errors of the i-th offset parameter combination; n represents the number of offset parameter combinations; x i The processor offset factor for the i-th offset parameter combination; y i Indicates the performance offset factor of the i-th offset parameter combination.

[0097] At the same time, by solving the problem of minimizing the sum of squared errors for the offset parameter combination, we can obtain the solutions a and b of the linear equation system and the residuals that reflect the degree of data fit. The residuals can be used to assess the quality of the linear relationship fit. A small residual can also be considered to indicate that the linear relationship fits the data well and the prediction results have a certain degree of reliability.

[0098] Furthermore, this embodiment takes into account the possibility that the target software may be deployed in target devices carrying different types of CPUs, so the possible differences in target software performance between different types of CPUs can be pre-evaluated. In this way, when migrating between different types of CPU devices, the performance of the target software on the target device can be quickly estimated.

[0099] Specifically, in response to the CPU of the device being assumed to be a first model, a second model of the CPU is obtained. A migration loss function for migrating target software between the first and second CPU models can be evaluated. If so, the migration loss function can be fitted to a performance prediction model for the first model to provide a performance prediction model for the second model.

[0100] Specifically, monitoring data of performance impact factors of the CPU can be obtained separately. The performance impact factors can be pre-selected from a certain number of CPU performance indicators, or can be performance indicators that may affect the performance of the target software evaluated using an evaluation algorithm, etc., which will not be further described here.

[0101] Monitoring data can be used to assess the local impact of performance impact factors on the current performance score, where the current performance score represents the performance score of the target software running on the current CPU. Performance impact factors are filtered using the local impact, and those with the smallest number and largest overall impact are retained as target impact factors.

[0102] The target impact of the target impact factor on the performance score can be tested, and a migration loss function of the second model CPU compared to the first model CPU can be constructed based on the target impact.

[0103] In layman's terms, in order to solve the technical problems of poor portability of large-scale and complex software systems, difficulty in performance testing on different CPU platforms, poor versatility of performance prediction methods, high implementation costs, and insufficient accuracy, the software evaluation method of this application can predict the performance of the target software on other target CPU platforms by measuring the performance of the target software on a few different CPU platforms, combined with the processor score published by the preset CPU (that is, the central processing unit carried by the preset device).

[0104] For example, compared to conducting actual tests on a large number of different CPU platforms, which is time-consuming and labor-intensive and difficult to obtain enough different CPU platforms in actual operations, this embodiment can reduce the number of devices required for actual tests by measuring the performance values ​​of the target software on at least three different CPU platforms, thereby reducing the cost and time of actual tests. That is, subsequent prediction work can be carried out with only measured data from a few CPU platforms.

[0105] You can also select appropriate processor test cases based on the actual conditions of the target software, such as whether it involves floating-point operations and whether it involves multi-core interaction. You can obtain the processor test case scores of each CPU through channels such as the SPEC CPU official website as the processor score. In this way, compared to the use of unified and fixed test cases, the adaptability of the processor score to the characteristics of the target software can be improved, which is conducive to laying the foundation for the subsequent accurate performance prediction of the target software on the target device. Different types of software have different requirements for CPU computing characteristics. For example, scientific computing software often involves a large number of floating-point operations, while multi-threaded applications may rely more on multi-core interaction. Therefore, the selection of processing test cases based on the actual conditions of the software can improve the accuracy of reflecting the CPU's performance support capabilities for the target software.

[0106] Furthermore, in this embodiment, the method of calculating the difference percentage can also be used to eliminate the influence of different performance test cases and processor test case bases, and the amount of available data can be increased, thereby improving the accuracy of linear regression. The design in this embodiment is precisely based on the consideration that different processor test cases may have different score bases, so the difference percentage method is conducive to eliminating the differences in the score base, thereby improving the reliability of performance prediction. In addition, the same two preset devices can be used as the first device and the second device, but the preset devices are different, so two groups of device evaluation groups can be obtained, and two groups of offset parameter combinations can be obtained, that is, the amount of available data for software evaluation can be increased while a small number of preset devices participate in software evaluation, which can improve the data richness and accuracy of linear regression analysis, thereby improving the accuracy of prediction.

[0107] Furthermore, a linear function as a performance prediction model can be obtained to establish an intrinsic connection between the processor score and the performance score.

[0108] Furthermore, in response to the completion of the construction of the performance prediction model, the performance of the target software on the target device can be predicted. For example, the processor score of the target CPU can be used to calculate the difference percentage, and matrix multiplication operation can be performed with the solution of the above-mentioned linear solution equation group to obtain the predicted difference percentage of the performance score of the storage system on the target device. After calculation with the benchmark value, the predicted performance score of the storage system on the target CPU device is obtained. The reliability of predicting the performance of the target software on the target device can be improved based on the linear relationship solution obtained in the early stage and the processor score of the target CPU. In this way, this embodiment realizes efficient, accurate and low-cost cross-platform software performance prediction, which can provide a powerful reference for CPU selection and overcome the limitations of target software in performance prediction.

[0109] That is to say, the embodiment of the present application provides a software migration method, and combines the execution process of the software migration method to describe in detail the specific working principle of the software evaluation method.

[0110] See also Figure 4 , Figure 4 This is a flowchart of an embodiment of the software migration method of the present application.

[0111] S301: Obtain a processor score of a target processor carried by a target device as a first score.

[0112] S302: Obtain a benchmark performance value of a benchmark processor and a processor score as a second score; wherein the benchmark performance value is a performance score of a device carrying the benchmark processor running target software.

[0113] S303: Obtain a performance prediction model of the target software; wherein the performance prediction model is obtained using a software evaluation method.

[0114] In this embodiment, the software evaluation method may be as described in any of the above embodiments.

[0115] That is to say, the software evaluation method can at least obtain the target software to be evaluated; obtain multiple preset devices; obtain the processor scores of the central processing units carried by the preset devices respectively; run the target software on each preset device respectively, and evaluate the performance scores of the preset devices running the target software; form multiple groups of device evaluation groups from the preset devices, and evaluate the offset parameter combinations of the device evaluation groups; wherein the device evaluation group includes a first device and a second device selected from the multiple preset devices, and the offset parameter combination includes a performance offset factor of the first device compared to the second device and a processor offset factor; use the processor offset factor of the offset parameter combination as input and the performance offset factor as target output to train a performance prediction model for evaluating the target software.

[0116] S304: Inputting the difference between the first score and the second score into the performance prediction model to obtain a performance offset value output by the performance prediction model.

[0117] In this embodiment, the difference may be the direct difference between the first score and the second score, or may be a difference percentage as described above, which is not limited here.

[0118] S305: Add the performance offset value to the baseline performance value as the migration performance value of the target processor.

[0119] S306: Evaluate whether the migration performance value reaches the migration threshold.

[0120] S307: In response to the migration performance value reaching the migration threshold, migrate the target software to the target device.

[0121] In this embodiment, when the migration performance value reaches the migration threshold, it can be considered that the target software can run relatively reliably on the target device, so the target software can be migrated to the target device.

[0122] In addition, if the migration performance value does not reach the migration threshold, it can be considered that there is a risk of unreliability when the target software runs on the target device, so it can be selectively migrated to the target device or not, or it can be directly determined not to migrate the target software to the target device.

[0123] In other words, it is precisely because the software evaluation method can utilize the performance offset factor and processor offset factor of the target software between different preset devices to pre-fit a performance prediction model that characterizes the mapping relationship between the performance offset factor and the processor offset factor. Among them, the performance offset factor represents the performance score offset of the target software running between different preset devices, and the processor offset factor represents the processor score offset between each preset device. In this way, when it is necessary to migrate the target software, the performance score offset can be obtained based on the processor score offset between the target device and the benchmark device. The obtained performance score offset is superimposed on the performance score of the benchmark device to predict the current software's running performance on the target device, thereby reducing the software testing cost and the generalization technical effect of performance prediction after software migration.

[0124] For example, for a target CPU, obtain its processor score. Calculate a processor offset factor for the target CPU compared to a baseline CPU. Input the processor offset factor into a performance prediction model to obtain a target performance offset. The target performance offset and offset factor calculation process are then used to infer the target performance score.

[0125] For example, suppose the processor offset factor of the target CPU is P t , the performance score of the storage system with the target CPU is the IOPS (input and output times per second) indicator. The IOPS difference percentage of the storage system on the target CPU device can be predicted. The specific calculation formula can be shown as follows:

[0126] P IOPS-t =a* P t +b Formula 3-1

[0127] Among them, P IOPS-t Indicates the performance offset factor of the target device compared to the baseline device.

[0128] In this way, the measured IOPS value of the storage system on a known benchmark CPU can be used to further predict the performance score of the target CPU. The specific calculation formula can be shown as follows:

[0129] IOPS base =IOPS base *(1+P IOPS-t ) Formula 3-2

[0130] Where IOPS=IOPS base *(1+P IOPS-t ), IOPS base Indicates the predicted performance score of the target software running on the target device, that is, the migration performance value.

[0131] Furthermore, in response to the number of preset devices being multiple, each preset device is used as a benchmark device to evaluate its associated migration performance value.

[0132] The migration performance values ​​associated with the preset devices are weighted and integrated to obtain an updated migration performance value, and the updated migration performance value is used to evaluate whether to migrate the target software to the target device.

[0133] See also Figure 5 , Figure 5 This is a flowchart of another embodiment of the software migration method of the present application.

[0134] S401: Using different CPU platforms as preset devices to conduct actual testing of target software to obtain performance scores, and obtaining processor scores from an open source processor system benchmark test platform to achieve data collection.

[0135] S402: Screen performance test cases based on target software features, obtain test cases from an open-source processor system benchmark platform, and execute performance test cases using each preset device to evaluate performance scores and achieve feature extraction.

[0136] S403: Perform data processing on the performance score.

[0137] S404: forming an equipment evaluation group and forming its offset parameter combination, and fitting the offset parameter combination to construct a performance prediction model.

[0138] S405: Calculate the difference between the processor score of the target processor carried by the target device and the benchmark performance value of the benchmark processor, and use the performance prediction model to predict the migration performance value of the target software to the target device based on the difference.

[0139] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, of course, it can also be implemented by hardware, or it can be implemented by pure software.

[0140] An embodiment of the present application also provides a software migration system.

[0141] In one embodiment, the software migration system may include a connection module and a control module.

[0142] The connection module can be connected to the target device and / or the preset device.

[0143] The control module can be connected to the connection module to implement the software evaluation method or software migration method as described in any of the above embodiments.

[0144] Specifically, the software evaluation method may at least include: obtaining the target software to be evaluated; obtaining multiple preset devices; obtaining the processor scores of the central processing units carried by the preset devices respectively; running the target software on each preset device respectively, and evaluating the performance scores of the preset devices running the target software; forming multiple device evaluation groups from the preset devices, and evaluating the offset parameter combinations of the device evaluation groups; wherein the device evaluation group includes a first device and a second device selected from the multiple preset devices, and the offset parameter combination includes a performance offset factor of the first device compared to the second device and a processor offset factor; using the processor offset factor of the offset parameter combination as input and the performance offset factor as target output, training a performance prediction model for evaluating the target software.

[0145] The software migration method may at least include: obtaining a processor score of a target processor carried by a target device as a first score; obtaining a baseline performance value of a benchmark processor and a processor score as a second score; wherein the baseline performance value is a performance score of a device carrying the benchmark processor running the target software; obtaining a performance prediction model of the target software; wherein the performance prediction model is obtained using the software evaluation method as described above; inputting the difference between the first score and the second score into the performance prediction model to obtain a performance offset value output by the performance prediction model; superimposing the performance offset value onto the baseline performance value as a migration performance value of the target processor; evaluating whether the migration performance value reaches a migration threshold; and migrating the target software to the target device in response to the migration performance value reaching the migration threshold.

[0146] For descriptions of features in the embodiments corresponding to the software migration system, reference can be made to the relevant descriptions of the embodiments corresponding to the software evaluation method and the software migration method, which will not be repeated here.

[0147] An embodiment of the present application also provides an electronic device.

[0148] See also Figure 6 , Figure 6 This is a structural diagram of an embodiment of an electronic device of the present application.

[0149] The electronic device may include a memory 21 and a processor 22. The memory 21 stores a computer program, and the processor 22 is configured to execute the computer program to perform the steps of any of the aforementioned software evaluation methods or software migration method embodiments. Specifically, the memory 21 is configured to store the computer program. The processor 22 is configured to execute the computer program to implement the steps of the aforementioned software evaluation method or software migration method.

[0150] An embodiment of the present application also provides a computer-readable storage medium.

[0151] A computer-readable storage medium stores a computer program, wherein the computer program is configured to execute the steps of any of the aforementioned software evaluation methods or software migration method embodiments when executed. That is, when the computer program is executed by a processor, the steps of the software evaluation method described above are implemented; or, the steps of the software migration method described above are implemented. In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard drive, a magnetic disk, or an optical disk.

[0152] An embodiment of the present application also provides a computer program product.

[0153] The computer program product may include a computer program that, when executed by a processor, implements the steps of any of the aforementioned software evaluation methods or software migration methods. Specifically, when executed by a processor, the computer program implements the steps of the aforementioned software evaluation method; or, the steps of the aforementioned software migration method.

[0154] An embodiment of the present application also provides another computer program product.

[0155] The computer program product may include a non-volatile computer-readable storage medium, which stores a computer program, and when the computer program is executed by a processor, it implements the steps in any of the above-mentioned software evaluation methods or software migration method embodiments. Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0156] The above describes in detail a software evaluation method, a software migration method, an electronic device, a computer-readable storage medium, and a computer program product provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core ideas of the present application. It should be noted that, for those skilled in the art, without departing from the principles of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the present application.

Claims

1. A software evaluation method, characterized in that: The software evaluation method comprises: Obtain the target software to be evaluated; Get multiple preset devices; Obtaining processor scores of the central processing units carried by the preset devices respectively; Running the target software on each of the preset devices respectively, and evaluating the performance score of the preset devices running the target software; forming a plurality of device evaluation groups from the preset devices, and evaluating offset parameter combinations of the device evaluation groups; wherein the device evaluation groups include a first device and a second device selected from the plurality of preset devices, and the offset parameter combinations include a performance offset factor and a processor offset factor of the first device compared to the second device; A performance prediction model for evaluating the target software is trained by taking the processor offset factor of the offset parameter combination as input and the performance offset factor as target output.

2. The software evaluation method according to claim 1, characterized in that: The training of a performance prediction model for evaluating the target software includes: Combining the offset parameters of the device evaluation group as discrete data points; Performing data fitting on the discrete data points to construct a connection curve, and generating a linear function expressing the connection curve; The linear function is used as the performance prediction model.

3. The software evaluation method according to claim 2, characterized in that: The performing data fitting on the discrete data points to construct a connection curve and generating a linear function expressing the connection curve comprises: Constructing a hypothetical linear relationship expression including coefficients to be solved; wherein the coefficients to be solved include an intercept coefficient and a slope coefficient; Constructing a set of equations for solving the intercept coefficient and the slope coefficient of the linear relationship expression; Using the solved equation group to obtain multiple sets of coefficients to be solved as coefficients to be verified; respectively predicting a predicted value corresponding to the processor offset factor by using each of the coefficients to be checked and the linear relationship expression; Evaluate the error factor of each of the coefficients to be checked; wherein the error factor is used to represent the error between the predicted value corresponding to the processor offset factor calculated using the coefficient to be checked and the performance offset factor.

4. The software evaluation method according to claim 3, characterized in that: The solution of the linear relationship expression system includes: Constructing a residual sum of squares function of the linear relationship expression; The partial derivative of the residual sum of squares function is calculated and set to zero, and a set of equations for solving the problem including the intercept coefficient and the slope coefficient is constructed.

5. The software evaluation method according to claim 1, wherein: The evaluation of the performance score of the preset device running the target software includes: Parsing the software type to which the target software belongs as the target type; Obtaining a performance test case pre-associated with the target type; Maintain the multiple preset devices in a matching test environment, test the performance of each preset device when executing the performance test case when loading the target software, and evaluate the performance score that matches the performance; wherein the test environment includes at least one of the operating system version and system configuration parameters.

6. The software evaluation method according to claim 5, characterized in that: The software type includes a storage type and an operation type; and obtaining a performance test case pre-associated with the target type includes: In response to the target type being the storage type, taking the number of input and output operations per second as the target performance value, obtaining a performance test case for testing the number of input and output operations per second; In response to the target type being the running type, the running time is used as the target performance value, and a performance test case for testing the running time is obtained.

7. The software evaluation method according to claim 1, wherein: The obtaining of the processor score of the central processing unit carried by the preset device includes: Connect to an open-source processor system benchmark test platform; wherein the processor system benchmark test platform includes a variety of central processing units and their processor calibration scores; The processor calibration score of the central processing unit carried by the preset device is queried from the processor system benchmark test platform, and the score is used as the processor score of the central processing unit carried by the preset device.

8. The software evaluation method according to claim 1, wherein: The acquiring of multiple preset devices includes: Acquire device information of a target device of the target software; Parsing the device information to identify the system architecture of the target device and using it as the target architecture; A preliminary device whose system architecture matches the target architecture is selected as the preset device.

9. The software evaluation method according to claim 1 or 8, characterized in that: The acquiring of multiple preset devices includes: Acquire device information of a target device of the target software; Parsing the device information to identify the processor model of the central processing unit carried by the device, and using the processor model as the target model; A backup device whose processor model matches the target model is selected as the preset device.

10. The software evaluation method according to claim 1, wherein: After the training is performed on the performance prediction model for evaluating the target software, the following steps are further included: In response to the central processing unit carried by the preset device being a first model, obtaining a second model of the central processing unit; Evaluating a migration loss function of migrating the target software between the first model and the second model of central processing units; The migration loss function is fitted to the performance prediction model of the first model to serve as the performance prediction model of the second model.

11. A software migration method, characterized in that: The software migration method comprises: Obtaining a processor score of a target processor carried by the target device as a first score; Obtaining a benchmark performance value of a benchmark processor and a processor score as a second score; wherein the benchmark performance value is a performance score of a device carrying the benchmark processor running the target software; Obtaining a performance prediction model of the target software; wherein the performance prediction model is obtained using the software evaluation method according to any one of claims 1 to 10; inputting a difference between the first score and the second score into the performance prediction model to obtain a performance offset value output by the performance prediction model; adding the performance offset value to the baseline performance value as the migration performance value of the target processor; evaluating whether the migration performance value reaches a migration threshold; In response to the migration performance value reaching the migration threshold, the target software is migrated to the target device.

12. The software migration method according to claim 11, characterized in that: The software migration method further includes: In response to the number of preset devices being multiple, each of the preset devices is used as a reference device to evaluate the migration performance value associated therewith; The migration performance values ​​associated with the preset devices are weighted and integrated to obtain an updated migration performance value, and the updated migration performance value is used to evaluate whether to migrate the target software to the target device.

13. An electronic device, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the software evaluation method according to any one of claims 1 to 10 when executing the computer program; or implement the steps of the software migration method according to any one of claims 11-12.

14. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, the computer program implements the steps of the software evaluation method according to any one of claims 1 to 10; or implements the steps of the software migration method according to any one of claims 11-12.

15. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the computer program implements the steps of the software evaluation method according to any one of claims 1 to 10; or implements the steps of the software migration method according to any one of claims 11-12.

Citation Information

Patent Citations

  • Software cost evaluation method, system and device based on neural network

    CN117372103A

  • Hard disk state monitoring method and device, medium and computer program product

    CN119336584A