{
if (_sg_mc_comms_determinism || _sg_mc_send_determinism)
return std::unique_ptr<simgrid::mc::Checker>(simgrid::mc::createCommunicationDeterminismChecker());
+ else if (_sg_mc_unfolding_checker)
+ return std::unique_ptr<simgrid::mc::Checker>(simgrid::mc::createUdporChecker());
else if (_sg_mc_property_file.get().empty())
return std::unique_ptr<simgrid::mc::Checker>(simgrid::mc::createSafetyChecker());
else
_mc_cfg_cb_check("value to enable/disable the detection of send-determinism in the communications schemes");
}};
+simgrid::config::Flag<bool> _sg_mc_unfolding_checker{
+ "model-check/unfolding-checker", "Whether to enable the unfolding-based dynamic partial order reduction to MPI programs",
+ false,
+ [](bool) {
+ _mc_cfg_cb_check("value to to enable/disable the unfolding-based dynamic partial order reduction to MPI programs");
+ }};
+
simgrid::config::Flag<std::string> _sg_mc_buffering{
"smpi/buffering",
"Buffering semantic to use for MPI (only used in MC)",
extern XBT_PUBLIC simgrid::config::Flag<std::string> _sg_mc_property_file;
extern XBT_PUBLIC simgrid::config::Flag<bool> _sg_mc_comms_determinism;
extern XBT_PUBLIC simgrid::config::Flag<bool> _sg_mc_send_determinism;
+extern XBT_PUBLIC simgrid::config::Flag<bool> _sg_mc_unfolding_checker;
extern XBT_PRIVATE simgrid::config::Flag<bool> _sg_mc_timeout;
extern XBT_PRIVATE simgrid::config::Flag<int> _sg_mc_max_depth;
extern "C" XBT_PUBLIC int _sg_mc_max_visited_states;