Performance Modelling Blog

This course runs in Semester 1 on Mondays and Thursdays at 10:00. The first session will be on Monday 25th September. This blog gives a brief summary of each session, highlighting any particular issues.
Date Lecture Comments
25/9/17 Modelling and Simulation Session 1: In the first session we talked about discrete event modelling and why it can be useful to include quantitative aspects of behaviour so that we can complement qualitative modelling (for example looking for deadlocks) with information about timing and probability. I also introduced the notion of performance problems caused by resource contention, and talked about some of the other guises of performance analysis --- capacity planning, scalability analysis, system tuning etc. Finally we did a little probability revision, focusing on expectations, conditional probabilities and the superposition and decomposition principles of the exponential distribution. In order to prepare for sessions students should preferably read the lectures notes and watch the associated video lectures, but definitely do at least one of those activities. I stressed the importance of coming to sessions prepared, because the sessions are intended to reinforce your learning but this will only work if you have some idea of the topic already.
28/9/17 Operational Laws Session 2: In the session today we considered a number of example scenarios and previous exam questions in order to check your understanding of operational laws and practice what you have learned about them. As well as some calculations based on Little's Law and the Forced Flow Law, we looked at the relationship between Little's Law and the Utilisation Law, and considered the asymptotic bounds for response time in some detail. Towards the end of the session we talked about the assumptions that are required and what kind of systems violate those assumptions.
I announced that the first practical has been released and is available from the course web page. The deadline is 25th October.
2/10/17 Markov Processes Session 3: I started the session today by recapping the key concepts that have been introduced in the Lecture Note and video lectures assocatied with this topic. In particular we talked about the definition of a stochastic process, the characteristics of a Markov process, and specifically the properties that we need the process to have in order to define a steady state probability distribution. We discussed the infinitesimal generator matrix and its role in solving the Markov Process to find the steady state probability distribution and ultimately derive performance measures. We then considered a couple of example Markov process exercise. The first was related to the multiprocessor system which had been discussed in one of the video lectures, expanding from considering two processors to three. The second was a simple modelling scenario which was based on an exam question from last year.
5/10/17 More Complex Markov Processes Session 4:The whole focus of today's session was looking at the more complex Markov process scenario that had been introduced in the video lecture. At the start of the session I briefly recapped the scenario and we spend some time thinking about the most appropriate way of capturing the states and transitions to accurately reflect the behaviour of the system as given. After an initial model design we then did some simple validation steps in terms of a step-by-step walkthrough of a minimal model. This revealed that our state representation needed to be elaborated in order to ensure the model behaved correctly with respect to gated service. Having correctly identified the state space we then looked at constructing the state space for the minimal model and saw how difficult this is to do by hand even for a 16 state model, motivating the upcoming material on high-level modelling formalisms.
9/10/17 Queueing networks Session 5:We have now moved on to working with high-level modelling formalisms, rather than directly at the level of the Markov process. The first form of high-level description we consider are queues and queueing networks. At the start of today's session I recapped the characteristics that are important in determining the behaviour of a single queue, as captured in Kendall's notation. (In the next session it will become clearer why it is important to be able to classify queues.) We considered a number of examples, building the Kendall notation for a queue from a given description. We also looked at how to construct a queueing network through the flow of customers between service facilities, possibly with probabilistic routing through small examples, one open and one closed.
12/10/17 Solving queueing networks Session 6: In today's session the focus was on the solution of individual queues, using the formulae derived during the video lectures, and the solution of traffic equations, which then allow queues in a product form network to be solved in isolation. I stressed that it is the regular structure of the state space of a single queue that allows us to by-pass the construction and solution of the global balance equations and derive symbolic expressions for performance measures instead. Once that has been done, our job is only to recognise what form of queue we have, work out the arrival rate and service rate and then apply the correct formula. The elegant series of mathematical results that lead to the so-called product form results for queueing networks mean that they can be decomposed into individual queues to be "solved" separately, where "solved" here means simply applying the formulae for individual queues.
16/10/17 Stochastic Petri nets Session 7: We shifted focus today from queueing networks to Stochastic Petri Nets (SPNs) and Generalized Stochastic Petri Nets (GSPNs) as a high-level formalism for building performance models to be solved as Markov processes. Mostly we focused today on the firing rules and understanding how SPN or GSPN can be used to generate a reachability graph depicting the state space of the model. We particularly looked at immediate transitions and inhibitor arcs, the additional features added by GSPNs with respect to SPNs. We also discussed how conflicts between enabled transitions are resolved in the cases of immediate vx. immediate, immediate vs. timed and timed vs. timed structural conflicts. I also introduced the notions of vanishing and tangible markings, and their relationships to the states of the underlying Markov process.
19/10/17 More about GSPN models Session 8: The first half of today's session was taken up with some questions and points of clarification with respect to the first Practical which is due next week.
For the remainder of the session I gave a brief introduction to the PIPE tool, ad then proposed a small modelling study to develop a GSPN model in PIPE of a parallel computation system.
26/10/17 Using a GSPN for Performance Evaluation Session 9: In the session today we continued the modelling exercise started in session 8, constructing a model of a parallel computation using the PIPE tool. This example includes key features such as a forking transition with more output places than input places, concurrent behaviour to represent the parallel computation, synchronisation through a transition with more than one input and only one output, and a choice between immediate transitions to represent different possible outcomes from a timed transitions (in this case the data check). Once the model was constructed we used the analysis capabilities of the PIPE tool to find the reachability graph and to calculate some performance measures.
30/10/17 PEPA: Performance Evaluation Process Algebra Session 10: In today's session we shifted focus from GSPNs to modelling with PEPA. This is a more textually-based high-level modelling formalism. It shares many characteristics with GSPNs but has the advantage of being compositional, allowing a more structured and bottom-up approach to building large models. In the session we focussed on understanding the semantics of the langauge and how components interact, including the definition of the apparent rate and how this is interpreted when components cooperate, according to the principle of bounded capacity.
2/11/17 The PEPA Eclipse Plug-in Tool Session 11: Note that there is no video lectures associated with today's session because it is about using the PEPA Eclipse Plug-in Tool. There is a lecture note though, which serves as a mini user-guide to using the tool. Thus in the session I highlighted the key components of the Plug-in which are fairly standard for Eclipse, such as the Navigator on the left and the Editor in the centre. The Plug-in has quite a lot of static analysis built in, which should help you to avoid basic syntax and logic errors in your PEPA models. We consider the scenario of a city car club consisting of members and cars. Many of you found it trick to adopt the compositional approach after the modelling formalisms we've been using that required you to think of the system as a whole.
6/11/17 Practical 1 Feedback and More modelling with PEPA Session 12: The lecture associated with this session was a presentation of the PEPA case study of the performance issues at Heroku when the routing policy was changed. The models from this case study are available on the LEARN pages and students are encouraged to try running them (perhaps in a cut-down form) in the PEPA Eclipse Plug-in Tool and try changing rates of some actions and seeing what difference it can make. Most of this session was taken up with detailed feedback on the first practical. At the end of the session we continued consideraiton of the city car club example started in the previous session.
9/11/17 Simulation Models Session 13: The focus of the course is now shifting from the numerical solution of Markov processes, to simulation modelling. I discussed how this is seem as an algorithmic representation of the system, rather than an analytic one. For the session today we considered the event-based style of simulation modelling, where the focus is entirely only the events that can occur in the system, and the state of the model at any time is captured in its event queue. We considered an example of a bottling plant in which bottles were filled and capped by two separate machines. During filling some bottles topple over and have to be discarded, although blocking the use of the machine until this is completed. We identified the events within the system and sketched suitable event routines for each of them.
13/11/17 Random Variables and Simulation Session 14: We continued consideration of the event-based simulation of the bottling plant started in the last session. Working from the event rountines developed last time, we conducted an on paper simulation of the system, keeping track of the simulation clock, the events undertaken, the state of the event list and the measures for the first minute of operation. We also discussed a couple of past exam questions related to simulation, random numbers and output analysis. In the first scenario we considered whether it was better to have a single long trajectory on which to base statistics, or five shorter trajectories obtained by independent replications, when transient removal had not be conducted for any of the trajectories. The second question was simply bookwork, rehearsing the arguments for what makes a good random number generator and why.
16/11/17 Scalable Analysis of PEPA Models Session 15: The focus of today's session was on scalable analysis techniques. I went over some of the concepts that had been introduced in the videos associated with Lecture 15, particularly the idea of lumpability. I then demonstrated the use of scalable analysis in the PEPA Eclipse Plug-in Tool. A key point to remember is that passive rate cannot be used in PEPA models submitted for scalable analysis (ie simulation or ODE approximation). The workaround is to use a very high rate which will have the same effect as "top" of always being larger than a genuine rate ensuring that this component does not control the rate of a shared activity. In order to get experience of carrying out scalable analysis I provided a model of a business-to-business banking application and encouraged everyone to explore its performance under different configurations.
20/11/17 Verification and Validation of Models Session 16: Once our models have been constructed we still need to ensure that they are a good representation of the system under study, and that they are parameterised appropriately. In today's session we considered the first of these issues -- how ensure that our model is providing a faithful representation of the system with respect to the questions we want to ask. We generally break the problem into two steps: model validation, ensuring that the conceptual model is an appropriate respresentation of the system (assumptions are valid, input parameters are appropriate, etc); and model verification, ensuring that the conceptual model has been implemented correctly in the executable version. We considered a number of exercises related to validation and verification and discussed the use of a variety of techniques.
23/11/17 Workload characterisation and parameterisation Session 17:The final step in building a model is often finding the correct parameters with which to run it. This is not an easy task. In the case of performance models of computer systems low level characteristics of the behaviour can often be taken directly from the technical specification of the equipment, but at higher levels a variety of mechanisms need to be used to find suitable parameters. Direct measurement of operational systems is often not straightforward, particularly as perturbations, for example by worsening response times, can have an impact on user behaviour, meaning that the observed system is not representative. In the session today we considered a number of small questions about monitoring strategies and workload characterisation. I also provided an opportunity for anyone who had questions about Practical 2 to pose them.

Back to Performance Modelling homepage.


Home : Teaching : Courses : Pm 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh