Beruflich Dokumente
Kultur Dokumente
C. Addison
Computing Services Department
University of Liverpool
Liverpool L69 3BX
caddison@liv.ac.uk
1. Introduction
The aim of this paper is to present a design for a system capable of controlling,
or steering, the performance of a component-based application.
A component is a unit of computation which has a well-defined functionality,
and which can be composed with other components to create an application.
Since a component can be individually deployed on to a hardware platform,
component-based applications are, in the general case, distributed applications.
Component-based applications are good candidates for deployment on to com-
putational Grids, and several component frameworks exist to support the inter-
action of components e.g. [9]. It is in this context that performance steering of
components and applications will be considered.
Two kinds of computational steering have been identified: application steer-
ing and performance steering [23]. Application steering “lets researchers in-
vestigate phenomena during the execution of their application...". On the other
hand, performance steering “seeks to improve an application’s performance by
changing application and resource parameters during runtime". Whereas appli-
cation steering tends to be interactive, performance steering can be quantified
and automated, allowing a long-running application to adapt to a changing ex-
ecution environment. It would be equally valid to apply the term “performance
control" to such an autonomous adaptive system.
The term “performance steering" is defined here as being the adaptive process
of adjusting, at run-time, factors affecting the performance of an application so
that the application execution time is minimised.
The performance steering system discussed here is being developed within
the RealityGrid project [16]. The aim of this project is to allow scientists to
explore component-based simulations of physical phenomena. However, the
project includes an investigation into autonomous performance steering of the
simulations.
This paper discusses possible execution environments for, and the nature
of, component-based Grid applications, in order to motivate the performance
steering design. The entities incorporated in the design are also discussed.
Possible interactions with general Grid framework software are presented. An
initial implementation of the basic design is briefly described, and issues to be
investigated by incremental implementation are given.
Grid resource schedulers, it is perhaps worth noting that “Currently, the most
common current grid scheduler is the user" [19].
3.2.1 Execution phases. The execution of the application, and its con-
stituent components, is viewed as progressing through a series of phases. Each
phase may have different characteristics from other phases. The usefulness
of considering execution phases is that they enable performance to be char-
acterised and measured at well-defined intermediate stages during run-time.
Similarly, there is the possibility, between phases, of re-distributing resources
to components.
those resources. That is, both external resource scheduler and performance
steerer would be re-distributing resources between components. This situation
would require some coupling between scheduler and steerer in order to avoid
chaos.
external
resoutce
application
scheduler performance steerer
APS
Thus the basic design of the performance steering system is to divide func-
tionality into two levels: the application level and the component level. That
is, there is an Application Performance Steerer (APS) which is responsible for
steering or controlling the performance of the application as a whole. At the
component-level, each component has an associated Component Performance
Steerer (CPS) which is responsible for steering or controlling the performance
of only that component (Figure 2).
The APS is responsible for application-wide activity, such as re-distributing
resources to components in order to affect performance. Similarly, any neces-
sary interactions between the external resource scheduler and the performance
steering system should occur via the APS. On the other hand, it is also assumed
that there are component-specific behaviours that can be handled by the CPS,
such as changing component performance by changing the algorithm used by
a component.
It is implicit in the roles of APS and CPS, that the steering system should
have access to some performance prediction capability and to some repository
of performance information. A more comprehensive design, showing these
facilities added to the basic design, is given in Figure 3. Additional features
shown here include a resource usage monitor and a component loader responsi-
ble for starting, restoring or migrating the component. In more concrete terms,
this loader might be some “container" as in Enterprise Java Beans or ICENI [6]
[10], or be implemented by some Unix server.
That is, the APS is given a set of resources by the external resource scheduler.
The APS must attempt to distribute these resources between the components in
an optimal manner, so that the application execution time will be minimised.
Finding this optimal distribution involves:
application
external performance
rresource repository
scheduler
application predictor
performance steerer
APS
component
performance
repository
component
predictor performance steerer
component
CPS
loader
resources
usage
monitor
Figure 3. Entities in the performance steering system design. For simplicity, only one com-
ponent is shown.
The APS allocates a set of resources to each component. Each CPS then steers
its component so as to achieve minimum execution time using those resources.
A CPS is assumed to have access to a repository of performance-related in-
formation for that component. In addition, the CPS may take into account
resource-usage information available for the platform on which the component
is executing.
Design of a Performance Steering System 9
expected performance
behaviours in next phase
previous phase
C1 performance performance
C2 performance history data
C3 performance
0 1 2 3 4
phase 1 phase 2 phase 3 phase 4
Figure 4. A model of how the application performance steerer operates in the context of an
application consisting of three components (C1, C2 and C3). Execution proceeds in phases sep-
arated by progress points. At each progress point the application performance steerer determines
the best distribution of resources between components for the next phase. Arrows show possible
inputs to this process.
At each progress point, the APS generates a resource distribution for the com-
ponents. The APS allocates resources such that the predicted performances of
components will minimise application execution time. This implies that, at
progress points, each component must be able to be restructured - the com-
ponent must be at some “safepoint" in its execution. The CPSs then steer the
performance of components through the next phase.
10
0 1 2 3 4
application phase 1 phase 2 phase 3 phase 4
steerer
component
steerer
component
execution time
That is, performance-related data will need to be maintained about the per-
formance of the application as a whole, and about the performance of each
component. More specifically, it is apparent that there must be a division of the
repository between dynamic short-lived data, and static long-lived data. The
static portion of the repository should be optimised for queries whereas the
dynamic portion should be optimised for updates. As an efficiency concern,
1 The performance steering system is similar to a QoS-aware external resource scheduler in that it must
co-schedule available resources to executables on the basis of some set of performance expectations.
12
2A "bottom up" three-dimensional lattice-Boltzmann method for the non-equilibrium and hydrodynamic
simulation of binary immiscible and binary and ternary amphiphilic fluids
16
Acknowledgments
The work described in this paper has been carried out as part of the EPSRC-
funded RealityGrid project, grant number GR/R67699. ML acknowledges the
support of a postdoctoral fellowship from the Department of Education, Uni-
versities and Research of the Basque Government.
References
[1] Atkinson, M.P., V. Dialani, L. Guy, I. Narang, N.W. Paton, D. Pearson, T. Storey and P.
Watson (2002) Grid Database Access and Integration: Requirements and Functionalities.
July 4, 2002 draft, http://www.cs.man.ac.uk/grid db/documents.html.
[2] Berman, F., R. Wolski, S. Figueira, J. Schopf, G. Shao (1996) Application-Level Schedul-
ing on Distributed Heterogeneous Networks. Proc. Supercomputing 1996.
[3] Browne, S, J. Dongarra, N. Garner, G. Ho and P. Mucci (2000) A portable programming
interface for performance evaluation on modern processors. Int J. of High Performance
Computing Applications 14(3), 189-204.
[4] Crovella, M.E. and T.J. LeBlanc (1994) Parallel performance prediction using lost cycles
analysis. Proc. Supercomputing 1994, 600-610.
[5] Czajkowski, K., I. Foster and C. Kesselman (1999) Resource co-allocation in computa-
tional Grids. Proc. 8th Int. Symp. HPDC, 219-228.
[6] Enterprise Java Beans http://java.sun.com/products/ejb
[7] FXDR http://meteora.ucsd.edu/pierce/fxdr home page.html
[8] Foster, I., C. Kesselman, J.M. Nick and S. Tuecke (2002) The Physiology of the
Grid – An Open Grid Services Architecture for distributed systems integration.
http://www.globus.org.
[9] Furmento, N., A. Mayer, S. McGough, S. Newhouse, T. Field and J. Darlington (2001)
ICENI: Optimisation of Component Applications within a Grid Environment. Proc. Su-
percomputing 2001. http://www-icpc.doc.ic.ac.uk/components.
[10] Furmento, N., W. Lee, A. Mayer, S. Newhouse and J. Darlington (2002) ICENI: An Open
Grid Service Architecture Implemented with Jini. Proc. Supercomputing 2002.
[11] Globus http://www.globus.org.
[12] Kennedy, M., K., Mazina, J. Mellor-Crummey, K. Cooper, L. Torczon, F. Berman, A.
Chen, H. Dail, O. Sievert, D. Angulo, I. Foster, D. Gannon, L. Johnsson, C. Kesselman,
R. Aydt, D. Reed, J. Dongarra, S. Vadhiyar and R. Wolski (2002) Toward a framework
for preparing and executing adaptive grid programs. Proc. Int. Parallel and Distributed
Processing Symposium Workshop. IEEE Computer Society Press, April, 2002.
[13] Nahrstedt, K. (1999) To overprovision or to share via QoS-aware resource management?
Proc. 8th Int. Symp. HPDC, 205-212.
[14] Nekovee, M, and P. V. Coveney (2001) Lattice-Boltzmann simulations of self-assembly of
a binary water-surfactant system into ordered bicontinuous cubic and lamellar phases J.
Am. Chem. Soc. 123, 12380
[15] Nekovee, M., J. Chin, N. Gonzlez-Segredo, and P. V. Coveney (2001) A parallel lattice-
Boltzmann method for large scale simulations of complex fluids E. Ramos et al., eds.,
Computational Fluid Dynamics, Proceedings of the Fourth UNAM Supercomputing Con-
ference, Singapore (World Scientific, 2001)
Design of a Performance Steering System 17