Predictive device usage using single time-period data sets and combined modeling

The system dynamically predicts energy requirements in computer systems by analyzing historical data and identifying patterns, thereby optimizing workload planning and resource allocation, reducing costs and environmental impact.

DE102023119873B4Active Publication Date: 2025-03-13HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
DE102023119873
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-03-10
Filing Date
2023-07-26
Publication Date
2025-03-13
Estimated Expiration
2043-07-26

AI Technical Summary

Technical Problem

Existing monitoring systems for computer systems face challenges in efficiently managing energy consumption and predicting energy requirements, leading to potential overloading or underutilization of resources, which can result in inefficiencies and increased costs.

Method used

A system and computer-implemented procedure that uses individual period data records and combined modeling to dynamically predict the energy requirements of devices and data centers based on historical power consumption patterns, identifying motifs in time series data to optimize workload planning and resource allocation.

Benefits of technology

This approach enables more efficient planning of workloads, reduces waste and costs, improves the durability and reliability of devices, and minimizes the CO2 footprint of data centers by optimizing energy usage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A system (100, 1100) that includes the following: one or more processors (104); and a machine-readable storage medium (106, 1004) that stores instructions (1006-1016) which, when executed by the one or more processors (104), cause the system (100, 1100) to: to receive original time series data from a sensor of a monitored device (140); to group the original time series data into a large number of clusters; using an unsupervised machine learning model to combine a subset of the multitude of clusters based on similarities in the data signature to form a multitude of motifs; to generate an initial data definition using the multitude of motifs, wherein the data definition corresponds to a predefined data schema and values ​​for each of the multitude of motifs, wherein the data definition generates a compressed data set that corresponds to the original time series data; to generate a second data definition using a seasonal forecast from the sensor of the monitored device (140); to train a machine learning model to obtain predicted energy consumption data of the monitored device (140) for a future period using the first data definition and the second data definition, both of which are received by the sensor of the monitored device (140); and using the predicted energy consumption data obtained by the trained machine learning model, to plan a workload to be executed on the monitored device (140) during part of the future period, wherein the predicted energy consumption data for that part of the future period are below an energy consumption threshold.
Need to check novelty before this filing date? Find Prior Art

Description

background

[0001] As computer systems become increasingly complex, large, and have greater processing power, the number of processes they execute also increases. Monitoring systems are becoming increasingly popular for managing the applications running on these systems and improving their overall efficiency. However, this is a challenging task. The sheer volume of data generated is difficult to verify. Furthermore, if data verification is outsourced to third parties, they may not have access to all the environmental data generated by the computer system.

[0002] Furthermore, data room infrastructure is often complex and difficult to track. Appropriate energy metrics are needed to determine the energy consumption of a server and, more broadly, a data center. Generating standard input power supplies is all too often a one-size-fits-all strategy that drives up costs and can negatively impact the performance and health of a data center. Such problems require pragmatic solutions that help data center administrators manage their resources more efficiently and reduce the overall costs associated with operating the infrastructure. US 2022 / 0398466A1 describes methods, computer program products, and a system for event prediction using a graph-based machine learning model.US 2021 / 0223780 A1 describes the application of motifs, watermarks, and / or signature inputs to a deep neural network (DNN) to detect errors in underlying hardware and / or software running a DNN. US 2020 / 0012902 A1 describes systems and methods for generating synthetic data. DE 112020000976 T5 describes mechanisms, procedures, and facilities for applying machine learning (ML) techniques for power management at different levels of a power management stack. DE 102019120689 A1 describes an integrated circuit comprising a dynamic power controller with an in-system learning mechanism for setting an operating voltage and / or frequency. One object of the invention is to propose a system and a computer-implemented method for predictive device use using individual period data sets and combined modeling.This problem is solved by a system according to the invention according to claim 1 and a computer-implemented method according to claim 12. Brief description of the drawings

[0003] The present disclosure is described in detail in accordance with one or more different embodiments with reference to the following figures. The figures serve only for illustration and represent only typical or exemplary embodiments. Fig. Figure 1 shows a computer system, a monitored device, and user devices according to some examples of the disclosure. Fig. Figure 2 shows a method for determining a predictive forecast using motives and combined modeling according to some examples from the revelation. Fig. Figure 3 shows an example of time series data according to some examples of disclosure. Fig. Figure 4 shows an example of minima and maxima of the time series data according to some examples from the disclosure. Fig. Figure 5 shows an example of time series data where the outlier has been identified, as described in some of the disclosure examples. Fig. Figure 6 shows an example of time series data with identified clusters according to some examples from the disclosure. Fig. Figure 7 shows a method for generating one or more data clusters in accordance with some examples of the disclosure. Fig. Figure 8 shows an example of a directed graph generated from motives, in accordance with some examples from the Revelation. Fig. Figure 9 is an example of a chart comparing actual time series data with forecast data, in accordance with some examples of the disclosure. Fig. 10 is an example of a computer component that can be used to implement various features of the embodiments described in the present disclosure. Fig. Figure 11 shows a block diagram of an exemplary computer system in which various of the embodiments described here can be implemented.

[0004] The figures are not exhaustive and do not limit the present revelation to the exact form that is disclosed. Detailed description

[0005] Data center administrators regularly face the question of when and how often to introduce a new workload, whether a one-off or on a regular basis. Efficiently planning new workloads can help reduce operating costs by avoiding peak usage and can improve the long-term efficiency of a server and its peripherals. For example, overloading a power supply can lead to overheating, which can impair server performance. Conversely, underutilizing a power supply at certain times can lead to inefficiencies and overloading it at others. Limiting the amount of power supplied can help reduce waste and avoid unnecessary costs in operating a server or data center. Traditional approaches to addressing these issues are less than ideal.In a conventional approach, the user must, for example, provide the server's configuration. This creates a technical problem that limits the dynamic prediction of a server's energy consumption. Thus, power consumption cannot be dynamically predicted based on the server's historical power consumption patterns, and the device's usability is more restricted.

[0006] This disclosure allows the power consumption of each device to be determined and used to assess the device's power requirements. The data can be used to determine the infrastructure capacity required by the device or the data center as a whole. Such forecasting can also help determine the efficiency of a power supply. Due to the features of this disclosure, the device's power demand can be dynamically predicted based on its historical power consumption pattern. Devices that consume more or less power (e.g., than the optimal value) can be flagged to enable appropriate action. The device can be operated more efficiently, which can increase the lifespan and reliability of the device and its components. The overall carbon footprint of the device or the data center can also be reduced.

[0007] Predictive forecasting can be based on identifying a variety of motifs in univariate time-series data and combining modeling of the device or combination of devices in the data center. Motifs represent similarities between multiple clusters in the time-series data, which can be combined based on similarities in the data signature. The combined patterns identified in the similarities between the clusters are called "motifs."

[0008] The identified similarities between related data points across multiple clusters can be determined using various methods. For example, the system can implement an unsupervised machine learning model that is trained to identify a related set of data points from the time series dataset and group them into an initial cluster. In some examples, an unsupervised machine learning model is trained to identify similar data signatures in each cluster and to match the data signatures between clusters to form the multitude of motifs. In each case, the system can extract the motifs from the univariate time series dataset (e.g., using a customized K-means algorithm or another clustering algorithm for extraction).During extraction, similar related data points and data patterns in the univariate time series dataset can be identified and clustered, and the motifs (e.g., representative of repeated patterns and subsequences) are output.

[0009] The multitude of motifs can be used to generate a data definition, a motif sequence graph, a directed graph, or other combinations of data points. These data points can be combined with other data points generated by a second machine learning model through a summation process. The output of the summation process can be used to predict the device usage of a monitored device in a data center or for other predictions.

[0010] The technical benefits are realized throughout the entire application. The systems described here can schedule existing workloads more efficiently or introduce new workloads at more optimal times. This can, for example, prevent device overload that could lead to overheating, or identify devices in the data center that consume less power, enabling appropriate action to be taken. Overall, this results in cost savings and improved device health and lifespan. The solutions in this disclosure can be implemented in various ways, including as Software as a Service (SaaS), as Platform as a Service (PaaS), in a cloud-based or cloud computing environment using the underlying hardware components, or on a device in an IT data center.

[0011] Fig. Figure 1 shows a computer system, a monitored device, and user devices according to some examples of the disclosure. In this example, the computer system, which is represented as a special computer system, is referred to as Computer System 100. Computer System 100 is configured to interact with the monitored device(s) 140 using the processor 104, the memory 105, and the machine-readable storage medium 106. The monitored device(s) 140 can interact with one or more user devices 142. Computer System 100 can be implemented as a cloud system, a data center computer server, a service, or the like, although such limitations are not required in every embodiment of the disclosure.

[0012] The Processor 104 can consist of a general-purpose or specialized processor, such as a microprocessor, a controller, or other control logic. The Processor 104 can be connected to a bus, although any communication medium can be used to facilitate interaction with other components of the Computer System 100 or to communicate externally.

[0013] Memory 105 can include random access memory (RAM) or other dynamic memory for storing information and instructions to be executed by Processor 104. Memory 105 can also be used to store temporary variables or other intermediate information during the execution of instructions by Processor 104. Memory 105 can also include read-only memory (ROM) or other static memory connected to a bus to store static information and instructions for Processor 104.

[0014] The machine-readable storage medium 106 is configured as a storage device that may include one or more interfaces, circuits, and modules for implementing the functions discussed herein. The machine-readable storage medium 106 may contain one or more sequences of one or more instructions that are executed by the processor 104. Such instructions, embodied on the machine-readable storage medium 106, may enable interaction with the monitored device(s) 140 to perform features or functions of the disclosed technology, as discussed herein.The interfaces, circuits and modules of the machine-readable storage medium 106 can, for example, include the data processing component 108, the time series center point component 110, the distance component 112, the cluster component 114, the detection component 116, the model training component 118, the data point extraction component 120, the summation component 122, the consumption forecast component 124 and the action component 126 of the monitored device.

[0015] The data processing component 108 is configured to receive a time-series data set and store the data in the time-series data store 130. The time-series data set can be received from a sensor of the monitored device 140 and may include different data signatures at different times. In some examples, the data received by the monitored device 140 is limited to the data that a third party responsible for the monitored device 140 is willing to provide. Therefore, upon receipt of the time-series data set, a complete data history or components of the data may not be available.

[0016] Illustrative examples of time-series datasets are provided. For instance, the time-series dataset can correspond to the monitored device 140 and its input power supply, with the input power being supplied to the monitored device 140 and sampled hourly. Another example of a time-series dataset corresponds to the processor utilization of the monitored device 140 while the processor executes instructions for a variety of software applications, as shown in Fig. 3 shown.

[0017] The time-series centroid component 110 is configured to identify each centroid of the time-series dataset as a first cluster in a multitude of clusters in anticipation of the grouping of a contiguous set of data points in the data. For example, an unsupervised machine learning model can group the contiguous set of data points of the time-series dataset into a first cluster by algorithmically determining the centroid of each contiguous grouping.

[0018] The centroids can be initialized using various methods, including random selection (e.g., a random selection of data points in the received dataset), a trained machine learning model, a K-means clustering algorithm or K-means++ (e.g., by assigning each data point to the cluster with the nearest mean, not minimum / maximum), or by initializing the centroids with outlier points in a fitted K-means clustering algorithm.

[0019] In some examples, the clustering algorithm (e.g., a user-defined K-means algorithm) can be configured to analyze a small subset of the univariate time-series dataset to find local minima and maxima of subsets of the time-series dataset. These can then be mapped to a nearest centroid using a skewed Euclidean distance function. This process generates a certain number of clusters, after which the position of these nearest centroids is recalculated until the data associated with a centroid no longer changes but remains consistent. These clusters then become the clusters analyzed to identify "motifs." As mentioned earlier, motifs represent similarities between multiple clusters, which the computer system 100 can combine based on similarities in the data signature.

[0020] The user-defined K-means clustering algorithm can account for the linear way in which the time-series dataset was recorded when determining each cluster centroid (e.g., contiguous data points). In this sense, the time-series centroid component can group 110 data points that are close in time, making them more likely to be grouped with other measurements from the same application stored in the data store 132 for detected groupings. The clusters can include centroids, outliers, and local maxima and minima. The local maxima and minima can be determined to partition the cluster into smaller clusters, with each smaller cluster potentially containing a significant minima or maxima point.

[0021] To find the local minima and maxima on a very small subset of time series data, the time series centroid component 110 can use an outlier centroid initialization method or another distance algorithm. For example, the time series centroid component 110 can first assume that the recently found centroids have a number "k". Next, each data point can be mapped to the nearest centroid (e.g., using the skewed Euclidean distance function). This allows the data points to be grouped into k clusters. Using these clusters, the time series centroid component 110 can then recalculate the position of the centroids using the skewed Euclidean distance function or another distance algorithm.Each of these steps can be repeated until the data point memberships no longer change, including the division of the data points into "k" clusters and the calculation of the centroid positions using the skewed Euclidean distance function, until no further changes occur. The time-series centroid component 110 can assign cluster memberships to the data points or output them.

[0022] In some examples, the time series focus component 110 can determine the number of clusters in an automated and dynamic process. The clusters do not need to be defined manually. In this example, the number of clusters can be based on the number of maxima and minima in the time series dataset, each grouped as a contiguous set of data points from the time series dataset. Illustrative examples of minima and maxima are shown in Fig. 4 shown.

[0023] In some examples, the minima and maxima determined by the time series centroid component 110 may correspond to actual values ​​from the time series dataset. The centroid of the cluster must not be chosen from a value that is not contained in the dataset (e.g., a mean or average value). Rather, the minima and maxima may correspond to the actual data points received by the monitored device 140.

[0024] The spacing component 112 is configured to determine a distance between each data point and the center points in the clusters with respect to the time series constraint (e.g., along a linear time series). This can improve upon standard spacing functions that may incorrectly cluster data points without regard to the linear inherence of time series data.

[0025] The distance formula can determine that a change along the time axis (e.g., x-axis) is less weighted compared to the same change along the performance metric axis (e.g., y-axis), allowing data points to be clustered along the time axis. An example of a type of distance formula that can be used is: d=(x2−x1)2+(y2−y1)4

[0026] The value “4” can be replaced by an “n” value that is an even number greater than or equal to 4. This value can be configured and adjusted by a user operating the user device 142. This value can be an exponential multiplier of the “y” part of the formula, which is normally set to a fraction. If the fraction is increased to a higher power of “n”, the “y” part of the formula can become smaller. A greater weight can correspond to the x-axis, which represents the time values ​​and can group the time series data along the linear path.

[0027] Clustering component 114 is configured to determine one or more clusters. For example, clustering component 114 can obtain the local minima and maxima of subsets of the time series dataset and the nearest centroid (determined by the time series centroid component 110). The two datasets can be correlated to form a multitude of clusters. The position of the nearest centroids can then be recalculated until the calculated centroid no longer changes but remains consistent. These become the clusters to be analyzed to identify motifs, with additional clusters being grouped with existing motifs that already contain similar clusters.

[0028] The detection component 116 is configured to apply a dynamic time-warping (DTW) process to the defined clusters to detect similarities between the clusters (e.g., with respect to the data points that form a spike, a dip, or another shape within each cluster) and to generate one or more motifs. The DTW process can compute an optimal match between two time-series datasets by measuring the similarity between the two datasets along the linear time sequence. The optimal match can satisfy various constraints, such as…Each index from the first sequence can match one or more indices from the other sequence, and vice versa; the first index from the first sequence can match the first index from the other sequence (but this need not be the only match); the last index of the first sequence can match the last index of the other sequence (but this need not be the only match); or the mapping of the indices of the first sequence to the indices of the other sequence can be monotonically increasing, and vice versa. Optimal matching can also incur minimum cost, where the cost is calculated as the sum of the absolute differences between the values ​​of each matching index pair. The similar clusters can be grouped into a motif. For each of the similar cluster groups, a multitude of motifs can be generated.

[0029] In some examples, the detection component 116 may contain a parameter "c" that determines the minimum threshold for assuming that two subsequences are similar or not. The threshold "c" may be inversely proportional to the compression ratio. In other words, a higher compression ratio results in a lower value for "c".

[0030] The results can be stored as an in-memory object, for example, in data memory 132 for detected groupings. The dataset can contain the metadata of each motif along with the indices of similar subsequences for each motif. The metadata can include, for example, values ​​along the x-axis (time) and y-axis (calculation value), as well as indices of the nearest or contiguous data points of sequences for application in the monitored device. The compressed dataset representation can store this or other metadata describing each of the multiple motifs and time-based indices of clusters grouped within each motif.

[0031] The compressed data set representation can be stored according to a data schema format (e.g., in JSON format or in a time-series data store). Since the motifs can define patterns in the data (e.g., corresponding to the data signatures of applications on the monitored device), the patterns, rather than the individual data points, can be stored in the data set representation according to the data schema format. In other words, the data set representation can represent the entire time-series data set in a compressed format to require less storage space. Once the data set representation has been generated for each motif, it can be used to create a new, compressed data set that requires less storage space.The compressed dataset can be stored in place of the original univariate time series dataset, and in some examples, the original univariate time series dataset can be deleted to save storage space.

[0032] The properties of the data schema can include, for each data point in the motif (e.g., a cluster of data points), a unique identifier, the start time, the end time, and the number of points defined for the motif. The data schema can also define the frequency of each data point and the nearest members of the data points within the motif.

[0033] The number of properties or values ​​can be stored in a data structure, such as an array data structure. The data structure can contain the data set representation for each motif and can be customized with a precision value. The precision value can be set by a system administrator to determine the number of parameters to define for the data set representation of each motif. A larger precision value (e.g., greater than or above a precision threshold) can define more detail in the data set representation with greater accuracy between the newly assembled time series data set and the original time series data set, which can result in more storage space being required to store the data set representation and the newly assembled data. A smaller precision value (e.g.,(smaller than the accuracy threshold) may define less detail in the data set representation with lower accuracy between the newly assembled time series data set and the original time series data set, which may result in a lower storage requirement for storing the data set representation and the newly assembled data.

[0034] The model training component 118 is configured to receive the time-series dataset as input for the machine learning model. For example, the model training component 118 receives and processes or transforms the data stored in the time-series data store 130. This can include detecting and removing outliers in the time-series dataset (e.g., processor utilization, periodic input power data, or the execution of software applications on the monitored device 140). This includes linearly interpolating missing values ​​in the time-series dataset and removing outliers in the data using the model training component 118. In some examples, a pre-trained machine learning model can implement anomaly detection and outlier removal (e.g., one-class SVM). The data can be resampled, and only the average power consumption of the monitored device 140 can be recorded at each interval (e.g.,The refined time series data can be collected every hour, every two hours, or at any suitable interval. This refined data can then serve as the basis for training and validating the output generated by the machine learning model.

[0035] The model training component 118 is configured to determine the output from the time series dataset, including trend (e.g., long-term direction), seasonality (e.g., calendar-related movements), cyclic (e.g., systematic), and residual (e.g., unsystematic or short-term fluctuations) components (collectively referred to as "seasonality"). In this example, the existing algorithms predict a smooth curve that attempts to balance the trend and seasonal components but ignores the smaller maxima and minima, considering them under the residual component. In the case of the power and CPU data of the monitored device 140, the residual component may be more significant and contain information about the impact of the application or workload running on the monitored device 140.The output corresponding to the trend, seasonal, cycle and residual components can (possibly) be combined with the motivational data described above when attempting to predict time series data.

[0036] In one non-restrictive example, the last 70 days of data are used to train and validate the output generated by the machine learning model (e.g., predicting the usage of monitored device 140). In another non-restrictive example, the last 12 months of data are used. Techniques such as Mean Absolute Percentage Error and Root Mean Square Error can be used to validate the output. For example, the first 70 days of the base dataset can be used to train a model for a server, and after successful training, the next 20 days of the dataset can be used for validation. This process can be repeated on multiple monitored devices 140. In some examples, a parameter specifying the last "X" days of data can be set as the minimum data period required for processing. No data processing can occur until "X" days of data are available.

[0037] Challenges in selecting and implementing a training method include long training times due to limited hardware resources. One training method to overcome such challenges is to distribute the training across multiple virtual machines (VMs) to generate models for each monitored device and repeat the training using a warm-start strategy to reduce training time. Training can be optimized using scripts written to dynamically select the best set of hyperparameters for each model. In a non-restrictive example, the hyperparameters can be used with the following combinations of parameters and their values:

[0038] Change point priority scale: [0.001, 0.01, 0.05]. This parameter determines the flexibility of a trend and, in particular, how much the trend changes at the trend change points. If it is too small, the trend may not fit the data, and variance that should be modeled with trend changes can instead be handled with the noise term. If it is too large, the trend may be over-fitted and model annual seasonality. The default value of 0.05 can initially be used for many time series datasets and can be adjusted over time. An example is the range [0.001, 0.5].

[0039] Seasonality_prior_scale: [0.01, 0.1, 1.0, 10]. This parameter controls the flexibility of seasonality. A large value allows seasonality to compensate for large fluctuations, while a small value reduces the extent of seasonality. The default value is 10, which essentially means no regularization. An example setting for this parameter would be [0.01, 10]; a value of 0.01 would indicate a very small extent of seasonality. Daily_Seasonality: [True, False]. Growth: logistical.

[0040] The model training component 118 is also configured to use the dataset(s) to train a machine learning (ML) model in order to obtain predicted data from the monitored device 140 for the next or future period. Various ML models or algorithms can be used for this purpose, including FBProphet, SARIMA / SARIMAX, Holt-Winter-ES, and Gated Recurrent Unit (GRU) Network. These models have a suitable training time and size to operate with the techniques of this disclosure. In one example, the split between training and testing was 80-20 percent.

[0041] FBProphet is an open-source software that can be implemented by the Model Training Component 118. FBProphet is a time-series forecasting method based on an additive model that fits nonlinear trends with annual, weekly, and daily seasonality, as well as holiday effects. FBProphet works well with time-series datasets or any other dataset exhibiting strong seasonal effects and multiple seasons of historical data. FBProphet is robust to missing data and trend shifts and generally handles outliers well.

[0042] SARIMA is a class of statistical models for analyzing and predicting time series data. SARIMA is a generalization of another model called AutoRegressive Moving Average and adds the concept of integration. The parameters of the SARIMA model are defined as p, d, and q. p'' is the number of lag observations included in the model, also known as the lag order. d'' is the number of differentiations of the raw observations, also known as the degree of differentiation. q'' is the size of the window for the moving average, also known as the order of the moving average. The Python package pmdarima (Auto-ARIMA) can be used to find the correct set of parameters (p, d, q) that will have a low AIC (Akaike Information Criterion) value for each monitored device.

[0043] Holt-Winters Exponential Smoothing (ES) can be used to forecast time series data exhibiting both trend and seasonal variation. Despite being a relatively simple model, Holt-Winters ES can be a powerful forecasting algorithm. It can easily handle seasonality in the dataset by calculating the median and then adding or multiplying the median by the slope and the seasonality, provided the correct selection parameters are available. Level L t = α(y t - S t-γ ) + (1 - α)(L t-1 + b t-1 ) Trend b t = β(L t - L t-1 ) + (1 - b)b t-1 Seasonal S t = γ(y t - L1) + (1 - γ)S t-γ Forecast F t+k = L t + kb t + S t+k-γ

[0044] Gated Recurrent Unit (GRU) Networks are gating mechanisms in recurrent neural networks (RNNs) that utilize connections through a sequence of nodes to perform machine learning tasks related to memory. GRU can also address the vanishing gradient problem encountered in standard RNNs. To overcome this problem, GRU employs an update gate and a reset gate. In some examples, these two gates represent vectors that determine which information to pass to the output. The gates can be trained to preserve information from long ago without minimizing the detail gathered in the time-series dataset over time or removing information irrelevant to prediction.

[0045] Using one of these or other models, the model training component 118 can generate the predictive forecast as a data set that can be stored as an in-memory object, e.g., in data storage 132 for detected groupings. Here, the predictive forecast and the compressed data set representation of the multitude of motifs can be stored.

[0046] In some examples, the predictive forecast can be stored in accordance with a data schema format (e.g., in JSON format). Because the predictive forecast can define patterns in the data (e.g., corresponding to the data signatures of seasonal trends on monitored device 140), the patterns, rather than the individual data points, can be stored in the data set representation according to the data schema format. The data schema properties can include a unique identifier, a start time, a stop time, and a number of points defined for each data signature. The number of properties or values ​​can be stored in a data structure, such as an array data structure. The data structure can contain the data set representation for each forecast and can be customized based on an accuracy value.

[0047] In some examples, the model training component 118 is configured to train the first machine learning model, which generates the motive prediction forecast, and also the second machine learning model, which generates the seasonal forecast, in parallel. In other words, two machine learning models can be trained in parallel. The output of the first and second machine learning models can be fed into the summation process, which is performed by the summation component 122.

[0048] Various machine learning models, such as those mentioned above, can learn and predict the power consumption or other measured variables (e.g., any predictive forecast) of the monitored device 140 for the next or future period, as determined by the consumption forecasting component 124. It can be checked whether the predictive forecast was successful, and if so, the predictive forecast (e.g., for the next 20 days or the next 30 days in non-restrictive examples) can be passed to the consumption forecasting component 124.

[0049] The data point extraction component 120 is configured to access the data store 132 for detected groupings and determine a data set representation for each of the multiple themes and predictions in the data schema formats (e.g., in a JSON format).

[0050] In some examples, the Data Point Extraction component 120 is configured to generate a motif sequence graph for each motif in the compressed dataset representation (e.g., stored according to the data schema format). The motif sequence graph can be used to represent multiple sequences within the multitude of motifs using an edge that represents the homology between segments. In some examples, if there are multiple possible paths when traversing a thread in a sequence graph, multiple sequences through the same thread can be represented. Thus, it is possible to create a motif sequence graph that represents a multitude of motifs, with each motif corresponding to a path through the graph.

[0051] In some examples, the data point extraction component 120 is configured to generate a directed graph of the motif in the compressed dataset representation (e.g., stored according to the data schema format). The directed graph can assign weights to the arrows, edges, and nodes to determine the probability of traversing a particular sequence in the directed graph for a given time interval. An intuitive directed graph is shown in Fig. 8 shown.

[0052] Summation component 122 is configured to aggregate the forecast for each point in time in the time series dataset, using the values ​​from both the first machine learning model (e.g., the motive prediction) and the second machine learning model (e.g., the seasonal prediction). The aggregation of the forecast values ​​can be performed during a summation process executed by summation component 122. In providing the summation process, summation component 122 can combine the jaggedness generated in the original time series data and abstracted by the compressed dataset representation output by the first machine learning model with additional seasonality generated by the second machine learning model. A visual aggregation of the forecast values ​​is shown in Fig. 9 shown.

[0053] The consumption forecasting component 124 is configured to identify time windows in the forecast (e.g., power consumption, application execution, etc.). This is achieved by calculating an exponential mean (EMA) of the forecasted time series dataset. The forecast that exceeds an overutilization threshold or falls below an underutilization threshold can be identified. The forecast can determine the over- or underutilization time for the monitored device 140. This forecast can be used by a user or data management unit to schedule a new workload or revise an existing one.

[0054] The action component 126 for the monitored device is configured to determine the actions to be taken on the monitored device 140 based on the forecast provided by the consumption forecast component 124. As an illustrative example, a user or data management unit might specify a time window of "t" hours (e.g., 5 hours in a non-restrictive example) to find a time window of "t" hours for executing a new workload. If underutilization is detected in this case, the monitored device 140 may be a good candidate for scheduling a new workload. If overutilization is detected, the monitored device 140 may be a good candidate for moving a processing job to another machine or preventing the start of new processes.

[0055] Additional details regarding analytical operations, outputs, and actions corresponding to the time series datasets described herein are contained in U.S. patent applications Nos. 17 / 991,500 (Docket: P169908US; 61CT-361397), ____ (Docket: P169237US; 61CT-356847), and __ (Docket: P170267US; 61CT-364847), which are incorporated herein by reference in their entirety for all purposes.

[0056] Fig. Figure 2 shows a method for determining a predictive forecast using motives and combined modeling according to some examples from the disclosure. The computer system 100 of Fig. 1 can be configured to execute machine-readable commands to perform the process 200 described here.

[0057] Block 210 can receive an original time-series data set. For example, computer system 100 can receive the time-series data set containing data points corresponding to a monitored device or a monitored distributed system with multiple monitored devices. The time-series data set can include CPU utilization, the use of a sensor integrated into the monitored device, or other univariate time-series data.

[0058] Block 215 can generate a variety of motifs. For example, computer system 100 can group the time-series dataset into a variety of clusters, including identifying a pattern of spikes or dips in the original time-series dataset and grouping each cluster as corresponding to the same activity on the monitored device. The original time-series dataset can match a variety of these clusters over time intervals. The system can further identify similarities within the variety of clusters and combine a subset of the variety of clusters based on similarities in the data signature to form a variety of motifs using an unsupervised machine learning model, as further described herein.

[0059] In some examples, the multitude of motifs can be generated beforehand, and a cluster can be added to one or more of the motifs. For example, a contiguous set of data points from the original time-series dataset can be grouped into an initial cluster. The grouping can be performed using any method described herein, including the use of an unsupervised machine learning model. The cluster can then be grouped into a first motif if the cluster is similar to other clusters of the first motif. The grouping can be performed using any method described herein, including the use of a spacing algorithm.

[0060] In some examples, a data schema can be accessed. For instance, computer system 100 can access a data schema corresponding to a time series dataset. The parameters of the data schema can include a data structure type (e.g., an array of type "object"), properties including data point, frequency, and nearest members, and an indication of whether the respective property is required. Each data point property of the data schema can include the type (e.g., "object"), a unique identifier (e.g., an integer value), the start time (e.g., a string or an integer value), the end time (e.g., a string or an integer value), and the number of points.

[0061] In Block 220, a data definition for a variety of motifs can be created using the data schema. The compressed data set representation can identify values ​​for each property of the motif. For example, the monitored device's data for a given motif might generally contain ten spikes within ten seconds. The data schema can include properties for "Spikes" and "Frequency," and the compressed data set representation of the specific motif can define the values ​​for these properties (e.g., for the ten spikes within ten seconds). Using this compressed data set representation of the motif, the details of the respective motif can be abstracted and stored in the format corresponding to the data schema.

[0062] The level of detail in the compressed dataset representation can correspond to an accuracy value, referred to here as parameter "c", which determines the minimum threshold for assuming that two subsequences are similar or not. For this purpose, the accuracy value represents a minimum threshold for assuming that two subsequences are similar or not, and parameter "c" can be inversely proportional to the compression ratio. In other words, a higher compression ratio would result in a lower parameter "c". The accuracy value can be set by a system administrator.

[0063] In some cases, a higher accuracy value (above an accuracy threshold) may correspond to more detail in the compressed dataset representation and greater accuracy between the recompiled time series dataset and the original time series dataset, which may result in more storage space being required for the compressed dataset representation and the recompiled data. A lower accuracy value (less than the accuracy threshold) may correspond to less detail in the compressed dataset representation and less accuracy between the recompiled time series dataset and the original time series dataset, which may result in less storage space being required for the compressed dataset representation and the recompiled data.

[0064] Multiple data set representations can be generated, with each compressed data set representation corresponding to each of the multiple motifs. In other words, the original time series data set used to generate the multiple motifs can be compressed and represented as one or more data set representations.

[0065] The processes defined here can generate a compressed dataset representation, which defines a condensed version of the original time series dataset. This compressed time series dataset can be defined by the compressed data representation, which can then be used to generate newly populated data with similar, repeating data patterns to the original time series dataset, but with fewer anomalies and differences found in the original time series dataset.

[0066] Block 225 allows the creation of a motif sequence graph. For example, a motif sequence graph can be created for each motif in the compressed dataset representation to represent multiple sequences within the multitude of motifs using an edge that represents the homology between segments. In some examples, if there are multiple possible paths when traversing a thread in a sequence graph, multiple sequences can be represented by the same thread. Thus, it is possible to create a motif sequence graph representing a multitude of motifs, with each motif corresponding to a path through the graph.

[0067] Block 230 allows you to create a directed graph. For example, you can generate a directed graph. The directed graph can represent a variety of motifs in the display of the compressed dataset. You can assign weights to the arrows, edges, and nodes of the directed graph to determine the probability of traversing a specific sequence within a given time interval.

[0068] In block 235, data points can be extracted from a motif and a directed graph. For example, the process can be directed to data storage 132 for detected groupings in Fig. 1. Access and determine a data set representation for each of the multiple motives and predictions in the data schema formats (e.g., in a JSON format).

[0069] Block 250 allows for the training of a machine learning model. This can refer to a second machine learning model. For example, the process can receive the time series dataset as input for the second machine learning model. The process can detect and remove outliers in the time series dataset, including linear interpolation of all missing values ​​and removal of outliers from the data. In some examples, a pre-trained machine learning model can implement anomaly detection and outlier removal (e.g., one-class SVM). The data can be resampled. The refined time series data can serve as the base dataset for training and validating the output generated by the ML model.

[0070] In some examples, the second machine learning model is configured to determine the output from the time series dataset, including trend (e.g., long-term direction), seasonality (e.g., calendar-related movements), cyclic (e.g., systematic), and residual (e.g., unsystematic or short-term fluctuations) components (collectively referred to as "seasonality"). In this example, the available algorithms predict a smooth curve that attempts to balance the trend and seasonal components but ignores the smaller maxima and minima, treating them as part of the residual component. Examples of such algorithms include FBProphet, SARIMA / SARIMAX, Holt-Winter-ES, and the Gated Recurrent Unit (GRU) Network. Thus, the output corresponding to the trend, seasonality, cyclic, and residual components can (potentially) be combined with the motivational data described in Block 220 when attempting to predict time series data.

[0071] Block 255 allows you to create a data definition for the trained machine learning model. This second data definition can identify trend, seasonality, cyclic, and residual components. The data schema can include properties of these components to represent the details of each of their effects on the time series dataset. The data can be abstracted and stored in the format corresponding to the data schema.

[0072] Block 260 allows data points to be extracted from the second trained machine learning model. For example, the second data definition of the trained machine learning model can be accessed, and data points corresponding to the trend, seasonality, cyclic, and residual components in the compressed data format can be extracted from the second data definition.

[0073] Block 270 allows for a summation process to be performed on the data points, using each of the first and second extracted data points. An aggregate of the predictive forecasts can be created. This aggregation can include the values ​​from both the first machine learning model (e.g., the motive prediction) and the second machine learning model (e.g., the seasonal forecast). The aggregation of the predictive forecast values ​​can be performed during a summation process that can combine the slight jaggedness generated in the original time series data and abstracted by the compressed data set representation output by the first machine learning model with additional seasonality generated by the second machine learning model.

[0074] Block 275 can be used to predict device or processor usage. For example, the aggregated output of the first trained ML model and the second trained ML model can be used to generate predictive data for the monitored device 140. Fig. 1. to obtain a forecast for the next or future period. The forecast can, for example, include time windows in the predictive forecast (e.g., power consumption, application execution, etc.) so that an overload threshold can be exceeded or an underutilization threshold can be identified. This predictive forecast can be used by a user or data management unit to plan a new workload or to revise an existing workload.

[0075] Fig. Figure 3 shows an example of time-series data according to some examples in the disclosure. In Example 300, the processor time for a monitored device running three different applications over 15 seconds is determined. These applications are represented as the first application 310 (e.g., an antivirus scan), the second application 320 (e.g., a web browser video), and the third application 330 (e.g., a notepad application). Each application runs without overlapping processor time to highlight the differences between the signatures. In this example, applications 310, 320, and 330 were run independently, exclusively, and sequentially to observe the difference in the time-series signature of each application.

[0076] Fig. Figure 4 shows an example of minima and maxima of time series data in accordance with some examples from the disclosure. In Example 400, an illustrative time series dataset is provided with an illustrative maximum data point 410 and an illustrative minimum data point 420. Thus, for example, each time the points in the dataset change direction along a linear time series (e.g., from increasing to decreasing or from decreasing to increasing, etc.), a minimum or maximum point can be identified. In some examples, the time series focus component 110 is configured to store the minima or maxima in the time series data store 130.

[0077] Fig. Figure 5 shows an example of time series data with an identified outlier, as per some of the disclosure examples. In Example 500, the time series data from Example 300 are used. Fig. 3. Repeatedly, the processor time for a monitored device is identified as it runs three different applications over 15 seconds, including the first application 510 (e.g., an antivirus scan), the second application 520 (e.g., a web browser video), and the third application 540 (e.g., a notepad application). Additionally, an outlier between the second and third applications is identified, represented as outlier 530.

[0078] Fig. Figure 6 shows an example of time-series data with identified clusters according to some examples from the disclosure. In Example 600, the time-series data is analyzed and grouped into a variety of clusters, using data signature similarities to form a variety of motifs using an unsupervised machine learning model. Illustrative clusters are provided, shown as first cluster 610 and second cluster 620. These clusters can help create labeled time-series data, with each cluster corresponding to a different label (e.g., a different application or data signature, etc.). A similar cluster to first cluster 610 is identified as third cluster 630, which has a similar data signature determined by the unsupervised machine learning model.The model can be trained to identify similar data signatures in each cluster and to match the data signatures.

[0079] In this context, each cluster of similar curves can be grouped into a motif. As described here, each motif can represent a repeating pattern and a subsequence of data points that are grouped within each cluster. The spacing algorithms discussed here can help find curve similarities between the clusters. As in Fig. Figure 5 shows that several similar shapes of data points in the first application 510 (e.g., an antivirus scan) are each motifs of the dataset. Several motifs can be combined to form a shapelet that can correspond to the entire dataset of the first application 510.

[0080] The clusters can be formed using various methods, including the one described in Fig. The procedure shown in Figure 7 implements a user-defined K-means clustering algorithm with outlier centroid initialization and a skewed Euclidean distance function. In the illustrative example 700, the cluster component 114 of Fig. 1. Perform one or more steps to determine the multitude of clusters.

[0081] Block 710 can contain the input algorithm parameters, some of which are specified by a user who is using the user device 142. Fig. 1. The input can be modified. For example, input data points D, an order parameter θ, and a time component N can be used to generate data points with cluster memberships.

[0082] The time series data set can be received in block 715 (e.g., by the data processing component 108 of Fig. 1) The time series data set can be received from a sensor of the monitored device 140 and may include different data signatures at different times.

[0083] Block 720 allows data processing, including the performance of feature normalization on the time series dataset. For example, feature normalization can scale the individual data samples from the time series dataset so that they have common and uniform units of measurement.

[0084] Block 725 allows for further data processing, including the implementation of a scaling process for the time series dataset. This scaling process can help to smooth out large fluctuations in the data, resulting in small standard deviations of the features and the removal of zero entries in sparse data.

[0085] In block 730, cluster component 114 can be used. Fig. 1. The local minima and maxima are obtained using the outlier centroid initialization method to obtain the centroids c1, c2, ... ck. As with the distance component 112 of Fig. As discussed in the process carried out in section 1, the order parameter can be adjusted to determine different centroids.

[0086] In block 740, x is entered for each data point. i The nearest centroid (c1, c2, ... ck) is determined using the oblique Euclidean distance function, and the point is assigned to this cluster. The oblique Euclidean distance function may include the distance formula as used for the distance component 112 in Fig. 1 was discussed.

[0087] In block 750, you repeat blocks 730 and 740 with different values ​​of the order parameter θ and the time component N. These groups of values ​​become the clusters that are analyzed to identify the motives and stored in data store 132 for detected groupings of Fig. 1 will be saved.

[0088] Fig. Figure 8 shows an example of a directed graph generated from motifs, as described in some examples in the disclosure. For illustration, a directed graph 800 is shown, consisting of a group of vertices connected by directed edges. The directed graph can illustrate the probability of traversing a particular sequence over a given time interval. Using the generated motif sequence graph, created from the multitude of motifs in the compressed dataset representation, the directed graph can illustrate the progression of sequences from the motif sequence graph.

[0089] Each of the points identified in the directed graph can correspond to the unique identifier of the motif's compressed data set representation. These points identified in the directed graph can contain patterns corresponding to each unique identifier, such as 1.0, 2.0, 17.0, 16.0, and so on. Thus, as shown in Example 800, starting at point 810, a sequence of pattern "1.0" (from the compressed data set representation) is identified in the time series data set. The directed graph illustrates the probability of identifying the next sequence in the time series data, represented as point 820. At point 820, a sequence of pattern "2.0" is identified among the multitude of motifs. The next sequence is at point 830. At point 830, a sequence of pattern "17.0" is identified among the multitude of motifs. The next sequence is located at point 840. At point 840, a sequence of the pattern "16.“0” identified in the multitude of motifs, and so on.

[0090] In some examples, the sequence can have different starting points and be based on the last pattern that the system identified for a given time sequence (e.g., the data point extraction component 120 of computer system 100 in Fig. 1) For example, if the last identified sequence of a sequence of the pattern "17.0" at point 830, the next sequence likely to appear in the sequence is point 840, which corresponds to the unique identifier "16.0". Once the directed graph for the time series dataset has been identified, the predicted sequence can be overlaid on the time series dataset as a compressed dataset representation using the stored predictions.

[0091] In some examples, the directed graph 800 is also weighted with corresponding weights assigned to each node in the directed graph. The larger the weight for the sequence, the greater the probability that the next sequence in the time series data will be identified in a new time series dataset.

[0092] Fig. Example 9 is an example of a chart that compares the actual time series data with the forecast data, in accordance with some examples in the disclosure. Example 900 provides an illustrative chart showing the aggregation of the forecast for each time point in the time series dataset using both values ​​generated by the first machine learning model (e.g., the motive forecast) and the second machine learning model (e.g., the seasonal forecast). Dataset 902 corresponds to the motive forecast, and dataset 904 corresponds to the seasonal forecast. Each of datasets 902 and 904 can be output by the trained machine learning models. Example 910 provides the forecast for the new time series dataset with an overlay of the actual values ​​from the time series dataset.Data set 912 corresponds to the forecast prediction (after the summation process of the motivation and seasonality forecast) and data set 914 corresponds to the actual time series data values.

[0093] Fig. Figure 10 shows an example of a computer component that can be used to implement compression of a time-series dataset using motifs in accordance with various embodiments. Referring to Fig. 10. The computer component 1000 can be, for example, a server computer, a controller, or another similar computer component capable of processing data. In the example implementation of Fig. 10 The computer component 1000 comprises a hardware processor 1002 and a machine-readable storage medium 1004.

[0094] The Hardware Processor 1002 can consist of one or more central processing units (CPUs), semiconductor-based microprocessors, and / or other hardware devices capable of retrieving and executing instructions stored in the machine-readable memory medium 1004. The Hardware Processor 1002 can retrieve, decode, and execute instructions, such as instructions 1006-1016, to control processes or operations for implementing the dynamically modular and adaptable computer systems. Alternatively or additionally to retrieving and executing instructions, the Hardware Processor 1002 can include one or more electronic circuits comprising electronic components for performing the functionality of one or more instructions, such as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or other electronic circuits.

[0095] A machine-readable storage medium, such as the machine-readable storage medium 1004, can be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. For example, the machine-readable storage medium 1004 can be random-access memory (RAM), non-volatile memory (NVRAM), electrically erasable programmable solid-state memory (EEPROM), a storage device, an optical disk, or the like. In some embodiments, the machine-readable storage medium 1004 can be a non-transient storage medium, the term "non-transient" excluding the transitive transmission signals. As described in detail below, the machine-readable storage medium 1004 can be encoded with executable instructions, for example, instructions 1006-1016.

[0096] Hardware processor 1002 can execute instruction 1006 to receive a time-series data set. This time-series data set can be received from a sensor of a monitored device. The time-series data set can, for example, include different data signatures at different times. In some examples, the data received from the monitored device is limited to the data that a third party responsible for the monitored device is willing to provide and may be restricted to a complete data history.

[0097] Hardware processor 1002 can execute instruction 1008 to group a contiguous set of data points from the time-series dataset into a cluster. This grouping can be implemented using an unsupervised machine learning model trained to group contiguous data points into a cluster. For example, the procedure can group the time-series dataset into an initial cluster from a multitude of clusters.

[0098] Hardware processor 1002 can execute instruction 1010 to group the first cluster into a first motif. For example, the procedure might group the first cluster into the first motif because the first cluster is similar to other clusters of the first motif. The similarity can be determined using one of the methods described herein, including identifying similarities in data signatures. In some examples, the procedure might determine each foci of the dataset when determining the similarities in the data and grouping the cluster with the motif.

[0099] The centroids can be initialized using various methods, including a modified K-means clustering algorithm. This algorithm can account for the linear nature of the time-series dataset when determining each cluster centroid. The method can initialize the centroids of each cluster with outlier points to identify local maxima and minima that correspond to the actual values ​​in the time-series dataset. In this way, the time-series data can be divided into smaller clusters, each of which may contain a significant minimum or maximum point.

[0100] The procedure can also determine a distance between each of the data points and centers with respect to the time series constraint (e.g., along a linear time series), which can help improve standard spacing functions that may incorrectly cluster data points without regard to the linear inherence of time series data. The spacing formula can determine that a change along the time axis (e.g., the x-axis) is less weighted compared to the same change along the performance metric axis (e.g., the y-axis), thus allowing data points to be clustered along the time axis (e.g., using the formula described here).

[0101] The 1002 hardware processor can execute the 1012 instruction to generate a compressed data set representation using a variety of motifs. This data set representation can contain metadata for the variety of motifs according to a predefined data schema. In some examples, the data set representation can correspond to a compressed data set stored in accordance with the data schema format (e.g., in JSON format or in a time-series data store). Because the motifs can define patterns in the data (e.g., corresponding to the data signatures of applications on the monitored device), the patterns, rather than the individual data points, can be stored in the compressed data set representation.

[0102] The 1002 hardware processor can execute instruction 1014 to train a machine learning model. For example, instruction 1014 can identify similarities across a multitude of clusters and combine a subset of those clusters based on data signature similarities to form a multitude of motifs using an unsupervised machine learning model. In another example, instruction 1014 can identify trend, seasonal, cyclic, and residual components as a second data definition to detail each of these effects on the time-series dataset. The data can then be abstracted and stored in a format that conforms to the data schema.

[0103] An aggregate of the predictions can be created. This aggregation can include values ​​from both the first machine learning model (e.g., the motive prediction) and the second machine learning model (e.g., the seasonal prediction). The aggregation of the prediction values ​​can occur during a summation process that can combine the slight jaggedness generated in the original time series data and abstracted by the compressed data set representation output by the first machine learning model with additional seasonality generated by the second machine learning model.

[0104] Hardware processor 1002 can execute instruction 1016 to manage a workload on a monitored device (e.g., monitored device 140 in Fig. 1) To plan for the next or future period. The forecast can be used by a user or data management unit to plan a new workload or to revise an existing workload.

[0105] Fig. Figure 11 shows a block diagram of an example computer system 1100, in which various embodiments described here can be implemented. The computer system 1100 comprises a bus 1102 or other communication mechanism for transmitting information, and one or more hardware processors 1104 connected to the bus 1102 for processing information. The hardware processor(s) 1104 can be, for example, one or more general-purpose microprocessors.

[0106] The Computer System 1100 also includes main memory 1106, such as random access memory (RAM), a cache, and / or other dynamic memory devices connected to bus 1102 to store information and instructions to be executed by processor 1104. Main memory 1106 can also be used to store temporary variables or other intermediate information during the execution of instructions to be carried out by processor 1104. When such instructions are stored in memory media accessible to processor 1104, the Computer System 1100 becomes a specialized machine adapted to perform the operations specified in the instructions.

[0107] The 1100 computer system also includes a read-only memory (ROM) 1108 or other static storage device connected to bus 1102 to store static information and instructions for the processor 1104. A storage device 1110, such as a magnetic disk, an optical disk, or a USB flash drive, etc., is provided and connected to bus 1102 to store information and instructions.

[0108] The computer system 1100 can be connected via bus 1102 to a display 1112, such as a liquid crystal display (LCD) (or a touchscreen), to show information to a computer user. An input device 1114, including alphanumeric and other keys, is coupled to bus 1102 to transmit information and command selections to the processor 1104. Another type of user input device is the cursor control 1116, such as a mouse, trackball, or cursor direction keys, for transmitting directional information and command selections to the processor 1104 and for controlling cursor movement on the display 1112. In some embodiments, the same directional information and command selections as with cursor control can be implemented by receiving touch inputs on a touchscreen without a cursor.

[0109] The Computer System 1100 can include a user interface module for implementing a graphical user interface, which can be stored on a mass storage device as executable software code that is executed by the computer device(s). This and other modules can include components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.

[0110] In general, the words "component," "engine," "system," "database," "data store," and the like, as used here, can refer to logic embodied in hardware or firmware, or to a collection of software instructions that may have entry and exit points and are written in a programming language such as Java, C, or C++. A software component may be compiled and linked into an executable program, installed in a dynamic link library, or written in an interpreted programming language such as BASIC, Perl, or Python. It is clear that software components can be called by other components or by themselves, and / or invoked in response to detected events or interruptions. Software components configured to run on computer devices may be stored on a computer-readable or machine-readable storage medium, such as...Software code can be provided on a compact disc, digital video disc, flash drive, magnetic disk, or other tangible medium, or as a digital download (and may initially be stored in a compressed or installable format that requires installation, decompression, or decryption before execution). Such software code may be stored partially or entirely in the memory of the executing computer device so that it can be executed by the computer device. Software instructions may be embedded in firmware, such as an EPROM. Furthermore, the hardware components may consist of interconnected logic units such as gates and flip-flops, and / or programmable units such as programmable gate arrays or processors.

[0111] The computer system 1100 can implement the techniques described herein using custom hard-wired logic, one or more ASICs or FPGAs, firmware, and / or program logic, which, in combination with the computer system, causes or programs the computer system 1100 to be a special-purpose machine. According to one embodiment, the techniques described herein are executed by the computer system 1100 in response to the processor(s) 1104 executing one or more sequences of one or more instructions contained in the main memory 1106. Such instructions may be read into the main memory 1106 from another storage medium, such as the storage device 1110. The execution of the instruction sequences contained in the main memory 1106 causes the processor(s) 1104 to perform the process steps described herein.In alternative embodiments, hard-wired circuits can be used instead of, or in combination with, software instructions.

[0112] The term "non-volatile media" and similar terms as used here refer to all media that store data and / or instructions that make a machine operate in a particular way. Such non-volatile media can include both non-volatile and volatile media. Non-volatile media include, for example, optical or magnetic disks, such as the Storage Device 1110. Volatile media include dynamic storage, such as the Main Memory 1106. Common forms of non-volatile media include, for example, floppy disks, flexible disks, hard disks, solid-state drives, magnetic tapes or other magnetic data storage media, CD-ROMs, other optical data storage media, physical media with hole patterns, RAM, PROM and EPROM, FLASH-EPROM, NVRAM, other memory chips or cartridges, and their networked versions.

[0113] Non-transitory media differ from transmission media but can be used in conjunction with them. Transmission media are involved in the transfer of information between non-transitory media. Examples of transmission media include coaxial cable, copper wire, and fiber optic cable, including the wires that make up bus 1102. Transmission media can also take the form of sound or light waves, such as those generated in radio and infrared data communication.

[0114] The 1100 computer system also includes a communication interface 1118, which is connected to bus 1102. The communication interface 1118 establishes a bidirectional data communication connection to one or more network connections that are connected to one or more local area networks (LANs). For example, the communication interface 1118 could be an ISDN (Integrated Services Digital Network) card, a cable modem, a satellite modem, or a modem to establish a data communication connection to a corresponding type of telephone line. Alternatively, the communication interface 1118 could be a LAN (Local Area Network) card to establish a data communication connection to a compatible LAN (or a WAN component for communication with a WAN). Wireless connections can also be implemented.In each of these implementations, the communication interface 1118 sends and receives electrical, electromagnetic, or optical signals that transmit digital data streams with various types of information.

[0115] A network connection typically enables data communication across one or more networks to other data devices. For example, a network connection can establish a connection across a local area network to a host computer or to data devices operated by an Internet service provider (ISP). The ISP, in turn, provides data communication services across the global packet data communication network, commonly known today as the "Internet." Both the local area network and the Internet use electrical, electromagnetic, or optical signals to transmit digital data streams. The signals in the various networks, and the signals on the network link and across the communication interface 1118 that transmit digital data to and from the computer system 1100, are examples of transmission media.

[0116] The computer system 1100 can send messages and receive data, including program code, via the network(s), the network connection, and the communication interface 1118. In the internet example, a server could transmit requested code for an application program via the internet, the ISP, the local network, and the communication interface 1118.

[0117] The received code can be executed by processor 1104 upon receipt and / or stored in memory device 1110 or other non-volatile memory for later execution.

[0118] Each of the processes, methods, and algorithms described in the preceding sections can be embodied in code components and fully or partially automated by them, which are executed by one or more computer systems or computer processors with computer hardware. The one or more computer systems or computer processors can also be operated in such a way as to support the execution of the corresponding operations in a cloud computing environment or as Software as a Service (SaaS). The processes and algorithms can be partially or fully implemented in application-specific circuits. The various features and procedures described above can be used independently or combined in various ways.Various combinations and subcombinations are said to fall within the scope of this disclosure, and certain procedural or process blocks may be omitted in some implementations. The methods and processes described herein are also not restricted to a particular order, and the associated blocks or states may be executed in other suitable orders, in parallel, or otherwise. Blocks or states may be added to or removed from the disclosed examples. The execution of certain operations or processes may be distributed across computer systems or computer processors, not just within a single machine, but distributed across a number of machines.

[0119] A circuit can be implemented in any form of hardware, software, or a combination thereof. For example, one or more processors, controllers, ASICs, PLAs, PALs, CPLDs, FPGAs, logic components, software routines, or other mechanisms can be implemented to form a circuit. In implementation, the various circuits described here can be implemented as discrete circuits, or the described functions and features can be partially or completely distributed across one or more circuits. Even if various features or functional elements are individually described or claimed as separate circuits, these features and functions can be shared by one or more common circuits, and such a description is not intended to require or imply that separate circuits are necessary to implement these features or functions.If a circuit is implemented wholly or partly with software, this software can be implemented in such a way that it works with a computer or processing system capable of performing the functionality described in relation to it, such as the 1100 computer system.

[0120] As used herein, the term "or" can be understood in both an inclusive and an exclusive sense. Furthermore, the singular description of resources, processes, or structures is not to be understood as excluding the plural. Conditional expressions such as "may," "could," "might," or "can," unless expressly stated otherwise or understood differently in context, are generally intended to express that certain embodiments include certain features, elements, and / or steps, while other embodiments do not.

[0121] Unless explicitly stated otherwise, the terms and expressions used in this document, as well as their variations, are to be understood as open rather than restrictive. Adjectives such as "conventional," "traditional," "normal," "standard," "known," and terms with similar meanings are not to be understood as limiting the described subject matter to a specific period or to an item available at a particular time, but should be understood as encompassing conventional, traditional, normal, or standard technologies that may be available or known now or at any time in the future.The presence of expansive words and phrases such as "one or more", "at least", "but not limited to" or similar phrases in some cases is not to be understood as meaning that the narrower case is intended or required when such expansive phrases are not present.

[0122] It should be noted that the terms "optimize," "optimal," and the like, as used here, can be interpreted as making or achieving performance as effective or perfect as possible. However, as any professional reading this document will recognize, perfection cannot always be achieved. Accordingly, these terms can also mean making or achieving performance as good or effective as possible or practical under the given circumstances, or making or achieving performance better than that which can be achieved with other settings or parameters.

Claims

[1] A system (100, 1100) comprising: one or more processors (104); and a machine-readable storage medium (106, 1004) storing instructions (1006-1016) that, when executed by the one or more processors (104), cause the system (100, 1100): receive original time series data from a sensor of a monitored device (140); to group the original time series data into a variety of clusters; using an unsupervised machine learning model, combine a subset of the plurality of clusters based on data signature similarities to form a plurality of motifs; generate a first data definition using the plurality of motifs, the data definition corresponding to a predefined data schema and values for each of the plurality of motifs, the data definition generating a compressed dataset corresponding to the original time series data; generate a second data definition using a seasonal forecast of the sensor of the monitored device (140); train a machine learning model to obtain predicted energy consumption data of the monitored device (140) for a future period with the first data definition and the second data definition, both received from the sensor of the monitored device (140); and using the predicted energy consumption data obtained by the trained machine learning model, schedule a workload to be executed on the monitored device (140) during a portion of the future period, wherein the predicted energy consumption data for the portion of the future period is below an energy consumption threshold. [2] The system (100, 1100) of claim 1, wherein the first data definition corresponds to a directed graph of the plurality of motifs comprising weighted edges between data points. [3] The system (100, 1100) of claim 1, wherein the first data definition and the second data definition are stored as JavaScript Object Notation (JSON) files, and the system (100, 1100) further comprises: Reclaim storage space by deleting the original time series dataset and storing the first data definition and the second data definition in place of the original time series data. [4] The system (100, 1100) of claim 1, wherein the monitored device (140) is a processor in a server in an IT data center. [5] The system (100, 1100) of claim 1, wherein the plurality of clusters comprise local minima and maxima of subsets of the original time series data. [6] The system (100, 1100) of claim 5, wherein the system (100, 1100) further comprises: to determine a centroid of each of the multiple clusters using the local minimum data point and the local maximum data point of each of the multiple clusters of the original time series data. [7] The system (100, 1100) of claim 6, wherein determining the centroid of each of the plurality of clusters uses a customized K-means clustering algorithm that accounts for a linear form of the original time series data. [8] The system (100, 1100) of claim 1, wherein the workload scheduled to execute on the monitored device (140) during the portion of the future period is a reduced workload. [9] The system (100, 1100) of claim 1, wherein the original time series data comprises periodic input power data of the monitored device (140). [10] The system (100, 1100) of claim 1, wherein the first data definition is generated using a first machine learning model, the second data definition is generated using a second machine learning model, and the first machine learning model and the second machine learning model are different from the trained machine learning model that receives the predicted energy consumption data. [11] The system (100, 1100) of claim 10, wherein the second machine learning model is one of SARMA, FBProphet, Holt-Winter-ES, or Gated Recurrent Unit Network. [12] A computer-implemented method comprising: Receiving original time series data from a sensor of a monitored device (140) by a processor (104); Grouping the original time series data into a plurality of clusters; using an unsupervised machine learning model, combining a subset of the plurality of clusters based on data signature similarities into a plurality of motifs; Generating a first data definition using the plurality of motifs, the data definition corresponding to a predefined data schema and values for each of the plurality of motifs, the data definition generating a compressed dataset corresponding to the original time series data; generating a second data definition using a seasonal forecast of the sensor of the monitored device (140); Training a machine learning model to obtain predicted energy consumption data of the monitored device (140) for a future period with the first data definition and the second data definition, both received from the sensor of the monitored device (140); and Using the predicted energy consumption data obtained by the trained machine learning model to schedule a workload to be executed on the monitored device (149) during a portion of the future period, wherein the predicted energy consumption data for the portion of the future period is below an energy consumption threshold. [13] The computer-implemented method of claim 12, wherein the first data definition corresponds to a directed graph of the plurality of motifs comprising weighted edges between data points. [14] The computer-implemented method of claim 12, wherein the first data definition and the second data definition are stored as JavaScript Object Notation (JSON) files, and the method further comprises: Reclaim storage space by deleting the original time series data set and storing the first data definition and the second data definition in place of the original time series data. [15] The computer-implemented method of claim 12, wherein the monitored device (140) is a processor in a server in an IT data center. [16] The computer-implemented method of claim 12, wherein the plurality of clusters comprise local minima and maxima of subsets of the original time series data. [17] The computer-implemented method of claim 16, further comprising: Using the local minimum data point and the local maximum data point of each of the multiple clusters of the original time series data to determine a centroid of each of the multiple clusters. [18] The computer-implemented method of claim 17, wherein determining the centroid of each of the plurality of clusters uses an adapted K-means clustering algorithm that accounts for a linear form of the original time series data. [19] The computer-implemented method of claim 12, wherein the workload scheduled for execution on the monitored device (140) during the portion of the future period is a reduced workload. [20] The computer-implemented method of claim 12, wherein the original time series data comprises periodic input power data of the monitored device (140).

Citation Information

Patent Citations

  • TECHNIQUES FOR THE EFFICIENT OPERATION OF A PROCESSING SYSTEM BASED ON THE ENERGY PROPERTIES OF INSTRUCTIONS AND MACHINE LEARNING

    DE102019120689A1

  • DETECTION OF KNOWN WORKLOAD PATTERNS

    DE112020000976T5

  • Systems and methods for synthetic data generation for time-series data using data segments

    US20200012902A1

  • Using neural networks to perform fault detection in autonomous driving applications

    US20210223780A1

  • System, Method, and Computer Program Product for Event Forecasting Using Graph Theory Based Machine Learning

    US20220398466A1