5214: An overview of modeling, simulation and performance evaluation
of computer systems, i.e., operating systems, database management systems,
office automation systems, etc. Fundamentals of modeling, the life cycle
of a simulation study, workload characterization, random number and
variate generation, procurment, measurement principles,
software and hardware monitors, capacity planning, system and
program tuning, and analytic modeling.
Why do you need to take this course?
This course will cover two state-of-the-art performance and
reliability modeling and analysis tools, namely,
SHARPE (Symbolic Hierarchical Automated Reliability & Performance Evaluator)
and SPNP (Stochastic Petri Nets Package), both developed by Duke University.
SHARPE has its own language, while SPNP language is a subset of C.
Users can use these tools to define a system
and ask these tools to calculate system performance/reliability measures.
This course will also cover discrete-event simulation.
Students can use the tools and techniques learned in this course
to evaluate computer system designs, e.g., control and scheduling algorithms,
network communication protocols, distributed algorithms, reliability and dependability
of cyber physical
systems, network and service management of mobile wireless systems,
trust and security management of IoT systems,
admission and quality of service control
algorithms in multimedia systems,
replicated data control algorithms in databases, etc.
This course is ideal for graduate students to equip themselves with
mathematical modeling and analysis techniques for their research projects.
Case studies will be drawn from distributed databases, mobile systems,
and networked multimedia systems.
There is no textbook but I will use the following reference text to cover
SHARPE: R.A. Sahner, K.S. Trivedi and A. Puliafito,
Performance and Reliability Analysis of Computer Systems:
An Example-Based Approach Using the SHARPE Software Package,
Springer, 1996, ISBN: 9781461523673, Price: $79.95.
S* - supplement materials (slides)
SHARPE - Symbolic Hierarchical Automated Reliability & Performance
SPNP - Stochastic Petri Net Package
[Pn] - paper presentation material, to be determined in class.
Each presentation should last for about 1 hour and 15 minutes,
including 15 minutes for questioning/answering.
Each group of presenters should prepare a powerpoint file
for the paper to be presented and send it to the instructor for
posting on the class web site one day prior to the presentation date.
(Click to see example powerpoint slides.)
Every student is required to attend the presentation session.
Class participation will be counted toward the presentation grade.
The presentation will be graded based on the following criteria:
organization of presentation (20%),
material understanding (30%),
clearness of presentation (10%),
and whether the presentation covers the main idea (40%).
Source: M.H. MacDougall, Simulating Computer Systems,
Computer Systems Series, The MIT Press, 1987.
How to compile and execute an smpl program in UNIX?
First set up your .cshrc file: copy .cshrc to your home directory and issue the command 'source .cshrc' to activate it. Then issue the following command to compile your program 'my-program.c':
gcc -g3 -I. my-program.c smpl.c rand.c bmeans.c stat.c -lm -o my-program
gcc -g3 -I. mm1.c smpl.c rand.c bmeans.c stat.c -lm -o mm1
You can also make a shell script (executable) called ccc with the content of:
gcc -g3 -I. $* smpl.c rand.c bmeans.c stat.c -lm -o `basename $1 .c`
Then you can compile your program, say, mm1.c, as follows:
Then you will find an executable file 'mm1' in your default directory. Execute it by
Below is a set of smpl source code to upload to your default directory:
SHARPE is installed at /usr/local/sharpe. The textbook is
the best source for its documentation. A user manual is available
under /usr/local/sharpe/doc. A PC version is available at /usr/local/sharpe/pc.
How to run sharpe on your UNIX account?
Suppose your sharpe program name is hw.sh. Then at the command prompt, type: