An important feature of the tool is its engines. PRISM is primarily a symbolic model checker: its basic underlying data structures are binary decision diagrams (BDDs) and multi-terminal BDDs (MTBDDs). When performing numerical computation on DTMCs, MDPs and CTMCs, however, the tool can use one of three engines. The first is implemented purely in MTBDDs (and BDDs); the second uses sparse matrices; and the third is a hybrid, using a combination of the other two.
The choice of engine ("MTBDD", "sparse" or "hybrid") will not affect the results of model checking - all engines perform the same calculations (although in a few cases, some types of computation can only be performed with certain engines). Performance (time and space), however, may vary significantly and if you are using too much time/memory with one engine, it may be worth experimenting. Below, we briefly summarise the key characteristics of each engine.
When using the PRISM GUI, the engine to be used for model checking can be selected from the "Engine" option under the "PRISM" tab of the "Options" dialog. From the command-line, engines are activated using the -mtbdd
, -sparse
and -hybrid
(or -m
, -s
and -h
, respectively) switches, e.g.:
For further information and technical details about PRISM's implementation and engines, see: [Par02],[KNP04b].
Note also that precise details regarding the memory usage of the current engine are displayed during model checking (from the GUI, check the "Log" tab). This can provide valuable feedback when experimenting with different engines.
The techniques used to model check PTAs are different to the ones used for DTMCs, MDPs and CTMCs. For PTAs, PRISM currently has two distinct engines that can be used:
The default engine for PTAs is "stochastic games" because it generally scales better [KNP09c]. The engine to be used can be specified using the "PTA model checking method" setting in the "PRISM" options panel in the GUI. From the command-line, switch -ptamethod <name>
should be used where <name>
is either games
or digital
.
The choice of engine for PTA model checking affects restrictions that imposed on both the modelling language and the types of properties that can be checked.