Faster Simulation of (Coloured) Petri Nets Using Parallel Computing

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10258)


Fast simulation, i.e., automatic computation of sequential runs, is widely used to analyse Petri nets. In particular, it enables for quantitative statistical analysis by observing large sets of runs. Moreover, fast simulation may be used to actually run a Petri net model as a (prototype) implementation of a system, in which case such a net would embed fragments of the code of the system. In both these contexts, being able to perform faster simulation is highly desirable.

In this paper, we propose a way to accelerate fast simulation by exploiting parallel computing, targeting both the multi-core cpus available nowadays in every laptop or workstation, and larger parallel computers including those with distributed memory (clusters). We design an algorithm to do so and assess in particular its correctness and completeness through its formal modelling as a Petri net whose state space is analysed. We also present a benchmark of a prototype implementation that clearly shows how our algorithm effectively accelerates fast simulation, in particular in the case of large concurrent coloured Petri nets, which is precisely the kind of nets that are usually slow to simulate.


Petri nets Fast simulation Parallel computing 



We warmly thank Camille Coti (lipn) for her help in understanding our hardware and how to exploit it correctly for our benchmark.


  1. 1.
    The Go programming language.
  2. 2.
    Bilenko, D.: gevent contributors: gevent.
  3. 3.
    Cabac, L., Haustermann, M., Mosteller, D.: Renew 2.5 – towards a comprehensive integrated development environment for petri net-based applications. In: Kordon, F., Moldt, D. (eds.) PETRI NETS 2016. LNCS, vol. 9698, pp. 101–112. Springer, Cham (2016). doi: 10.1007/978-3-319-39086-4_7 CrossRefGoogle Scholar
  4. 4.
    Chaou, S., Utard, G., Pommereau, F.: Evaluating a peer-to-peer storage system in presence of malicious peers. In: Proceedings of HPCS 2011. IEEE Computer Society (2011)Google Scholar
  5. 5.
    Fernandez, J.-C., Mounier, L.: “On the fly” verification of behavioural equivalences and preorders. In: Larsen, K.G., Skou, A. (eds.) CAV 1991. LNCS, vol. 575, pp. 181–191. Springer, Heidelberg (1992). doi: 10.1007/3-540-55179-4_18 CrossRefGoogle Scholar
  6. 6.
    Fronc, Ł., Pommereau, F.: Building petri nets tools around Neco compiler. In: Proceedings of PNSE 2013 (2013)Google Scholar
  7. 7.
    Gava, F., Fortin, J., Guedj, M.: Deductive verification of state-space algorithms. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 124–138. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-38613-8_9 CrossRefGoogle Scholar
  8. 8.
    Gehrcke, J.P.: gipc: child processes and IPC for gevent.
  9. 9.
    Kincaid, J.: Google’s Go: a new programming language that’s Python meets C++. (2009).
  10. 10.
    Kordon, F., Garavel, H., Hillah, L.M., Hulin-Hubard, F., Chiardo, G., Hamez, A., Jezequel, L., Miner, A., Meijer, J., Paviot-Adet, E., Racordon, D., Rodriguez, C., Rohr, C., Srba, J., Thierry-Mieg, Y., Trinh, G., Wolf, K.: Complete Results for the 2016th Edition of the Model Checking Contest (2016).
  11. 11.
    Kordon, F.: Prototypage de systèmes parallèles à partir de réseaux de Petri colorés. Ph.D. thesis, UPMC (1992)Google Scholar
  12. 12.
    Nicol, D.M., Mao, W.: Automated parallelization of timed petri-net simulations. J. Parallel Distrib. Comput. 29(1), 60–74 (1995)CrossRefGoogle Scholar
  13. 13.
    Pommereau, F.: Nets in nets with SNAKES. In: Proceedings of MOCA 2009. Universität Hamburg, Department of Informatik, Hamburg (2009)Google Scholar
  14. 14.
    Pommereau, F.: SNAKES: a flexible high-level petri nets library (Tool paper). In: Devillers, R., Valmari, A. (eds.) PETRI NETS 2015. LNCS, vol. 9115, pp. 254–265. Springer, Cham (2015). doi: 10.1007/978-3-319-19488-2_13 CrossRefGoogle Scholar
  15. 15.
    Pommereau, F.: ABCD: a user-friendly language for formal modelling and analysis. In: Kordon, F., Moldt, D. (eds.) PETRI NETS 2016. LNCS, vol. 9698, pp. 176–195. Springer, Cham (2016). doi: 10.1007/978-3-319-39086-4_12 CrossRefGoogle Scholar
  16. 16.
    Pommereau, F., de la Houssaye, J.: Supplementary material.
  17. 17.
    Rodola, G.: A cross-platform process and system utilities module for Python.
  18. 18.
    The Theoretical Foundations Group of the Department for Informatics of the University of Hamburg: Renew, the reference net workshop - highlights.
  19. 19.
    Wang, B., Zhao, C.: A petri net simulation kernel with extendibility, convenient modeling and fast simulation engine. In: Proceedings of ICCT 2003, vol. 2. IEEE (2003)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.IBISCUniversity of ÉvryÉvry CedexFrance

Personalised recommendations