Title: Introduction%20to%20Simulation
1Introduction to Simulation
- Andy Wang
- CIS 5930-03
- Computer Systems
- Performance Analysis
2Simulations
- Useful when the system is not available
- Good for exploring a large parameter space
- However, simulations often fail
- Need both statistical and programming skills
- Can take a long time
3Common Mistakes
Common Mistakes
- Inappropriate level of detail
- More details ? more development time ? more bugs
? more time to run - More details require more knowledge of
parameters, which may not be available - E.g., requested disk sector
- Better to start with a less detailed model
- Refine as needed
4Common Mistakes
- Improper language
- Simulation languages
- Less time for development and statistical
analysis - General-purpose languages
- More portable
- Potentially more efficient
5Common Mistakes
- Invalid models
- Need to be confirmed by analytical models,
measurements, or intuition - Improperly handled initial conditions
- Should discard initial conditions
- Not representative of the system behavior
- Too short simulations
- Heavily dependent on initial conditions
6Common Mistakes
- Poor random number generators
- Safer to use well-known ones
- Even well-known ones have problems
- Improper selection of seeds
- Need to maintain independence among random number
streams - Bad idea to initialize all streams with the same
seed (e.g., zeros)
7Other Causes of Simulation Analysis Failure
- Inadequate time estimate
- Underestimate the time and effort
- Simulation generally takes the longest time
compared to modeling and measurement - Due to debugging and verification
- No achievable goal
- Needs to be quantifiable
8Other Causes of Simulation Analysis Failure
- Incomplete mix of essential skills
- Project leadership
- Modeling and statistics
- Programming
- Knowledge of modeled system
- Inadequate level of user participation
- Need periodic meetings with end users
9Other Causes of Simulation Analysis Failure
- Obsolete or nonexistent documentation
- Inability to manage the development of a large,
complex computer program - Needs to keep track of objectives, requirements,
data structures, and program estimates - Mysterious results
- May need more detailed models
10Terminology
Terminology
- State variables the variables whose values
define the state of the system - E.g., length of a job queue for a CPU scheduler
- Event a change in the system state
11Static and Dynamic Models
- Static model time is not a variable
- E.g., E mc2
- Dynamic model system state changes with time
- CPU scheduling
12Continuous and Discrete-time Model
- System state is defined at all times
- System state is defined only at instants in time
Number of students attending this class
Time spent executing a job
Time
Time Tuesdays and Thursdays
13Continuous and Discrete-state Model
- Use continuous state variables
- Use discrete state variables
Time spent executing a job
Number of jobs
Time
Time
- Possible to have all four combinations of
continuous/discrete time/state models
14Deterministic and Probabilistic Model
- Output of a model can be predicted with certainty
- Gives a different result for the same input
parameters
output
output
input
input
15Linear and Nonlinear Models
- Output parameters are linearly correlated with
input parameters
16Stable and Unstable Models
- Settles down to a steady state
17Open and Closed Models
- Input is external to the model and is independent
of the model
18Computer System Models
- Generally
- Continuous time
- Discrete state
- Probabilistic
- Dynamic
- Nonlinear
19Selecting a Language for Simulation
Selecting a Language for Simulation
- Simulation language
- General-purpose language
- Extension of general-purpose language
- Simulation package
20Simulation Languages
- Have built-in facilities
- Time advancing
- Event scheduling
- Entity manipulation
- Random-variate generation
- Statistical data collection
- Report generation
- Examples SIMULA, Maisie, ParSEC
21General-purpose Languages
- C, Java
- No need to learn a new language
- Simulation languages may not be available
- More portable
- Can be optimized
22Extensions of General-Purpose Languages
- Provide routines commonly required in simulation
- Examples CSim, NS-3 (OTcl C)
23Simulation Packages
- Provide a library of data structures, routines,
algorithms - Significant time savings
- Can be done in one day
- However, not flexible for unforeseen scenarios
24Types of Simulations
Types of Simulations
- Emulation
- Hybrid simulation
- Monte Carlo simulation
- Trace-driven simulation
- Discrete-event simulation
25Emulation and Hybrid Simulation
- Emulation
- A simulation using hardware/firmware
- Hybrid simulation
- A simulation that combines simulation and
hardware - E.g., a 5-disk RAID
- One simulated disk
- Four real disks
26Monte Carlo Simulation
- A type of static simulation
- Models probabilistic phenomenon
- Can be used to evaluate nonprobabilistic
expressions - E.g., use the average of estimates to evaluate
difficult integrals
27Trace-Driven Simulation
- Trace a time-ordered record of events on a real
system - Needs to be as independent of the underlying
system as possible - Storage-level trace may be specific to the cache
replacement mechanisms above, the working set,
the memory size, etc.
28Advantages of Trace-Driven Simulation
- Credibility
- Easy validation
- Just compare measured vs. simulated numbers
- Accurate workload
- Preserves the correlation and interferences
effects
29Advantages of Trace-Driven Simulation
- Less randomness
- Deterministic input
- Less variance
- Fewer number of runs to get good confidence
- Fairer comparison (deterministic input)
- For different alternatives
- Similarity to the actual implementation
30Disadvantages of Trace-Driven Simulation
- Complexity
- More detailed simulation to take realistic trace
inputs - Representativeness
- Trace from one system may not be representative
of the workload on another system - Can become obsolete quickly
31Disadvantages of Trace-Driven Simulation
- Finiteness
- A trace of a few minutes may not capture enough
activity - Single point of validation
- Algorithms optimized for one trace may not work
for other traces - Trade-off
- Difficult to change workload characteristics
32Discrete-Event Simulation
- Uses discrete-state model
- May use continuous or discrete time values
33Common Components
- Event scheduler
- E.g., schedule event X at time T
- Simulation clock
- A time-advancing mechanism
- Unit time Increments time by small increments
- Event-driven Increments time automatically to
the time of the next earliest event
34Common Components
- System state variables
- Event routines (handlers)
- Input routines
- E.g., number of repetitions
- Report generator
- Initialization routines
- Beginning of a simulation, iteration, repetition
35Common Components
- Trace routines (for debugging)
- Should have an on/off feature
- Snapshot/continue from a snapshot
- Dynamic management
- Main program
36Event-Set Algorithms
- How to track events
- Ordered linked list (lt 20 events)
- Indexed linked list (20 120 events)
- Calendar queue
- Tree structure (gt 120 events)
- E.g., heap
37White Slide