Patent Publication Number: US-11044178-B2

Title: Data center management method, management apparatus, and data center system

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2017-100705, filed on May 22, 2017, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiment discussed herein is related to a data center management method, a management apparatus, and a data center system. 
     BACKGROUND 
     For example, in a data center where a large number of information and communication technology (ICT) devices are installed, an air conditioner is used to limit temperature rises in the room housing the ICT devices. 
     In this regard, it is easy to maintain a target environment when changes in measurement indices related to air conditioning (for example, temperature and humidity) are predicted and the air conditioner is controlled based on the prediction. 
     However, when the prediction intervals are too long and not suitable for the speed at which a measurement index changes, a change in the predicted value may lag behind a change in the measured value. Thus, the above-described prediction of measurement indices is not accurate all the time. 
     Japanese Laid-open Patent Publication No. 2015-90691 discloses that a prediction model based on a linear regression model is changed when a deviation of prediction data from actual result data exceeds a threshold. The above patent document also discloses that a corrected prediction model is used when a deviation of prediction data in a shorter period exceeds a threshold. 
     Further, Japanese Laid-open Patent Publication No. 9-259110 discusses data fluctuation prediction and assignment of weights according to prediction accuracy to the past amounts of change in measurement values. For example, other related arts is as follows. 
     Ogawa. Masatoshi, Ogai. Harutoshi, “Application of Large-Scale Database-Based Online Modeling to Plant State Long-Term Estimation”, The transactions of the Institute of Electrical Engineers of Japan. C, Vol. 131 No. 4 pp. 718 to 721 (2011) (Non-patent Document 1) 
     Ushida. Shun, Kimura. Hidenori, “Identification and Control of Nonlinear System Utilizing the Just-In-Time Modeling Technique”, Journal of the Society of Instrument and Control Engineers, Vol. 44 No. 2 pp. 102 to 106 (2005) (Non-patent Document 2) 
     Anders Stenman, “Just-in-Time Models with Applications to Dynamical System”, Linkoping Studies in Science and Technology, Thesis No. 601, March 1997 (Non-patent Document 3) 
     It is desirable to improve the accuracy of predicting measurement indices used in environment management of a data center. 
     SUMMARY 
     According to an aspect of the invention, a data center management method executed by a computer that manages a data center and includes a first memory and a second memory, the first memory being configured to store measured values obtained as measurement data for a device in the data center, and differences each corresponding to the measurement data obtained a predetermined period ago, the data center management method includes storing, in the second memory, a predicted value calculated based on the measurement data and the differences; storing, in the first memory, the measured measurement data as the measured value; calculating, based on each of the measured values stored in the first memory, an amount of change which is a difference between the measured value and the predicted value, and storing the calculated amount of change in the second memory; calculating first corrected prediction data based on the measured value currently measured and the measurement values previously measured and stored in the first memory, the first corrected prediction data being data obtained by correction of the predicted value; calculating second corrected prediction data based on previous amounts of change and the first corrected prediction data, the second corrected prediction data being data obtained by correction of the first corrected prediction data; and controlling the device using an operation amount calculated based on the second corrected prediction data. 
     The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a diagram illustrating example configurations of an ICT device room and an air conditioner room in a data center; 
         FIG. 2  is a diagram illustrating examples of measurement data; 
         FIG. 3  is a diagram illustrating example configurations of an ICT device room and an air conditioner room in a data center; 
         FIG. 4A  is a diagram illustrating an outline of first correction; 
         FIG. 4B  is a diagram illustrating an outline of first correction; 
         FIG. 5A  is a diagram illustrating an outline of second correction; 
         FIG. 5B  is a diagram illustrating an outline of second correction; 
         FIG. 6  is a diagram illustrating an example module configuration of an air conditioner controller; 
         FIG. 7  is a diagram illustrating a flowchart of main processing; 
         FIG. 8  is a diagram illustrating an example of a measured value table; 
         FIG. 9  is a diagram illustrating an example of a first difference table; 
         FIG. 10  is a diagram illustrating a flowchart of processing to calculate first differences; 
         FIG. 11  is a diagram illustrating a flowchart of processing to calculate predicted values; 
         FIG. 12  is a diagram illustrating an example of proximity data; 
         FIG. 13  is a diagram illustrating an example of an original predicted value table; 
         FIG. 14  is a diagram illustrating an example of a second difference table; 
         FIG. 15  is a diagram illustrating a flowchart of processing to calculate second differences; 
         FIG. 16  is a diagram illustrating a flowchart of processing to determine first approximate equations; 
         FIG. 17  is a diagram illustrating an example of a regression line of an original predicted value; 
         FIG. 18  is a diagram illustrating an example of a first approximate equation table; 
         FIG. 19  is a diagram illustrating a flowchart of first correction processing; 
         FIG. 20  is a diagram illustrating an example of a first predicted value table; 
         FIG. 21  is a diagram illustrating a flowchart of the main processing; 
         FIG. 22  is a diagram illustrating a flowchart of processing to determine second approximate equations; 
         FIG. 23  is a diagram illustrating an example of a regression line of a second difference; 
         FIG. 24  is a diagram illustrating a flowchart of second correction processing; 
         FIG. 25  is a diagram illustrating an example of a second predicted value table; 
         FIG. 26  is a diagram illustrating a flowchart of the main processing; and 
         FIG. 27  is a functional block diagram of a computer. 
     
    
    
     DESCRIPTION OF EMBODIMENT 
       FIG. 1  illustrates example configurations of an ICT device room and an air conditioner room in a data center. ICT devices are housed in racks and installed in the ICT device room. Each ICT device heats up when a central processing unit (CPU), which is an arithmetic processing device, and a dual in-line memory module (DIMM), which is a storage device, operate. An air conditioner is used to cool the ICT devices down. When the ICT devices are servers, the ICT device room may be called a server room. 
     Although  FIG. 1  depicts only one air conditioner  103 , more than one air conditioner  103  may be installed. The air conditioner  103  circulates air to adjust humidity and temperature. To this end, the air conditioner  103  has a dehumidifying and humidifying device to adjust humidity and a cooling and heating device to adjust temperature. The air conditioner  103  has an air conditioning fan to send out air. Air sent out from the air conditioner  103  is sent into the ICT device room through an air supply port. 
     Meanwhile, air inside the ICT device room is returned to the air conditioner room through an exhaust air port. The air returned to the air conditioner room is discharged outdoors through an exhaust air port in the air conditioner room. Part of the air returned to the air conditioner room is taken into the air conditioner  103  through a damper. 
     As illustrated in  FIG. 1 , various sensors  105  are installed at locations inside and outside the data center. A sensor  105   a  installed outdoors measures the dry-bulb temperature of outside air. A sensor  105   b  also installed outdoors measures the relative humidity of outside air. A sensor  105   c  installed in the air conditioner  103  measures the power consumption of the air conditioner  103 . A sensor  105   d  also installed in the air conditioner  103  acquires a value indicating the operation state of the air conditioner  103 . A sensor  105   e  installed behind the racks in the ICT device room measures the dry-bulb temperature behind the racks. A sensor  105   f  also installed behind the racks measures the relative humidity behind the racks. A sensor  105   g  installed in front of the racks in the ICT device room measures the dry-bulb temperature in front of the racks. A sensor  105   h  also installed in front of the racks measures the relative humidity in front of the racks. A sensor  105   i  installed in each ICT device measures the dry-bulb temperature inside the ICT device. A sensor  105   j  also installed in each ICT device measures the relative humidity inside the ICT device. A sensor  105   k  installed in each ICT device measures the power consumption of the ICT device. A sensor  105   l  also installed in each ICT device acquires a value indicating the operation state of the ICT device. Various other sensors  105  may additionally be used. 
     Based on data collected from these sensors  105 , an air conditioner controller  101  controls the air conditioner  103 . Measurement data collected by the air conditioner controller  101  are now described.  FIG. 2  illustrates examples of measurement data. The measurement data may be collected periodically. For example, the measurement data are collected at 10-minute intervals. The example in  FIG. 2  depicts temperature A at a location a, power consumption B of a device b, humidity C at a location c, frequency of rotation D of a fan in a device d, CPU use rate E of a device e, and operating rate F of a compressor in a device f. Hereinafter, the temperature A at the location a may be referred to as an index A; the consumption power B of the device b, an index B; the humidity C at the location c, an index C; the frequency of rotation D of the fan in the device d, an index D; the CPU use rate E of the device e, an index E; and the operating rate F of the compressor in the device f, an index F. Although omitted in  FIG. 2 , measurement data other than these indices are also collected. 
     To control the air conditioner  103 , with respect to some of the indices, the air conditioner controller  101  predicts values to be measured in the future. In this example, the index A to the index F are targeted for the prediction. As to the prediction target indices, measurement values for the next measurement are predicted. 
     The air conditioner controller  101  obtains adjustment amounts to increase or decrease operation amounts set in the air conditioner  103  based on predicted values, and converts the adjustment amounts to control signals. The air conditioner controller  101  then transmits the control signals to the air conditioner  103  and thereby controls the air conditioner  103 . 
     As illustrated in  FIG. 3 , a certain ICT device in the ICT device room may collect the measurement data and calculate predicted values. In the example illustrated in  FIG. 3 , the ICT device that calculates predicted values sends operation amounts for the air conditioner  103  to a converter. The converter obtains adjustment amounts for the operation amounts and transmits the adjustment amounts to the air conditioner controller  101 . The air conditioner controller  101  converts the adjustment amounts into control signals and transmits the control signals to the air conditioner  103 . 
     The above-described air conditioner controller  101  or the ICT device that calculates predicted values predicts values to be measured in the future based for example on just-in-time (JIT) modeling. Details of prediction processing based on JIT modeling are disclosed in Non-patent Documents 1 to 3. A method other than JIT modeling may be used to calculate predicted values. 
     Note that a calculated predicted value may contain error. For example, an index for the temperature inside an ICT device may change drastically. For such an index that changes drastically, a change in a predicted value may lag behind a change in a measured value. The embodiment corrects such error. Specifically, first correction and second correction are performed. 
       FIG. 4A  illustrates an outline of the first correction. The upper graph depicts measured values and predicted values of the index A. The vertical axis represents measured values x A [i] and predicted values y A [i]. The horizontal axis represents a measurement time point i. 
     In the example illustrated in  FIG. 4A , at the 916-th measurement time point, the air conditioner controller  101  acquires a measured value x A [916] of the index A and also calculates a predicted value y A [917] of the index A for the 917-th measurement. Thereafter, at the 917-th measurement time point, the air conditioner controller  101  acquires a measured value x A [917] of the index A and also calculates a predicted value y A [918] of the index A for the 918-th measurement. Similarly, at the 918-th measurement time point, the air conditioner controller  101  acquires a measured value x A [918] of the index A and also calculates a predicted value y A [919] of the index A for the 919-th measurement. 
     As illustrated in  FIG. 4A , the predicted value y A [917] is smaller than the measured value x A [917], and the predicted value y A [918] is smaller than the measured value x A [918]. In this example, it is conceivable that the predicted values y A  are smaller than the measured values x A  due to a rapid rise of the index A. 
     The first correction uses regression analysis that samples pairs of the measured value x A [i] and the predicted value y A [i] for the same measurement time point i and determines a first approximate equation for use to calculate an approximation of the predicted value y A [i] based on the measured value x A [i]. In  FIG. 4A , the sampled pairs are surrounded by solid lines. 
     Then, at the 918-th measurement time point for example, the originally predicted value y A [919] is converted to a corrected predicted value y A   &lt;1&gt; [919] using a first correction equation. The first correction equation is an equation in which the relation between the predicted value y A [i] and the measured value x A [i] in the first approximate equation is applied to the predicted value y A [919] before the first correction and the predicted value y A   &lt;1&gt; [919] after the first correction. Hereinbelow, an originally predicted value is called an original predicted value, and a predicted value after the first correction is called a first predicted value. The superscript number in angle brackets in the variable denotation of a first predicted value indicates the number of corrections the value has undergone. In this example, &lt;1&gt; represents that the predicted value has been corrected once. Detailed descriptions are given later of the first approximate equation and the first correction equation. 
     In an example illustrated in  FIG. 4B , it is expected that the first predicted value y A   &lt;1&gt; [919] is larger than the original predicted value y A [919] and is closer to the measured value x A [919]. 
     In the second correction, the first predicted value is further corrected. The second correction may not be complete with one correction. In other words, correction may be performed through two or more stages. Using  FIG. 5A , a description is given below of the first stage of the second correction. 
     The second correction obtains first differences concerning measured values and second differences concerning predicted values and focuses on the relations between the first differences and the second differences. In the first stage of correction, the first differences and the second differences are obtained based on the past measurement which goes back from the current measurement by one measurement time point. In other words, the going-back count is 1 in the first stage of correction. 
     For example, a first difference R A1 [917] for the 917-th measurement is obtained by subtraction of the measured value x A [916] from the measured value x A [917]. A second difference S A1 [917] for the 917-th measurement is obtained by subtraction of the measured value x A [916] from the predicted value y A [917]. Similarly, a first difference R A1 [918] for the 918-th measurement is obtained by subtraction of the measured value x A [917] from the measured value x A [918]. A second difference S A1 [918] for the 918-th measurement is obtained by subtraction of the measured value x A [917] from the predicted value y A [918]. The subscript 1 in the variable denotations of the first and second differences represents that the going-back count is 1. 
     The second correction uses regression analysis sampling pairs of the first difference R A1 [i] and the second difference S A1 [i] for the same measurement time point and determines a second approximate equation for use to calculate an approximation of the second difference S A1 [i] based on the first difference R A1 [i]. 
     Then, at the 918-th measurement time point for example, the first predicted value y A   &lt;1&gt; [919] is converted to a second predicted value y A   &lt;2&gt; [919] with a going-back count of 1 using a second correction equation. The second correction equation is an equation in which the relation between the predicted value y A [i] and the measured value x A [i] in the second approximate equation is applied to the predicted value y A   &lt;1&gt; [919] before the second correction and the predicted value y A   &lt;2&gt; [919] after the second correction. Detailed descriptions are given later of the second approximate equation and the second correction equation. 
     In an example illustrated in  FIG. 5B , it is expected that the second predicted value y A   &lt;2&gt; [919] is larger than the first predicted value y A   &lt;1&gt; [919] and is further closer to the measured value x A [919]. 
     If a predetermined condition is not met, the going-back count is incremented by one to perform the next stage of correction. If the predetermined condition is met, the second correction is ended with this stage. A detailed description of the second correction is given later. This is the end of the description of the outline of the present embodiment. 
     Hereinbelow, the operation of the air conditioner controller  101  is described in accordance with the configuration illustrated in  FIG. 1 .  FIG. 6  illustrates an example module configuration of the air conditioner controller  101 . The air conditioner controller  101  includes a wait part  601 , a measurement part  603 , a first calculation part  605 , a second calculation part  607 , a third calculation part  609 , a fourth calculation part  611 , a first determination part  613 , a second determination part  615 , a first correction part  617 , a second correction part  619 , a conversion part  621 , and a transmission part  623 . 
     The wait part  601  performs processing to wait for measurement timing. The measurement part  603  acquires values measured by the sensors  105 . The first calculation part  605  performs processing to calculate predicted values. The processing to calculate predicted values is described later using  FIG. 11 . The second calculation part  607  performs processing to calculate first differences. The processing to calculate first differences is described later using  FIG. 10 . The third calculation part  609  performs processing to calculate second differences. The processing to calculate second differences is described later using  FIG. 15 . The fourth calculation part  611  calculates operation amounts for the air conditioner  103  based on predicted values of the indices. 
     The first determination part  613  performs processing to determine first approximate equations. The processing to determine first approximate equations is described later using  FIG. 16 . The second determination part  615  performs processing to determine second approximate equations. The processing to determine second approximate equations is described later using  FIG. 22 . The first correction part  617  performs first correction processing. The first correction processing is described later using  FIG. 19 . The second correction part  619  performs second correction processing. The second correction processing is described later using  FIG. 24 . 
     The first determination part  613 , the second determination part  615 , the first correction part  617 , and the second correction part  619  correspond to a corrected prediction data generation unit  620  that generates corrected prediction data. 
     The conversion part  621  converts an adjustment amount for an operation amount set in the air conditioner  103  into a control signal. The transmission part  623  transmits a control signal to the air conditioner  103 . 
     The fourth calculation part  611 , the conversion part  621 , and the transmission part  623  correspond to a control unit  624  that controls the air conditioner  103 . 
     The air conditioner controller  101  further includes a measured value storage  631 , an original predicted value storage  633 , a first difference storage  635 , a second difference storage  637 , a first approximate equation storage  639 , a first predicted value storage  641 , and a second predicted value storage  643 . 
     The measured value storage  631  stores a measured value table. The measured value table is described using  FIG. 8 . The original predicted value storage  633  stores an original predicted value table. The original predicted value table is described later using  FIG. 13 . The first difference storage  635  stores a first difference table. The first difference table is described later using  FIG. 9 . The second difference storage  637  stores a second difference table. The second difference table is described later using  FIG. 14 . The first approximate equation storage  639  stores a first approximate equation table. The first approximate equation table is described later using  FIG. 18 . The first predicted value storage  641  stores a first predicted value table. The first predicted value table is described later using  FIG. 20 . The second predicted value storage  643  stores a second predicted value table. The second predicted value table is described later using  FIG. 25 . 
     A table integrating the measured value table and the first difference table may be stored in a measurement data storage  636 . In this case, the measurement data storage  636  integrally includes the measured value storage  631  and the first difference storage  635 . 
     Further, a table integrating the original predicted value table and the second difference table may be stored in a prediction data storage  638 . In this case, the prediction data storage  638  integrally includes the original predicted value storage  633  and the second difference storage  637 . 
     The wait part  601 , the measurement part  603 , the first calculation part  605 , the second calculation part  607 , the third calculation part  609 , the fourth calculation part  611 , the first determination part  613 , the second determination part  615 , the first correction part  617 , the second correction part  619 , the conversion part  621 , and the transmission part  623  described above are implemented using hardware resources (for example,  FIG. 27 ) and programs that cause the processor to execute the processing to be described below. 
     The measured value storage  631 , the original predicted value storage  633 , the first difference storage  635 , the second difference storage  637 , the first approximate equation storage  639 , the first predicted value storage  641 , and the second predicted value storage  643  described above are implemented using hardware resources (for example,  FIG. 27 ). 
     Next, a description is given of processing performed by the air conditioner controller  101 .  FIG. 7  illustrates a flowchart of the main processing performed by the air conditioner controller  101 . The wait part  601  waits for measurement timing (S 701 ). In this example, measurement is performed at certain intervals (for example, 10 minutes). 
     The measurement part  603  acquires values measured by the sensors  105 , namely measured values, from the sensors  105  (S 703 ). The measurement part  603  stores the acquired measured values into the measured value table. 
       FIG. 8  illustrates an example of the measured value table. The measured value table in this example has a record for each measurement time point. Each record in the measured value table has a field for storing a measurement time point, a field for storing a measured value x A  of the temperature A at the location a, a field for storing a measured value x B  of the consumption power B of the device b, and a field for storing a measured value x C  of the temperature C at the location c. Each record of the measured value table also has a field for storing a measured value x D  of the frequency of rotation D of the fan in the device d, a field for storing a measured value x E  of the CPU use rate E of the device e, a field for storing a measured value x F  of the operating rate F of the compressor in the device f, and fields for storing measured values x of other indices. In the measurement time point, “t” denotes the number of the measurement currently performed, namely, the number of the current measurement. 
     Referring back to the flowchart in  FIG. 7 , the second calculation part  607  performs the processing to calculate first differences (S 705 ). The first differences calculated by the second calculation part  607  are stored into the first difference table. 
       FIG. 9  illustrates an example of the first difference table. The first difference table in this example has a record for each measurement time point. Each record in the first difference table has a field for storing a measurement time point, a field for storing first differences R A1  to R A5  of the index A with going-back counts of 1 to 5, respectively, and a field for storing first differences R B1  to R B5  of the index B with going-back counts of 1 to 5, respectively. 
     Each record of the first difference table also has a field for storing first differences R C1  to R C5  of the index C with going-back counts of 1 to 5, respectively, a field for storing first differences R D1  to R D5  of the index D with going-back counts of 1 to 5, respectively, a field for storing first differences R E1  to R E5  of the index E with going-back counts of 1 to 5, respectively, and a field for storing first differences R F1  to R F5  of the index F with going-back counts of 1 to 5, respectively.  FIG. 9 , however, omits the fields for storing the first differences of the indices C to F. 
       FIG. 10  is a flowchart of the processing to calculate first differences. The second calculation part  607  selects one index N (S 1001 ). In this step, an index other than the prediction indices (indices A to F) may be selected. 
     The second calculation part  607  sets  1  to a going-back count j which is an internal parameter (S 1003 ). The second calculation part  607  identifies a measured value x N [t] of the selected index N for the current measurement t (S 1005 ). The second calculation part  607  identifies a measured value x N [t−j] of the selected index N for the past measurement (t−j) (S 1007 ). The second calculation part  607  then calculates a first difference R Nj [t] (S 1009 ). Specifically, the second calculation part  607  obtains the first difference R Nj [t] by subtracting the measured value x N [t−j] of the selected index N for the past measurement (t−j) from the measured value x N [t] of the selected index N for the current measurement t. 
     The second calculation part  607  stores the first difference R Nj [t] into the record for the current measurement t in the first difference table (S 1011 ). The second calculation part  607  determines whether the going-back count j is equal to a predetermined value (S 1013 ). The predetermined value is an envisaged upper limit of the going-back count (in this example, five). 
     If it is determined that the going-back count j is not equal to the predetermined value, the second calculation part  607  increments the going-back count j by one (S 1015 ). The flowchart then proceeds back to the processing in S 1005  and repeats the above processing. 
     If it is conversely determined that the going-back count j is equal to the predetermined value, the second calculation part  607  determines whether there is any unselected index N (S 1017 ). 
     If it is determined that there is any unselected index N, the flowchart proceeds back to the processing in S 1001  and repeats the above processing. If it is conversely determined that there is no unselected index N, the processing to calculate first differences is ended, and the flowchart returns to the calling main processing. 
     Referring back to the flowchart in  FIG. 7 , the first calculation part  605  performs the processing to calculate predicted values (S 707 ). 
       FIG. 11  illustrates a flowchart of the processing to calculate predicted values. In the processing to calculate predicted values, predicted values are calculated based for example on the above-described JIT modeling. The processing to calculate predicted values is a conventional technique, and is therefore described only briefly herein. The first calculation part  605  selects one prediction index N (S 1101 ). In this example, one of the indices A to F is selected. 
     Based on the measured values stored in all the items for each measurement time point in the measured value table and the first difference stored in all the items for each measurement time point in the first difference table, the first calculation part  605  identifies an associated index number highly correlated with the prediction index (S 1103 ). The associated index number is identified by an index type and a going-back count. For example, when it is determined that the index B that goes back four measurement time points and the index C that goes back six measurement time points are highly correlated with the index A, the index B with a going-back count of 4 and the index C with a going-back count of 6 are associated indices for the prediction index A. In this example, the first difference may serve as the associated index number. 
     The first calculation part  605  determines the value of the associated index number to be inputted to the prediction model (hereinafter referred to as an input value) (S 1105 ). To obtain a predicted value for the next measurement (t+1), the input value is the measured value of an associated index for the measurement corresponding to the going-back count of the associated index minus 1. For example, an input value as to the associated index B with a going-back count of 4 is a measured value  XB [t−3] of the index B obtained three measurement time points ago. 
     The first calculation part  605  identifies proximity data (S 1107 ).  FIG. 12  illustrates an example of the proximity data. In the example described above, out of the measured values of the associated index B with a going-back count of 4, ones whose difference from the input value is, in absolute value, equal to or below a predetermined value are extracted as samples. In  FIG. 12 , the points located between the two vertical lines are the samples. 
     Referring back to the flowchart in  FIG. 11 , the first calculation part  605  generates a prediction model based on the extracted samples (S 1109 ). Specifically, the first calculation part  605  finds a regression line equation using regression analysis. Then, the regression lines for the respective associated indices are combined to obtain a calculation equation corresponding to a prediction model.  FIG. 12  illustrates an example of a regression line. 
     In the above example where the index B with a going-back count of 4 and the index C with a going-back count of 6 are the associated indices for the prediction index A, the calculation equation is y A [t+1]=Q A [t]+P A,B [t]×x B [t−3]+P A,C [t]×x C [t−5], where y A [t+1] is a predicted value of the prediction index A for the next measurement (t+1), Q A [t] is a constant for the prediction of the prediction index A for the current measurement t, P A,B [t] is a coefficient of the associated index B for the prediction of the prediction index A for the current measurement t, x B [t−3] is a measured value of the index B obtained three measurements ago (this value corresponds to the input value), P A,C [t] is a coefficient of the associated index C for the prediction of the prediction index A for the current measurement t, and x C [t−5] is a measured value of the index C obtained five measurements ago (this value corresponds to the input value). 
     The first calculation part  605  applies the input values to the above-described prediction model and thereby calculates a predicted value (S 1111 ). A predicted value obtained using the prediction model is hereinafter referred to as an original predicted value. The first calculation part  605  stores an original predicted value y N [t+1] into the record for the next measurement (t+1) in the original predicted value table (S 1113 ). 
       FIG. 13  illustrates an example of the original predicted value table. The original predicted value table in this example has a record for each measurement time point. Each record of the original predicted value table has a field for storing a measurement time point, a field for storing an original predicted value y A  of the temperature A at the location a, a field for storing an original predicted value y B  of the power consumption B of the device b, and a field for storing an original predicted value y C  of the temperature C at the location c. Each record of the original predicted value table also has a field for storing an original predicted value y D  of the frequency of rotation D of the fan in the device d, a field for storing an original predicted value y E  of the CPU use rate E of the device e, a field for storing an original predicted value y F  of the operation rate F of the compressor in the device f. 
     Referring back to the flowchart in  FIG. 11 , the first calculation part  605  determines whether there is any unselected prediction index N (S 1115 ). If it is determined that there is any unselected predicted index N, the flowchart proceeds back to the processing in S 1101  and repeats the above processing. If it is conversely determined that there is no unselected prediction index N, the processing to calculate predicted values is ended, and the flowchart returns to the calling main processing. 
     Referring back to the flowchart in  FIG. 7 , the third calculation part  609  performs the processing to calculate second differences (S 709 ). The second differences calculated by the third calculation part  609  are stored into the second difference table. 
       FIG. 14  illustrates an example of the second difference table. The second difference table in this example has a record for each measurement time point. Each record of the second difference table has a field for storing a measurement time point, fields for storing second differences S A1  to S A5  of the index A with going-back counts of 1 to 5, respectively, and fields for storing second differences S B1  to S B5  of the index B with going-back counts of 1 to 5, respectively. 
     Each record of the second difference table also has fields for storing second differences S C1  to S C5  of the index C with going-back counts of 1 to 5, respectively, fields for storing second differences S D1  to S D5  of the index D with going-back counts of 1 to 5, respectively, fields for storing second differences S E1  to S E5  of the index E with going-back counts of 1 to 5, respectively, and fields for storing second differences S F1  to S F5  of the index F with going-back counts of 1 to 5. However,  FIG. 14  omits the fields for storing second differences for the indices C to F. 
       FIG. 15  illustrates a flowchart of the processing to calculate second differences. The third calculation part  609  selects one prediction index N (S 1501 ). 
     The third calculation part  609  sets  1  to the going-back count j which is an internal parameter (S 1503 ). The third calculation part  609  identifies an original predicted value y N [t+1] of the selected index N for the next measurement (t+1) (S 1505 ). The third calculation part  609  identifies a measured value x N [t+1−j] of the selected index N for the past measurement (t+1−j) (S 1507 ). The third calculation part  609  then calculates a second difference S N [t+1] (S 1509 ). Specifically, the third calculation part  609  obtains the second difference S Nj [t+1] by subtracting the measured value x N [t+1−j] of the selected index N for the past measurement (t+1-j) from the original predicted value y N [t+1] of the selected index N for the next measurement (t+1). 
     The third calculation part  609  stores the second difference S Nj [t+1] into the record for the next measurement (t+1) in the second difference table (S 1511 ). The third calculation part  609  determines whether the going-back count j is equal to a predetermined value (S 1513 ). The predetermined value is an envisaged upper limit of the going-back count (in this example, five). 
     If it is determined that the going-back count j is not equal to the predetermined value, the third calculation part  609  increments the going-back count j by one (S 1515 ). The third calculation part  609  then proceeds back to the processing in S 1505  and repeats the above processing. 
     If it is conversely determined that the going-back count j is equal to the predetermined value, the third calculation part  609  determines whether there is any unselected index N (S 1517 ). 
     If it is determined that there is any unselected index N, the third calculation part  609  proceeds back to the processing in S 1501  and repeats the above processing. If it is conversely determined that there is no unselected index N, the third calculation part  609  ends the processing to calculate second differences and returns to the calling main processing. 
     Referring back to the flowchart in  FIG. 7 , the first determination part  613  performs the processing to determine first approximate equations (S 711 ). 
       FIG. 16  illustrates a flowchart of the processing to determine first approximate equations. The first determination part  613  selects one prediction index N (S 1601 ). 
     As samples, the first determination part  613  extracts pairs of the measured value x N [i] and the original predicted value y N [i] within a range where, for example, the measurement time point i is 1 to t (S 1603 ). 
     Using linear regression that uses the extracted samples, the first determination part  613  calculates a coefficient α N  and a constant β N  for a regression equation for a predicted value (S 1605 ). The regression equation for a predicted value is an example of a first approximate equation for finding an approximation of the original predicted value y N [i] based on the measured value x N [i]. The regression equation for a predicted value is y N [i]=α N ×x N [i]+β N . 
       FIG. 17  illustrates an example of a regression line of an original prediction value. The example illustrated in  FIG. 17  concerns the prediction index A. The horizontal axis represents the measured value x A [i] of the prediction index A, and the vertical axis represents the original predicted value y A [i] of the prediction index A. The points indicated with a cross are the samples. The straight line in  FIG. 17  is a regression line expressed by a regression equation for a predicted value. 
     Referring back to the flowchart in  FIG. 16 , the first determination part  613  stores the coefficient α N  and the constant β N  for the regression equation for a predicted value into the record for the selected index N in the first approximate equation table (S 1607 ). 
       FIG. 18  illustrates an example of the first approximate equation table. The first approximate equation table in this example has a record for each prediction index. Each record of the first approximate equation table has a field for storing the coefficient α N  and a field for storing the constant β N . 
     Referring back to the flowchart in  FIG. 16 . The first determination part  613  determines whether there is any unselected index N (S 1609 ). If it is determined that there is any unselected prediction index N, the flowchart proceeds back to the processing in S 1601  and repeats the above processing. If it is determined conversely that there is no unselected prediction index N, the processing to determine first approximate equations is ended, and the flowchart returns to the calling main processing. 
     Referring back to the flowchart in  FIG. 7 , the first correction part  617  performs the first correction processing (S 713 ). 
       FIG. 19  illustrates a flowchart of the first correction processing. The first correction part  617  selects one prediction index N (S 1901 ). 
     The first correction part  617  calculates a first predicted value y N   &lt;1&gt; [t+1] by applying the original predicted value y N [t+1] to a first correction equation (S 1903 ). The first correction equation is y N   &lt;1&gt; [t+1]=(y N [t+1]−β N )/α N . The first correction equation is equivalent to an equation which is based on the first approximate equation and replaces the predicted value y N [i] and the measured value x N [i] in the first approximate equation with the original predicted value y N [t+1] and the first predicted value y N   &lt;1&gt; [t+1], respectively. Thus, the first predicted value y N   &lt;1&gt; [t+1] is closer to the measured value x N [t+1] obtained in the next measurement (t+1). 
     The first correction part  617  stores the first predicted value y N   &lt;I&gt; [t+1] into the record for the next measurement (t+1) in the first predicted value table (S 1905 ). 
       FIG. 20  illustrates an example of the first predicted value table. The first predicted value table in this example has a record for each measurement time point. Each record of the first predicted value table has a field for storing a measurement time point, a field for storing a first predicted value y A   &lt;1&gt;  of the temperature A at the location a, a field for storing a first predicted value y B   &lt;1&gt;  of the power consumption B of the device b, and a field for storing a first predicted value y C   &lt;1&gt;  of the humidity C at the location c. Each record of the first predicted value table further has a field for storing a first predicted value y D   &lt;1&gt;  of the frequency of rotation D of the fan in the device d, a field for storing a first predicted value y E   &lt;1&gt;  of the CPU use rate E of the device e, and a field for storing a first predicted value y F   &lt;1&gt;  of the operating rate F of the compressor in the device f. 
     Referring back to the flowchart in  FIG. 19 , the first correction part  617  determines whether there is any unselected prediction index N (S 1907 ). If it is determined that there is any unselected prediction index N, the flowchart proceeds back to the processing in S 1901  and repeats the above processing. If it is conversely determined that there is no unselected prediction index N, the first correction processing is ended, and the flowchart returns to the calling main processing. 
     Referring back to the flowchart in  FIG. 7 , after S 713  of the first correction processing, the flowchart proceeds to processing in S 2101  illustrated in  FIG. 21  via terminal A. 
     Proceeding to the main processing illustrated in  FIG. 21 , the second determination part  615  selects one prediction index N (S 2101 ). The second determination part  615  sets  1  to the going-back count j which is an internal parameter (S 2103 ). 
     The second determination part  615  performs processing to determine second approximate equations (S 2105 ). 
       FIG. 22  illustrates a flowchart of the processing to determine second approximate equations. The second determination part  615  extracts pairs of the first difference R Nj [i] and the second difference S Nj [i] within a range where, for example, the measurement time point i is j+1 to t (S 2201 ). 
     Using linear regression that uses the extracted samples, the second determination part  615  calculates a coefficient α Nj  and a constant β Nj  for a regression equation for a second difference (S 2203 ). The regression equation for a second difference is an example of a second approximate equation for finding an approximation of the second difference S Nj [i] based on the first difference R Nj [i]. The regression equation for a second difference is S Nj [i]=α Nj ×R Nj [i]+β Nj . 
       FIG. 23  illustrates an example of a regression line for a second difference. The example in  FIG. 23  concerns the prediction index A. The horizontal axis represents the first difference R A1 [i] with a going-back count of 1, and the vertical axis represents the second difference S A1 [i] with a going-back count of 1. The points indicated with a cross are the samples. The straight line in  FIG. 23  is a regression line expressed by the regression equation for a second difference. 
     Referring back to the flowchart in  FIG. 22 , the second determination part  615  retains the coefficient α Nj  and the constant β Nj  for the regression equation for a second difference as internal parameters (S 2205 ). After the processing to determine second approximate equations ends, the flowchart returns to the calling main processing. 
     Referring back to the flowchart in  FIG. 21 , the second correction part  619  performs second correction processing (S 2107 ). 
       FIG. 24  illustrates a flowchart of the second correction processing. The second correction part  619  calculates a (j+1)-th predicted value y N   &lt;j&gt; +1&gt;[t+1] by applying a j-th predicted value y N   &lt;j&gt; [t+1] and the measured value x N [t] to a second correction equation (S 2401 ). 
     For example, in the second correction processing for the first time (j=1), the second correction part  619  calculates the second predicted value y N   &lt;2&gt; [t+1] by applying the first predicted value y N   &lt;j&gt; [t+1] and the measured value x N [t] to a second correction equation: y N   &lt;2&gt; [t+1]={y N   &lt;1&gt; [t+1]+(α N1 −1)×x N [t]−β N1 }/α N1 . 
     The second correction equation used in the second correction processing for the first time (j=1) is equivalent to an equation which is based on the definition of the first difference, the definition of the second difference, and the second approximate equation and which replaces the original predicted value y N [i], the measured value x N [i], and the measured value x N [i−1] with the j-th predicted value y N   &lt;1&gt; [t+1], the (j+1)-th predicted value y N   &lt;2&gt; [t+1], and the measured value x N [t], respectively. 
     A general second correction equation is y N   &lt;j+1&gt; [t+1]={y N   &lt;j&gt; [t+1]+(α Nj −1)×x N [t]−β Nj }/α Nj . This equation is equivalent to an equation which is based on the definition of the first difference, the definition of the second difference, and the second approximate equation and which replaces the original predicted value y N [i], the measured value x N [i], and the measured value x N [i−j] with the j-th predicted value y N   &lt;j&gt; [t+1], the (j+1)-th predicted value y N   &lt;j+1&gt; [t+1], and the measured value x N [t+1−j], respectively. 
     The second correction part  619  stores the (j+1)-th predicted value y N   &lt;j+1&gt; [t+1] into the record for the next measurement (t+1) in the second predicted value table (S 2403 ). 
       FIG. 25  illustrates an example of the second predicted value table. The second predicted value table in this example has a record for each measurement time point. Each record of the second predicted value table has a field for storing a measurement time point, a field for storing a second predicted value y A   &lt;2&gt;  of the temperature A at the location a, a field for storing a second predicted value y B   &lt;2&gt;  of the power consumption B of the device b, and a field for storing a second predicted value y C   &lt;2&gt;  of the humidity C at the location c. Each record of the second predicted value table further has a field for storing a second predicted value y D   &lt;2&gt;  of the frequency of rotation D of the fan in the device d, a field for storing a second predicted value y E   &lt;2&gt;  of the CPU use rate E of the device e, and a field for storing a second predicted value y F   &lt;2&gt;  of the operating rate F of the compressor in the device f. 
     Referring back to the flowchart in  FIG. 21 , the second determination part  615  determines whether the coefficient α N  for the going-back count j exceeds the coefficient α N  for the going-back count j−1 (S 2109 ). In this example, when the coefficient α N  for the going-back count j exceeds the coefficient α N  for the going-back count j−1, it is determined that correction of the predicted value is complete, and the iteration is ended. Alternatively, the iteration may be ended when the going-back count j reaches a predetermined value. 
     If it is determined that the coefficient α N  for the going-back count j does not exceed the coefficient α N  for the going-back count j−1, the second determination part  615  increments the going-back count j by one (S 2111 ). Then, the flowchart proceeds back to the processing in S 2105  and repeats the above processing. If it is conversely determined that the coefficient α N  for the going-back count j exceeds the coefficient α N  for the going-back count j−1, the second determination part  615  determines whether there is any unselected prediction index N (S 2113 ). 
     If it is determined that there is any unselected prediction index N, the flowchart proceeds back to the processing in S 2101  and repeats the above processing. If it is conversely determined that there is no unselected prediction index N, the flowchart proceeds to the processing in S 2601  illustrated in  FIG. 26  via terminal B. 
     Control of the air conditioner  103  based on the predicted values for the indices is performed with a conventional technique, and is therefore described only briefly herein. The fourth calculation part  611  calculates operation amounts for the air conditioner  103  based on the final predicted values obtained for the respective predicted indices (S 2601 ). The fourth calculation part  611  calculates adjustment amounts for the operation amounts based on the operation amounts currently set in the air conditioner  103  (S 2603 ). The conversion part  621  converts the adjustment amounts for the operation amounts into control signals (S 2605 ). The transmission part  623  transmits the control signals to the air conditioner  103  (S 2607 ). The air conditioner  103  operates according to the control signals. The flowchart then returns to the processing in S 701  of  FIG. 7  via terminal C. 
     According to the present embodiment, prediction accuracy may be improved for measurement indices used in the environmental management of a data center. 
     According to the present embodiment, accuracy of correcting predicted values may be improved using regression analysis. 
     The second correction may be omitted, and only the first correction may be performed. Conversely, the first correction may be omitted, and only the second correction may be performed. 
     Although the embodiment of the disclosure has been described, the disclosure is not limited to the embodiment. For example, the functional block configuration described above may not be consistent with a program module configuration. 
     The above-described structure of the storage areas is merely an example, and the disclosure is not limited thereto. Further, the processes in the flowcharts may be changed in order, or two or more processes may be performed in parallel, as long as it does not change the processing outcome. 
     The air conditioner controller  101  described above is a computer device in which, as illustrated in  FIG. 27 , a memory  2501 , a CPU  2503 , a hard disk drive (HDD)  2505 , a display controller  2507  connected to a display device  2509 , a drive device  2513  for a removable disk  2511 , an input device  2515 , and a communication controller  2517  for connecting to a network are connected to one another via a bus  2519 . An operating system (OS) and application programs for implementing the processing in the embodiment are stored in the HDD  2505 , and are loaded from the HDD  2505  into the memory  2501  when they are to be executed by the CPU  2503 . The CPU  2503  controls the display controller  2507 , the communication controller  2517 , and the drive device  2513  according to the processing details selected by the application programs and causes them to perform predetermined operations. Data currently being processed is stored mainly in the memory  2501 , but may be stored in the HDD  2505 . In the embodiment of the disclosure, the application programs for implementing the above-described processing are stored in the computer-readable removable disk  2511 , distributed, and installed from the drive device  2513  to the HDD  2505 . The application programs may be installed into the HDD  2505  via a network, such as the Internet, and the communication controller  2517 . Such a computer device implements the various functions described above when hardware such as the CPU  2503  and the memory  2501  organically cooperate with programs such as the OS and the application programs. 
     The embodiment of the disclosure described above may be summed up as follows. 
     The management apparatus according to the embodiment is a data center management apparatus that manages a data center and comprises: (A) a measurement data storage that stores measured data obtained as measurement data for a device in the data center and difference data each concerning the measurement data obtained a predetermined period ago; (B) a predicted data calculation part that calculates predicted data based on the measurement data and the difference data and stores the predicted data into a prediction data storage; (C) a measurement part that stores the measured measurement data into the measurement data storage as the above-mentioned measured data; (D) an amount of change calculation part that, based on each measured data stored in the measurement data storage, calculates an amount of change which is the difference between the measured data and the predicted data and stores the calculated amount of change into the predicted data storage; (E) a corrected prediction data generation part that calculates first corrected prediction data (predicted data obtained by correction of the predicted data) based on the current measured data and the previous measured data stored in the measurement data storage, and calculates second corrected prediction data (predicted data obtained by correction of the first predicted data) based on the previous amounts of change and the first corrected prediction data; and (F) a control part that controls the device using an operation amount calculated based on the corrected prediction data. 
     With such a configuration, prediction accuracy may be improved for the measurement indices used in the environmental management of the data center. 
     The measurement data storage  636  illustrated in  FIG. 6  is an example of the above measurement data storage. The prediction data storage  638  illustrated in  FIG. 6  is an example of the above prediction data storage. The first calculation part  605  illustrated in  FIG. 6  is an example of the above predicted data calculation part. The measurement part  603  illustrated in  FIG. 6  is an example of the above the above measurement part. The third calculation part  609  illustrated in  FIG. 6  is an example of the above amount of change calculation part. The corrected prediction data generation unit  620  illustrated in  FIG. 6  is an example of the above corrected prediction data generation part. The control unit  624  illustrated in  FIG. 6  is an example of the above control part. 
     Further, the corrected prediction data generation part may calculate the first corrected prediction data based on the current measurement data and the slope and intercept of a first approximate line expressing the previous measured data stored in the measurement data storage. 
     In this way, the accuracy of correcting predicted values may be improved based on the first approximate line expressing the previous measured data. 
     Further, the corrected prediction data generation part may calculate a second slope and a second intercept of a second approximate line expressing previous amounts of change and calculate the second corrected prediction data based on the first corrected prediction data, each amount of change calculated based on the previous amounts of change, and the second slope and the second intercept. 
     In this way, the accuracy of correcting predicted values may be improved based on the second approximate line expressing the previous amounts of change. 
     Programs for causing a computer to execute the above-described processing in the management apparatus may be created and stored in, for example, a computer-readable storage medium or a storage device such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. Typically, intermediate processing results are temporarily stored in a storage device such as main memory. 
     All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.