Embodiments generally relate to automatic phase detection. More particularly, embodiments relate to automatic phase detection to characterize workload phases.
Application or system behavior may be broken down into segments that exhibit stable behavior; each stable segment may be referred to as a phase. Manual phase detection may be time consuming, costly and/or impractical in real-time applications.
The various advantages of the embodiments will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which:
Turning now to
A filter 140 may analyze the prediction error function or any other value that indicates a level of change to identify a potential phase marker to indicate a beginning or end of a process phase. One technique for analysis is to compare prediction errors or other values to a threshold determined in the runtime. The filter 140 may include a stabilization state machine 145 that may determine whether a phase has started. An extractor 150 may obtain phase properties for a phase delineated by at least a beginning phase marker. A predictor 160 may determine an upcoming phase or estimate an ongoing phase from the obtained phase properties. Optional cluster logic 170 may perform clustering to group recurring phases.
In use, the system of
A more detailed method 300 for the system
The m is the number of autoregressive terms. The n (n=pq) is the total number of exogenous input terms and p represents the number of exogenous input signals with q terms each. The r is the number of moving average terms. The L is a lag operator defined in (2). The d is the number of initial differencing on the input signals that represents the integrated part of ARIMAX model. For example, if d=1 then xt=Xt−Xt-1. The coefficients in (1) (α,β,η) are determined in runtime through an algorithm, such as recursive least squares or a Kalman filter. One of the metrics that is being modeled is Yt and this is done by first modeling the initially d-times differenced values of Yt (i.e., yt) with respect to its previous values (e.g., yt-i) and p other metrics (also initially d-times differenced i.e., xj,t) at the current time and previous q−1 samples (i.e., xj,t-i) and the error of this time series in the last r time samples (i.e., εt-i). The error of this adaptive time series (i.e., εt) is the prediction error that may be output from illustrated block 310.
The prediction error may be fed to a modeling error distribution observer in block 320. Based on the distribution of this error the spikes/significant values are detected over time using an obtained threshold from the distribution, such as standard error of εt over time. Once the significant spikes in the error are identified they may be used as candidates for behavior change markers to refer to a start and an end of a phase. Not all of the candidates, however, are marking a start or an end of a phase as during a transition period. The period, and their associated samples, between a stop marker and the following start marker is referred to as a transition period. In a transition period, stable behavior is not established and a series of markers will be generated. It is noted that not all of the original samples will be a part of a phase or will be generating a significant change marker. For example, a sample that is not a significant change marker might appear immediately between two samples that are significant change markers. Therefore, such samples, a small portion of the total samples, are discarded in the stabilization period in the sense that they will not be a part of any stable phase and their statistics will not be extracted.
A more detailed explanation of blocks 310-330 is depicted in the flowchart of
An illustration of stop and start markers is depicted in
Returning to the explanation of
This successful waiting time is an overhead in the phase detection. In one embodiment this overhead is mitigated by using the prediction of upcoming phases that is outputted by block 160 of
The start and stop markers identified by the filtering of block 330 are then fed to illustrated block 340 which processes the segments between markers at a higher level of abstraction and extracts properties (e.g., statistics) of a marked segment using extractor 150 of
This vector of properties for each phase/segment is outputted to illustrated block 350 where vectors are clustered into groups using cluster logic 170 of
As an example, a visual representation of some of the clustering results of block 350 is shown in
The obtained labels from application phases and their occurrence patterns are then fed into the predictor (element 160 of
Alternatively, once a new phase is established, the partial statistics obtained before the phase stop marker has been reached, as well as looking up the partial statistics in the clustered group of property vectors may be used to estimate the full property vector of current phase in illustrated block 370 of
Example 1 may include a system including a performance monitor to output performance monitoring signals, a significant change identifier to receive input performance monitoring signals and output a prediction error function, a filter to analyze the prediction error function to identify a potential phase marker to indicate a beginning or end of a process phase, an extractor to obtain phase properties for a phase delineated by at least a beginning phase marker, and a predictor to determine an upcoming phase or estimate an ongoing phase from the obtained phase properties.
Example 2 may include the system of example 1, wherein the significant change identifier includes logic having a multivariate model predicting a signal from the input performance monitoring signals.
Example 3 may include the system of examples 1 or 2, wherein the filter includes logic to analyze a prediction error function on the basis of outlier errors.
Example 4 may include the system of examples 1 or 2, wherein the extractor includes logic to calculate a vector of properties of the phase.
Example 5 may include the system of examples 1 or 2, wherein a complete phase is to be delineated by a beginning marker and an end marker.
Example 6 may include the system of examples 1 or 2, further comprising logic to perform clustering to group recurring phases.
Example 7 may include an apparatus to characterize workload phases including a significant change identifier to output a prediction error function from input system characteristics a filter to analyze the prediction error function to identify a potential phase marker to indicate a beginning or end of a process phase, an extractor to obtain phase properties for a phase delineated by at least a beginning phase marker, and a predictor to determine an upcoming phase or estimate an ongoing phase from the obtained phase properties.
Example 8 may include the apparatus of example 7, wherein the significant change identifier includes logic having a multivariate model predicting a signal from input system characteristics.
Example 9 may include the apparatus of examples 7 or 8, wherein the filter includes logic to analyze the prediction error function on the basis of outlier errors.
Example 10 may include the apparatus of examples 7 or 8, wherein the extractor includes logic to calculate a vector of properties of the phase.
Example 11 may include the apparatus of examples 7 or 8, wherein a complete phase is to be delineated by a beginning marker and an end marker.
Example 12 may include the apparatus of examples 7 or 8, further comprising logic to perform clustering to group recurring phases.
Example 13 may include a method to characterize workload phases of a process including inputting one or more signals indicating system characteristics to a significant change identifier to output a prediction error function, filtering the prediction error function to identify a potential phase marker to indicate a beginning or an end of a process phase, extracting phase properties for a phase delineated by at least a beginning phase marker, and predicting an upcoming phase or estimating an ongoing phase from the extracted phase properties.
Example 14 may include the method of example 13, further including clustering to group recurring phases.
Example 15 may include the method of examples 13 or 14, further including generating a phase vector from the extracted phase properties.
Example 16 may include the method of example 15, wherein predicting a future phase further includes generating a history of phase property vectors and predicting a future phase based on a current phase and the generated history.
Example 17 may include the method of examples 13 or 14, wherein the filtering identifies a potential phase marker based on the prediction error function being an outlier error.
Example 18 may include the method of examples 13 or 14, wherein the significant change identifier includes logic having a multivariate model predicting a signal from input system characteristics.
Example 19 may include at least one computer readable storage medium including a set of instructions which, when executed by a computing device, cause the computing device to input one or more signals indicating system characteristics to a significant change identifier to output a prediction error function, filter the prediction error function to identify a potential phase marker to indicate a beginning or an end of a process phase, extract phase properties for a phase delineated by at least a beginning phase marker, and predict an upcoming phase or estimate an ongoing phase from the extracted phase properties.
Example 20 may include the at least one computer readable storage medium of example 19, wherein the instructions, when executed, cause the computing device to perform clustering to group recurring phases.
Example 21 may include the at least one computer readable storage medium of examples 19 or 20, wherein the instructions, when executed, cause the computing device to generate a phase vector from the extracted phase properties.
Example 22 may include the at least one computer readable storage medium of example 21, wherein predicting a future phase further includes instructions, when executed, that generate a history of phase property vectors and predict a future phase based on a current phase and the generated history.
Example 23 may include the at least one computer readable storage medium of examples 19 or 20, wherein the instructions to filter the prediction error function further include identifying a potential phase marker based on the prediction error function being an outlier error.
Example 24 may include the at least one computer readable storage medium of examples 19 or 20, wherein the significant change identifier includes logic having a multivariate model predicting a signal from input system characteristics.
Example 25 may include an apparatus to characterize workload phases including means for inputting one or more signals indicating system characteristics to a significant change identifier to output a prediction error function, means for filtering the prediction error function to identify a potential phase marker to indicate a beginning or an end of a process phase, means for extracting phase properties for a phase delineated by at least a beginning phase marker, and means for predicting an upcoming phase or estimating an ongoing phase from the extracted phase properties.
Example 26 may include the apparatus of example 25, further including means for clustering to group recurring phases.
Example 27 may include the apparatus of examples 25 or 26, further including means for generating a phase vector from the extracted phase properties.
Example 28 may include the apparatus of example 27, wherein predicting a future phase further includes means for generating a history of phase property vectors and means for predicting a future phase based on a current phase and the generated history.
Example 29 may include the apparatus of examples 25 or 26, wherein the filtering identifies a potential phase marker based on the prediction error function being an outlier error.
Example 30 may include the apparatus of examples 25 or 26, wherein the significant change identifier includes logic having a multivariate model predicting a signal from input system characteristics.
Thus, embodiments described above facilitate automatic inference and characterization of workload phases. This capability can be used in power management systems and processor tracing systems to enable better results. For example, a power management system can use phase characterizations to comprehend and predict how application behavior varies in time and make decisions optimized for better application performance or efficiency. In another example, a processor tracing system can use identification of recurring phase behavior to abbreviate traces into summaries for each phase and significantly reduce the data bandwidth needed for transferring information. Embodiments improve power and performance and observability of the system; Power and performance optimization layers can significantly benefit from the information these embodiments provide. Furthermore, embodiments may be used as a filter (to keep or to avoid) for the type of information with respect to repeating behavior phases for debugging purposes, thus saving bandwidth in debugging subsystems. Furthermore, embodiments can be used as part of runtime malware detection that uses system statistics such as performance monitoring units. Automatic phase detection may be used as a guiding map for a power management system to decide how to manage the power consumption according to the discovered phases. Once a correct decision for a particular phase is realized, the previously obtained optimization decision may be reused and many of the optimization steps to recalculate the same result may be eliminated. This may improve the efficiency of a power management system.
Embodiments are applicable for use with all types of semiconductor integrated circuit (“IC”) chips. Examples of these IC chips include but are not limited to processors, controllers, chipset components, programmable logic arrays (PLAs), memory chips, network chips, systems on chip (SoCs), SSD/NAND controller ASICs, and the like. In addition, in some of the drawings, signal conductor lines are represented with lines. Some may be different, to indicate more constituent signal paths, have a number label, to indicate a number of constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. This, however, should not be construed in a limiting manner. Rather, such added detail may be used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit. Any represented signal lines, whether or not having additional information, may actually comprise one or more signals that may travel in multiple directions and may be implemented with any suitable type of signal scheme, e.g., digital or analog lines implemented with differential pairs, optical fiber lines, and/or single-ended lines.
Example sizes/models/values/ranges may have been given, although embodiments are not limited to the same. As manufacturing techniques (e.g., photolithography) mature over time, it is expected that devices of smaller size could be manufactured. In addition, well known power/ground connections to IC chips and other components may or may not be shown within the figures, for simplicity of illustration and discussion, and so as not to obscure certain aspects of the embodiments. Further, arrangements may be shown in block diagram form in order to avoid obscuring embodiments, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the platform within which the embodiment is to be implemented, i.e., such specifics should be well within purview of one skilled in the art. Where specific details (e.g., circuits) are set forth in order to describe example embodiments, it should be apparent to one skilled in the art that embodiments can be practiced without, or with variation of, these specific details. The description is thus to be regarded as illustrative instead of limiting.
The term “coupled” may be used herein to refer to any type of relationship, direct or indirect, between the components in question, and may apply to electrical, mechanical, fluid, optical, electromagnetic, electromechanical or other connections. In addition, the terms “first”, “second”, etc. may be used herein only to facilitate discussion, and carry no particular temporal or chronological significance unless otherwise indicated.
As used in this application and in the claims, a list of items joined by the term “one or more of” may mean any combination of the listed terms. For example, the phrases “one or more of A, B or C” may mean A, B, C; A and B; A and C; B and C; or A, B and C.
Those skilled in the art will appreciate from the foregoing description that the broad techniques of the embodiments can be implemented in a variety of forms. Therefore, while the embodiments have been described in connection with particular examples thereof, the true scope of the embodiments should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.