Architecture and Performance

Position statement by Peter Harrison, Imperial College, London

1  Issues
Today’s computer and communications systems are becoming increasingly complex: consider, for example, the internet, parallel and distributed applications executing on diverse platforms and mobile telephone networks.  Whilst the advances in electronics over the past several decades have been staggering and vastly increase the power of hardware, software is the key feature in all of those technologies referred to above.  This is because individual hardware components are relatively easy to quantify in terms of their performance, e.g. raw transmission rate, memory access time, instruction execution time.  However, when assessing the performance of an application, it is necessary to consider how the components are used and how applications compete with each for service.  These are increasingly software issues.
	Many quantitative models of performance have been developed over the past three decades and more.  These include both analytic and simulation models which were usually constructed to model hardware components controlled by very simple software.  This was often application-specific and typically did little more than manage access to buffers and system queues.  Many of the techniques are equally applicable today but there is a clear need for a unifying modelling methodology into which they can be incorporated together with new techniques tailored to new performance problems arising in today’s systems.

2  Research Directions
New software/hardware systems need to designed with performance issues taken into account from the outset.  It is no longer adequate to allow systems to be constructed in a logical way, to perform the required applications correctly, leaving efficiency considerations to the programmers.  Systems are now too complex for any individual to have reliable ‘gut feelings’.  Consequently there is a need to integrate modelling methodologies into software development environments.  This is in addition to the need observed above for the integration of new and existing techniques and tools into such coherent modelling methodologies.
	More specifically, new requirements include novel forms of blocking and simultaneous resource possession (e.g. in the context of locks), priorities, traffic characterisation and its incorporation into queueing models.  The last of these is an interesting issue in its own right.  There have been many models proposed for bursty and correlated traffic based on self similarity, fractals and ‘heavy tailed distributions’.  However, none of these have been capable of feeding into analytical models of performance and usually Markov arrival processes are used because of their tractability.  These too can account for burstiness and correlation but, many feel, not as well as the fractal methods.  Perhaps most importantly, it is necessary to model application software directly in order to parameterize the workload offered to active nodes in a model.  This might be achieved via profiling in the absence of a (typically problematic) cause-and-effect description.
	Finally, a new joint formalism should be investigated for software and performance specifications.  This should cater for hierarchical specifications (as conventional for software development) through which approximations for performance indices can be determined in a compositional way.  One route being pursued is a UML-based formalism with stochastic process algebra semantics.