Performance Evaluation 32 (1998) 23l-233
ELSEWIER
Book Review Robin A. Sahner, Kishor S. Trivedi, Antonio Puliafito, Peeormance and Reliability Analysis of Computer Systems: An Example-BasedApproach Using the SHARPE Software Package, Kluwer Academic Publishers, Dordrecht, 1996 (Hardback, 404 pp.). This is a book I have been waiting for, for a number of years. As part of a graduate class on “performance evaluation of computer and communication systems” I require my students to gather practical experience with various performance modelling techniques, such as Markov chains, queueing networks and stochastic Petri nets. As a software tool for this laboratory work, I have been using the SHARPE package since it provides a fairly uniform interface to all of these modelling techniques. However, apart from a compact user-manual, a ready-to-use handbook on SHARPE, giving both theory and examples, was lacking. We have it now! It is not only for students that the current book is of interest. Also for practioneers using SHARPE, and there are many of them, it comprises a valuable source of information. The Symbolic Hierarchical Automated Reliability and Performance Evaluator has been developed at Duke University over the last decade by Kishor Trivedi and his students. SHARPE is what one could call a tool-box, a set of tools, that can be used in isolation, or in combination, in a hierarchical manner. Different from other performance modelling tools, in SHARPE the emphasis is not on graphical user-interfaces, but on providing a wide variety of evaluation techniques. To obtain a copy of the SHARPE package, interested readers should contact Kishor Trivedi at ks t Gee . duke . edu. I would not regard this book as the definite source on performance and reliability evaluation techniques as such, but rather as a refresher for those already familiar with these techniques. There are other textbooks and papers, also by these authors, that treat the evaluation techniques in more detail; many of them are listed among the 140 references given at the end of the book. On the other hand, in the book, all the techniques are described using consistent terminology and notation, and in relation to one another, which is an asset often missing in papers and most books which focus just on a single evaluation technique. The real strength of the book, however, lies in the combination of techniques and tool support. The many examples in the book, including the ready-to-use SHARPE code, form a low-threshold entrance to the exiting world of model-based performance and reliability evaluation. Let about track” of the
me now come to the actual contents of the book. In a six-page preface the authors inform the readers the aims of the book, the way it is structured, the way it can be used (following a “performanceor a “reliability-track” through the chapters), and about the actual chapter contents. The main body book is divided into two parts: in Part I (150 pp.) the theory regarding the evaluation techniques
0166-5316/98/$19.000 1998Elsevier Science B.V. A11rights reserved PII SO 166-53
16(97)00022-9
232
B.R. Haverkort/Pegormance
Evaluation 32 (1998) 231-233
is presented, and in Part II (190 pp.) a wide variety of modelling examples is presented. Four appendices (totalling another 50 pp.) with the complete syntax of the SHARPE modelling language, as well as about its practical use complete the book. An index with some 250 items helps to make the book more accessible. Part I has been divided into eight chapters, each addressing a particular modelling technique. It starts with a primer in probability theory and distribution functions in Chapter 1. Special attention is paid to the exponential distribution and its relatives (hyper- and hypo-exponential and Erlang), the Weibull distribution and to so-called exponential polynomial distributions (exponomial distribution) which comprise a very general class of distribution functions with nice closure properties (for instance, for addition and multiplication). In Chapter 2, basic theory about reliability and availability evaluation is treated. Then, series-parallel reliability block diagrams, fault-trees and reliability graphs are introduced and shown to be of use when evaluating the reliability and availability of complex systems. Chapter 3 is devoted to the study of series-parallel acyclic directed graphs, which can be used to study the performance of programs with internal concurrency. The basic modelling approach is introduced and an analysis technique is presented. In Chapter 4, Markov models are introduced. After a short introduction to stochastic processes, discreteand continuous-time Markov chains are introduced and classified. After a number of modelling examples, techniques for the steady-state analysis (Gaussian elimination, Gauss-Seidel iterations and the SORmethod) are listed, before the transient analysis of continuous-time Markov chains is addressed. Special emphasis is given to acyclic chains, for which symbolic solutions do exist, as well as to the numerical approach known as uniformization. In Chapter 5, product-from queueing networks are introduced. After tandem queueing models, general open queueing networks are addressed (Jackson networks). A special section is devoted to closed queueing networks and the well-known convolution and mean-value analysis approaches, albeit in a very concise manner. Then, in Chapter 6, the evaluation of performability models is addressed, i.e., models that address performance aspects as well as reliability aspects of a system, to answer questions such as “how many jobs can be processed before the first system failure?‘. To answer such questions, generally Markov-reward models are used, in which continuous-time Markov chains are coupled to a reward structure defined on the states. Objective of the analysis is then the expected reward, the expected accumulated reward, or the distribution of accumulated reward up to some time instance t ; the evaluation of such measures is addressed in this chapter. Chapter 7 then addressed stochastic Petri net models, which can be seen as a high-level formalism to specify Markov-reward models. The class of stochastic Petri nets introduced, includes exponentially timed and immediate transitions, inhibitor arcs, multiple arcs, transition priorities, transition enabling predicates, as well as marking dependent arc multiplicities and firing. After a concise description of the derivation of the Markov chain underlying these Petri nets, various examples are given. Chapter 8 ends the theory part of the book with a compact description of semi-Markov chains and their symbolic and numerical solution. In Part II the chapters do not focus around a single technique (as in Part I), but merely address a certain problem area and present various ways to develop models to evaluate the problem at hand. In doing so, a nice comparison can be made between various modelling techniques, showing their relative strengths and weaknesses.
B.R. Haverkort/Pe$ormance
Evaluation 32 (1998) 231-233
233
Chapter 9 focusses around reliability and availability models. It is shown how reliability block diagrams can be used with SHARPE. For a particular example, a complete description is given, including the required SHARPE input code, as well as the numerical, and sometimes symbolic output (functions of time t) of SHARPE. In the succeeding sections, a similar appraoch is followed to present fault trees (with and without repeated events), reliability graphs and Markov chains. In the latter case, special emphasis is given to the approximation of Weibull distributions in the Markovian context. In the last section three models, based on a Markov chain, a fault tree and a stochastic Petri net, respectively, to determine the reliability of a ring network are presented. In Chapter 10 performance evaluation is the key issue. The completion time distribution of a program with internal concurrency is computed symbolically using task graphs. Then, a more system-oriented direction is taken, where queueing networks, Markov chains and stochastic Petri nets are used to determine the throughput and response time characteristics (mostly means) of, among others, an ISDN channel with Poisson and non-Poisson traffic. Chapter 11 then addresses one of the key capabilities of SHARPE, being hierarchical modelling. It is shown how various models of&fSeerent type can be combined hierarchically, to come to an efficient solution of the overall model. Illustrative for this approach is the following example. A task graph is used to specify the completion-time of a program. Since the task graph contains a non-series-parallel component, standard solution techniques cannot be used. Instead, the non-series-parallel part is solved separately, using an absorbing continuous-time Markov chain, and the resulting time-to-absorption distribution, which is computed symbolically, is embedded in a series-parallel task graph. In doing so, an exact closed-form solution is finally obtained. Other examples include the use of hierarchical queueing networks (employing load-dependent servers) and the use of Markov chains as part of fault-trees. Chapter 12 addresses some specific problems in the area of performability, i.e., in the determination of performance, given the occurrence of failures and repairs. Also, here different model parts are hierarchically combined. Most notably are combinations of Markov-reward models, where the rewards to be associated with the states are specified as either queueing networks or stochastic Petri nets. Finally, Chapter 13 discusses various issues related to the numerical algorithms implemented in SHARPE. Particular attention is paid to the issue of stiffness and accuracy control in iterative methods. To conclude, the authors have written a very nice book on the practical use of performance modelling and evaluation techniques, using the tool framework of SHARPE. The book forms an outstanding source of information when performing laboratory work using SHARPE, be it as part of an industrial project or as part of a course on this topic. In the latter case, I would recommend to use the book in combination with a more theoretical book on performance evaluation for the lectures.
RWTH-Aachen,
Boudewijn R. Haverkort ’ Department of Computer Science Laboratory for Distributed Systems D-52056 Aachen, Germany
’ Tel.: +49 241 8021430; fax: +49 241 8888220; e-mail:
[email protected].