US20080059968A1 - Mechanism for on-line prediction of future performance measurements in a computer system - Google Patents

Mechanism for on-line prediction of future performance measurements in a computer system Download PDF

Info

Publication number
US20080059968A1
US20080059968A1 US11/926,850 US92685007A US2008059968A1 US 20080059968 A1 US20080059968 A1 US 20080059968A1 US 92685007 A US92685007 A US 92685007A US 2008059968 A1 US2008059968 A1 US 2008059968A1
Authority
US
United States
Prior art keywords
task
computer system
tasks
dynamic priority
metric
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/926,850
Inventor
Gheorghe Cascaval
Evelyn Duesterwald
Sandhya Dwarkadas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US11/926,850 priority Critical patent/US20080059968A1/en
Publication of US20080059968A1 publication Critical patent/US20080059968A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • This invention generally relates to adaptive computer systems. More specifically, the invention relates to a flexible performance multi-predictor that solves the problem of providing accurate future behavior predictions for adaptive reconfiguration systems.
  • Adaptive computer systems attempt to improve performance and/or reduce power consumption by periodically reconfiguring the system according to the current resource requirements and/or characteristics of the running workload.
  • Such reconfiguration may be a reconfiguration of the hardware, such as the resizing of computer resources (e.g., resizing of caches or issue width), or it may be a reconfiguration of the software (dynamic optimization), such as the tuning of a process or thread scheduling policy.
  • the reconfiguration logic may be implemented in software or in hardware.
  • the purpose of the reconfiguration is to exploit the variability of behavior in a running workload to improve performance or to reduce power. For example, if the workload currently under- or over-utilizes certain hardware structures, hardware reconfiguration may down- or upsize them.
  • Software reconfiguration logic may reconfigure the workload through scheduling decisions to better exploit the available hardware. In either case, the reconfiguration logic can initiate a reconfiguration based on observed or expected changes in the running workload characteristics.
  • a common way to assess workload characteristics is through hardware performance counters. These counters are typically available on modern microprocessors to provide statistics about resource usage and workload composition. However, hardware counters only provide characterization post-mortem; that is, after the behavior has been observed. In order to effectively reconfigure a computer system, reconfiguration decisions should be based on future rather than past behavior.
  • a reactive adaptive system the reconfiguration logic tracks current workload characteristics either through existing hardware counters or through specialized tracking hardware. If it is found that the current behavior deviates from the behavior at the last system reconfiguration by more than a threshold value, a new reconfiguration is triggered to match the changed workload characteristics.
  • a reactive strategy works well if the workload behavior is relatively stable with few distinct behavior changes.
  • a reactive system will always lag behind the latest behavior changes and thus never reach an optimal configuration for the current behavior.
  • Sherwood, et al. requires specialized dedicated hardware structures.
  • the system disclosed in Sherwood, et al. is based on an assumption that if one metric is stable, other metrics are also stable. This assumption limits the prediction accuracy of the Sherwood, et al. approach.
  • Branch predictors generally use some form of a hash table that stores predicted branch outcome based on a specific history of branches that have most recently executed. Branch predictors predict the outcome of a specific event (the execution of a specific branch. However, branch predictors only predict branch outcomes based on branch execution history.
  • An object of this invention is to support adaptive reconfiguration computer systems by providing a mechanism to determine, through prediction, expected changes in the workload characteristics.
  • Another object of the invention is to use hardware that typically exists on modern computer systems to predict workload characteristics.
  • a further object of the present invention is to track directly one performance metric of an adaptive computer system, and to use that one metric to make predictions along several other performance metrics.
  • the method comprises the steps of, over a given period of time, measuring at least one defined metric, transforming that measurement into a value for a predictor source metric, and using the value for the predictor source metric to obtain a predicted future value for said target metric.
  • the preferred embodiment of this invention provides a flexible performance multi-predictor to solve the problem of providing accurate future behavior predictions for adaptive reconfiguration systems.
  • the multi-predictor makes predictions about future workload characteristics by periodically reading available hardware counters. Any suitable reconfiguration logic and reconfiguration mechanism may be used in the practice of this invention.
  • the invention is applicable to a plurality of dynamic and adaptive reconfiguration scenarios.
  • FIG. 1 illustrates an adaptive scheduling process which may utilize a preferred embodiment of this invention.
  • FIG. 2 shows in greater detail the performance multi-predictor illustrated in FIG. 1 .
  • FIG. 3 shows details of the prediction mechanism of FIG. 2 .
  • the preferred embodiment of this invention is to use the performance multi-predictor in a software adaptive environment.
  • One embodiment of the invention addresses the problem of making adaptive task scheduling decisions in an operating system to control the processor temperature.
  • the scheduling objective is to lower the thermal profile of a processor; that is, to prevent the processor from exceeding a certain temperature threshold.
  • a task's contribution to the processor temperature varies depending on the type of task activity (e.g. memory versus CPU bound task).
  • the performance multi-predictor plays a key role by providing a mechanism that enables the scheduler to make scheduling decisions based on the future temperature contribution of each task.
  • FIG. 1 illustrates this preferred embodiment.
  • the Figure shows the main scheduler loop 10 .
  • the scheduler selects from the pool of ready-to-execute tasks the task with the highest dynamic priority.
  • Tasks have a static priority that is usually provided by the application and a dynamic priority that is recomputed during each interval based on current processor temperature and predicted temperature contribution. In addition, there may be other factors in the dynamic priority contribution, such as the degree of interactiveness of a task.
  • the selected task is then scheduled, at step 14 , for a fixed time quantum. Once the time quantum expires, as represented by steps 16 and 20 , the scheduler, at step 22 , queries the performance multi-predictor 24 to provide a prediction for the future temperature contribution. At step 26 , the prediction is attached to the task before the task is re-entered into the ready pool.
  • the multi-predictor 24 from FIG. 1 is expanded in FIG. 2 to show its major components.
  • the multi-predictor reads one or more existing system hardware counters, generally referenced at 28 , that track the current utilization of hardware resources by each task that is running. Hardware counters to track hardware resource utilization are available on all modern computer systems. Each hardware counter can be programmed to track one of a plurality of metrics such as the number of instructions executed or the number of cache misses experienced.
  • a system may have one or more hardware counters, and for example, two are specifically shown in FIG. 2 and referenced at 30 and 32 .
  • the multi-predictor 24 reads one or more of the counters 28 at regular intervals, e.g., every 10 milliseconds, or at preset events, such as every 100,000 committed instructions.
  • the multi-predictor 24 includes a metric model 34 that is used to transform the available hardware counter measurements into a single predictor source metric.
  • Any suitable metric model may be used in the practice of this invention and any existing model that uses hardware counters to model other performance metrics can be used.
  • a power model that can be used is disclosed in “Run-time power estimation in high-performance microprocessors,” In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED), Aug. 6-7, 2002, by R. Josep and M. Martonosi (Josep, et al.).
  • the single predictor source metric is the temperature contribution.
  • the single predictor source metric is then used as input to the actual prediction mechanism 36 of the multi-predictor, and mechanism 36 then produces a plurality of predicted target metric values.
  • the preferred embodiment uses only a single target metric, which is identical to the source metric: the temperature contribution.
  • FIG. 3 shows the details of the prediction mechanism 36 from FIG. 2 .
  • the prediction mechanism receives the source metrics values as input as shown in FIG. 2 and internally stores these values in a history buffer 40 .
  • the history buffer is a circular buffer (queue) of size N so that it can be used to retrieve the last N source metric values at any time.
  • This history is processed at 42 to produce an index key.
  • the mapping from histories 40 to index keys is such that there exists a unique index key for each history value but not necessarily vice versa (i.e., the range of index values may be smaller than the range of possible history values).
  • a hash function is an example of an index key producing function.
  • the index key is then used to index into a prediction table 44 .
  • the prediction table holds values of target metrics that have been observed to follow the history when the index key was last seen. If an entry is found, the prediction mechanism will return the entry as the predicted set of target metric values.
  • the prediction table 44 requires a learning period to populate table entries.
  • the table population takes place by passing the last observed target metric values to the prediction mechanism 36 along with a request for a new prediction.
  • the last observed target metric values are used to update the table entry for the previous history.
  • a prediction is made for the future behavior of the task that just finished its scheduling interval.
  • the prediction is fed into a thermal model that produces an expected temperature contribution for this task. This temperature contribution is used to classify the task as either a hot or cold task.
  • the system takes into account the current process temperature and the hot/cold task classification and chooses a task that best balances the thermal profile of the processor.
  • the entire prediction mechanism can be built in software (though building it in hardware may be desirable).
  • the software prediction mechanism the only hardware requirement is access to the hardware counters as they are typically found in modern computer systems.
  • the preferred embodiment of the present invention differs from the approach disclosed in Sherwood, et al. in several ways.
  • First, the preferred embodiment is based solely on existing hardware performance counters and does not require any specialized dedicated hardware structures.
  • the entire invention can be implemented in software using existing hardware.
  • Second, the preferred embodiment of the invention tracks one performance metric directly (the source metric) and is capable of making predictions along several other performance metrics (the target metrics).
  • the invention may exploit the fact that the periodicity of behavior along different metrics tends to be correlated (behavior patterns of different metrics repeat at the same rate).
  • Sherwood et al. in contrast, make the more constrained assumption that if one metric is stable other metrics are also stable. Since the assumption used in this invention is more relaxed (the periodicity in metric variation is correlated, not the values themselves) it is more likely to be met by realistic workloads, yielding a better overall prediction accuracy.

Abstract

Disclosed are a method and system for predicting future values of a target metric associated with a task executed on a computer system. The method comprises the steps of, over a given period of time, measuring at least one defined metric, transforming that measurement into a value for a predictor source metric, and using the value for the predictor source metric to obtain a predicted future value for said target metric. The preferred embodiment of this invention provides a flexible performance multi-predictor to solve the problem of providing accurate future behavior predictions for adaptive reconfiguration systems. The multi-predictor makes predictions about future workload characteristic by periodically reading available hardware counters. Also disclosed is a method and system for periodically reconfiguring an adaptive computer system by rescheduling tasks based on future behavior predictions.

Description

    BACKGROUND OF THE INVENTION Field of the Invention
  • This invention generally relates to adaptive computer systems. More specifically, the invention relates to a flexible performance multi-predictor that solves the problem of providing accurate future behavior predictions for adaptive reconfiguration systems.
  • Adaptive computer systems attempt to improve performance and/or reduce power consumption by periodically reconfiguring the system according to the current resource requirements and/or characteristics of the running workload. Such reconfiguration may be a reconfiguration of the hardware, such as the resizing of computer resources (e.g., resizing of caches or issue width), or it may be a reconfiguration of the software (dynamic optimization), such as the tuning of a process or thread scheduling policy. The reconfiguration logic may be implemented in software or in hardware.
  • The purpose of the reconfiguration is to exploit the variability of behavior in a running workload to improve performance or to reduce power. For example, if the workload currently under- or over-utilizes certain hardware structures, hardware reconfiguration may down- or upsize them. Software reconfiguration logic may reconfigure the workload through scheduling decisions to better exploit the available hardware. In either case, the reconfiguration logic can initiate a reconfiguration based on observed or expected changes in the running workload characteristics.
  • A common way to assess workload characteristics is through hardware performance counters. These counters are typically available on modern microprocessors to provide statistics about resource usage and workload composition. However, hardware counters only provide characterization post-mortem; that is, after the behavior has been observed. In order to effectively reconfigure a computer system, reconfiguration decisions should be based on future rather than past behavior.
  • Various reconfiguration solutions that have been pursued in the past are reactive (rather than predictive) adaptive systems. In a reactive adaptive system, the reconfiguration logic tracks current workload characteristics either through existing hardware counters or through specialized tracking hardware. If it is found that the current behavior deviates from the behavior at the last system reconfiguration by more than a threshold value, a new reconfiguration is triggered to match the changed workload characteristics. Such a reactive strategy works well if the workload behavior is relatively stable with few distinct behavior changes. However, in a workload that is characterized by high variability, a reactive system will always lag behind the latest behavior changes and thus never reach an optimal configuration for the current behavior.
  • One prior approach that attempts to make predictive rather than reactive reconfiguration decisions is disclosed in “Phase Tracking and Prediction,” In Proceedings of the 30th Annual International Symposium on Computer Architecture (ISCA), Jun. 9-11, 2003, by T. Sherwood, S. Sair and B. Calder (Sherwood, et al.). In this approach, a dedicated hardware structure is developed to track the so called basic block vectors. Basic block vectors are used to determine where in the program code the current workload executes. Assuming that workload behavior is a function of the current basic block vector, a classification scheme is used to classify different basic block vectors into different phases and each phase is associated with a particular value of the performance metric one wishes to predict. The dedicated hardware structure includes logic for predicting the next phase (in terms of the basic block vectors) using a Markov model predictor. The performance value associated with the predicted next phase is then used to reconfigure the adaptive system.
  • One limitation of this approach is that it requires specialized dedicated hardware structures. Moreover, the system disclosed in Sherwood, et al. is based on an assumption that if one metric is stable, other metrics are also stable. This assumption limits the prediction accuracy of the Sherwood, et al. approach.
  • There also has been a large body of related work on predicting branch outcome in a running computer program. Branch predictors generally use some form of a hash table that stores predicted branch outcome based on a specific history of branches that have most recently executed. Branch predictors predict the outcome of a specific event (the execution of a specific branch. However, branch predictors only predict branch outcomes based on branch execution history.
  • SUMMARY OF THE INVENTION
  • An object of this invention is to support adaptive reconfiguration computer systems by providing a mechanism to determine, through prediction, expected changes in the workload characteristics.
  • Another object of the invention is to use hardware that typically exists on modern computer systems to predict workload characteristics.
  • A further object of the present invention is to track directly one performance metric of an adaptive computer system, and to use that one metric to make predictions along several other performance metrics.
  • These and other objectives are attained with a method and system for predicting future values of a target metric associated with a task executed on a computer system. The method comprises the steps of, over a given period of time, measuring at least one defined metric, transforming that measurement into a value for a predictor source metric, and using the value for the predictor source metric to obtain a predicted future value for said target metric.
  • The preferred embodiment of this invention provides a flexible performance multi-predictor to solve the problem of providing accurate future behavior predictions for adaptive reconfiguration systems. The multi-predictor makes predictions about future workload characteristics by periodically reading available hardware counters. Any suitable reconfiguration logic and reconfiguration mechanism may be used in the practice of this invention. The invention is applicable to a plurality of dynamic and adaptive reconfiguration scenarios.
  • Further benefits and advantages of the invention will become apparent from a consideration of the following detailed description, given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates an adaptive scheduling process which may utilize a preferred embodiment of this invention.
  • FIG. 2 shows in greater detail the performance multi-predictor illustrated in FIG. 1.
  • FIG. 3 shows details of the prediction mechanism of FIG. 2.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The preferred embodiment of this invention is to use the performance multi-predictor in a software adaptive environment. One embodiment of the invention addresses the problem of making adaptive task scheduling decisions in an operating system to control the processor temperature. The scheduling objective is to lower the thermal profile of a processor; that is, to prevent the processor from exceeding a certain temperature threshold. There exists an operating system scheduler per processor to schedule all tasks that are requested to be run on that processor. Each task runs for a given time quantum and the scheduling decision is to decide which task to run next while optimizing overall throughput, preserving fairness among the tasks, and reducing the thermal profile. This is achieved by the scheduler through a dynamic priority scheme that favors “cooler” tasks as the processor temperature rises. A task's contribution to the processor temperature varies depending on the type of task activity (e.g. memory versus CPU bound task). The performance multi-predictor plays a key role by providing a mechanism that enables the scheduler to make scheduling decisions based on the future temperature contribution of each task.
  • FIG. 1 illustrates this preferred embodiment. The Figure shows the main scheduler loop 10. During each iteration of that loop, the scheduler, at step 12, selects from the pool of ready-to-execute tasks the task with the highest dynamic priority. Tasks have a static priority that is usually provided by the application and a dynamic priority that is recomputed during each interval based on current processor temperature and predicted temperature contribution. In addition, there may be other factors in the dynamic priority contribution, such as the degree of interactiveness of a task. The selected task is then scheduled, at step 14, for a fixed time quantum. Once the time quantum expires, as represented by steps 16 and 20, the scheduler, at step 22, queries the performance multi-predictor 24 to provide a prediction for the future temperature contribution. At step 26, the prediction is attached to the task before the task is re-entered into the ready pool.
  • The multi-predictor 24 from FIG. 1 is expanded in FIG. 2 to show its major components. The multi-predictor reads one or more existing system hardware counters, generally referenced at 28, that track the current utilization of hardware resources by each task that is running. Hardware counters to track hardware resource utilization are available on all modern computer systems. Each hardware counter can be programmed to track one of a plurality of metrics such as the number of instructions executed or the number of cache misses experienced. A system may have one or more hardware counters, and for example, two are specifically shown in FIG. 2 and referenced at 30 and 32. The multi-predictor 24 reads one or more of the counters 28 at regular intervals, e.g., every 10 milliseconds, or at preset events, such as every 100,000 committed instructions. The multi-predictor 24 includes a metric model 34 that is used to transform the available hardware counter measurements into a single predictor source metric. Any suitable metric model may be used in the practice of this invention and any existing model that uses hardware counters to model other performance metrics can be used. For example, a power model that can be used is disclosed in “Run-time power estimation in high-performance microprocessors,” In Proceedings of the International Symposium on Low Power Electronics and Design (ISLPED), Aug. 6-7, 2002, by R. Josep and M. Martonosi (Josep, et al.). In the preferred embodiment, the single predictor source metric is the temperature contribution.
  • The single predictor source metric is then used as input to the actual prediction mechanism 36 of the multi-predictor, and mechanism 36 then produces a plurality of predicted target metric values. The preferred embodiment uses only a single target metric, which is identical to the source metric: the temperature contribution.
  • FIG. 3 shows the details of the prediction mechanism 36 from FIG. 2. The prediction mechanism receives the source metrics values as input as shown in FIG. 2 and internally stores these values in a history buffer 40. The history buffer is a circular buffer (queue) of size N so that it can be used to retrieve the last N source metric values at any time. This history is processed at 42 to produce an index key. The mapping from histories 40 to index keys is such that there exists a unique index key for each history value but not necessarily vice versa (i.e., the range of index values may be smaller than the range of possible history values). A hash function is an example of an index key producing function. The index key is then used to index into a prediction table 44. The prediction table holds values of target metrics that have been observed to follow the history when the index key was last seen. If an entry is found, the prediction mechanism will return the entry as the predicted set of target metric values.
  • The prediction table 44 requires a learning period to populate table entries. The table population takes place by passing the last observed target metric values to the prediction mechanism 36 along with a request for a new prediction. The last observed target metric values are used to update the table entry for the previous history.
  • An advantage of this table based scheme is that it exploits repeatable program behavior. Since programs spend most of their time executing loops, repeatable behavior is expected, in which case the table does not require a long time to be populated and is likely to provide accurate performance predictions.
  • In the preferred embodiment, at the end of each scheduling interval, a prediction is made for the future behavior of the task that just finished its scheduling interval. The prediction is fed into a thermal model that produces an expected temperature contribution for this task. This temperature contribution is used to classify the task as either a hot or cold task. When deciding on the next task to schedule, the system takes into account the current process temperature and the hot/cold task classification and chooses a task that best balances the thermal profile of the processor.
  • It may be noted that the entire prediction mechanism can be built in software (though building it in hardware may be desirable). In the software prediction mechanism, the only hardware requirement is access to the hardware counters as they are typically found in modern computer systems.
  • The preferred embodiment of the present invention, as described above in detail, differs from the approach disclosed in Sherwood, et al. in several ways. First, the preferred embodiment, is based solely on existing hardware performance counters and does not require any specialized dedicated hardware structures. The entire invention can be implemented in software using existing hardware. Second, the preferred embodiment of the invention tracks one performance metric directly (the source metric) and is capable of making predictions along several other performance metrics (the target metrics). To make multiple predictions, the invention may exploit the fact that the periodicity of behavior along different metrics tends to be correlated (behavior patterns of different metrics repeat at the same rate). Sherwood et al., in contrast, make the more constrained assumption that if one metric is stable other metrics are also stable. Since the assumption used in this invention is more relaxed (the periodicity in metric variation is correlated, not the values themselves) it is more likely to be met by realistic workloads, yielding a better overall prediction accuracy.
  • While it is apparent that the invention herein disclosed is well calculated to fulfill the objects stated above, it will be appreciated that numerous modifications and embodiments may be devised by those skilled in the art, and it is intended that the appended claims cover all such modifications and embodiments as fall within the true spirit and scope of the present invention.

Claims (11)

1-24. (canceled)
25. A method of periodically reconfiguring an adaptive computer system based on future behavior predictions, comprising the steps:
for each of a group of tasks, assigning a dynamic priority to the task based on a history table based prediction of a future value for a characteristic associated with the task; and
at defined times, reconfiguring the computer system by selecting from said group, the task having the highest dynamic priority to be executed by the computer system; and
wherein the assigning step includes the steps of, for each task of the group of tasks, identifying a source metric based on current utilization of hardware resources of the computer system, and a target metric, using past values for the source metric said current utilization of hardware resources to predict future values for the target metric, and using the predicated future values for the target metric to determine the dynamic priority for the task.
26. A method according to claim 25, further comprising the step of recalculating at determined times the dynamic priority assigned to each of at least some of the tasks.
27. A method according to claim 26, further comprising the step of the computer system executing the selected task, and wherein the recalculating step includes the step of, for each task executed by the computer system, recalculating the dynamic priority assigned to the task after the computer system has executed the task.
28. Apparatus for periodically reconfiguring an adaptive computer system based on future behavior predictions, comprising:
a predictor for assigning a dynamic priority to each of a group of tasks based on a history table based prediction of a future value for a characteristic associated with the task; and
a scheduler for reconfiguring the computer system by selecting, at defined times, from said group the task having the highest dynamic priority to be executed by the computer system; and
wherein the predictor assigns the dynamic priority to each task of the group of tasks by, for each of the tasks, using past values for a given source metric based on current utilization of hardware resources of the computer system, for the task to predict further values for a defined target metric said current utilization of hardware resources for the task, and using the predicted future values for the target metric to determine the dynamic priority for the task.
29. Apparatus according to claim 28, wherein the predictor recalculates at given times the dynamic priority assigned to each of at least some of the tasks.
30. Apparatus according to claim 28, wherein each time the computer system executes one of the tasks, the predictor recalculates the dynamic priority assigned to said one of the tasks.
31. Apparatus according to claim 30, wherein:
each time the computer system executes one of the tasks, the scheduler sends a signal to the predictor; and
in response to receiving said signal, the predictor recalculates the dynamic priority assigned to said one of the tasks.
32. A program storage device readable by machine a computer, tangibly embodying a program of instructions executable by the machine computer to perform method steps for periodically reconfiguring an adaptive computer system based on future behavior predictions, said method steps comprising:
for each of a group of tasks, assigning a dynamic priority to the task based on a history table based prediction of a future value for a characteristic associated with the task; and
at defined times, reconfiguring the computer system by selecting from said group the task having the highest dynamic priority to be executed by the computer system; and
wherein the assigning step includes the steps of, for each task of the group of tasks, identifying a source metric based on current utilization of hardware resources of the computer system, and a target metric, using past values for the source metric said current utilization of hardware resources to predict future values for the target metric, and using the predicated future values for the target metric to determine the dynamic priority for the task.
33. A program storage device according to claim 32, wherein said method steps further comprise the step of recalculating at determined times the dynamic priority assigned to each of at least some of the tasks.
34. A program storage device according to claim 33, wherein said method steps further comprise the step of the computer system executing the selected task; and the recalculating step includes the step of, for each task executed by the computer system, recalculating the dynamic priority assigned to the task after the computer system has executed the task.
US11/926,850 2003-10-17 2007-10-29 Mechanism for on-line prediction of future performance measurements in a computer system Abandoned US20080059968A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/926,850 US20080059968A1 (en) 2003-10-17 2007-10-29 Mechanism for on-line prediction of future performance measurements in a computer system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/688,293 US7072805B2 (en) 2003-10-17 2003-10-17 Mechanism for on-line prediction of future performance measurements in a computer system
US11/417,828 US7289939B2 (en) 2003-10-17 2006-05-04 Mechanism for on-line prediction of future performance measurements in a computer system
US11/926,850 US20080059968A1 (en) 2003-10-17 2007-10-29 Mechanism for on-line prediction of future performance measurements in a computer system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/417,828 Continuation US7289939B2 (en) 2003-10-17 2006-05-04 Mechanism for on-line prediction of future performance measurements in a computer system

Publications (1)

Publication Number Publication Date
US20080059968A1 true US20080059968A1 (en) 2008-03-06

Family

ID=34521137

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/688,293 Expired - Fee Related US7072805B2 (en) 2003-10-17 2003-10-17 Mechanism for on-line prediction of future performance measurements in a computer system
US11/417,828 Expired - Fee Related US7289939B2 (en) 2003-10-17 2006-05-04 Mechanism for on-line prediction of future performance measurements in a computer system
US11/926,850 Abandoned US20080059968A1 (en) 2003-10-17 2007-10-29 Mechanism for on-line prediction of future performance measurements in a computer system

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/688,293 Expired - Fee Related US7072805B2 (en) 2003-10-17 2003-10-17 Mechanism for on-line prediction of future performance measurements in a computer system
US11/417,828 Expired - Fee Related US7289939B2 (en) 2003-10-17 2006-05-04 Mechanism for on-line prediction of future performance measurements in a computer system

Country Status (1)

Country Link
US (3) US7072805B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009138953A1 (en) 2008-05-13 2009-11-19 Nxp B.V. Power manager and method for managing power
GB2461313A (en) * 2008-06-27 2009-12-30 Symbian Software Ltd Managing services in a computer system to limit overall system cost
US20110035749A1 (en) * 2009-08-10 2011-02-10 Avaya Inc. Credit Scheduler for Ordering the Execution of Tasks
US20110161935A1 (en) * 2009-12-31 2011-06-30 International Business Machines Corporation Method for managing hardware resources within a simultaneous multi-threaded processing system
CN104424021A (en) * 2013-08-29 2015-03-18 鸿富锦精密工业(深圳)有限公司 Task priority setting system and method
US20190095246A1 (en) * 2017-09-26 2019-03-28 Omron Corporation Support device and non-transitory storage medium
US20200004580A1 (en) * 2018-06-29 2020-01-02 International Business Machines Corporation Resource management for parent child workload
US11061740B2 (en) 2018-08-13 2021-07-13 International Business Machines Corporation Computer system workload manager

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493375B2 (en) * 2002-04-29 2009-02-17 Qst Holding, Llc Storage and delivery of device features
US7681181B2 (en) * 2004-09-30 2010-03-16 Microsoft Corporation Method, system, and apparatus for providing custom product support for a software program based upon states of program execution instability
JP3914230B2 (en) * 2004-11-04 2007-05-16 株式会社東芝 Processor system and control method thereof
US7703079B1 (en) 2005-05-03 2010-04-20 Oracle America, Inc. System performance prediction
JP4783181B2 (en) * 2006-03-13 2011-09-28 株式会社東芝 Behavior prediction device
US7467280B2 (en) * 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US7684959B2 (en) * 2006-07-25 2010-03-23 Microsoft Corporation Stability index display
US9478062B2 (en) * 2006-09-19 2016-10-25 Imagination Technologies Limited Memory allocation in distributed memories for multiprocessing
FR2927438B1 (en) * 2008-02-08 2010-03-05 Commissariat Energie Atomique METHOD FOR PRECHARGING IN A MEMORY HIERARCHY CONFIGURATIONS OF A RECONFIGURABLE HETEROGENETIC INFORMATION PROCESSING SYSTEM
US8276143B2 (en) * 2008-03-10 2012-09-25 Oracle America, Inc. Dynamic scheduling of application tasks in a distributed task based system
US8250579B2 (en) * 2008-06-27 2012-08-21 Oracle America, Inc. Method for stage-based cost analysis for task scheduling
US9009498B1 (en) 2008-08-14 2015-04-14 Hewlett-Packard Development Company, L.P. Estimating power consumption for a target host
US9396021B2 (en) * 2008-12-16 2016-07-19 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster using local job tables
US8239524B2 (en) 2008-12-16 2012-08-07 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on processor workload
US9384042B2 (en) * 2008-12-16 2016-07-05 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications
US8122132B2 (en) * 2008-12-16 2012-02-21 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on broadcast information
US8566539B2 (en) * 2009-01-14 2013-10-22 International Business Machines Corporation Managing thermal condition of a memory
US8311683B2 (en) * 2009-04-29 2012-11-13 International Business Machines Corporation Processor cooling management
US8335859B2 (en) * 2009-06-17 2012-12-18 International Business Machines Corporation Apparatus, system, and method for efficient use of mirrored storage clouds
US8548640B2 (en) * 2010-12-21 2013-10-01 Microsoft Corporation Home heating server
US9442773B2 (en) * 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US10085140B2 (en) * 2012-07-13 2018-09-25 International Business Machines Corporation Preventing mobile communication device data loss
US9329648B2 (en) * 2012-07-17 2016-05-03 International Business Machines Corporation Performance management of subsystems in a server by effective usage of resources
EP2743831A1 (en) * 2012-12-13 2014-06-18 Telefonica S.A. A method and a system for the self-adjustment optimization of a computing device
WO2015092920A1 (en) * 2013-12-20 2015-06-25 株式会社日立製作所 Performance prediction method, performance prediction system and program
US9722945B2 (en) 2014-03-31 2017-08-01 Microsoft Technology Licensing, Llc Dynamically identifying target capacity when scaling cloud resources
US9842039B2 (en) * 2014-03-31 2017-12-12 Microsoft Technology Licensing, Llc Predictive load scaling for services
US9557797B2 (en) 2014-05-20 2017-01-31 Qualcomm Incorporated Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power
US10642325B2 (en) 2015-01-30 2020-05-05 Microsoft Technology Licensing, Llc Implementing thermal remediations in reaction to execution of software
US10133602B2 (en) * 2015-02-19 2018-11-20 Oracle International Corporation Adaptive contention-aware thread placement for parallel runtime systems
US10452437B2 (en) * 2016-06-24 2019-10-22 Advanced Micro Devices, Inc. Temperature-aware task scheduling and proactive power management
US10620993B2 (en) 2017-02-27 2020-04-14 International Business Machines Corporation Automated generation of scheduling algorithms based on task relevance assessment
US11435813B2 (en) 2018-08-29 2022-09-06 Advanced Micro Devices, Inc. Neural network power management in a multi-GPU system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030147386A1 (en) * 2002-02-01 2003-08-07 Microsoft Corporation Peer-to-peer based network performance measurement and analysis system and method for large scale networks
US20040111708A1 (en) * 2002-09-09 2004-06-10 The Regents Of The University Of California Method and apparatus for identifying similar regions of a program's execution
US6851006B2 (en) * 2001-08-25 2005-02-01 International Business Machines Corporation Interruption handler-operating system dialog for operating system handling of hardware interruptions

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353422A (en) * 1989-10-06 1994-10-04 Hitachi, Ltd. Method and system for storing and managing a plurality of information media used by recording/reproducing units

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6851006B2 (en) * 2001-08-25 2005-02-01 International Business Machines Corporation Interruption handler-operating system dialog for operating system handling of hardware interruptions
US20030147386A1 (en) * 2002-02-01 2003-08-07 Microsoft Corporation Peer-to-peer based network performance measurement and analysis system and method for large scale networks
US20040111708A1 (en) * 2002-09-09 2004-06-10 The Regents Of The University Of California Method and apparatus for identifying similar regions of a program's execution

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102084318A (en) * 2008-05-13 2011-06-01 维尔基逻辑公司 Power manager and method for managing power
US9459679B2 (en) 2008-05-13 2016-10-04 Synopsys, Inc. Power manager and method for managing power
WO2009138953A1 (en) 2008-05-13 2009-11-19 Nxp B.V. Power manager and method for managing power
US20110093734A1 (en) * 2008-05-13 2011-04-21 Artur Tadeusz Burchard Power Manager and Method for Managing Power
GB2461313A (en) * 2008-06-27 2009-12-30 Symbian Software Ltd Managing services in a computer system to limit overall system cost
US8166485B2 (en) 2009-08-10 2012-04-24 Avaya Inc. Dynamic techniques for optimizing soft real-time task performance in virtual machines
US20110035749A1 (en) * 2009-08-10 2011-02-10 Avaya Inc. Credit Scheduler for Ordering the Execution of Tasks
US8161491B2 (en) * 2009-08-10 2012-04-17 Avaya Inc. Soft real-time load balancer
US20110035751A1 (en) * 2009-08-10 2011-02-10 Avaya Inc. Soft Real-Time Load Balancer
US8245234B2 (en) 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
US8499303B2 (en) 2009-08-10 2013-07-30 Avaya Inc. Dynamic techniques for optimizing soft real-time task performance in virtual machine
US8640108B2 (en) * 2009-12-31 2014-01-28 International Business Machines Corporation Method for managing hardware resources within a simultaneous multi-threaded processing system
US20110161935A1 (en) * 2009-12-31 2011-06-30 International Business Machines Corporation Method for managing hardware resources within a simultaneous multi-threaded processing system
CN104424021A (en) * 2013-08-29 2015-03-18 鸿富锦精密工业(深圳)有限公司 Task priority setting system and method
US20190095246A1 (en) * 2017-09-26 2019-03-28 Omron Corporation Support device and non-transitory storage medium
US20200004580A1 (en) * 2018-06-29 2020-01-02 International Business Machines Corporation Resource management for parent child workload
US11360804B2 (en) * 2018-06-29 2022-06-14 International Business Machines Corporation Resource management for parent child workload
US11061740B2 (en) 2018-08-13 2021-07-13 International Business Machines Corporation Computer system workload manager
US11941456B2 (en) 2018-08-13 2024-03-26 International Business Machines Corporation Computer system workload manager

Also Published As

Publication number Publication date
US20050086029A1 (en) 2005-04-21
US20060217940A1 (en) 2006-09-28
US7289939B2 (en) 2007-10-30
US7072805B2 (en) 2006-07-04

Similar Documents

Publication Publication Date Title
US7289939B2 (en) Mechanism for on-line prediction of future performance measurements in a computer system
Suh et al. A new memory monitoring scheme for memory-aware scheduling and partitioning
US5473773A (en) Apparatus and method for managing a data processing system workload according to two or more distinct processing goals
US20060168571A1 (en) System and method for optimized task scheduling in a heterogeneous data processing system
Xu et al. Cache contention and application performance prediction for multi-core systems
US8898435B2 (en) Optimizing system throughput by automatically altering thread co-execution based on operating system directives
Chen et al. Coordinating processor and main memory for efficientserver power control
US20150324234A1 (en) Task scheduling method and related non-transitory computer readable medium for dispatching task in multi-core processor system based at least partly on distribution of tasks sharing same data and/or accessing same memory address(es)
US8856791B2 (en) Method and system for operating in hard real time
US8032888B2 (en) Method and system for scheduling a thread in a multiprocessor system
JP2008165798A (en) Performance management of processor in data processor
Lee et al. Prefetch-aware memory controllers
US10152354B2 (en) Optimized thread scheduling on processor hardware with performance-relevant shared hardware components
Wang et al. Oaws: Memory occlusion aware warp scheduling
Jahre et al. GDP: Using dataflow properties to accurately estimate interference-free performance at runtime
Dey et al. Deadpool: Performance deadline based frequency pooling and thermal management agent in dvfs enabled mpsocs
Feliu et al. Bandwidth-aware on-line scheduling in SMT multicores
Kang Reducing deadline misses and power consumption in real-time databases
Kang Enhancing timeliness and saving power in real-time databases
Ding et al. Integrated instruction cache analysis and locking in multitasking real-time systems
Maity et al. Thermal load-aware adaptive scheduling for heterogeneous platforms
Sharaf et al. Optimizing i/o-intensive transactions in highly interactive applications
US11886881B2 (en) Decoupled access-execute processing and prefetching control
CN117009057B (en) Concurrent transaction scheduling method based on dynamic value
WO2014003785A1 (en) Thermal prioritized computing application scheduling

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION