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, location management algorithms in mobile wireless systems, admission and quality of service control
algorithms in multimedia systems, fault-tolerant designs,
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.
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: 0-7923-9650-2, 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:
Java Meets Simulation API is developed by MITRE; it provides both
process-orient and discrete-event simulation capabilities using Java.
Copy all files listed below to your
Java source directory and set the CLASSPATH environment variable to
find sim.jar and aspectjrt.jar, i.e., in UNIX put a
"setenv CLASSPATH .:sim.jar:aspectjrt.jar" command in your login shell script.
Then use javac to compile source programs and java to execute the
class file in the same directory. View the API documentation file
for its usage.
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.