Pattern mining method, device and equipment for critical path data and storage medium
By generating candidate pattern sets and identifying high-support pattern sets, the problem of low accuracy in critical path pattern mining in processor microarchitecture performance optimization is solved, enabling comprehensive mining of critical path data and improving the accuracy of pattern mining and the depth of information extraction.
Patent Information
- Application Number
- CN202511974330.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-24
- Publication Date
- 2026-05-08
AI Technical Summary
In existing technologies, the accuracy of critical path pattern mining for processor microarchitecture performance optimization is low, mainly due to the lack of combined optimization analysis of critical events and related chain events, resulting in relatively simple critical path data used in the pattern mining process.
By acquiring analysis and processing requests, reading into the sequence database, generating a candidate pattern set, and determining candidate patterns with support greater than or equal to the minimum support threshold based on multiple sequences in the sequence database, a high support pattern set is generated. Pattern mining is performed using one-time and non-overlapping conditions to ensure that the database support of candidate patterns meets the preset threshold, thereby expanding the analysis search space to mine high support patterns.
It improves the accuracy of critical path pattern mining in processor microarchitecture correlation graphs, ensures comprehensive statistics on high-frequency event sequences in critical path data, expands the breadth and depth of information extraction, and solves the problem of low accuracy in pattern mining.
Smart Images

Figure CN121996713A_ABST
Abstract
Description
Technical Field
[0001] This application relates to data mining technology, and more particularly to a method, apparatus, device, and storage medium for pattern mining of critical path data. Background Technology
[0002] Currently, as the scale of programs running on processors continues to increase, the size of benchmark sets used for processor microarchitecture performance analysis is also constantly growing, posing challenges to performance bottleneck analysis.
[0003] In existing technologies, processor microarchitecture modeling is used as a correlation graph model, and critical path data of dynamic program execution is obtained for analysis. During analysis, pre-specified known performance events are statistically analyzed from the critical path data, and information such as the proportion of these performance events (identifying the most critical events) and their interrelationships (guiding whether multiple performance events need to be optimized simultaneously) is analyzed. However, processor microarchitecture performance optimization techniques not only include optimization for individual performance events, but also optimization schemes that combine critical events with events in their related chains.
[0004] However, in existing technologies, processor microarchitecture performance optimization techniques also include optimization schemes that combine critical events with events in their related chains. The useful knowledge required for the reasonable formulation of such optimization schemes is that there are certain significant related chain events in the existing processor microarchitecture running existing applications. However, research usually only focuses on the related chain analysis of a single performance event, or formulates the combined optimization scheme based on the designer's experience, without statistical analysis of the related chain events. This results in relatively simple critical path data used in the pattern mining process, leading to low accuracy in critical path pattern mining of the processor microarchitecture correlation graph. Summary of the Invention
[0005] This application provides a method, apparatus, device, and storage medium for pattern mining of critical path data, in order to solve the technical problem of low accuracy in pattern mining of critical paths in processor microarchitecture correlation graphs.
[0006] Firstly, this application provides a method for pattern mining of critical path data, including:
[0007] Obtain an analysis and processing request; wherein the analysis and processing request includes a sequence database identifier; and read in the sequence database corresponding to the sequence database identifier according to the analysis and processing request;
[0008] Generate a candidate pattern set; wherein the candidate pattern set includes multiple candidate patterns, and the candidate pattern set has a preset first length;
[0009] Based on multiple sequences in the sequence database, among multiple candidate patterns in the candidate pattern set, candidate patterns with a minimum support threshold greater than or equal to a preset threshold are determined; and the candidate patterns with a minimum support threshold greater than or equal to the preset threshold are used as high support patterns to generate a high support pattern set; wherein, the second length of the high support pattern set is equal to the first length of the candidate pattern set.
[0010] If the high support pattern set is determined to be empty, or if the second length is greater than the preset maximum pattern length, then high support pattern mining is stopped; and when the second length is greater than the preset maximum pattern length, high support patterns whose pattern lengths are within the preset pattern length range in the high support pattern set are output; wherein, the high support pattern set represents the critical path data of the processor microstructure correlation graph.
[0011] Further, based on multiple sequences in the sequence database, among multiple candidate patterns in the candidate pattern set, determining candidate patterns with a support level greater than or equal to a preset minimum support threshold; and generating a high support pattern set by using the candidate patterns with a support level greater than or equal to the preset minimum support threshold as high support patterns, includes:
[0012] Read in multiple candidate patterns from the candidate pattern set in sequence;
[0013] For each candidate pattern, based on preset mining conditions, the occurrence corresponding to the candidate pattern is searched for in each of the multiple sequences in the sequence database.
[0014] Based on the occurrence corresponding to the candidate pattern, determine the database support degree of the corresponding candidate pattern;
[0015] If the database support of the corresponding candidate pattern is determined to be greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and a high support pattern set is generated based on the high support pattern.
[0016] Furthermore, the first length of the candidate pattern set is i+1, the third length of each candidate pattern is m, where the initial value of i is 1, and the third length m = i+1; the fourth length of the sequence in the sequence database is n.
[0017] Furthermore, for each candidate pattern, according to preset mining conditions, searching for the occurrence corresponding to the candidate pattern in each of the multiple sequences in the sequence database includes:
[0018] For each candidate pattern of length m, the first character of each sequence in the sequence database is used as the search starting point, and the (n-m+1)th character of each sequence is used as the end point. Each character from the first character to the (n-m+1)th character is matched with the characters in the corresponding order in the candidate pattern to obtain the matching result information.
[0019] If it is determined that the characters representing the corresponding order in the matching result information are all the same, then the string composed of the first character to the (n-m+1)th character in the sequence is determined to be the occurrence corresponding to the candidate pattern;
[0020] Based on preset mining conditions, the search continues to look for occurrences that match the candidate pattern in the sequence until the last character in the sequence is found, at which point the search stops.
[0021] Furthermore, the preset mining condition information includes one-time conditions or non-overlapping conditions; wherein,
[0022] The sequence includes multiple edges for indicating the critical path. The one-time condition indicates that any edge in the critical path represented by the sequence can be used at most once. The non-overlapping condition indicates that an edge at the same position in the critical path represented by the sequence cannot be reused at the same position in the candidate pattern, but can be reused at different positions in the candidate pattern.
[0023] Further, determining the database support degree of the corresponding candidate pattern based on the occurrence corresponding to the candidate pattern includes:
[0024] For each sequence, the average utility value of the candidate pattern at each occurrence is determined; and the average utility values at each occurrence are accumulated to obtain the sequence support of the sequence.
[0025] The sequence support of each sequence is multiplied by a preset vertical weight value to obtain multiple products. These multiple products are then summed to generate the database support of the corresponding candidate pattern.
[0026] Further, the step of determining that if the database support of the corresponding candidate pattern is greater than or equal to a preset minimum support threshold, then determining the corresponding candidate pattern as a high support pattern, and generating a high support pattern set based on the high support patterns, includes:
[0027] If the database support of the corresponding candidate pattern is determined to be greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and the high support pattern is added to the second preset high support pattern set with a length of i+1.
[0028] Furthermore, the method also includes:
[0029] If it is determined that the high support pattern set is not empty, or that the second length is less than or equal to the preset maximum pattern length, then repeat the following steps until the high support patterns in the high support pattern set whose pattern lengths are within the preset pattern length range are output:
[0030] Extract multiple high-support patterns from the set of high-support patterns in sequence;
[0031] Determine the prefix and suffix of each of the multiple high-support patterns;
[0032] For each high support pattern, in a preset order from left to right, traverse and search for other high support patterns besides the current high support pattern. If a prefix of another high support pattern with the same suffix as the current high support pattern is found, then the current high support pattern and the other high support pattern are concatenated to obtain a third candidate pattern with a length of i+2.
[0033] The third candidate pattern of length i+2 is added to the first candidate pattern set of length i+2, and the step of determining a candidate pattern with a minimum support threshold greater than or equal to a preset threshold is performed based on multiple sequences in the sequence database and multiple candidate patterns in the candidate pattern set.
[0034] Furthermore, the method also includes:
[0035] A prompt message is issued; wherein the prompt message is used to indicate that the high support pattern mining is complete.
[0036] Secondly, this application provides a pattern mining apparatus for critical path data, comprising:
[0037] An acquisition unit is used to acquire an analysis and processing request; wherein the analysis and processing request includes a sequence database identifier;
[0038] The read-in unit is used to read in the sequence database corresponding to the sequence database identifier according to the analysis and processing request;
[0039] The first generation unit is used to generate a candidate pattern set; wherein the candidate pattern set includes multiple candidate patterns, and the candidate pattern set has a preset first length;
[0040] The second generation unit is configured to, based on multiple sequences in the sequence database, determine candidate patterns that are greater than or equal to a preset minimum support threshold from among multiple candidate patterns in the candidate pattern set; and generate a high support pattern set by taking the candidate patterns that are greater than or equal to the preset minimum support threshold as high support patterns; wherein, the second length of the high support pattern set is equal to the first length of the candidate pattern set.
[0041] The output unit is configured to stop high support pattern mining if it is determined that the high support pattern set is empty, or if the second length is greater than the preset maximum pattern length; and when the second length is greater than the preset maximum pattern length, output the high support patterns in the high support pattern set whose pattern length is within the preset pattern length range; wherein the high support pattern set represents the critical path data of the processor microstructure correlation graph.
[0042] Further, the second generating unit includes:
[0043] The read-in module is used to sequentially read in multiple candidate patterns from the candidate pattern set;
[0044] The search module is used to search for the occurrence corresponding to each candidate pattern in each of the multiple sequences in the sequence database, based on preset mining conditions.
[0045] The determining module is used to determine the database support degree of the corresponding candidate pattern based on the occurrence corresponding to the candidate pattern;
[0046] The generation module is used to determine the corresponding candidate pattern as a high-support pattern if the database support of the corresponding candidate pattern is greater than or equal to a preset minimum support threshold, and to generate a high-support pattern set based on the high-support pattern.
[0047] Furthermore, the first length of the candidate pattern set is i+1, the third length of each candidate pattern is m, where the initial value of i is 1, and the third length m = i+1; the fourth length of the sequence in the sequence database is n.
[0048] Furthermore, the search module includes:
[0049] The matching submodule is used to match each character from the first character to the (n-m+1)th character of each sequence in the sequence database with the corresponding characters in the candidate pattern for each candidate pattern of length m, and to obtain matching result information.
[0050] The determination submodule is used to determine, if the characters representing the corresponding order in the matching result information are all the same, that the string composed of the first character to the (n-m+1)th character in the sequence is the occurrence corresponding to the candidate pattern;
[0051] The search submodule is used to continue searching for occurrences that match the candidate pattern in the sequence based on preset mining conditions, until the last character in the sequence is found, at which point the search stops.
[0052] Furthermore, the preset mining condition information includes one-time conditions or non-overlapping conditions; wherein,
[0053] The sequence includes multiple edges for indicating the critical path. The one-time condition indicates that any edge in the critical path represented by the sequence can be used at most once. The non-overlapping condition indicates that an edge at the same position in the critical path represented by the sequence cannot be reused at the same position in the candidate pattern, but can be reused at different positions in the candidate pattern.
[0054] Furthermore, the determining module includes:
[0055] The first accumulation submodule is used to determine the average utility value of the candidate pattern in each occurrence for each sequence; and to accumulate the average utility values in each occurrence to obtain the sequence support of the sequence.
[0056] The second accumulation submodule is used to multiply the sequence support of each sequence by a preset vertical weight value to obtain multiple products, and to accumulate the multiple products to generate the database support of the corresponding candidate pattern.
[0057] Furthermore, the generation module is specifically used for:
[0058] If the database support of the corresponding candidate pattern is determined to be greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and the high support pattern is added to the second preset high support pattern set with a length of i+1.
[0059] Furthermore, the device also includes:
[0060] The first determining unit is configured to, if it determines that the high support pattern set is not empty, or that the second length is less than or equal to a preset maximum pattern length, repeat the following steps until it outputs high support patterns in the high support pattern set whose pattern lengths are within a preset pattern length range:
[0061] The extraction unit is used to sequentially extract multiple high-support patterns from the high-support pattern set;
[0062] The second determining unit is used to determine the prefix and suffix of each of the multiple high-support patterns;
[0063] The splicing unit is used to search for other high support patterns besides the current high support pattern in a preset order from left to right for each high support pattern. If a prefix of another high support pattern with the same suffix as the current high support pattern is found, the current high support pattern and the other high support pattern are spliced together to obtain a third candidate pattern with a length of i+2.
[0064] The addition unit is used to add the third candidate pattern of length i+2 to the first candidate pattern set of length i+2, and to perform the step of determining a candidate pattern with a minimum support threshold greater than or equal to a preset threshold from among the multiple candidate patterns in the candidate pattern set based on multiple sequences in the sequence database.
[0065] Furthermore, the device also includes:
[0066] A prompting unit is used to issue a prompting message; wherein the prompting message is used to indicate that the high support pattern mining is complete.
[0067] Thirdly, this application provides an electronic device, including a memory and a processor, wherein the memory stores a computer program that can run on the processor, and the processor executes the computer program to implement the method described in the first aspect.
[0068] Fourthly, this application provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the method described in the first aspect.
[0069] Fifthly, this application provides a computer program product, including a computer program that, when executed by a processor, implements the method described in the first aspect.
[0070] This application provides a method for pattern mining of critical path data, which involves obtaining an analysis and processing request, wherein the analysis and processing request includes a sequence database identifier; and reading in the sequence database corresponding to the sequence database identifier according to the analysis and processing request. A candidate pattern set is generated, wherein the candidate pattern set includes multiple candidate patterns, and the candidate pattern set has a preset first length. Based on multiple sequences in the sequence database, among the multiple candidate patterns in the candidate pattern set, candidate patterns with a support greater than or equal to a preset minimum support threshold are determined; and these candidate patterns with a support greater than or equal to the preset minimum support threshold are designated as high-support patterns, generating a high-support pattern set; wherein the second length of the high-support pattern set is equal to the first length of the candidate pattern set. If the high-support pattern set is determined to be empty, or the second length is greater than a preset maximum pattern length, high-support pattern mining is stopped; and when the second length is greater than the preset maximum pattern length, the high-support patterns in the high-support pattern set whose pattern lengths fall within a preset pattern length range are output. In this scheme, the sequence database corresponding to the sequence database identifier is read in according to the analysis and processing request. A candidate pattern set is generated. Based on multiple sequences in the sequence database, a high-support pattern set is generated from multiple candidate patterns in the candidate pattern set. The second length of the high-support pattern set is equal to the first length of the candidate pattern set. The process checks whether the high-support pattern set is empty or whether the second length is greater than a preset maximum pattern length. If the high-support pattern set is empty or the second length is greater than the preset maximum pattern length, the mining is complete, and high-support pattern mining stops. If the second length is greater than the preset maximum pattern length, the high-support patterns in the high-support pattern set whose pattern lengths fall within the preset pattern length range are output. Therefore, candidate patterns represent event sequence hypotheses to be verified (i.e., different events, different orders, different lengths, etc.). Generating a large-scale, diverse candidate pattern set is equivalent to constructing a complete analytical search space. This analytical search space ensures that any high-frequency event sequences that may exist in the critical path data are statistically tested equally. The "high-support patterns" selected from a large number of candidate event sequence hypotheses based on a minimum support threshold are the key bottleneck patterns that are truly verified by the data and have statistical significance. Therefore, the richness of the candidate pattern set directly expands the breadth and depth of information extracted during the pattern mining process, fundamentally solving the technical problem of low pattern mining accuracy of critical paths in processor microstructure correlation graphs due to insufficient data utilization. Attached Figure Description
[0071] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.
[0072] Figure 1A flowchart illustrating a pattern mining method for critical path data provided in an embodiment of this application;
[0073] Figure 2 A flowchart illustrating another method for pattern mining of critical path data provided in this application embodiment;
[0074] Figure 3 A schematic diagram of a pattern mining device for critical path data provided in an embodiment of this application;
[0075] Figure 4 A schematic diagram of another critical path data pattern mining device provided in an embodiment of this application;
[0076] Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application;
[0077] Figure 6 This is a block diagram of an electronic device provided in an embodiment of this application.
[0078] The accompanying drawings have illustrated specific embodiments of this disclosure, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concepts of this disclosure to those skilled in the art through reference to particular embodiments. Detailed Implementation
[0079] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure.
[0080] Currently, as the scale of programs running on processors continues to increase, the size of benchmark sets used for processor microarchitecture performance analysis is also constantly growing, posing challenges to performance bottleneck analysis.
[0081] In one example, processor microarchitecture modeling is used as a correlation graph model, and critical path data of the program's dynamic execution is obtained for analysis. During analysis, pre-specified known performance events are statistically analyzed from the critical path data, and the proportion of these performance events (identifying the most critical events) and their interrelationships (guiding whether multiple performance events need to be optimized simultaneously) are analyzed. However, processor microarchitecture performance optimization techniques include not only optimization for individual performance events but also optimization schemes combining critical events with events in their correlation chains. However, in existing technologies, because processor microarchitecture performance optimization techniques also include optimization schemes combining critical events with events in their correlation chains—that is, the useful knowledge required for the reasonable formulation of combined optimization schemes is that there are certain significant correlation chain events in the existing processor microarchitecture running existing applications—research often only performs correlation chain analysis on a single performance event or formulates combined optimization schemes based on the designer's experience without statistical analysis of the correlation chain events. This results in relatively limited critical path data used in pattern mining, leading to low accuracy in critical path pattern mining of the processor microarchitecture correlation graph.
[0082] In one example, under the one-off condition, this method addresses adaptive high average utility sequence pattern mining under one-off conditions by setting a lower bound on support, reducing the candidate pattern space through pattern concatenation, and employing a queue structure to calculate the support in the patterns. This method adaptively mines high average utility patterns under one-off conditions, overcoming the shortcomings of existing techniques for adaptive high average utility sequence pattern mining under one-off conditions, which struggle to balance generality, accuracy, and flexibility, and fail to mine valuable information while ensuring the non-redundancy of the result set. However, while the utility value of each item is fixed and pre-specified, the utility value (i.e., weight) of each item (i.e., edge) in the critical path data of the correlation graph is dynamically determined during program execution and is not necessarily fixed (referred to as a variable utility value). Therefore, this approach cannot meet the needs of pattern mining analysis for critical paths in correlation graphs.
[0083] In one example, interaction costs (icost) are used to analyze the impact of the interrelationships of microarchitectural bottleneck events on performance. This can be categorized based on the icost of two events: events that can be optimized independently (mutually independent), events that need to be optimized simultaneously (parallel dependent), and events that only require optimization of one of them (serial dependent). In this approach, a performance bottleneck is a set of events that affect execution time. These events include processor parameters, but can also refer to specific events, such as a particular cache miss. The cost of an event is defined as the speedup achieved by idealizing the event (for a cache miss, idealization means replacing it with a cache miss; for instruction window size, it means setting the instruction window to infinity). Let t be the original execution time, and t(e) be the execution time after idealizing event e, then Cost(e) = t – t(e).
[0084] This definition can be naturally extended to the cost of a set of events. Cost is a very useful value; for example, it gives the cost of all dynamic misses of a specific load instruction, which can be used to determine whether prefetching it is worthwhile. For processor designers, it can indicate the potential for optimizing a certain component. Understanding the cost of a single event is insufficient because it does not reflect the interaction between events; changes in other events can cause significant variations in this cost. This approach uses the interaction cost between two events (sets) to quantify the interaction effect. Using interaction cost provides a clearer understanding of the relationships between parallel events. Interaction cost can also be used to more accurately segment the overall execution time. Traditional execution time segmentation methods attempt to allocate some time to a specific cause, but in reality, several causes often act simultaneously. A natural corollary of the interaction cost definition is that the cost of all events (i.e., the total execution time) equals the sum of the interaction costs between all events. Thus, all interaction costs constitute a segment of the total execution time. However, the above approach requires pre-specifying the performance events being analyzed, relies on the designer's experience, and may overlook combinations of long latency segments caused by unknown behavioral patterns.
[0085] In one example, Rpstacks is a fast and accurate method for exploring the processor design space. Its main objectives are: (1) to identify key performance bottlenecks in existing designs; and (2) to accurately predict performance improvements by optimizing bottleneck events without additional simulation. To address the problem of multiple blocking events overlapping in the pipeline, the basic idea of Rpstacks is to select a few representative execution paths from all paths in the correlation graph obtained in a single simulation. The path with the largest difference in the stacking graph of path delay components is taken as the representative path, and the blocking event with the largest proportion in each representative path is the representative blocking event (key performance bottleneck). By adjusting the stacking graph proportion of the representative execution paths to simulate the optimized structure, the performance improvement can be evaluated. However, the above approach requires specifying the performance events to be analyzed in advance, relies on the designer's experience, and may ignore some combinations of long delay segments caused by unknown behavioral patterns.
[0086] In one example, the microprocessor microstructure parameter optimization method based on simulator is implemented as follows: construct a pipeline model of the microprocessor, run the target application through the simulator to obtain the simulated output, generate a directed acyclic graph describing the target application running on the simulator with a clock precision of the target microprocessor as a correlation graph, generate and correct the weights of the directed edges; generate critical path reports and relaxation time reports according to the correlation graph respectively; based on the critical path reports and relaxation time reports, analyze the performance or power consumption bottleneck of the microprocessor, and determine whether the parameters of the microprocessor microstructure need to be optimized according to the analysis results, and decide to re-execute or terminate. Among them, the analysis of critical path data in this invention is as follows: (1) generate a critical path report according to the composition of nodes and edges of the critical path, the number of each type of edge in the critical path and the sum of delays; (2) list the nodes traversed by the critical path according to the critical path matrix, calculate the relaxation time of each incoming edge of each node and generate a relaxation time report. Based on this information, the performance bottleneck of the system can be obtained. For example, if there are many edges of the type from the decode segment to the rename segment and the sum of delays is large, it indicates that the performance bottleneck of the system may be the lack of sufficient renaming resources. Relaxation time reports provide a reference for the optimization space of microstructures. However, the above schemes have drawbacks: (1) Stack graph statistics only analyze the composition of the critical path and ignore the behavioral patterns formed by the time sequence of performance events on the critical path. (2) Relaxation analysis focuses on the delay difference between the critical path and non-critical paths, which can be used for power consumption optimization, but is irrelevant to the analysis of critical behavioral patterns.
[0087] In one example, pattern mining is performed based on relaxation analysis to identify the critical path. However, relaxation analysis focuses on the latency difference between critical and non-critical paths and can be used for power optimization, but it is unrelated to critical behavior pattern analysis.
[0088] In one example, methods and apparatus for monitoring microarchitecture performance and tuning microarchitecture based on monitored performance monitor performance through simulation, analytical cause finding, rollback measurement, total execution time, and other methods for determining the cost per instance event. Based on the cost per instance event, the microarchitecture and / or execution software are tuned to enhance performance. Here, the critical path includes any path or sequence of any occurrence, task, and / or event that will contribute to the time required to complete an operation, instruction, instruction set, or program if it increases the latency of occurrences, tasks, or events. In graphical terms, the critical path can sometimes be described as a path through a graph of data, control, and resource dependencies in a program running on a particular machine, where an extension of any arc in that graph will result in an increase in the program's execution latency. Therefore, in other words, the contribution of an event / functional component to each instance of the critical path is the contribution of an event (e.g., a L2 cache miss) or a microarchitecture functional component (e.g., a branch prediction unit) to the latency experienced in completing a task or program. In practice, the contributions of events or functional components vary significantly across different application domains. Therefore, the cost / contribution of events or microarchitectural components can be determined for specific user-level applications (e.g., operating systems). An event includes any operation, occurrence, or action in the processor that causes latency. Several different approaches can be used to determine the cost of each instance event, i.e., the contribution of an event or microarchitectural component to the critical path, including: (1) analytical estimation; (2) duration counts from performance monitors; (3) regressions measured by hardware performance monitors and simulators; and (4) changes in total execution time due to variations in the number of events, measured by microbenchmarks, simulations, and silicon-degraded components. However, these approaches only analyze the contribution of events or microarchitectural components to the critical path, neglecting the behavioral patterns formed by the temporal sequence of performance events on the critical path.
[0089] First, the relevant concepts or terms involved in this application will be explained:
[0090] Correlation Graph: Based on the pipeline model, a directed acyclic graph (DAG) describing the target application running on a clock-accurate simulator of the target microprocessor is generated as the correlation graph. In the correlation graph, each node represents a low-level micro-operation, including fetch, decode, rename, issue, execute, and commit. The edges between nodes represent the sequential and triggering relationships of each micro-operation. The incoming edges of each node represent the conditions that must be met for the micro-operation represented by that node to be triggered. For data-related instruction pairs, a correlation edge is added from the execution segment of the previous instruction to the execution segment of the next instruction. For control-related instruction pairs, a correlation edge is added from the execution segment of the previous branch instruction to the fetch segment of the next branch target instruction jumped to by that branch instruction. Correlation edges are added between fetch nodes and commit nodes of the preceding and following instructions based on the fetch width and commit width. Based on the transitions triggered by each simulation step in the simulation report and the time when the transitions were triggered, add an attribute to the corresponding node in the directed acyclic graph. The attribute value is the time when the transition was triggered. Based on the type of functional unit used by each instruction, update the delay of the outgoing edge of the node corresponding to the "execution" pipeline segment in the directed acyclic graph to the delay of the functional unit or the pipeline stage, and set the delay of the remaining edges to 1 clock cycle.
[0091] Critical path: In processor microarchitecture analysis, the critical path represents the longest execution path from the start node of the first instruction to the end node of the last instruction in the relevant graph. The length of the critical path determines the shortest time required to execute the program.
[0092] Gap constraint: The size of the interval between items in the pattern. min j and max j These are the gap constraints of pattern P, representing terms p respectively. j-1 and item p j The minimum and maximum limits on the number of wildcards allowed between them. If min1 = min2 = ... = min... m-1 =M and max1=max2=…=max m-1 If the interval is N, then the pattern is called a pattern with periodic gap constraints, abbreviated as P = p1p2...p j ...P m , gap = [M, N]. For example, A[0, 1]T[1, 3]G is a pattern with gap constraints, while A[0, 2]T[0, 2]G is called a pattern with periodic gap constraints of [0, 2].
[0093] No-condition / one-off-condition / non-overlapping-condition: Sequence pattern mining with periodic gap constraints is further divided into sequence pattern mining under no-condition, one-off-condition, and non-overlapping-condition based on the support calculation method. No-condition means there is no restriction on the number of times any character can be used; it can be repeated in any position. One-off-condition means that any character in the sequence string can be used at most once. Non-overlapping-condition means that a character at the same position in the sequence string cannot be repeated in the same position of the pattern, but can be repeated in different positions of the pattern.
[0094] High average utility: Defined as the total utility of a pattern divided by the size of the pattern, and a pattern that is greater than a user-given threshold is considered to have high average utility.
[0095] This application provides a method, apparatus, device, and storage medium for pattern mining of critical path data, which aims to solve the above-mentioned technical problems in the prior art.
[0096] The technical solution of this application and how the technical solution of this application solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.
[0097] Figure 1 A flowchart illustrating a pattern mining method for critical path data provided in this application embodiment is shown below. Figure 1 As shown, the method includes:
[0098] Step 101: Obtain the analysis and processing request; wherein the analysis and processing request includes a sequence database identifier; and according to the analysis and processing request, read in the sequence database corresponding to the sequence database identifier.
[0099] Exemplary, the executing entity of this embodiment can be an electronic device, a terminal device, a sensitive word data processing device or apparatus, or other apparatus or apparatus capable of executing this embodiment, and there are no limitations on this. In this embodiment, the executing entity is described as an electronic device. First, the critical path data analysis problem of the relevant graph is represented as a sequence pattern mining problem based on variable utility values. The critical path is a set of weighted edges. We treat the edges as items in the sequence, and the weight values of the edges as the variable utility values of the items.
[0100] First, an analysis and processing request needs to be obtained. The analysis and processing request includes a sequence database identifier. The analysis and processing request can be obtained based on the user's analysis and processing operation, or an analysis and processing request transmitted by other devices can be received. The electronic device can read in the sequence database corresponding to the sequence database identifier according to the analysis and processing request.
[0101] Specifically, read in the given sequence database SDB. The sequence database SDB includes M sequences, a set of vertical utility values, and M sets of horizontal utility values. Each sequence in the sequence database SDB is respectively denoted as sequence S0, sequence S1, …, sequence Sk, …, sequence SM-1, where 0 ≤ k < M. The characters included in sequence Sk are respectively denoted as character s0, character s1, …, character sn-1; the set of vertical utility values includes preset vertical weight values. It is also possible to read in a preset minimum support threshold minsup, a shortest pattern length minlen, and a longest pattern length maxlen, and then generate a preset pattern length interval according to the shortest pattern length minlen and the longest pattern length maxlen. The preset pattern length interval is the interval between the shortest pattern length minlen and the longest pattern length maxlen. The pattern length interval can be a closed interval, an open interval, etc., and no limitation is made thereto.
[0102] Step 102: Generate a candidate pattern set; among them, the candidate pattern set includes multiple candidate patterns, and the candidate pattern set is of a preset first length.
[0103] Exemplarily, an edge can be called an item. Multiple edges form a sequence. According to a preset length, the edges in a sequence can be divided into multiple patterns, that is, multiple edges form a pattern, and multiple patterns form a sequence. The preset length can be user-defined and no limitation is made to the preset length. And the length of the candidate pattern set is equal to the length of the patterns in the candidate pattern set. The electronic device can generate a candidate pattern set according to at least one sequence input by the user. Among them, the candidate pattern set includes multiple candidate patterns, and the candidate pattern set is of a preset first length; the candidate pattern represents a hypothesis of an event sequence to be verified (that is, different events, different orders, different lengths, etc.). The richer the candidate pattern set (that is, the longer the first length and the more event combinations included), the more comprehensive the "detection" of the critical path data, and then the possibility of discovering frequently occurring critical event chains that affect performance can be increased.
[0104] For example, the preset length is 2, and the user input sequences include sequences aabbaa and bbaaaa, with the initial value of i being 1. According to the edge type definition of the correlation graph model, the a and b elements in the sequences are combined to generate a first candidate pattern set of length i+1 {aa, ab, bb, ba}, which is the first candidate pattern set of length 2 {aa, ab, bb, ba}. It should be noted that the minimum pattern length is 2 because at least two nodes in the correlation graph represent a path. The edge type definition of the correlation graph model is explained below:
[0105] The definition of an edge-type item collection is Each item in the set This indicates that each item corresponds to one edge type, and the size of E is... For example, according to the definition of a related graph, the collection of items based on node type is: This indicates that the graph is represented using three node types: Fetch (F), Execute (E), and Commit (C). The project set based on edge types is... .in, and, All are represented as FF, and CC is similar. Detailed meanings are shown in Table 1 below:
[0106] Table 1
[0107]
[0108] Step 103: Based on multiple sequences in the sequence database, determine candidate patterns that are greater than or equal to a preset minimum support threshold from multiple candidate patterns in the candidate pattern set; and take the candidate patterns that are greater than or equal to the preset minimum support threshold as high support patterns to generate a high support pattern set; wherein, the second length of the high support pattern set is equal to the first length of the candidate pattern set.
[0109] For example, for each candidate pattern in the candidate pattern set, the electronic device traverses each sequence in the sequence database SDB, searches for all occurrences of each candidate pattern, and calculates the database support *supS* for each candidate pattern based on all occurrences. Finally, the database support *supS* of each candidate pattern is compared with a preset minimum support threshold. If a candidate pattern is determined to have a database support *supS* greater than or equal to the preset minimum support threshold, then the candidate pattern greater than or equal to the preset minimum support threshold is designated as a high-support pattern, generating a high-support pattern set. In this case, the second length of the high-support pattern set is equal to the length of the high-support patterns in the high-support pattern set, that is, the second length of the high-support pattern set is equal to the first length of the candidate pattern set.
[0110] Step 104: If the high support pattern set is determined to be empty, or the second length is greater than the preset maximum pattern length, then stop high support pattern mining; and when the second length is greater than the preset maximum pattern length, output the high support patterns in the high support pattern set whose pattern length is within the preset pattern length range.
[0111] For example, the electronic device determines whether the high support pattern set is empty, or whether the second length is greater than the preset maximum pattern length. If it determines that the high support pattern set is empty, or the second length is greater than the preset maximum pattern length, it indicates that the high support pattern mining is complete and stops the high support pattern mining. If the second length is greater than the preset maximum pattern length, it determines whether the pattern length of the high support pattern in the high support pattern set is within a preset pattern length range. If there are high support patterns whose pattern length is within the preset pattern length range, it outputs the high support patterns in the high support pattern set whose pattern length is within the preset pattern length range.
[0112] In this embodiment, an analysis and processing request is obtained; the analysis and processing request includes a sequence database identifier; and according to the analysis and processing request, the sequence database corresponding to the sequence database identifier is read in. A candidate pattern set is generated; the candidate pattern set includes multiple candidate patterns, and the candidate pattern set has a preset first length. Based on multiple sequences in the sequence database, among the multiple candidate patterns in the candidate pattern set, candidate patterns with a minimum support threshold greater than or equal to a preset minimum support threshold are determined; and the candidate patterns with a minimum support threshold greater than or equal to the preset minimum support threshold are taken as high support patterns, generating a high support pattern set; wherein the second length of the high support pattern set is equal to the first length of the candidate pattern set. If the high support pattern set is determined to be empty, or the second length is greater than the preset maximum pattern length, high support pattern mining is stopped; and when the second length is greater than the preset maximum pattern length, high support patterns in the high support pattern set whose pattern lengths are within a preset pattern length range are output. In this scheme, according to the analysis and processing request, the sequence database corresponding to the sequence database identifier is read in. A candidate pattern set is generated. Based on multiple sequences in the sequence database, a high-support pattern set is generated from multiple candidate patterns in the candidate pattern set. The second length of the high-support pattern set is equal to the first length of the candidate pattern set. The process checks whether the high-support pattern set is empty or whether the second length is greater than a preset maximum pattern length. If the high-support pattern set is determined to be empty or the second length is greater than the preset maximum pattern length, the mining is considered complete, and high-support pattern mining stops. If the second length is greater than the preset maximum pattern length, the high-support patterns in the high-support pattern set whose pattern length falls within the preset pattern length range are output. Therefore, generating a high-support pattern set from a candidate pattern set, which includes a larger number of candidate patterns, increases the richness of critical path data used in the pattern mining process and solves the technical problem of low accuracy in critical path pattern mining of processor microstructure correlation graphs.
[0113] Figure 2 A flowchart illustrating another method for pattern mining of critical path data provided in this application embodiment is shown below. Figure 2 As shown, the method includes:
[0114] Step 201: Obtain the analysis and processing request; wherein the analysis and processing request includes a sequence database identifier; and according to the analysis and processing request, read in the sequence database corresponding to the sequence database identifier.
[0115] For example, this step can be referred to Figure 1 Step 101 in the text will not be repeated here.
[0116] Step 202: Generate a candidate pattern set; wherein the candidate pattern set includes multiple candidate patterns and the candidate pattern set has a preset first length.
[0117] For example, this step can be referred to Figure 1 Step 102 in the text will not be repeated here.
[0118] Step 203: Read in multiple candidate patterns from the candidate pattern set in sequence.
[0119] For example, the electronic device sequentially reads multiple candidate patterns from a first candidate pattern set of length i+1. And obtain the third length of each candidate pattern P.
[0120] Step 204: For each candidate pattern, based on the preset mining conditions, search for the occurrence corresponding to the candidate pattern in each of the multiple sequences in the sequence database.
[0121] In one example, the first length of the candidate pattern set is i+1, the third length of each candidate pattern is m, where the initial value of i is 1, and the third length m = i+1; the fourth length of the sequence in the sequence database is n.
[0122] In one example, step 204 includes: for each third candidate pattern of length m, starting from the first character of each sequence in the sequence database and ending at the (n-m+1)th character of each sequence, matching each character from the first character to the (n-m+1)th character with the corresponding characters in the candidate pattern to obtain matching result information; if it is determined that the matching result information indicates that the characters in the corresponding order are all the same, then the string composed of the first character to the (n-m+1)th character in the sequence is determined to be the occurrence corresponding to the candidate pattern; according to the preset mining conditions, continue to search for occurrences that match the candidate pattern in the sequence until the last character in the sequence is found, and then stop searching.
[0123] In one example, the preset mining conditions include one-time conditions or non-overlapping conditions; wherein, the sequence includes multiple edges for indicating the critical path, the one-time condition is used to indicate that any edge in the critical path represented by the sequence can be used at most once; the non-overlapping condition is used to indicate that the edge at the same position in the critical path represented by the sequence cannot be reused in the same position in the candidate pattern, but can be reused in different positions in the candidate pattern.
[0124] For example, the first length of the candidate pattern set is i+1, and the third length of each candidate pattern is m, where the initial value of i is 1, and the third length m = i+1; the fourth length of the sequences in the sequence database is n. For each candidate pattern with a third length of m, starting from the first character of each sequence in the sequence database up to the (n-m+1)th character of the sequence, when the character... The first character of pattern P Continue searching when a match is found. The following m-1 characters, i.e. The m-1 characters that correspond to the first character after the first character of pattern P. Comparison. If all characters in the corresponding sequence match, it indicates that a pattern P has occurred. The average utility (PAU) of pattern P in that occurrence is calculated based on the pattern's utility and average utility. Then, according to preset mining conditions, the search continues in the sequence for occurrences that match the candidate pattern until the last character in the sequence is found, at which point the search stops.
[0125] The preset mining conditions include either a one-time condition or a non-overlapping condition. The sequence includes multiple edges indicating the critical path. The one-time condition indicates that any edge in the critical path represented by the sequence can be used at most once. The non-overlapping condition indicates that edges at the same position in the critical path represented by the sequence cannot be reused at the same position in candidate patterns, but can be reused at different positions in candidate patterns. If the preset mining condition is a one-time condition, the electronic device searches for the next occurrence from the character in the sequence. Continue searching for characters that match the first character of pattern P; if the preset mining criteria are non-overlapping, then search for the next occurrence from the first character. start.
[0126] It should be noted that, depending on the actual needs, various solutions can be adopted, such as one-time occurrence conditions, other schemes like non-overlapping conditions, or no conditions (unconditional use is not recommended for critical path data in correlation graphs). There are no restrictions on which schemes are used. The difference between other schemes and one-time occurrence conditions lies in the number of times the candidate pattern occurs in the sequence. Generally, the frequency of occurrence is: one-time occurrence condition < non-overlapping condition < no condition. The frequency of occurrence determines the different database support results.
[0127] The utility of a pattern and the average utility are explained below:
[0128] Length is , occur as pattern The utility is That is, it happens The corresponding set of horizontal weight values Sum of m-1 values. Average utility for:
[0129] .
[0130] Alternatively, when calculating the average utility value PAU(P,L) of pattern P, an edge-type approach can be adopted, where items for both the sequence and the pattern are represented by edges. The corresponding modifications to definitions such as horizontal weights, utility, and average utility are as follows:
[0131] Horizontal weight values are sequences Medium-sized projects weight value The set of horizontal weight values The length is , occur as The utility of model P is That is, it happens The corresponding set of horizontal weight values of total Sum of individual values. Average utility value. for:
[0132]
[0133] Step 205: Determine the database support of the corresponding candidate pattern based on the occurrence of the candidate pattern.
[0134] In one example, step 205 includes: for each sequence, determining the average utility value of the candidate pattern in each occurrence; summing the average utility values of each occurrence to obtain the sequence support of the sequence; multiplying the sequence support of each sequence by a preset vertical weight value to obtain multiple products, and summing the multiple products to generate the database support of the corresponding candidate pattern.
[0135] For example, for each candidate pattern, the electronic device needs to traverse all sequences in the sequence database. Specifically, each time a sequence is traversed, the sequence support *supS* of that sequence is initialized to 0. Each time an occurrence corresponding to a candidate pattern is obtained in that sequence, the average utility value of the candidate pattern during the occurrence is calculated, and the calculated average utility value is added to *supS*. When a sequence is traversed, the sequence support *supS* of that sequence is obtained. Then, the sequence support of each sequence in the sequence database is multiplied by the sequence's preset vertical weight value, and then summed to obtain the database support *SUPD(P)* of the corresponding candidate pattern *P*. The preset vertical weight value can be obtained from the set of vertical utility values and is not limited thereto.
[0136] Step 206: If the database support of the corresponding candidate pattern is greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined as a high support pattern, and a high support pattern set is generated based on the high support pattern; wherein, the second length of the high support pattern set is equal to the first length of the candidate pattern set.
[0137] In one example, step 206 includes: if the database support of the corresponding candidate pattern is determined to be greater than or equal to a preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and the high support pattern is added to a second preset high support pattern set of length i+1.
[0138] For example, the electronic device determines whether the database support SUPD(P) of the corresponding candidate pattern P is greater than or equal to a preset minimum support threshold minsup. If it is determined that the database support SUPD(P) of the corresponding candidate pattern is greater than or equal to the preset minimum support threshold minsup, then the corresponding candidate pattern is determined to be a high support pattern, and the high support pattern is added to a preset high support pattern set of second length i+1, thus obtaining a high support pattern set of second length i+1. Here, the second length i+1 of the high support pattern set is equal to the actual length i+1 of the high support pattern, and the actual length i+1 of the high support pattern is equal to the third length i+1 of the candidate pattern; that is, the second length of the high support pattern set is equal to the first length i+1 of the candidate pattern set.
[0139] Step 207: If it is determined that the high support pattern set is empty, or the second length is greater than the preset maximum pattern length, then stop high support pattern mining; and when the second length is greater than the preset maximum pattern length, output the high support patterns in the high support pattern set whose pattern length is within the preset pattern length range.
[0140] For example, the electronic device determines whether the high support pattern set of length i+1 is empty, or whether the second length i+1 is greater than the preset maximum pattern length maxlen. When it is empty, or the second length i+1 is greater than the preset maximum pattern length maxlen, it indicates that the high support pattern mining has been completed under the preset mining conditions, and the high support pattern mining stops. As (i+1) increases, many high support patterns of different lengths will be added to the high support pattern set. The output pattern set contains high support patterns whose lengths are within the preset pattern length range, which is between the shortest pattern length minlen and the longest pattern length maxlen.
[0141] Step 208: If it is determined that the high support pattern set is not empty, or the second length is less than or equal to the preset maximum pattern length, repeat the following steps until the output high support patterns whose pattern lengths are within the preset pattern length range.
[0142] For example, if it is determined that the high support pattern set with a second length of (i+1) is not empty, or the second length is less than or equal to the preset maximum pattern length, the following steps are repeated until the output high support patterns in the high support pattern set have a pattern length within the preset pattern length range.
[0143] Step 209: Extract multiple high-support patterns from the high-support pattern set in sequence.
[0144] For example, the electronic device sequentially retrieves multiple high-support patterns from the high-support pattern set. The following description uses one of the retrieved high-support patterns, Pa, as an example.
[0145] Step 210: Determine the prefix and suffix of each high-support pattern among multiple high-support patterns.
[0146] For example, the electronic device calculates the prefix and suffix of each high-support pattern, i.e., determines the suffix (Pa) of the high-support pattern Pa, in order to generate new candidate patterns based on the prefix and suffix of the high-support patterns.
[0147] It should be noted that during the generation of candidate patterns, pattern P = p0p1...p m-1 prefix(P) is the prefix of pattern P, excluding the last subpattern p of pattern P. m-1 The remaining part is called the prefix of pattern P, i.e., prefix(P) = p0p1...p m-2 ; suffix(P) is the suffix of pattern P. The part remaining after removing the first subpattern p0 of pattern P is called the suffix of pattern P, that is, suffix(P) = p1...p m-2 p m-1 When there are two high-support patterns P and R, both of length (i+1), and the suffix of high-support pattern P is equal to the prefix of high-support pattern R, then high-support pattern P and high-support pattern R are concatenated using pattern concatenation to form a pattern T of length (i+1)+1, i.e., suffix(P) = p1p2...p i-1 =prefix(R)=r0r1...r i-2 When the time is right, generate a new candidate pattern of length (i+1)+1. , or equivalent to .
[0148] Step 211: For each high support pattern, traverse and search for other high support patterns besides the current high support pattern in a preset order from left to right. If a prefix of another high support pattern with the same suffix as the current high support pattern is found, then concatenate the current high support pattern with the other high support patterns to obtain a third candidate pattern with a length of i+2.
[0149] For example, for each high-support pattern, taking a high-support pattern Pa as an example, the electronic device searches from left to right for other high-support patterns Pb that satisfy the condition suffix(Pa) = prefix(Pb) among other high-support patterns besides the current high-support pattern Pa. When it is determined that there is another high-support pattern Pb that satisfies the condition suffix(Pa) = prefix(Pb), the high-support pattern Pa is concatenated with the other high-support patterns Pb to generate a third candidate pattern of length i+2. For all patterns Pb in the high support pattern set that satisfy the condition suffix(Pa) = prefix(Pb), concatenate them. Repeat the above steps for all high support patterns in the high support pattern set until the last high support pattern is concatenated, thereby generating a candidate pattern set of length i+2.
[0150] For example, during pattern concatenation, the high-support pattern set includes the patterns FEEC, EEEC, and FEEE. This step involves checking that the prefixes and suffixes of each pair of high-support patterns are equal before concatenating them. Each concatenation increments the pattern length by 1, resulting in a pattern of length i+1: FEEC's prefix and suffix are FEE and EEC; EEEC's prefix and suffix are EEE and EEC; and FEEE's prefix and suffix are FEE and EEE. Since the prefix EEE of EEEC and the suffix EEE of FEEE are equal, the patterns are concatenated into a new pattern, FEEEC. Furthermore, patterns of length i can be concatenated into patterns of length i+n, where n is not necessarily 1. For example, EEEC and FEEE can be concatenated into FEEEC, FEEEEC, and FEEEEEC, thus accelerating the generation of candidate patterns.
[0151] Step 212: Add the third candidate pattern of length i+2 to the first candidate pattern set of length i+2, and perform the step of determining the candidate pattern with a minimum support threshold greater than or equal to the preset minimum support threshold among the multiple candidate patterns in the candidate pattern set based on multiple sequences in the sequence database.
[0152] For example, the electronic device adds the third candidate pattern T of length i+2 to the first candidate pattern set of length i+2, and repeats step 203 to obtain a second high support pattern set of length i+2. If it is determined that the high support pattern set is empty, or the second length is greater than the preset maximum pattern length, then the high support pattern mining stops; if it is determined that the high support pattern set is not empty, or the second length is less than or equal to the preset maximum pattern length, then step 209 is repeated.
[0153] Step 213: Issue a prompt message; the prompt message is used to indicate that the high support pattern mining is complete.
[0154] For example, the electronic device issues a notification message; wherein the notification message is used to indicate that the high support pattern mining is complete. The notification message can be an audio prompt, a pop-up window, or other similar means, and is not limited thereto.
[0155] In this embodiment, an analysis and processing request is obtained; the analysis and processing request includes a sequence database identifier; and according to the analysis and processing request, the sequence database corresponding to the sequence database identifier is read in. A candidate pattern set is generated; the candidate pattern set includes multiple candidate patterns, and the candidate pattern set has a preset first length. Multiple candidate patterns in the candidate pattern set are read in sequence. For each candidate pattern, according to preset mining condition information, the occurrence corresponding to the candidate pattern is searched in each sequence of multiple sequences in the sequence database. Based on the occurrence corresponding to the candidate pattern, the database support of the corresponding candidate pattern is determined. If the database support of the corresponding candidate pattern is determined to be greater than or equal to a preset minimum support threshold, the corresponding candidate pattern is determined to be a high support pattern, and a high support pattern set is generated based on the high support pattern; wherein the second length of the high support pattern set is equal to the first length of the candidate pattern set. If the high support pattern set is determined to be empty, or the second length is greater than a preset maximum pattern length, high support pattern mining is stopped; and when the second length is greater than the preset maximum pattern length, high support patterns in the high support pattern set whose pattern length is within a preset pattern length range are output. If the high support pattern set is determined to be non-empty, or the second length is less than or equal to the preset maximum pattern length, repeat the following steps until the output high support pattern set contains high support patterns whose pattern lengths fall within the preset pattern length range. Sequentially extract multiple high support patterns from the high support pattern set. Determine the prefix and suffix of each high support pattern. For each high support pattern, traverse and search for other high support patterns besides the current one in a preset left-to-right order. If a prefix of another high support pattern with a suffix equal to the current high support pattern is found, concatenate the current high support pattern with the other high support patterns to obtain a third candidate pattern of length i+2. Add the third candidate pattern of length i+2 to the first candidate pattern set of length i+2, and perform the step of determining candidate patterns with a support greater than or equal to the preset minimum support threshold from multiple sequences in the sequence database. Issue a prompt message; the prompt message indicates that high support pattern mining is complete. Therefore, by generating a high-support pattern set through the candidate pattern set, which includes a large number of candidate patterns, the richness of the critical path data used in the pattern mining process is increased, thus solving the technical problem of low accuracy in pattern mining of critical paths in processor microstructure correlation graphs.
[0156] Furthermore, this application considers scenarios where utility values are not fixed and segment weights (vertical weight values) are used, and redefines the calculation method for database support. Based on the requirements of critical path patterns, gaps are not considered, and gapless pattern definitions are adopted, thus simplifying the calculation process of finding patterns in the sequence. Only continuous searching is required after the first character of the matching pattern, which greatly reduces the mining time.
[0157] Compared to other performance analysis techniques, this application also addresses the premise that existing performance analysis methods rely on the designer's experience. It mines the critical event correlation chains that lead to performance bottlenecks from the critical path of the correlation graph, thereby obtaining more knowledge that may be used for performance optimization. This provides more unknown behavioral patterns for performance optimization and avoids missing the optimization of unknown behavioral patterns due to the user's knowledge limitations. For the data analysis process, this application addresses the premise that the item utility value is fixed in existing utility sequence pattern mining algorithms, and realizes high average utility sequence pattern mining for variable utility value sequences.
[0158] This application represents the critical path data analysis problem of correlation graphs as a sequence pattern mining problem based on variable utility values; and based on the characteristics of utility value changes in critical path sequence data of correlation graphs, it implements high average utility sequence pattern mining for sequences with variable utility values. When performing high average utility sequence pattern mining, considering the characteristics of utility value changes in critical path sequence data of correlation graphs, it proposes to calculate the pattern utility value using a weighted sum method, supplementing the original utility sequence pattern mining problem that only considered the scenario of fixed item utility values. For the new scenario where items have variable utility values, it improves the high average utility sequence pattern mining method under one-time / non-overlapping conditions.
[0159] Figure 3 A schematic diagram of a pattern mining device for critical path data provided in this application embodiment is shown below. Figure 3 As shown, the device includes:
[0160] The acquisition unit 31 is used to acquire an analysis and processing request; wherein, the analysis and processing request includes a sequence database identifier.
[0161] The read-in unit 32 is used to read in the sequence database corresponding to the sequence database identifier according to the analysis and processing request.
[0162] The first generation unit 33 is used to generate a candidate pattern set; wherein the candidate pattern set includes multiple candidate patterns and the candidate pattern set has a preset first length.
[0163] The second generation unit 34 is used to determine, based on multiple sequences in the sequence database, multiple candidate patterns in the candidate pattern set that are greater than or equal to a preset minimum support threshold; and to generate a high support pattern set by taking the candidate patterns that are greater than or equal to the preset minimum support threshold as high support patterns; wherein, the second length of the high support pattern set is equal to the first length of the candidate pattern set.
[0164] Output unit 35 is used to stop high support pattern mining if it is determined that the high support pattern set is empty, or the second length is greater than the preset maximum pattern length; and when the second length is greater than the preset maximum pattern length, output the high support patterns in the high support pattern set whose pattern length is within the preset pattern length range; wherein, the high support pattern set represents the critical path data of the processor microstructure correlation graph.
[0165] The apparatus in this embodiment can execute the technical solutions in the above method. Its specific implementation process and technical principles are the same, and will not be repeated here.
[0166] Figure 4 This is a schematic diagram of another critical path data pattern mining device provided in an embodiment of this application. Figure 3 Based on the illustrated embodiments, as Figure 4 As shown, the second generation unit 34 includes:
[0167] The read-in module 341 is used to read in multiple candidate patterns from the candidate pattern set in sequence.
[0168] The search module 342 is used to search for the occurrence corresponding to each candidate pattern in each sequence of multiple sequences in the sequence database according to preset mining conditions.
[0169] The determination module 343 is used to determine the database support of the corresponding candidate pattern based on the occurrence corresponding to the candidate pattern.
[0170] The generation module 344 is used to determine the corresponding candidate pattern as a high support pattern if the database support of the corresponding candidate pattern is greater than or equal to the preset minimum support threshold, and to generate a high support pattern set based on the high support pattern.
[0171] In one example, the first length of the candidate pattern set is i+1, the third length of each candidate pattern is m, where the initial value of i is 1, and the third length m = i+1; the fourth length of the sequence in the sequence database is n.
[0172] In one example, module 342 is searched, including:
[0173] The matching submodule 3421 is used to match each character from the first character to the (n-m+1)th character of each sequence in the sequence database with the corresponding characters in the candidate pattern for each candidate pattern of length m, and to obtain the matching result information.
[0174] The determination submodule 3422 is used to determine the occurrence of the candidate pattern if the characters in the corresponding order of the determined matching result information are all the same.
[0175] The search submodule 3423 is used to continue searching for occurrences that match the candidate pattern in the sequence based on preset mining conditions, until the last character in the sequence is found, at which point the search stops.
[0176] In one example, the preset mining conditions include one-time conditions or non-overlapping conditions; where,
[0177] The sequence includes multiple edges used to indicate the critical path. The one-time condition indicates that any edge in the critical path represented by the sequence can be used at most once. The non-overlapping condition indicates that the edge at the same position in the critical path represented by the sequence cannot be reused at the same position in the candidate pattern, but can be reused at different positions in the candidate pattern.
[0178] In one example, module 343 is identified as including:
[0179] The first accumulation submodule 3431 is used to determine the average utility value of the candidate pattern in each occurrence for each sequence; and to accumulate the average utility value in each occurrence to obtain the sequence support of the sequence.
[0180] The second accumulation submodule 3432 is used to multiply the sequence support of each sequence by a preset vertical weight value to obtain multiple products, and to accumulate the multiple products to generate the database support of the corresponding candidate patterns.
[0181] In one example, module 344 is generated, specifically for:
[0182] If the database support of the corresponding candidate pattern is determined to be greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and the high support pattern is added to the second preset high support pattern set with a length of i+1.
[0183] In one example, the device also includes:
[0184] The first determining unit 41 is used to repeat the following steps if it is determined that the high support pattern set is not empty, or the second length is less than or equal to the preset maximum pattern length, until the output high support patterns whose pattern lengths are located within the preset pattern length range.
[0185] Extraction unit 42 is used to extract multiple high-support patterns from the high-support pattern set in sequence;
[0186] The second determining unit 43 is used to determine the prefix and suffix of each high support pattern among multiple high support patterns.
[0187] The splicing unit 44 is used to search for other high support patterns besides the current high support pattern in a preset order from left to right for each high support pattern. If a prefix of another high support pattern with the same suffix as the current high support pattern is found, the current high support pattern and other high support patterns are spliced together to obtain a third candidate pattern with a length of i+2.
[0188] Adding unit 45 is used to add the third candidate pattern of length i+2 to the first candidate pattern set of length i+2, and to perform the step of determining the candidate pattern with a minimum support threshold greater than or equal to the preset minimum support threshold among the multiple candidate patterns in the candidate pattern set based on multiple sequences in the sequence database.
[0189] In one example, the device also includes:
[0190] The prompting unit 46 is used to issue a prompting message; wherein the prompting message is used to indicate that the high support pattern mining is complete.
[0191] The apparatus in this embodiment can execute the technical solutions in the above method. Its specific implementation process and technical principles are the same, and will not be repeated here.
[0192] Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application, such as... Figure 5 As shown, the electronic device includes: a memory 51 and a processor 52.
[0193] The memory 51 stores a computer program that can run on the processor 52.
[0194] Processor 52 is configured to perform the methods provided in the embodiments described above.
[0195] The electronic device also includes a receiver 53 and a transmitter 54. The receiver 53 is used to receive instructions and data sent by an external device, and the transmitter 54 is used to send instructions and data to an external device.
[0196] Figure 6This is a block diagram of an electronic device provided in an embodiment of this application. The electronic device may be a mobile phone, computer, digital broadcasting terminal, messaging device, game console, tablet device, medical device, fitness equipment, personal digital assistant, etc.
[0197] The device 600 may include one or more of the following components: a processing component 602, a memory 604, a power supply component 606, a multimedia component 608, an audio component 610, an input / output (I / O) interface 612, a sensor component 614, and a communication component 616.
[0198] Processing component 602 typically controls the overall operation of device 600, such as operations associated with display, telephone calls, data communication, camera operation, and recording. Processing component 602 may include one or more processors 620 to execute instructions to perform all or part of the steps of the methods described above. Furthermore, processing component 602 may include one or more modules to facilitate interaction between processing component 602 and other components. For example, processing component 602 may include a multimedia module to facilitate interaction between multimedia component 608 and processing component 602.
[0199] Memory 604 is configured to store various types of data to support the operation of device 600. Examples of such data include instructions for any application or method operating on device 600, contact data, phonebook data, messages, pictures, videos, etc. Memory 604 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.
[0200] Power supply component 606 provides power to the various components of device 600. Power supply component 606 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to device 600.
[0201] Multimedia component 608 includes a screen that provides an output interface between device 600 and the user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touchscreen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors may sense not only the boundaries of touch or swipe actions but also the duration and pressure associated with the touch or swipe operation. In some embodiments, multimedia component 608 includes a front-facing camera and / or a rear-facing camera. When device 600 is in an operating mode, such as a shooting mode or a video mode, the front-facing camera and / or rear-facing camera may receive external multimedia data. Each front-facing camera and rear-facing camera may be a fixed optical lens system or have focal length and optical zoom capabilities.
[0202] Audio component 610 is configured to output and / or input audio signals. For example, audio component 610 includes a microphone (MIC) configured to receive external audio signals when device 600 is in an operating mode, such as call mode, recording mode, and voice recognition mode. The received audio signals may be further stored in memory 604 or transmitted via communication component 616. In some embodiments, audio component 610 also includes a speaker for outputting audio signals.
[0203] I / O interface 612 provides an interface between processing component 602 and peripheral interface modules, such as keyboards, click wheels, buttons, etc. These buttons may include, but are not limited to, home buttons, volume buttons, start buttons, and lock buttons.
[0204] Sensor assembly 614 includes one or more sensors for providing state assessments of various aspects of device 600. For example, sensor assembly 614 may detect the on / off state of device 600, the relative positioning of components such as the display and keypad of device 600, changes in the position of device 600 or a component of device 600, the presence or absence of user contact with device 600, the orientation or acceleration / deceleration of device 600, and temperature changes of device 600. Sensor assembly 614 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact. Sensor assembly 614 may also include a light sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, sensor assembly 614 may also include an accelerometer, a gyroscope, a magnetometer, a pressure sensor, or a temperature sensor.
[0205] Communication component 616 is configured to facilitate wired or wireless communication between device 600 and other devices. Device 600 can access wireless networks based on communication standards, such as WiFi, 2G, or 3G, or combinations thereof. In one exemplary embodiment, communication component 616 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, communication component 616 also includes a near-field communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, Infrared Data Association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
[0206] In an exemplary embodiment, the apparatus 600 may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to perform the methods described above.
[0207] In an exemplary embodiment, a non-transitory computer-readable storage medium including instructions is also provided, such as a memory 604 including instructions, which can be executed by a processor 620 of the device 600 to perform the above-described method. For example, the non-transitory computer-readable storage medium may be a ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage device, etc.
[0208] This application also provides a non-transitory computer-readable storage medium, which, when the instructions in the storage medium are executed by the processor of an electronic device, enables the electronic device to perform the methods provided in the above embodiments.
[0209] This application also provides a computer program product, which includes: a computer program stored in a readable storage medium, at least one processor of an electronic device can read the computer program from the readable storage medium, and the at least one processor executes the computer program to cause the electronic device to perform the solution provided in any of the above embodiments.
[0210] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the following claims.
[0211] It should be understood that this disclosure is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this disclosure is limited only by the appended claims.
Claims
1. A method for pattern mining of critical path data, characterized in that, include: Obtain an analysis and processing request; wherein the analysis and processing request includes a sequence database identifier; and read in the sequence database corresponding to the sequence database identifier according to the analysis and processing request; Generate a candidate pattern set; wherein the candidate pattern set includes multiple candidate patterns, and the candidate pattern set has a preset first length; Based on multiple sequences in the sequence database, among multiple candidate patterns in the candidate pattern set, candidate patterns with a minimum support threshold greater than or equal to a preset threshold are determined; and the candidate patterns with a minimum support threshold greater than or equal to the preset threshold are used as high support patterns to generate a high support pattern set; wherein, the second length of the high support pattern set is equal to the first length of the candidate pattern set. If the high support pattern set is determined to be empty, or if the second length is greater than the preset maximum pattern length, then high support pattern mining is stopped; and when the second length is greater than the preset maximum pattern length, high support patterns whose pattern lengths are within the preset pattern length range in the high support pattern set are output; wherein, the high support pattern set represents the critical path data of the processor microstructure correlation graph.
2. The method according to claim 1, characterized in that, Based on multiple sequences in the sequence database, among multiple candidate patterns in the candidate pattern set, candidate patterns with a minimum support threshold greater than or equal to a preset threshold are determined. Candidate patterns with a support level greater than or equal to a preset minimum support threshold are designated as high-support patterns, generating a high-support pattern set, including: Read in multiple candidate patterns from the candidate pattern set in sequence; For each candidate pattern, based on preset mining conditions, the occurrence corresponding to the candidate pattern is searched for in each of the multiple sequences in the sequence database. Based on the occurrence corresponding to the candidate pattern, determine the database support degree of the corresponding candidate pattern; If the database support of the corresponding candidate pattern is determined to be greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and a high support pattern set is generated based on the high support pattern.
3. The method according to claim 2, characterized in that, The first length of the candidate pattern set is i+1, and the third length of each candidate pattern is m, where the initial value of i is 1, and the third length m = i+1; the fourth length of the sequences in the sequence database is n.
4. The method according to claim 3, characterized in that, For each candidate pattern, based on preset mining conditions, the process of searching for the occurrence corresponding to the candidate pattern in each of multiple sequences in the sequence database includes: For each candidate pattern of length m, the first character of each sequence in the sequence database is used as the search starting point, and the (n-m+1)th character of each sequence is used as the end point. Each character from the first character to the (n-m+1)th character is matched with the characters in the corresponding order in the candidate pattern to obtain the matching result information. If it is determined that the characters representing the corresponding order in the matching result information are all the same, then the string composed of the first character to the (n-m+1)th character in the sequence is determined to be the occurrence corresponding to the candidate pattern; Based on preset mining conditions, the search continues to look for occurrences that match the candidate pattern in the sequence until the last character in the sequence is found, at which point the search stops.
5. The method according to claim 4, characterized in that, The preset mining condition information includes one-time conditions or non-overlapping conditions; wherein, The sequence includes multiple edges for indicating the critical path. The one-time condition indicates that any edge in the critical path represented by the sequence can be used at most once. The non-overlapping condition indicates that an edge at the same position in the critical path represented by the sequence cannot be reused at the same position in the candidate pattern, but can be reused at different positions in the candidate pattern.
6. The method according to claim 2, characterized in that, The step of determining the database support degree of the corresponding candidate pattern based on the occurrence of the candidate pattern includes: For each sequence, the average utility value of the candidate pattern at each occurrence is determined; and the average utility values at each occurrence are accumulated to obtain the sequence support of the sequence. The sequence support of each sequence is multiplied by a preset vertical weight value to obtain multiple products. These multiple products are then summed to generate the database support of the corresponding candidate pattern.
7. The method according to claim 4, characterized in that, If the database support of the corresponding candidate pattern is determined to be greater than or equal to a preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and a high support pattern set is generated based on the high support patterns, including: If the database support of the corresponding candidate pattern is determined to be greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and the high support pattern is added to the second preset high support pattern set with a length of i+1.
8. The method according to claim 7, characterized in that, The method further includes: If it is determined that the high support pattern set is not empty, or the second length is less than or equal to the preset maximum pattern length, then repeat the following steps until the high support pattern in the high support pattern set is output as a high support pattern within the preset pattern length range. Extract multiple high-support patterns from the set of high-support patterns in sequence; Determine the prefix and suffix of each of the multiple high-support patterns; For each high support pattern, in a preset order from left to right, traverse and search for other high support patterns besides the current high support pattern. If a prefix of another high support pattern with the same suffix as the current high support pattern is found, then the current high support pattern and the other high support pattern are concatenated to obtain a third candidate pattern with a length of i+2. The third candidate pattern of length i+2 is added to the first candidate pattern set of length i+2, and the step of determining a candidate pattern with a minimum support threshold greater than or equal to a preset threshold is performed based on multiple sequences in the sequence database and multiple candidate patterns in the candidate pattern set.
9. The method according to any one of claims 1-8, characterized in that, The method further includes: A prompt message is issued; wherein the prompt message is used to indicate that the high support pattern mining is complete.
10. A pattern mining device for critical path data, characterized in that, include: An acquisition unit is used to acquire an analysis and processing request; wherein the analysis and processing request includes a sequence database identifier; The read-in unit is used to read in the sequence database corresponding to the sequence database identifier according to the analysis and processing request; The first generation unit is used to generate a candidate pattern set; wherein the candidate pattern set includes multiple candidate patterns, and the candidate pattern set has a preset first length; The second generation unit is configured to, based on multiple sequences in the sequence database, determine candidate patterns that are greater than or equal to a preset minimum support threshold from among multiple candidate patterns in the candidate pattern set; and generate a high support pattern set by taking the candidate patterns that are greater than or equal to the preset minimum support threshold as high support patterns; wherein, the second length of the high support pattern set is equal to the first length of the candidate pattern set. The output unit is configured to stop high support pattern mining if it is determined that the high support pattern set is empty, or if the second length is greater than the preset maximum pattern length; and when the second length is greater than the preset maximum pattern length, output the high support patterns in the high support pattern set whose pattern length is within the preset pattern length range; wherein the high support pattern set represents the critical path data of the processor microstructure correlation graph.
11. The apparatus according to claim 10, characterized in that, The second generation unit includes: The read-in module is used to sequentially read in multiple candidate patterns from the candidate pattern set; The search module is used to search for the occurrence corresponding to each candidate pattern in each of the multiple sequences in the sequence database, based on preset mining conditions. The determining module is used to determine the database support degree of the corresponding candidate pattern based on the occurrence corresponding to the candidate pattern; The generation module is used to determine the corresponding candidate pattern as a high-support pattern if the database support of the corresponding candidate pattern is greater than or equal to a preset minimum support threshold, and to generate a high-support pattern set based on the high-support pattern.
12. The apparatus according to claim 11, characterized in that, The first length of the candidate pattern set is i+1, and the third length of each candidate pattern is m, where the initial value of i is 1, and the third length m = i+1; the fourth length of the sequences in the sequence database is n.
13. The apparatus according to claim 12, characterized in that, The search module includes: The matching submodule is used to match each character from the first character to the (n-m+1)th character of each sequence in the sequence database with the corresponding characters in the candidate pattern for each candidate pattern of length m, and to obtain matching result information. The determination submodule is used to determine, if the characters representing the corresponding order in the matching result information are all the same, that the string composed of the first character to the (n-m+1)th character in the sequence is the occurrence corresponding to the candidate pattern; The search submodule is used to continue searching for occurrences that match the candidate pattern in the sequence based on preset mining conditions, until the last character in the sequence is found, at which point the search stops.
14. The apparatus according to claim 13, characterized in that, The preset mining condition information includes one-time conditions or non-overlapping conditions; wherein, The sequence includes multiple edges for indicating the critical path. The one-time condition indicates that any edge in the critical path represented by the sequence can be used at most once. The non-overlapping condition indicates that an edge at the same position in the critical path represented by the sequence cannot be reused at the same position in the candidate pattern, but can be reused at different positions in the candidate pattern.
15. The apparatus according to claim 11, characterized in that, The determining module includes: The first accumulation submodule is used to determine the average utility value of the candidate pattern in each occurrence for each sequence; and to accumulate the average utility values in each occurrence to obtain the sequence support of the sequence. The second accumulation submodule is used to multiply the sequence support of each sequence by a preset vertical weight value to obtain multiple products, and to accumulate the multiple products to generate the database support of the corresponding candidate pattern.
16. The apparatus according to claim 13, characterized in that, The generation module is specifically used for: If the database support of the corresponding candidate pattern is determined to be greater than or equal to the preset minimum support threshold, then the corresponding candidate pattern is determined to be a high support pattern, and the high support pattern is added to the second preset high support pattern set with a length of i+1.
17. The apparatus according to claim 16, characterized in that, The device further includes: The first determining unit is configured to repeat the following steps if it is determined that the high support pattern set is not empty, or the second length is less than or equal to the preset maximum pattern length, until the high support pattern in the high support pattern set is output as a high support pattern within the preset pattern length range. The extraction unit is used to sequentially extract multiple high-support patterns from the high-support pattern set; The second determining unit is used to determine the prefix and suffix of each of the multiple high-support patterns; The splicing unit is used to search for other high support patterns besides the current high support pattern in a preset order from left to right for each high support pattern. If a prefix of another high support pattern with the same suffix as the current high support pattern is found, the current high support pattern and the other high support pattern are spliced together to obtain a third candidate pattern with a length of i+2. The addition unit is used to add the third candidate pattern of length i+2 to the first candidate pattern set of length i+2, and to perform the step of determining a candidate pattern with a minimum support threshold greater than or equal to a preset threshold from among the multiple candidate patterns in the candidate pattern set based on multiple sequences in the sequence database.
18. The apparatus according to any one of claims 10-17, characterized in that, The device further includes: A prompting unit is used to issue a prompting message; wherein the prompting message is used to indicate that the high support pattern mining is complete.
19. An electronic device, characterized in that, The method includes a memory and a processor, wherein the memory stores a computer program that can run on the processor, and the processor executes the computer program to implement the method of any one of claims 1-9.
20. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any one of claims 1-9.
21. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method of any one of claims 1-9.
