What is ipc?
Over the last 10 years, the PEPA paradigm has become a popular choice among performance engineers for analysing quantities such as utilisation and throughput in their software and hardware designs. ipc is a tool that aims to extend PEPA's modelling capability by allowing engineers to extract a larger number of performability measures (i.e. performance and reliability metrics) from their PEPA models. ipc compiles PEPA models (in the form of .pepa) files to Will Knottenbelt's DNAmaca format (in the form of .mod) files. DNAmaca is well suited to this as it specialises disk-based (out-of-core) storage and analysis of very large systems. In particular, DNAmaca is adept at:
Example Passage-time Specification
How to run ipc
From an example file, test.pepa:
%% test.pepa The following command will generate a .mod file that can be run in DNAmaca. In turn DNAmaca will return the passage-time density function, representing the time between an 'a' action first occurring and a subsequent 'b' action: ipc test.pepa -s "a" -t "b" What does this do?
In fact, ipc is adding a stochastic probe to the model, equivalent to the following PEPA code:
%% test.pepa In the resulting output .mod file, DNAmaca is configured to look for the change in state over the system between 'Probe' and 'Probe_running'. The moment that 'Probe_running' is entered, the passage-time measurement starts: i.e. an 'a' action has been observed. When a further 'b' action is then seen the clock is stopped (the system goes back to state 'Probe' in fact) and DNAmaca outputs the appropriate distribution (in the form of a data file that can be piped into a graphing tool such as gnuplot). Using many start or end actions to define the passage
Multiple start and end actions can be specified in creating the PEPA probe using a comma-separated list, for example: ipc test.pepa -s "a,c" -t "b" Other Features
We also now support
Example PEPA files
Some example PEPA models are available for trialling ipc on. ipc Related Publications
UKPEW'2003
NSMC'2003
PNPM'2003
PMEO'2003
ipc: Features and Future development
James Clerk Maxwell release
The full JCM release will support specification of the following features. The version number from which a feature was incorporated is shown.
2G release
The 2G release of ipc will support analysis of a semi-Markov version of PEPA (i.e. allow analysis of models with more general distributions). Preliminary support for PEPAnets, an extension of PEPA for modelling mobile and distributed systems, is also planned. |
Download ipc
John Daly release
[0.99] Source code: [ghc version]
James Clerk Maxwell release
[0.93a] Source code: [ghc version | hugs version]
Documentation (for ipclib)
Required Tools
Related Links
Credits
Enormous thanks for help, advice, code and bug finding go to: Ashok Argent-Katwala Neil Davies Jeremy Bradley Allan Clark Nick Dingle Tony Field Stephen Gilmore Peter Harrison Jane Hillston Will Knottenbelt |