-/* Copyright (c) 2009-2018. The SimGrid Team.
+/* Copyright (c) 2009-2019. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
static void smpi_replay_process(Job* job, simgrid::s4u::BarrierPtr barrier, int rank)
{
- // Prepare data for smpi_replay_run
- int argc = 5;
- char** argv = xbt_new(char*, argc);
- argv[0] = xbt_strdup("1"); // log only?
- argv[1] = xbt_strdup(job->smpi_app_name.c_str()); // application instance
- argv[2] = bprintf("%d", rank); // rank
- argv[3] = xbt_strdup(job->traces_filenames[rank].c_str()); // smpi trace file for this rank
- argv[4] = xbt_strdup("0"); // ?
-
XBT_INFO("Replaying rank %d of job %d (smpi_app '%s')", rank, job->unique_job_number, job->smpi_app_name.c_str());
- smpi_replay_run(&argc, &argv);
+ smpi_replay_run(job->smpi_app_name.c_str(), rank, 0, job->traces_filenames[rank].c_str());
XBT_INFO("Finished replaying rank %d of job %d (smpi_app '%s')", rank, job->unique_job_number,
job->smpi_app_name.c_str());
barrier->wait();
-
- // Memory clean-up — leaks can come from argc/argv modifications from smpi_replay_run
- for (int i = 0; i < argc; ++i)
- xbt_free(argv[i]);
- xbt_free(argv);
}
// Sleeps for a given amount of time
char* str_pname = bprintf("job_%04d", job->unique_job_number);
XBT_INFO("Launching the job executor of job %d (app '%s')", job->unique_job_number, job->smpi_app_name.c_str());
simgrid::s4u::Actor::create(str_pname, hosts[job->allocation[0]], job_executor_process, job);
- free(str_pname);
+ xbt_free(str_pname);
}
return 0;