namespace Replay {
class ActionArgParser {
public:
- virtual void parse(simgrid::xbt::ReplayAction& action) { CHECK_ACTION_PARAMS(action, 0, 0) }
+ virtual void parse(simgrid::xbt::ReplayAction& action, std::string name) { CHECK_ACTION_PARAMS(action, 0, 0) }
};
class SendRecvParser : public ActionArgParser {
double size;
MPI_Datatype datatype1 = MPI_DEFAULT_TYPE;
- void parse(simgrid::xbt::ReplayAction& action) override
+ void parse(simgrid::xbt::ReplayAction& action, std::string name) override
{
CHECK_ACTION_PARAMS(action, 2, 1)
partner = std::stoi(action[2]);
/* communication partner; if we send, this is the receiver and vice versa */
double flops;
- void parse(simgrid::xbt::ReplayAction& action) override
+ void parse(simgrid::xbt::ReplayAction& action, std::string name) override
{
CHECK_ACTION_PARAMS(action, 1, 0)
flops = parse_double(action[2]);
class BcastArgParser : public CollCommParser {
public:
- void parse(simgrid::xbt::ReplayAction& action) override
+ void parse(simgrid::xbt::ReplayAction& action, std::string name) override
{
CHECK_ACTION_PARAMS(action, 1, 2)
size = parse_double(action[2]);
class ReduceArgParser : public CollCommParser {
public:
- void parse(simgrid::xbt::ReplayAction& action) override
+ void parse(simgrid::xbt::ReplayAction& action, std::string name) override
{
CHECK_ACTION_PARAMS(action, 2, 2)
comm_size = parse_double(action[2]);
class AllReduceArgParser : public CollCommParser {
public:
- void parse(simgrid::xbt::ReplayAction& action) override
+ void parse(simgrid::xbt::ReplayAction& action, std::string name) override
{
CHECK_ACTION_PARAMS(action, 2, 1)
comm_size = parse_double(action[2]);
class AllToAllArgParser : public CollCommParser {
public:
- void parse(simgrid::xbt::ReplayAction& action) override
+ void parse(simgrid::xbt::ReplayAction& action, std::string name) override
{
CHECK_ACTION_PARAMS(action, 2, 1)
comm_size = MPI_COMM_WORLD->size();
{
// Needs to be re-initialized for every action, hence here
double start_time = smpi_process()->simulated_elapsed();
- args.parse(action);
+ args.parse(action, name);
kernel(action);
if (name != "Init")
log_timed_action(action, start_time);