RPM: Murray Woodside's MATLAB Programs for Fitting Performance Models by Regression

Files to download

Paper (keynote to SIPEW 2008): Murray Woodside, "The Relationship of Performance Models to Data", Proc SPEC Int Workshop on Performance Evaluation (SIPEW), Darmstadt, Lecture Notes In Computer Science, Vol. 5119, pp 9 - 28, June 2008 PDF

Presentation (tutorial at WOSP/SIPEW/ICPE 2010): Regression Techniques for Performance Parameter Estimation,Murray Woodside, Tutorial at the first WOSP/SIPEW International Confeence on Performance Engineering, San Jose, Jan 28, 2010. PPT

Instructions (also in the download file Instructions.txt)

There are three programs:

1. regressModel, a main program. The data for fitting, and many variables to control the process, are to be copied into the program text inline. The file regressModel_2Class has an example for fitting a queueing network with 2 classes, annotated by definitional comments. See the file for the data requirements and formats.

Note that the trial data has a row for each trial, in which the first elements are the controlled parameters for that trial, then the measurements (first x, then z)

regressModel computes the fitted parameters and their confidence intervals. Commented code is given for displaying a graph of predicted values for some range of controlled parameters.

2. modelSens, a function which returns the model prediction and a sensitivity matrix, by finite differences. This one version works with all models

3. modelCalc, a function which computes the model predictions. This must be written for the model to be fitted. The parameter vector, results vector and controlled vector must match those defined in regressModel.

Three sample models are provided, each with a version of regressModel:
... modelCalc_1Class solves a single class product-form queueing network model with any number of queues and customers. THis model was used in the keynote paper and presentation
... modelCalc_2Class solves for two classes, with a loose structure that can be extended for more classes,
... modelCalc_LQWeb solves a layered queueing model.
=====>> To run, remove the subscript from modelCalc as it is called from modelSens.

The layered model illustrates the interface to an external tool. In this case the modelCalc function edits a file using AWK. This is an input file to the SPEX tool, which inserts values for symbolic parameters in an lqn model called template.lqn. A system command executes the model, and another AWK execution extracts the results from the output file. The extracted data is read into Matlab. The auxiliary files for all this proceeding are contained in a directory LQWeb.
... AWK is a windows executable
... template.xlqn is the lqn model with variables for the controlled parameters, and indicators for the desired outputs
... inscript.awk is the script for making the input edits, commanded by a line which is synthesized in modelCalc
... Amodel.in is the input file for execution by spex and lqns. SPEX requires that PERL be installed. Amodel.in generates a directory of case models and outputs.
... outscript.awk is the script for extracting the output