EventSim

From SDQ-Wiki
Jump to: navigation, search
Palladio Addon (Liste)
Name EventSim
Contacts Philipp Merkle (http://sdq.ipd.kit.edu/people/philipp merkle/)
State Incubation
Is Stand-alone Analysis? Yes
Extends Analyses SimuCom
Extends Metamodels
SVN Location https://svnserver.informatik.kit.edu/i43/svn/code/Palladio/Addons/EventSim/
Update Site https://sdqweb.ipd.kit.edu/eclipse/palladio/addons/eventsim/nightly/
Javadoc https://sdqweb.ipd.kit.edu/eclipse/palladio/addons/eventsim/nightly/javadoc/
JIRA http://www.palladio-simulator.com/jira/browse/PALLADIOINC/component/10300

Short Summary

Event-driven Simulator for Palladio models originally geared towards highly complex simulation models, where SimuCom might suffer from scalability and performance issues. Evolved to a platform for modular, non-invasive simulation extensions.

Documentation

EventSim is a performance simulator for software systems modelled by the Palladio component (meta-)model. EventSim is most comparable to the SimuCom simulator and is primarily geared towards highly complex simulation models, where SimuCom might suffer from scalability and performance issues. Namely, the event-oriented simulation employed in EventSim allows for highly intensive workloads of 100,000 concurrent requests and more. In this respect, EventSim aims at complementing SimuCom and is not meant to replace it. The greatest disadvantage of EventSim when contrasted to SimuCom is its compararatively small number of features supported.

Further information on the implemenation concepts underlying EventSim can be found here: [1], [2] (slightly outdated)


Key Features

  • Extensible through Simulation Modules
    EventSim launch configuration
    • can be enabled/disabled on a per-simulation basis via EventSim's launch confguration tab
    • non-invasive extension via Eclipse/Equinox Extension Points, combined with Google Guice dependency injection
  • Fast
    • no preceeding model-2-code transformation required; EventSim operates directly on the model
    • measurement processing decoupled from simulation, making better use of multi-core processors
  • Flexible measurements through customized instrumentation descriptions
    EventSim instrumentation
    • remove unneeded probes to save processing time and storage space
    • add model-specific probes, such as: "measure execution times of InternalAction x, executed in the scope of AssemblyContext y"
  • Measurements are managed and persisted using R project, a leading software for statistical computing and graphics
    • Rserve connects EventSim to R via TCP/IP
    • allows a dedicated measurement server, separated from the simulation node
    • persists measurements to *.rds files
  • Powerful visualization of measurements
    EventSim visualization
    • filter measurements by:
      • metric (Response Time, Utilization, ...)
      • simulation time
      • trigger type (User, Request)
      • trigger instance (1st/2nd/... Request)
      • assembly context
      • measuring point (ExternalCall, InternalAction, AcquireAction, ...)
    • build custom ggplot2 diagrams for filtered measurements, without writing a single line of R code: Histograms, Cumulative Distribution Functions (CDFs), Point/Bar/Line Charts
    • calculate statistics for filtered measurements, without writing a single line of R code: mean, quartiles, quantiles
    • use R code generated by EventSim's visualization as a basis for more complex filter expressions or diagrams, executed manually in R
  • Measurement postprocessors
    • consolidate raw simulation data, e.g. calculate mean queue length (windowed) from raw queue length measurements to save storage space (around 50%)
    • transform irregular time series measurements into regular (equidistantly spaced) measurements so that statistics and plots yield meaningful results
    • extension point allows custom postprocessors


Jira Bugtracker

Feature requests and bugs are tracked via Jira.

Please feel free to contribute bugs and feature requests.