A fine-grained parallel I / O performance prediction and I / O strategy recommendation method and system
By using dynamic library interception technology to collect fine-grained I/O performance data and build a prediction model, the problem of the inability to perform fine-grained I/O performance prediction in existing technologies is solved, and high-precision I/O performance prediction and optimization are achieved, thereby improving parallel I/O performance.
Patent Information
- Application Number
- CN202411758105.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-03
- Publication Date
- 2025-11-21
- Estimated Expiration
- 2044-12-03
AI Technical Summary
Existing technologies cannot perform fine-grained I/O performance prediction, resulting in the inability to identify parallel I/O performance bottlenecks. Furthermore, they lack versatility and cannot meet the I/O performance prediction needs of different types of applications.
Fine-grained I/O performance data is collected by dynamic library interception technology, a performance record set is formed by classification rules, a performance prediction model is built, and the I/O strategy with the lowest performance overhead is selected for optimization recommendation.
It achieves fine-grained I/O performance prediction at the function level, identifies parallel I/O performance bottlenecks, improves overall application performance, and provides high-precision performance prediction and optimization solutions.
Smart Images

Figure CN119690794B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application belongs to the field of high-performance computing and computer architecture, and particularly relates to a fine-grained parallel I / O performance prediction and I / O strategy recommendation method and system. BACKGROUND
[0002] With the rapid development of high-performance computing (HPC) technology, especially the rise of domestic supercomputing systems, although the computing efficiency of large-scale parallel programs has been significantly improved, the I / O performance bottleneck problem has become increasingly prominent, becoming a key constraint factor of overall performance. I / O performance prediction can provide effective information for I / O performance bottleneck identification in unknown scenarios (such as super-large-scale scenarios), and can provide effective improvement suggestions for the parallel I / O performance of applications.
[0003] From the granularity of I / O performance data collection, I / O performance data is divided into application-level coarse-grained I / O performance data and function-level fine-grained I / O performance data. The application-level coarse-grained I / O performance data refers to only the statistical information of read and write operations of the application program is given, without detailed information of each I / O operation; while the function-level fine-grained I / O performance data can give detailed read and write information of each I / O operation of different functions. The existing I / O performance prediction methods can only predict coarse-grained I / O performance (such as total I / O size and time) based on coarse-grained I / O performance data, and cannot perform more fine-grained I / O performance prediction, thus cannot meet the requirement of identifying I / O performance bottlenecks; or can only predict for specific applications, and cannot meet the I / O performance prediction needs of different types of application programs, and is not universal. SUMMARY
[0004] The purpose of the present application is to provide a fine-grained parallel I / O performance prediction and I / O strategy recommendation method and system to solve the problems existing in the prior art.
[0005] To achieve the above purpose, in a first aspect, the present application provides a fine-grained parallel I / O performance prediction and I / O strategy recommendation method, comprising the following steps:
[0006] Collecting and storing fine-grained data related to I / O performance based on dynamic library interception technology to obtain a performance record set C;
[0007] Classifying the data of the set C, and forming n classified sets C1, C2...Cn according to the classification rules; n Training a performance prediction model Model i for each classified set C Ci ;
[0008] By calling the performance prediction model, total performance overhead of each strategy in the candidate I / O strategy is calculated, and the I / O strategy with the minimum performance overhead is selected as the optimization recommendation scheme.
[0009] Further, the collection process of the fine-grained data related to I / O performance specifically includes: adopting a dynamic library dlsym interception technology, inserting an interception code before and after the I / O function is called in the parallel program, and recording performance information of the function call.
[0010] Optionally, the fine-grained data related to I / O performance includes: function name, data type, I / O operation amount, call frequency and execution time.
[0011] Optionally, the classification rule includes: a function name same rule, a data type consistent rule and an I / O operation amount similar rule.
[0012] Optionally, the I / O operation amount similar rule specifically refers to that the I / O operation amount of random twice same function calls is not more than a preset threshold, the preset threshold adopts a set value, and the set value is 1.5 times.
[0013] Optionally, the performance prediction model is based on a traditional machine learning model of a regression algorithm or a neural network model based on deep learning: the traditional machine learning model of the regression algorithm includes linear regression, decision tree and random forest, etc.; and the neural network model based on deep learning includes a multi-layer perceptron MLP, a recurrent neural network RNN and a Transformer model, etc.
[0014] Optionally, the I / O strategy is composed of a plurality of I / O function calls and corresponding running characteristics, and is defined as a set S={(F i ,ByteofWR i ,DT i ,NumofOp i )}, wherein F i is a function name, ByteofWR i is an average I / O amount, DT i is an I / O data type, and NumofOp i is a call frequency.
[0015] In a second aspect, the application further provides a fine-grained parallel I / O performance prediction and I / O strategy recommendation system, which includes:
[0016] A fine-grained parallel I / O performance data collection and storage module is configured to collect and store fine-grained data related to I / O performance based on a dynamic library interception technology, and obtain a performance record set C.
[0017] The I / O performance prediction model construction and training module is configured to classify the data of the set C, form n classified sets C1, C2,..., Cn according to a classification rule n , and construct and train a performance prediction model Model i for each classified set C Ci ;
[0018] The I / O strategy recommendation module is configured to calculate the total performance overhead of each strategy in the candidate I / O strategy by calling the performance prediction model, and select the I / O strategy with the minimum performance overhead as the optimization recommendation scheme.
[0019] The technical effects of the present application are:
[0020] (1) The I / O performance prediction method of the present application is based on fine-grained I / O performance data for prediction. The detailed function-level I / O performance indicators facilitate comprehensive capture of the performance characteristics of parallel I / O functions, and improve the fine-grained nature and high accuracy of the performance prediction results. Other existing prediction methods mostly stop at predicting the I / O performance of the application program level using coarse-grained information, such as predicting the total throughput and total overhead of reading and writing. The method of the present application can use fine-grained parallel I / O performance data to make predictions at the function level and ultimately give fine-grained I / O performance prediction results at the function level.
[0021] (2) The I / O strategy recommendation method proposed in the present application can realize performance tuning of the I / O module of the application program and performance optimization of the overall program. The present application identifies the I / O performance bottleneck of large-scale parallel application programs by analyzing fine-grained information, estimates the best I / O strategy for each type of parallel I / O function in advance using I / O strategy recommendation, and performs I / O tuning according to the I / O strategy, thereby effectively improving the performance of the overall application. BRIEF DESCRIPTION OF DRAWINGS
[0022] The accompanying drawings, which form a part of the present application, are intended to provide further understanding of the present application, and the illustrative embodiments of the present application and their description serve the purpose of explaining the present application. The accompanying drawings do not constitute an inappropriate limitation on the present application. In the drawings:
[0023] Figure 1 It is the overall architecture diagram of the fine-grained parallel I / O performance prediction and I / O strategy recommendation method in the embodiments of the present application;
[0024] Figure 2 It is the fine-grained I / O performance collection and storage step schematic diagram in the embodiments of the present application;
[0025] Figure 3 It is the I / O performance prediction model construction and training step schematic diagram based on fine-grained I / O performance data in the embodiments of the present application;
[0026] Figure 4 The step schematic diagram of the I / O strategy recommendation based on the fine-grained I / O performance prediction in the embodiment of the application. DETAILED DESCRIPTION
[0027] It should be noted that the embodiments in the present application and the features in the embodiments can be combined with each other without conflict. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0028] It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although the logical order is shown in the flowchart, in some cases, the steps shown or described herein can be executed in an order different from that shown herein.
[0029] As Figures 1-4 shown, the present embodiment provides a parallel I / O performance prediction method for large-scale parallel programs suitable for supercomputing systems, and various I / O strategies can be selected and optimized based on the prediction method. Among them, the I / O performance prediction method is based on fine-grained I / O performance data at the function level for prediction. Compared with the existing technology of predicting I / O performance by coarse-grained I / O performance data, the fine-grained performance analysis and prediction of parallel I / O functions, the identification of I / O performance bottlenecks and the recommendation of more optimal I / O strategies can be realized, and finally the performance of the application I / O and the whole application can be improved. The computing power advantage of supercomputing is effectively converted into productivity advantage.
[0030] In order to realize fine-grained I / O performance prediction and strategy recommendation, the fine-grained parallel I / O performance data collection and storage, parallel I / O performance prediction model construction and training, and I / O strategy recommendation based on fine-grained I / O performance prediction are carried out step by step.
[0031] Figure 1 The overall architecture diagram of the fine-grained parallel I / O performance prediction and I / O strategy recommendation method of the present application is shown. The fine-grained I / O performance data collected and stored from the large-scale parallel programs of the supercomputing system is used to analyze the I / O performance data and construct the prediction model. The prediction model is called to predict and evaluate different I / O strategies, and the best I / O computing strategy is selected for recommendation. The present application includes the following three technical contents:
[0032] (1) Fine-grained I / O performance collection and storage: including a high-efficiency fine-grained parallel I / O performance data collection and storage module, which is used to collect and store fine-grained data related to I / O performance based on dynamic library interception technology and form a performance record set C.
[0033] (2) I / O performance prediction model construction and training based on fine-grained I / O performance data: The I / O performance prediction model construction and training module analyzes the fine-grained I / O performance data stored by calling the "fine-grained parallel I / O performance data acquisition and storage module", classifies the I / O performance data, establishes an I / O performance prediction model and trains it.
[0034] (3) I / O strategy recommendation based on fine-grained I / O performance prediction: The "I / O strategy recommendation module" predicts the time overhead and call frequency of different categories of I / O functions under different I / O computing strategies by calling the I / O performance prediction model established by the "I / O performance prediction model construction and training module", and gives a recommended I / O strategy based on the prediction results.
[0035] Embodiment I
[0036] The specific steps of the fine-grained parallel I / O performance prediction and I / O strategy recommendation method of the application are as follows:
[0037] 1. As shown in Figure 2 , it is a schematic diagram of the fine-grained I / O performance acquisition and storage steps of the application. When an application needs to call an I / O function, an interception code is inserted before the call, and then the function is called normally. After the I / O operation is completed, the collected I / O performance data is written into a file according to the storage format shown in the figure.
[0038] The specific steps of fine-grained I / O performance acquisition and storage are as follows:
[0039] (1) Fine-grained I / O performance data acquisition: According to the given parallel I / O functions to be collected (such as MPI_File_write_at, etc.), the performance interception code is inserted before and after the I / O function call by using the dlsym dynamic library interception method of Linux. The function identification (i.e. function name), file identification of function operation read / write, function execution time, I / O amount, I / O data type and other I / O performance data of each I / O function to be collected are recorded. Here, we call an "I / O performance data record" as the above performance data corresponding to one I / O function call.
[0040] (2) Fine-grained I / O performance data storage: According to the storage format attached Figure 2 , the I / O performance data is stored. Each parallel process writes the intercepted and counted I / O performance data into a file. Here, we define: the set C corresponding to all the I / O performance data records written into the file.
[0041] 2. As shown in Figure 3 , it is a schematic diagram of the steps of I / O performance prediction model construction and training based on fine-grained I / O performance data.
[0042] The specific steps for building and training an I / O performance prediction model based on fine-grained I / O performance data are as follows:
[0043] (1) Classification of I / O performance data records:
[0044] Traverse the performance records in the I / O performance data record set C corresponding to "fine-grained I / O performance acquisition and storage", and classify the I / O performance data records according to the following classification rules to obtain n categories of set C, i.e., C = {C1, C2, C3, ..., Cn}. n (The classification recorded here is a partition of set C).
[0045] Definition of similar I / O values: When the I / O values corresponding to two identical I / O function calls differ by no more than η times, they are said to have similar I / O values (η is a user-defined parameter, with a default value of 1.5).
[0046] Define the classification rules: If the function names are the same, the I / O data types are consistent (such as arrays of type Int, arrays of type Byte, or user-defined types, etc.), and the I / O quantities are similar, then the I / O performance data records corresponding to the two functions will be classified into the same category.
[0047] (2) Establishment and training of personalized performance prediction model for functions:
[0048] For each class of records C in (1) i The C established i Type Predictive Model Ci The system then trains the model and exports and saves the parameters. The models available are diverse, allowing users to choose different models based on their needs and data characteristics, such as traditional regression models (linear regression, decision trees, random forests, etc.), neural network models (MLP multilayer perceptron, RNN recurrent neural networks, Transformer models, etc.).
[0049] Among them, C i Type Predictive Model Ci Definition: Model Ci Given the I / O quantity ByteofWR and the number of calls NumofOp, the C value can be calculated. i The total I / O time overhead ζ under the data type DT and function F corresponding to the category. i , that is, ζ i =Model Ci (ByteofWR, NumofOp).
[0050] (3) I / O performance prediction – model determination:
[0051] Given an I / O function F, I / O amount ByteofWR, data type DT, determine the prediction model Model Ci .
[0052] Specifically: traverse all categories C i If its corresponding function F i , data type DT i consistent with the given F, DT, and ByteofWR and C i set corresponding to the average I / O amount meets the "I / O amount similar" rule, then the prediction model Model i corresponding to C Ci in the above (2) steps is determined.
[0053] (4) I / O performance prediction - prediction:
[0054] According to the given I / O function F, I / O amount ByteofWR, data type DT and the number of calls NumofOp in (3), call the prediction model Model Ci in (3) to give the corresponding prediction result, that is, I / O overhead t = NumofOp x ζ i = NumofOp x Model Ci (ByteofWR, NumofOp).
[0055] 3. As Figure 4 shows the steps of I / O strategy recommendation based on fine-grained I / O performance prediction.
[0056] The specific steps of I / O strategy recommendation based on fine-grained I / O performance prediction are:
[0057] (1) Given an I / O computing strategy: I / O computing strategy is the call of several I / O functions, defined as a set S, S = {<F i , ByteofWR i , DT i , NumofOp i >}(i = 1, 2, 3, …, m; m is the number of I / O function categories). Wherein, each element in S is the call of the same class function (here "the same class" is defined as described above in 2.(1)), which specifically includes: I / O function F i and I / O function running characteristics, running characteristics include: average I / O amount ByteofWR i , data type DT i , function F i call times NumofOp i classified according to the "I / O amount similar" rule.
[0058] (2) Call the I / O performance prediction model in (4) to make a prediction: for each function class C1, C2, C3……C in the set S, call the performance prediction model to make a prediction, and obtain the I / O overhead t1, t2, t3……t of each function class. m m .
[0059] (3) Accumulate the overhead t1, t2, t3……t of each function class in the set S to obtain the total I / O overhead: m
[0060] (4) Given a set G of multiple I / O strategies, G contains I / O computing strategies G={S1, S2, S3……S k}, each element in G is obtained by steps (1)-(3), and the total I / O overhead T1, T2, T3……T k of each strategy is obtained, and the I / O computing strategy S min with the smallest total I / O overhead T min is selected as the best I / O computing strategy.
[0061] (5) The selected computing strategy S min is recommended as the strategy with the best I / O performance.
[0062] The application also provides a fine-grained parallel I / O performance prediction and I / O strategy recommendation system, and the specific steps are as follows:
[0063] 1. Call the fine-grained parallel I / O performance data collection and storage module, which collects and stores fine-grained data related to I / O performance based on dynamic library interception technology to obtain a performance record set C;
[0064] 2. Call the I / O performance prediction model construction and training module, which classifies the data in the set C, forms n classified sets C1, C2...C n according to the classification rules, and trains a performance prediction model Model i for each classified set C Ci ;
[0065] 3. Call the I / O strategy recommendation module, which calculates the total performance overhead of each strategy in the candidate I / O strategy by calling the performance prediction model, and selects the I / O strategy with the smallest performance overhead as the optimization recommendation scheme.
[0066] The above description is only the preferred embodiment of the present application, but the protection scope of the present application is not limited to this, any person skilled in the art can easily think of changes or replacements within the technical range disclosed by the present application, which should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A fine-grained method for predicting parallel I / O performance and recommending I / O strategies, characterized in that, Includes the following steps: Based on dynamic library interception technology, fine-grained data related to I / O performance is collected and stored to obtain a performance record set C; The data in set C are classified according to the classification rules to form n classification sets C1, C2...C n For each category set C i Build and train the performance prediction model. Ci ; By calling the performance prediction model, the total performance overhead of each candidate I / O strategy is calculated, and the I / O strategy with the lowest performance overhead is selected as the optimization recommendation. The process of collecting fine-grained data related to I / O performance specifically includes: using the dynamic library dlsym interception technology to insert interception code before and after the parallel program calls I / O functions, and recording the performance information of the function calls; The fine-grained data related to I / O performance includes: function name, data type, I / O operation volume, number of calls, and execution time; The classification rules include: rules based on the same function name, the same data type, and similar I / O operation quantities; The rule for similar I / O operation amounts is as follows: the difference in I / O operation amounts between two identical function calls does not exceed a preset threshold. The preset threshold is a set value, and the default value is 1.5 times. The performance prediction model adopts a traditional machine learning model based on regression algorithms or a neural network model based on deep learning. Model Ci The inputs are the I / O operation quantity and the number of calls, and the output is represented as C. i The data types and execution times of the functions corresponding to the categories.
2. The fine-grained parallel I / O performance prediction and I / O strategy recommendation method according to claim 1, characterized in that, The traditional machine learning models based on regression algorithms include linear regression, decision trees, and random forests; the neural network models based on deep learning include multilayer perceptrons (MLP), recurrent neural networks (RNN), and Transformer models.
3. The fine-grained parallel I / O performance prediction and I / O strategy recommendation method according to claim 1, characterized in that, The I / O strategy consists of several I / O function calls and their corresponding runtime characteristics, defined as a set S={(F i , ByteofWR i ,DT i NumofOp i )}, where F i For function name, ByteofWR i DT is the average I / O quantity. i For I / O data types, NumofOp i This represents the number of times the function is called.
4. A fine-grained parallel I / O performance prediction and I / O strategy recommendation system, comprising: The fine-grained parallel I / O performance data acquisition and storage module is configured to acquire and store fine-grained data related to I / O performance based on dynamic library interception technology, resulting in a performance record set C; The I / O performance prediction model building and training module is configured to classify the data in the set C, and form n classification sets C1, C2...C1 according to classification rules. n For each category set C i Build and train the performance prediction model. Ci ; The I / O strategy recommendation module is configured to calculate the total performance overhead of each candidate I / O strategy by calling the performance prediction model, and select the I / O strategy with the minimum performance overhead as the optimization recommendation scheme. The process of collecting fine-grained data related to I / O performance specifically includes: using the dynamic library dlsym interception technology to insert interception code before and after the parallel program calls I / O functions, and recording the performance information of the function calls; The fine-grained data related to I / O performance includes: function name, data type, I / O operation volume, number of calls, and execution time; The classification rules include: rules based on the same function name, the same data type, and similar I / O operation quantities; The rule for similar I / O operation amounts is as follows: the difference in I / O operation amounts between two identical function calls does not exceed a preset threshold. The preset threshold is a set value, and the default value is 1.5 times. The performance prediction model adopts a traditional machine learning model based on regression algorithms or a neural network model based on deep learning. Model Ci The inputs are the I / O operation quantity and the number of calls, and the output is represented as C. i The data types and execution times of the functions corresponding to the categories.
Citation Information
Patent Citations
Software performance automatic testing method and device and electronic equipment
CN111061647A
Method for dynamically adjusting read-write resources of file system
CN111625367A