A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'c619e9d16'
[simgrid.git]
/
src
/
smpi
/
internals
/
smpi_replay.cpp
diff --git
a/src/smpi/internals/smpi_replay.cpp
b/src/smpi/internals/smpi_replay.cpp
index
a11183d
..
b4830ff
100644
(file)
--- a/
src/smpi/internals/smpi_replay.cpp
+++ b/
src/smpi/internals/smpi_replay.cpp
@@
-134,7
+134,10
@@
public:
/* Sometimes we need to re-insert MPI_REQUEST_NULL but we still need src,dst and tag */
void addNullRequest(int src, int dst, int tag)
{
/* Sometimes we need to re-insert MPI_REQUEST_NULL but we still need src,dst and tag */
void addNullRequest(int src, int dst, int tag)
{
- store.insert({req_key_t(src, dst, tag), MPI_REQUEST_NULL});
+ store.insert({req_key_t(
+ MPI_COMM_WORLD->group()->actor(src)->get_pid()-1,
+ MPI_COMM_WORLD->group()->actor(dst)->get_pid()-1,
+ tag), MPI_REQUEST_NULL});
}
};
}
};
@@
-444,8
+447,6
@@
void SendAction::kernel(simgrid::xbt::ReplayAction& action)
void RecvAction::kernel(simgrid::xbt::ReplayAction& action)
{
void RecvAction::kernel(simgrid::xbt::ReplayAction& action)
{
- int src_traced = MPI_COMM_WORLD->group()->actor(args.partner)->get_pid();
-
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::Pt2PtTIData(name, args.partner, args.size,
args.tag, Datatype::encode(args.datatype1)));
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::Pt2PtTIData(name, args.partner, args.size,
args.tag, Datatype::encode(args.datatype1)));
@@
-466,6
+467,7
@@
void RecvAction::kernel(simgrid::xbt::ReplayAction& action)
TRACE_smpi_comm_out(my_proc_id);
// TODO: Check why this was only activated in the "recv" case and not in the "irecv" case
if (name == "recv" && not TRACE_smpi_view_internals()) {
TRACE_smpi_comm_out(my_proc_id);
// TODO: Check why this was only activated in the "recv" case and not in the "irecv" case
if (name == "recv" && not TRACE_smpi_view_internals()) {
+ int src_traced = MPI_COMM_WORLD->group()->actor(status.MPI_SOURCE)->get_pid();
TRACE_smpi_recv(src_traced, my_proc_id, args.tag);
}
}
TRACE_smpi_recv(src_traced, my_proc_id, args.tag);
}
}
@@
-701,7
+703,9
@@
static std::unordered_map<aid_t, simgrid::smpi::replay::RequestStorage> storage;
/** @brief Only initialize the replay, don't do it for real */
void smpi_replay_init(int* argc, char*** argv)
{
/** @brief Only initialize the replay, don't do it for real */
void smpi_replay_init(int* argc, char*** argv)
{
- simgrid::smpi::ActorExt::init(argc, argv);
+ if (not smpi_process()->initializing()){
+ simgrid::smpi::ActorExt::init(argc, argv);
+ }
smpi_process()->mark_as_initialized();
smpi_process()->set_replaying(true);
smpi_process()->mark_as_initialized();
smpi_process()->set_replaying(true);