-/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2022. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
CHECK_REQUEST(7)\
*request = MPI_REQUEST_NULL;\
CHECK_SEND_INPUTS
-
+
#define CHECK_IRECV_INPUTS\
SET_BUF1(buf)\
CHECK_REQUEST(7)\
MPI_Request req = *request;
aid_t my_proc_id = (req->comm() != MPI_COMM_NULL) ? simgrid::s4u::this_actor::get_pid() : -1;
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("Start", req->dst(),
- req->size(),
- req->tag(),
+ new simgrid::instr::Pt2PtTIData("Start", MPI_COMM_WORLD->group()->rank(req->dst()), req->size(), req->tag(),
simgrid::smpi::Datatype::encode(req->type())));
if (not TRACE_smpi_view_internals() && req->flags() & MPI_REQ_SEND)
TRACE_smpi_send(my_proc_id, my_proc_id, getPid(req->comm(), req->dst()), req->tag(), req->size());
const SmpiBenchGuard suspend_bench;
aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("irecv", src,
+ new simgrid::instr::Pt2PtTIData("irecv", MPI_COMM_WORLD->group()->rank(getPid(comm, src)),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
*request = simgrid::smpi::Request::irecv(buf, count, datatype, src, tag, comm);
aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
aid_t trace_dst = getPid(comm, dst);
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("isend", dst,
+ new simgrid::instr::Pt2PtTIData("isend", MPI_COMM_WORLD->group()->rank(trace_dst),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
TRACE_smpi_send(my_proc_id, my_proc_id, trace_dst, tag, count * datatype->size());
aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
aid_t trace_dst = getPid(comm, dst);
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("ISsend", dst,
+ new simgrid::instr::Pt2PtTIData("ISsend", MPI_COMM_WORLD->group()->rank(trace_dst),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
TRACE_smpi_send(my_proc_id, my_proc_id, trace_dst, tag, count * datatype->size());
} else {
aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("recv", src,
+ new simgrid::instr::Pt2PtTIData("recv", MPI_COMM_WORLD->group()->rank(getPid(comm, src)),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
aid_t src_traced = (status != MPI_STATUS_IGNORE) ? getPid(comm, status->MPI_SOURCE) : getPid(comm, src);
TRACE_smpi_recv(src_traced, my_proc_id, tag);
}
-
+
TRACE_smpi_comm_out(my_proc_id);
}
aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
aid_t dst_traced = getPid(comm, dst);
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("send", dst,
+ new simgrid::instr::Pt2PtTIData("send", MPI_COMM_WORLD->group()->rank(dst_traced),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
if (not TRACE_smpi_view_internals()) {
if (bsend_buf == nullptr || bsend_buf_size < size + MPI_BSEND_OVERHEAD)
return MPI_ERR_BUFFER;
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("bsend", dst,
+ new simgrid::instr::Pt2PtTIData("bsend", MPI_COMM_WORLD->group()->rank(dst_traced),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
if (not TRACE_smpi_view_internals()) {
if (bsend_buf == nullptr || bsend_buf_size < size + MPI_BSEND_OVERHEAD)
return MPI_ERR_BUFFER;
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("ibsend", dst,
+ new simgrid::instr::Pt2PtTIData("ibsend", MPI_COMM_WORLD->group()->rank(trace_dst),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
TRACE_smpi_send(my_proc_id, my_proc_id, trace_dst, tag, count * datatype->size());
aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
aid_t dst_traced = getPid(comm, dst);
TRACE_smpi_comm_in(my_proc_id, __func__,
- new simgrid::instr::Pt2PtTIData("Ssend", dst,
+ new simgrid::instr::Pt2PtTIData("Ssend", MPI_COMM_WORLD->group()->rank(dst_traced),
count,
tag, simgrid::smpi::Datatype::encode(datatype)));
TRACE_smpi_send(my_proc_id, my_proc_id, dst_traced, tag, count * datatype->size());
retval = MPI_ERR_RANK;
} else {
aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
- aid_t dst_traced = getPid(comm, dst);
- aid_t src_traced = getPid(comm, src);
+ aid_t dst_traced = MPI_COMM_WORLD->group()->rank(getPid(comm, dst));
+ aid_t src_traced = MPI_COMM_WORLD->group()->rank(getPid(comm, src));
// FIXME: Hack the way to trace this one
auto dst_hack = std::make_shared<std::vector<int>>();
simgrid::smpi::Status::empty(status);
- CHECK_NULL(1, MPI_ERR_ARG, request)
+ CHECK_NULL(1, MPI_ERR_ARG, request)
if (*request == MPI_REQUEST_NULL) {
retval = MPI_SUCCESS;
} else {
return MPI_ERR_ARG;
}
*flag=simgrid::smpi::Status::cancelled(status);
- return MPI_SUCCESS;
+ return MPI_SUCCESS;
}
int PMPI_Status_set_cancelled(MPI_Status* status, int flag){
return MPI_ERR_ARG;
}
simgrid::smpi::Status::set_cancelled(status,flag);
- return MPI_SUCCESS;
+ return MPI_SUCCESS;
}
int PMPI_Status_set_elements(MPI_Status* status, MPI_Datatype datatype, int count){