SimGrid MC: Verification Support for a Multi-API Simulation Platform

Stephan Merz, Martin Quinson, and Cristian Rosa
Abstract
SimGrid MC is a stateless model checker for distributed systems that is part of the SimGrid Simulation Framework. It verifies implementations of distributed algorithms, written in C and using any of several communication APIs provided by the simulator. Because the model checker is fully integrated in the simulator that programmers use to validate their implementations, they gain powerful verification capabilities without having to adapt their code. We describe the architecture of SimGrid MC, and show how it copes with the state space explosion problem. In particular, we argue that a generic Dynamic Partial Order Reductions algorithm is effective for handling the different communication APIs that are provided by SimGrid. As a case study, we verify an implementation of Chord, where SimGrid MC helped us discover an intricate bug in a matter of seconds.
© Springer-Verlag 2011
Available as: PDF
Reference
@InProceedings{merz:simgridmc,
  author =       {Stephan Merz and Martin Quinson and Cristian Rosa},
  title =        {{SimGrid MC}: Verification Support for a Multi-{API} Simulation Platform},
  booktitle = {13th IFIP WG 6.1 Intl. Conf. Formal Techniques for Distributed Systems (FORTE 2011)},
  pages =     {274-288},
  year =      2011,
  editor =    {Roberto Bruni and J\"urgen Dingl},
  volume =    6722,
  series =    {LNCS},
  address =   {Reykjavik, Iceland},
  publisher = {Springer},
}

Stephan Merz