Performance modelling with PEPA nets and PRISM S. Gilmore, J. Hillston, L. Kloul, M. Ribaudo PASTA workshop - 12th June 2003 - Edinburgh
Outline � PEPA nets: informal introduction � PEPA nets: few formal definitions � Simple example: mobile agent � From PEPA nets to PRISM � Complex example: mobile IP PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: informal introduction Stochastic PEPA (coloured) Petri Nets PEPA nets PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: informal introduction Transition The tokens are PEPA names are components that perform labelled with local activities and can activity move from one place to names another … T 1, λ λ λ λ P 1 P 2 T 2, µ µ µ µ PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: informal introduction � PEPA components perform activities to represent state changes � … in PEPA nets we distinguish between two types of changes … � “local” changes (transitions of PEPA components) � “global” changes (net firings) PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: informal introduction Q R Local changes L Q ’ R ’ Firing? L Who moves? Q ’ R ’’ L (go, λ λ ) λ λ P 1 P 2 (return, µ µ ) µ µ PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: informal introduction � There is a PEPA context at each place of the net � A PEPA context consists of � static components � cells [ ] PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: informal introduction Q[Q] R Local changes L Q[Q ’ ] R ’ L Q[Q ’ ] R ’’ R ’’ Q[_] Q[Q ’’ ] Q[_] L L (go, λ λ ) λ λ P 1 P 2 (return, µ µ ) µ µ PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: informal introduction � Some assumptions � Components can cooperate only when they are in the same place � It is NOT possible for one component to cooperate with another component AND transfer to another place PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: syntax PASTA workshop - 12th June 2003 - Edinburgh
PEPA nets: markings and places PASTA workshop - 12th June 2003 - Edinburgh
Simple example: mobile agent � A mobile software agent visits three sites, where it interacts with static software components � In two sites the agent interrogates a network sensor for data (on recent patterns of network traffic) � In the other site, the agent dumps the data to a master sensor PASTA workshop - 12th June 2003 - Edinburgh
Simple example: Mobile agent Agent[_] Master L 1 (go, T ) (go, T ) P 2 P 1 P 3 (return, T ) (return, T ) Agent[_] Probe Agent[_] Probe L 2 L 2 PASTA workshop - 12th June 2003 - Edinburgh
Simple example: Mobile agent def λ ).Agent ’ Agent = (go, λ λ λ def Agent ’ = (interrogate,r i ).Agent ’’ def Agent ’’ µ ).Agent ’’’ = (return, µ µ µ def Agent ’’’ = (dump,r d ).Agent def = (dump, T ).Master ’ Master def Master ’ = (analyse,r a ).Master def Probe = (monitor,r m ).Probe + (interrogate, T ).Probe PASTA workshop - 12th June 2003 - Edinburgh
PRISM � Probabilistic model checker probabilistic temporal logic, PCTL and CSL � Supports three models DTMC, MDP, CTMC � Compact state representation (BDD) � Input to the PRISM tool 1. description of the system 2. set of properties to be checked PASTA workshop - 12th June 2003 - Edinburgh
From PEPA to PRISM � A compiler exists for translating PEPA models (a subset of PEPA) into PRISM models � … then the models can be analysed with the PRISM tool � The steady-state probability distribution for the underlying CTMC can be automatically derived � Properties can be verified PASTA workshop - 12th June 2003 - Edinburgh
From PEPA nets to PRISM PRISM Q[Q] R Q[_] Q[Q] R Q[_] L input files PEPA description PRISM PRISM PEPA net output description PASTA workshop - 12th June 2003 - Edinburgh
From PEPA nets to PEPA � We need to map the net structure into (standard) PEPA components � Problems � What happens to different transitions with the same associated label? � What happens to replica of the same static component, resident in different places � What about cells? PASTA workshop - 12th June 2003 - Edinburgh
From PEPA nets to PEPA Steps of the translation algorithm � 0. Preprocessing (a 1 ,r 1 ) (a,r 1 ) P j P k P i (a,r 2 ) (a 2 ,r 2 ) PASTA workshop - 12th June 2003 - Edinburgh
From PEPA nets to PEPA 1. Translation of static components In order to avoid wrong synchronisations we need to distinguish replicas of the same static component. This is done by renaming action types and derivatives PASTA workshop - 12th June 2003 - Edinburgh
From PEPA nets to PEPA 2. Translation of cells A new PEPA component need to be defined for each cell i within each place P def Cell i0 = (a,r 1 ).Cell i 1 (a,r 1 ) (b,r 2 ) [_] def Cell i1 = (b,r 2 ).Cell i0 P PASTA workshop - 12th June 2003 - Edinburgh
From PEPA nets to PEPA 3. Translation of tokens The movement of a token in a new place and its interaction with static components are considered To allow correct synchronisations the new names introduced in the previous steps are are introduced in the token as well PASTA workshop - 12th June 2003 - Edinburgh
From PEPA nets to PEPA 4. Building the system equation All PEPA components built in the previous steps are put in parallel and forced to synchronise on common action types PASTA workshop - 12th June 2003 - Edinburgh
A simple example: preprocessing Agent[Agent] Master L 1 (go1, T ) (go2, T ) (go, T ) (go, T ) P 2 P 3 P 1 (return, T ) (return, T ) Agent[_] Probe Agent[_] Probe L 2 L 2 PASTA workshop - 12th June 2003 - Edinburgh
A simple example: static components def = (dump, T ).Master ’ + Master def Master ’ = (analyse,r a ).Master def = (monitor 1 ,r m ).Probe 1 + Probe 1 (interrogate 1 , T ).Probe 1 def = (monitor 2 ,r m ).Probe 2 + Probe 2 (interrogate 2 , T ).Probe 2 PASTA workshop - 12th June 2003 - Edinburgh
A simple example: cells (go1, T ) (go2, T ) P1 P2 P3 [_] [_] [_] (return, T ) (return, T ) def = (go 1 , T ).Cell 11 Cell 10 def = (return, T ).Cell 10 Cell 11 def = (return, T ).Cell 21 Cell 20 def = (go 1 , T ).Cell 20 + Cell 21 (go 2 , T ).Cell 20 def = (go 2 , T ).Cell 31 Cell 30 = (return, T ).Cell 30 def Cell 31 PASTA workshop - 12th June 2003 - Edinburgh
A simple example: tokens def λ ).Agent 1 ’ + Agent = (go 1 , λ λ λ λ ).Agent 2 ’ (go 2 , λ λ λ def Agent 1 ’ = (interrogate 1 ,r i ).Agent ’’ def Agent 2 ’ = (interrogate 2 ,r i ).Agent ’’ def Agent ’’ µ ).Agent ’’’ = (return, µ µ µ def Agent ’’’ = (dump,r d ).Agent PASTA workshop - 12th June 2003 - Edinburgh
A simple example: model equation def System = (Cell 10 (Probe 1 (Agent (Cell 21 K 1 K 2 K 3 K 4 (Master (Probe 2 Cell 30 )))))) K 6 K 5 K 1 = {go 1 , return} K 2 = {interrogate 1 } K 3 = {go 1 , go 2 , return} K 4 = {dump} K 6 = {go 2 , return} K 5 = {interrogate 2 } PASTA workshop - 12th June 2003 - Edinburgh
Complex example: mobile IP 1. Correspondent sends IP packets to the mobile node at his home address PASTA workshop - 12th June 2003 - Edinburgh
Complex example: mobile IP 2. The Mobile Node sends its new IP address to the Home Agent PASTA workshop - 12th June 2003 - Edinburgh
Complex example: mobile IP 3. The Home Agent forwards packets to the Mobile Node PASTA workshop - 12th June 2003 - Edinburgh
Complex example: mobile IP 4. The Mobile Node sends its new IP address to the Correspondent PASTA workshop - 12th June 2003 - Edinburgh
Complex example: mobile IP 5. The Correspondent sends packets directly to the Mobile Node PASTA workshop - 12th June 2003 - Edinburgh
PASTA workshop - 12th June 2003 - Edinburgh
Complex example: mobile IP � 1 Mobile Node, 1 Correspondent, 1 Domain � 2.8 million of states � 16 million of transitions � in 13.2 seconds, 1.6GHz Pentium IV with 256 MB of RAM PASTA workshop - 12th June 2003 - Edinburgh
Conclusions � PEPA nets is relatively new but we think that it can provide a framework for modelling systems characterised by some mobility Future work � Synchronisation over net transitions � Movement of more than one token � Graphical interface (done!) PASTA workshop - 12th June 2003 - Edinburgh
Recommend
More recommend