Title: MIDAS: Integrated Design and Simulation of Distributed Systems
1MIDASIntegrated Design and Simulation of
Distributed Systems
- by
- Rajive L. Bragrodia and Chien-Chung Shen
- presentation by
- Chi Yeung
2The Problem
- Need to test performance characteristics of
distributed systems during early stages of system
design.
3What is MIDAS
- MIDAS is a approach to system design, where a
discrete-event simulation model is iteratively
transformed into an operational system. - MIDAS is centered around the use of Partially
Implemented Performance Specifications (PIPS) as
performance models for distributed systems. - The PIPS model is a partially implemented design,
where some components exists as simulation
models, and others are operational subsystems.
4Example of partially implemented design
Before entity consumer bufid, cmean e_name
bufid int cmean message data while( true )
invoke bufid with get self wait
until mtype( data ) hold( exp(cmean) )
After entity consumer bufid, cmean
e_name bufid int cmean message data struct
drec d1 while( true ) invoke bufid
with get self wait until mtype( data )
process_data(msg.data.d1)
sends a get message
wait for message
waste some time doing nothing
replace with actual code
5Advantages
- Allows the performance characteristics of a
system to be estimated at an early stage in its
design and subsequently monitored during critical
stages of refinement and implementation. - Separate performance models does not have to be
designed and maintained for the system. - Allows noncritical subsystems to be implemented
prior to being modeled and incorporates their
effect in the performance profile for the overall
system. - The model is useful for testing and debugging.
6What does MIDAS do for us?
The notions of process, processor, message,
computation step, and time are central to the
description of an execution of a distributed
system. To support iterative transformation of a
simulation model, the MIDAS approach provides
suitable abstractions for each of the preceding
notions such that the abstractions can evolve
into, or be replaced by, the physical objects
that they represent. MIDAS makes special effort
to provide abstractions to support interrupts and
distributed components.
7Functional and Performance Specs
The goal of MIDAS is to iteratively transform
each entity that is a logical process to a
physical process and eventually replace each
logical element by a physical architecture.
Initial System Design
Software Model
Hardware Model
Elaboration and Refinement
Elaboration and Refinement
PIPS Program
Simulation Hardware
System Hardware
Operational Software
Operational System
8Examples of Maisies code
entity driver int count e_name p, c, b
le_name cpu1 cpu1 get_le(1.0) b new
bufferBUFFER_SIZE P new producerb,
P_MEAN c new consumerb, C_MEAN on cpu1
for( count0 countltBUFFER_SIZE count )
invoke p with free entity consumerbufid,
cmean e_name bufid int cmean message data
struct drec d1 while (true) invoke
bufid with get self wait until mtype(
data ) process_data(msg.data.d1)
PIPS model for bounded-buffer
entity producerbufid, pmean e_name bufid int
pmean message free while (true) hold(
exp(pmean) ) wait until mtype( free )
invoke bufid with put self
9entity bufferbuf_size int buf_size int
count e_name pid message put e_name hisid
message get e_name hisid count 0
while (true) wait until
mtype(get) st (count gt 0) count--
invoke msg.get.hisid with data
invoke pid with free self or
mtype(put) st (count lt buf_size)
count pid msg.put.hisid
10Implementation and Results
- A prototype MIDAS environment was implemented in
UNIX consisting of three main components the
Hybrid Maisie compiler, a run-time system to
execute hybrid models, and a library of
simulation entities and measurement facilities. - The runtime system consist of
- The PIPS algorithm to support the execution of
hybrid models, - And IPC kernel to support interprocess
communication, - Management of state-saving and recomputation to
handle interrupts, and - Instrumentation routines to measure operational
steps. - Experiments were done in which performance
measurements were taken at different stages of
system implementation, and it was found that the
results were in reasonable agreement with the
operational system.
11Related Work
- The idea of integrating simulation models with
system design is not new, it was explored before
by Zurcher and Randell, also by Parnas and
Darringer. - Performance prediction by integrating simulation
and software design using PPML, a system modeling
language (Sanguinetti). - Estrin et al. suggest a system -design
methodology to study performance aspects in
multiple domains a control flow graph is
constructed to analyze safety and liveness
properties. - Roman describes a specification language called
CSPS, to study correctness and performance
characteristics by interactive simulation.