PID-based controls in computing systems: a brief survey and some research directions <s> GENERAL REMARKS AND OPEN PROBLEMS <s> The paper presents a novel description of the interplay between the windup phenomenon and directional change in controls for multivariable systems (including plants with an uneven number of inputs and outputs), usually omitted in the literature. The paper also proposes a new classification of anti-windup compensators with respect to the method of generating the constrained control signal. <s> BIB001 </s> PID-based controls in computing systems: a brief survey and some research directions <s> GENERAL REMARKS AND OPEN PROBLEMS <s> The rise of multicore computing has greatly increased system complexity and created an additional burden for software developers. This burden is especially troublesome when it comes to optimizing software on modern computing systems. Autonomic or adaptive computing has been proposed as one method to help application programmers handle this complexity. In an autonomic computing environment, system services monitor applications and automatically adapt their behavior to increase the performance of the applications they support. Unfortunately, applications often run as performance black-boxes and adaptive services must infer application performance from low-level information or rely on system-specific ad hoc methods. This paper proposes a standard framework, Application Heartbeats, which applications can use to communicate both their current and target performance and which autonomic services can use to query these values. The Application Heartbeats framework is designed around the well-known idea of a heartbeat. At important points in the program, the application registers a heartbeat. In addition, the interface allows applications to express their performance in terms of a desired heart rate and/or a desired latency between specially tagged heartbeats. Thus, the interface provides a standard method for an application to directly communicate its performance and goals while allowing autonomic services access to this information. Thus, Heartbeat-enabled applications are no longer performance black-boxes. This paper presents the Applications Heartbeats interface, characterizes two reference implementations (one suitable for clusters and one for multicore), and illustrates the use of Heartbeats with several examples of systems adapting behavior based on feedback from heartbeats. <s> BIB002
We have briefly reviewed a few control problems (in about ten years of research others were encountered) that are relevant for the management and the design of computing systems. We can now make some general remarks. First, all these problems can be viewed as the control of (dominantly) first-order processes -in our review we further limited the scope to pure delayed integratorssubjected to multiplicative and additive disturbances. This problem formulation was achieved by deliberately aiming at "modelling the core phenomenon" behind he behaviour of the system; quite frequently, adopting his approach, simple dynamic balance equations prove to be enough to describe the system-although at quite low a level with respect to the one where quality of service is typically judged. Then, as a consequence of this modelling attitude, uncertainty can very often be confined to inputs for the controlled system. In the case of linear models this is extremely desirable, because additive disturbances cannot influence stability. Also, given the low orders encountered, multiplicative ones can very often be treated straightforwardly. In such a scenario, PI-or PID-based controls prove very successful, either to tackle the problem entirely (as in uniprocessor scheduling) or as "peripheral" controls (like in queuing systems) to enforce local determinism and allow higher-level decision mechanisms -in the sense of hierarchical control -to reason in the face of a mitigated process variability. Finally, the achieved control quality is in general satisfactory, and this is particularly good news because in computing systems more articulated -e.g., predictiveapproaches easily fail, owing to the scarce possibilities of forecasting disturbances at the required time scale (think of guessing in advance when an unknown software will request resources, for example). Besides these remarks, there is another point in favour of simple (e.g., PI) controls, that for unknown reasons -at least, to the best of the author's knowledge -is hardly ever mentioned in the literature. When somebody sells control applications, the processor time used to compute the control signals, is value. When somebody sells any other services, the processor time spent executing controllers to manage those services, is stolen to the service themselves. It is true that with modern computers, much more complex controls than PIs can be set up for problems like those shown above, but to justify the additional overhead, even modest, the control quality improvement has to be really significant. Indeed, it is quite likely that PI/PID-based control still has a bright future in this field. Coming now to a couple of relevant open problems, although many schemes reduce to sets of single-loop SISO controllers, there are cases in which one needs to address a multivariable, interacting system. The peculiarity of the computing domain, in this respect, is that the great majority of couplings are generated by shared resources. In other words, there are several cases (scheduling is one) where control variables are not individually constrained, only their sum (or in general, a linear convex combination) is. Of course a conceptually viable way to address such a case is constrained MPC, but in the light of the efficiency considerations above, antiwindup-based solutions are preferable. There is thus the need for devising ad hoc solutions, possibly along "directional" approaches like that proposed by BIB001 . Moreover, any feedback control needs a sensor and an actuator, but in computing systems it may be difficult to measure the controlled variable, and even more to exert the control action, as sometimes these operations have to rely on operating system modules that were not conceived for control, and as a consequence -for example -tey do not provide the required precision, or the required timing guarantees, or any combination thereof. Research is nowadays addressing these problems, for example "instrumenting" applications BIB002 . However this activity is mainly carried out in the computer science community, thereby not always paying due attention to facts (e.g., timing) that are conversely very important in system-theoretical terms, while the control community frequently just takes the available measurement and actuation machinery as a matter of fact. No criticism, but more convergence is needed.