#include <string>
/* Helper functions */
-XBT_PRIVATE simgrid::instr::Container* smpi_container(int rank);
-XBT_PRIVATE void TRACE_smpi_setup_container(int rank, const_sg_host_t host);
-
-XBT_PRIVATE void TRACE_smpi_sleeping_out(int rank);
-XBT_PRIVATE void TRACE_smpi_sleeping_in(int rank, double duration);
-XBT_PRIVATE void TRACE_smpi_comm_in(int rank, const char* operation, simgrid::instr::TIData* extra);
-XBT_PRIVATE void TRACE_smpi_comm_out(int rank);
-XBT_PRIVATE void TRACE_smpi_send(int rank, int src, int dst, int tag, int size);
-XBT_PRIVATE void TRACE_smpi_recv(int src, int dst, int tag);
-XBT_PRIVATE void TRACE_smpi_init(int rank, const std::string& calling_func);
+XBT_PRIVATE simgrid::instr::Container* smpi_container(aid_t pid);
+XBT_PRIVATE void TRACE_smpi_setup_container(aid_t pid, const_sg_host_t host);
+
+XBT_PRIVATE void TRACE_smpi_sleeping_out(aid_t pid);
+XBT_PRIVATE void TRACE_smpi_sleeping_in(aid_t pid, double duration);
+XBT_PRIVATE void TRACE_smpi_comm_in(aid_t pid, const char* operation, simgrid::instr::TIData* extra);
+XBT_PRIVATE void TRACE_smpi_comm_out(aid_t pid);
+XBT_PRIVATE void TRACE_smpi_send(aid_t rank, aid_t src, aid_t dst, int tag, int size);
+XBT_PRIVATE void TRACE_smpi_recv(aid_t src, aid_t dst, int tag);
+XBT_PRIVATE void TRACE_smpi_init(aid_t pid, const std::string& calling_func);
class smpi_trace_call_location_t {
public:
}
simgrid::smpi::ActorExt::init();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
- TRACE_smpi_init(rank_traced, __func__);
+ TRACE_smpi_init(simgrid::s4u::this_actor::get_pid(), __func__);
smpi_bench_begin();
smpi_process()->mark_as_initialized();
CHECK_REQUEST(2)
smpi_bench_end();
- int rank = simgrid::s4u::this_actor::get_pid();
- TRACE_smpi_comm_in(rank, request == MPI_REQUEST_IGNORED ? "PMPI_Barrier" : "PMPI_Ibarrier",
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
+ TRACE_smpi_comm_in(pid, request == MPI_REQUEST_IGNORED ? "PMPI_Barrier" : "PMPI_Ibarrier",
new simgrid::instr::NoOpTIData(request == MPI_REQUEST_IGNORED ? "barrier" : "ibarrier"));
if (request == MPI_REQUEST_IGNORED) {
simgrid::smpi::colls::barrier(comm);
} else
simgrid::smpi::colls::ibarrier(comm, request);
- TRACE_smpi_comm_out(rank);
+ TRACE_smpi_comm_out(pid);
smpi_bench_begin();
return MPI_SUCCESS;
}
CHECK_REQUEST(6)
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(pid, request == MPI_REQUEST_IGNORED ? "PMPI_Bcast" : "PMPI_Ibcast",
new simgrid::instr::CollTIData(request == MPI_REQUEST_IGNORED ? "bcast" : "ibcast", root, -1.0,
datatype->is_replayable() ? count : count * datatype->size(), -1,
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(pid, request == MPI_REQUEST_IGNORED ? "PMPI_Gather" : "PMPI_Igather",
new simgrid::instr::CollTIData(
real_sendtype = recvtype;
}
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
int dt_size_recv = recvtype->is_replayable() ? 1 : recvtype->size();
auto trace_recvcounts = std::make_shared<std::vector<int>>();
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(pid, request == MPI_REQUEST_IGNORED ? "PMPI_Allgather" : "PMPI_Iallggather",
new simgrid::instr::CollTIData(
sendcount = recvcounts[comm->rank()];
sendtype = recvtype;
}
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
int dt_size_recv = recvtype->is_replayable() ? 1 : recvtype->size();
auto trace_recvcounts = std::make_shared<std::vector<int>>();
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(pid, request == MPI_REQUEST_IGNORED ? "PMPI_Scatter" : "PMPI_Iscatter",
new simgrid::instr::CollTIData(
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
int dt_size_send = sendtype->is_replayable() ? 1 : sendtype->size();
auto trace_sendcounts = std::make_shared<std::vector<int>>();
CHECK_REQUEST(8)
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(pid, request == MPI_REQUEST_IGNORED ? "PMPI_Reduce" : "PMPI_Ireduce",
new simgrid::instr::CollTIData(request == MPI_REQUEST_IGNORED ? "reduce" : "ireduce", root, 0,
std::vector<unsigned char> tmp_sendbuf;
const void* real_sendbuf = smpi_get_in_place_buf(sendbuf, recvbuf, tmp_sendbuf, count, datatype);
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(pid, request == MPI_REQUEST_IGNORED ? "PMPI_Allreduce" : "PMPI_Iallreduce",
new simgrid::instr::CollTIData(request == MPI_REQUEST_IGNORED ? "allreduce" : "iallreduce", -1, 0,
CHECK_OP(5, op, datatype)
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
std::vector<unsigned char> tmp_sendbuf;
const void* real_sendbuf = smpi_get_in_place_buf(sendbuf, recvbuf, tmp_sendbuf, count, datatype);
CHECK_OP(5, op, datatype)
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
std::vector<unsigned char> tmp_sendbuf;
const void* real_sendbuf = smpi_get_in_place_buf(sendbuf, recvbuf, tmp_sendbuf, count, datatype);
}
smpi_bench_end();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
auto trace_recvcounts = std::make_shared<std::vector<int>>();
int dt_send_size = datatype->is_replayable() ? 1 : datatype->size();
int totalcount = 0;
smpi_bench_end();
int count = comm->size();
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
int dt_send_size = datatype->is_replayable() ? 1 : datatype->size();
auto trace_recvcounts = std::make_shared<std::vector<int>>(recvcount * dt_send_size); // copy data to avoid bad free
std::vector<unsigned char> tmp_sendbuf;
CHECK_BUFFER(4, recvbuf, recvcount, recvtype)
CHECK_REQUEST(8)
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
int real_sendcount = sendcount;
MPI_Datatype real_sendtype = sendtype;
CHECK_NULL(7, MPI_ERR_ARG, recvdispls)
CHECK_REQUEST(10)
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
int size = comm->size();
for (int i = 0; i < size; i++) {
if(sendbuf != MPI_IN_PLACE){
CHECK_NULL(7, MPI_ERR_ARG, recvdispls)
CHECK_NULL(8, MPI_ERR_TYPE, recvtypes)
CHECK_REQUEST(10)
- int pid = simgrid::s4u::this_actor::get_pid();
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
int size = comm->size();
for (int i = 0; i < size; i++) {
if(sendbuf != MPI_IN_PLACE){
CHECK_WRONLY(fh)
PASS_ZEROCOUNT(count)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - read", count * datatype->size()));
int ret = simgrid::smpi::File::read(fh, buf, count, datatype, status);
TRACE_smpi_comm_out(rank_traced);
CHECK_WRONLY(fh)
PASS_ZEROCOUNT(count)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - read_shared", count * datatype->size()));
int ret = simgrid::smpi::File::read_shared(fh, buf, count, datatype, status);
CHECK_RDONLY(fh)
PASS_ZEROCOUNT(count)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - write", count * datatype->size()));
int ret = simgrid::smpi::File::write(fh, const_cast<void*>(buf), count, datatype, status);
TRACE_smpi_comm_out(rank_traced);
CHECK_RDONLY(fh)
PASS_ZEROCOUNT(count)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - write_shared", count * datatype->size()));
int ret = simgrid::smpi::File::write_shared(fh, buf, count, datatype, status);
CHECK_FILE_INPUTS
CHECK_WRONLY(fh)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - read_all", count * datatype->size()));
int ret = fh->op_all<simgrid::smpi::File::read>(buf, count, datatype, status);
TRACE_smpi_comm_out(rank_traced);
CHECK_FILE_INPUTS
CHECK_WRONLY(fh)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - read_ordered", count * datatype->size()));
int ret = simgrid::smpi::File::read_ordered(fh, buf, count, datatype, status);
CHECK_FILE_INPUTS
CHECK_RDONLY(fh)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - write_all", count * datatype->size()));
int ret = fh->op_all<simgrid::smpi::File::write>(const_cast<void*>(buf), count, datatype, status);
TRACE_smpi_comm_out(rank_traced);
CHECK_FILE_INPUTS
CHECK_RDONLY(fh)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - write_ordered", count * datatype->size()));
int ret = simgrid::smpi::File::write_ordered(fh, buf, count, datatype, status);
CHECK_WRONLY(fh)
PASS_ZEROCOUNT(count)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - read", count * datatype->size()));
int ret = fh->seek(offset,MPI_SEEK_SET);
if(ret!=MPI_SUCCESS)
CHECK_FILE_INPUT_OFFSET
CHECK_WRONLY(fh)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - read_at_all", count * datatype->size()));
int ret = fh->seek(offset,MPI_SEEK_SET);
CHECK_RDONLY(fh)
PASS_ZEROCOUNT(count)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - write", count * datatype->size()));
int ret = fh->seek(offset,MPI_SEEK_SET);
if(ret!=MPI_SUCCESS)
CHECK_FILE_INPUT_OFFSET
CHECK_RDONLY(fh)
smpi_bench_end();
- int rank_traced = simgrid::s4u::this_actor::get_pid();
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - write_at_all", count * datatype->size()));
int ret = fh->seek(offset,MPI_SEEK_SET);
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi);
-static int getPid(MPI_Comm comm, int id)
+static aid_t getPid(MPI_Comm comm, int id)
{
return comm->group()->actor(id);
}
retval = MPI_ERR_REQUEST;
} else {
MPI_Request req = *request;
- int my_proc_id = (req->comm() != MPI_COMM_NULL) ? simgrid::s4u::this_actor::get_pid() : -1;
+ 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(),
}
}
if(retval != MPI_ERR_REQUEST) {
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Startall"));
if (not TRACE_smpi_view_internals())
for (int i = 0; i < count; i++) {
CHECK_IRECV_INPUTS
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ 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,
datatype->is_replayable() ? count : count * datatype->size(),
smpi_bench_end();
int retval = 0;
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
- int trace_dst = getPid(comm, dst);
+ 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,
datatype->is_replayable() ? count : count * datatype->size(),
CHECK_ISEND_INPUTS
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
- int trace_dst = getPid(comm, dst);
+ 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,
datatype->is_replayable() ? count : count * datatype->size(),
} else if (src!=MPI_ANY_SOURCE && (src >= comm->group()->size() || src <0)){
retval = MPI_ERR_RANK;
} else {
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ 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,
datatype->is_replayable() ? count : count * datatype->size(),
retval = simgrid::smpi::Request::recv(buf, count, datatype, src, tag, comm, status);
// the src may not have been known at the beginning of the recv (MPI_ANY_SOURCE)
- int src_traced=0;
- if (status != MPI_STATUS_IGNORE)
- src_traced = getPid(comm, status->MPI_SOURCE);
- else
- src_traced = getPid(comm, src);
if (not TRACE_smpi_view_internals()) {
+ 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);
}
CHECK_SEND_INPUTS
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
- int dst_traced = getPid(comm, dst);
+ 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,
datatype->is_replayable() ? count : count * datatype->size(),
CHECK_SEND_INPUTS
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
- int dst_traced = getPid(comm, dst);
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t dst_traced = getPid(comm, dst);
int bsend_buf_size = 0;
void* bsend_buf = nullptr;
smpi_process()->bsend_buffer(&bsend_buf, &bsend_buf_size);
CHECK_ISEND_INPUTS
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
- int trace_dst = getPid(comm, dst);
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t trace_dst = getPid(comm, dst);
int bsend_buf_size = 0;
void* bsend_buf = nullptr;
smpi_process()->bsend_buffer(&bsend_buf, &bsend_buf_size);
CHECK_SEND_INPUTS
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
- int dst_traced = getPid(comm, dst);
+ 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,
datatype->is_replayable() ? count : count * datatype->size(),
(src!=MPI_ANY_SOURCE && (src >= comm->group()->size() || src <0))){
retval = MPI_ERR_RANK;
} else {
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
- int dst_traced = getPid(comm, dst);
- int src_traced = getPid(comm, src);
+ 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);
// FIXME: Hack the way to trace this one
auto dst_hack = std::make_shared<std::vector<int>>();
}
retval = MPI_SUCCESS;
} else {
- int my_proc_id = ((*request)->comm() != MPI_COMM_NULL) ? simgrid::s4u::this_actor::get_pid() : -1;
+ aid_t my_proc_id = ((*request)->comm() != MPI_COMM_NULL) ? simgrid::s4u::this_actor::get_pid() : -1;
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("test"));
retval = simgrid::smpi::Request::test(request,status, flag);
if (index == nullptr || flag == nullptr) {
retval = MPI_ERR_ARG;
} else {
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("testany"));
retval = simgrid::smpi::Request::testany(count, requests, index, flag, status);
TRACE_smpi_comm_out(my_proc_id);
if (flag == nullptr) {
retval = MPI_ERR_ARG;
} else {
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("testall"));
retval = simgrid::smpi::Request::testall(count, requests, flag, statuses);
TRACE_smpi_comm_out(my_proc_id);
if (outcount == nullptr) {
retval = MPI_ERR_ARG;
} else {
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("testsome"));
retval = simgrid::smpi::Request::testsome(incount, requests, outcount, indices, status);
TRACE_smpi_comm_out(my_proc_id);
const simgrid::smpi::Request* req = *request;
// Requests already received are null. Is this request a wait for RECV?
if (req != MPI_REQUEST_NULL && (req->flags() & MPI_REQ_RECV)) {
- int src_traced = req->src();
- int dst_traced = req->dst();
+ aid_t src_traced = req->src();
+ aid_t dst_traced = req->dst();
// the src may not have been known at the beginning of the recv (MPI_ANY_SOURCE)
if (src_traced == MPI_ANY_SOURCE && status != MPI_STATUS_IGNORE)
src_traced = req->comm()->group()->actor(status->MPI_SOURCE);
else
savedreq = MPI_REQUEST_NULL;
- int my_proc_id = (*request)->comm() != MPI_COMM_NULL ? simgrid::s4u::this_actor::get_pid() : -1;
+ aid_t my_proc_id = (*request)->comm() != MPI_COMM_NULL ? simgrid::s4u::this_actor::get_pid() : -1;
TRACE_smpi_comm_in(my_proc_id, __func__,
new simgrid::instr::WaitTIData((*request)->src(), (*request)->dst(), (*request)->tag()));
req = MPI_REQUEST_NULL;
}
- int rank_traced = simgrid::s4u::this_actor::get_pid(); // FIXME: In PMPI_Wait, we check if the comm is null?
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid(); // FIXME: In PMPI_Wait, we check if the comm is null?
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("waitAny", count));
*index = simgrid::smpi::Request::waitany(count, requests, status);
req = MPI_REQUEST_NULL;
}
- int rank_traced = simgrid::s4u::this_actor::get_pid(); // FIXME: In PMPI_Wait, we check if the comm is null?
+ aid_t rank_traced = simgrid::s4u::this_actor::get_pid(); // FIXME: In PMPI_Wait, we check if the comm is null?
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("waitall", count));
int retval = simgrid::smpi::Request::waitall(count, requests, status);
int PMPI_Win_fence( int assert, MPI_Win win){
CHECK_WIN(2, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_fence"));
int retval = win->fence(assert);
TRACE_smpi_comm_out(my_proc_id);
int retval = 0;
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
TRACE_smpi_comm_in(my_proc_id, __func__,
int retval = 0;
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
TRACE_smpi_comm_in(my_proc_id, __func__,
int retval = 0;
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
- int dst_traced = group->actor(target_rank);
+ aid_t dst_traced = group->actor(target_rank);
TRACE_smpi_comm_in(my_proc_id, __func__,
new simgrid::instr::Pt2PtTIData("Put", target_rank, origin_datatype->is_replayable()
? origin_count
int retval = 0;
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
- int dst_traced = group->actor(target_rank);
+ aid_t dst_traced = group->actor(target_rank);
TRACE_smpi_comm_in(my_proc_id, __func__,
new simgrid::instr::Pt2PtTIData(
"Rput", target_rank,
int retval = 0;
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
TRACE_smpi_comm_in(my_proc_id, __func__,
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
TRACE_smpi_comm_in(my_proc_id, __func__,
int retval = 0;
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
TRACE_smpi_comm_in(my_proc_id, __func__,
int retval = 0;
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
TRACE_smpi_comm_in(my_proc_id, __func__,
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
MPI_Group group;
win->get_group(&group);
TRACE_smpi_comm_in(my_proc_id, __func__,
CHECK_GROUP(1, group)
CHECK_WIN(2, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_post"));
int retval = win->post(group,assert);
TRACE_smpi_comm_out(my_proc_id);
CHECK_GROUP(1, group)
CHECK_WIN(2, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_start"));
int retval = win->start(group,assert);
TRACE_smpi_comm_out(my_proc_id);
int PMPI_Win_complete(MPI_Win win){
CHECK_WIN(1, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_complete"));
int retval = win->complete();
TRACE_smpi_comm_out(my_proc_id);
int PMPI_Win_wait(MPI_Win win){
CHECK_WIN(1, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_wait"));
int retval = win->wait();
TRACE_smpi_comm_out(my_proc_id);
lock_type != MPI_LOCK_SHARED) {
retval = MPI_ERR_LOCKTYPE;
} else {
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_lock"));
retval = win->lock(lock_type,rank,assert);
TRACE_smpi_comm_out(my_proc_id);
CHECK_WIN(2, win)
CHECK_PROC_RMA(1, rank, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_unlock"));
int retval = win->unlock(rank);
TRACE_smpi_comm_out(my_proc_id);
int PMPI_Win_lock_all(int assert, MPI_Win win){
CHECK_WIN(2, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_lock_all"));
int retval = win->lock_all(assert);
TRACE_smpi_comm_out(my_proc_id);
int PMPI_Win_unlock_all(MPI_Win win){
CHECK_WIN(1, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_unlock_all"));
int retval = win->unlock_all();
TRACE_smpi_comm_out(my_proc_id);
CHECK_WIN(2, win)
CHECK_PROC_RMA(1, rank, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_flush"));
int retval = win->flush(rank);
TRACE_smpi_comm_out(my_proc_id);
CHECK_WIN(2, win)
CHECK_PROC_RMA(1, rank, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_flush_local"));
int retval = win->flush_local(rank);
TRACE_smpi_comm_out(my_proc_id);
int PMPI_Win_flush_all(MPI_Win win){
CHECK_WIN(1, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_flush_all"));
int retval = win->flush_all();
TRACE_smpi_comm_out(my_proc_id);
int PMPI_Win_flush_local_all(MPI_Win win){
CHECK_WIN(1, win)
smpi_bench_end();
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
+ aid_t my_proc_id = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(my_proc_id, __func__, new simgrid::instr::NoOpTIData("Win_flush_local_all"));
int retval = win->flush_local_all();
TRACE_smpi_comm_out(my_proc_id);
return "0.5 0.5 0.5"; // Just in case we find nothing in the map ...
}
-XBT_PRIVATE simgrid::instr::Container* smpi_container(int rank)
+XBT_PRIVATE simgrid::instr::Container* smpi_container(aid_t pid)
{
- return simgrid::instr::Container::by_name(std::string("rank-") + std::to_string(rank));
+ return simgrid::instr::Container::by_name(std::string("rank-") + std::to_string(pid));
}
-static std::string TRACE_smpi_put_key(int src, int dst, int tag, int send)
+static std::string TRACE_smpi_put_key(aid_t src, aid_t dst, int tag, int send)
{
//generate the key
static unsigned long long counter = 0;
return key;
}
-static std::string TRACE_smpi_get_key(int src, int dst, int tag, int send)
+static std::string TRACE_smpi_get_key(aid_t src, aid_t dst, int tag, int send)
{
std::string key;
std::string aux = std::to_string(src) + "#" + std::to_string(dst) + "#" + std::to_string(tag) + "#" +
return key;
}
-void TRACE_smpi_setup_container(int rank, const_sg_host_t host)
+void TRACE_smpi_setup_container(aid_t pid, const_sg_host_t host)
{
auto* father = simgrid::instr::Container::get_root();
if (TRACE_smpi_is_grouped()) {
father = simgrid::instr::Container::by_name_or_null(host->get_name());
- xbt_assert(father != nullptr, "Could not find a parent for mpi rank 'rank-%d' at function %s", rank, __func__);
+ xbt_assert(father != nullptr, "Could not find a parent for mpi rank 'rank-%ld' at function %s", pid, __func__);
}
- father->create_child(std::string("rank-") + std::to_string(rank), "MPI"); // This container is of type MPI
+ father->create_child(std::string("rank-") + std::to_string(pid), "MPI"); // This container is of type MPI
}
-void TRACE_smpi_init(int rank, const std::string& calling_func)
+void TRACE_smpi_init(aid_t pid, const std::string& calling_func)
{
if (not TRACE_smpi_is_enabled())
return;
auto self = simgrid::s4u::Actor::self();
- TRACE_smpi_setup_container(rank, sg_host_self());
+ TRACE_smpi_setup_container(pid, sg_host_self());
simgrid::s4u::this_actor::on_exit([self](bool) { smpi_container(self->get_pid())->remove_from_parent(); });
- simgrid::instr::StateType* state = smpi_container(rank)->get_state("MPI_STATE");
+ simgrid::instr::StateType* state = smpi_container(pid)->get_state("MPI_STATE");
state->add_entity_value(calling_func, instr_find_color(calling_func.c_str()));
state->push_event(calling_func, new simgrid::instr::NoOpTIData("init"));
state->add_entity_value("sleeping", instr_find_color("sleeping"));
#if HAVE_PAPI
- const simgrid::instr::Container* container = smpi_container(rank);
+ const simgrid::instr::Container* container = smpi_container(pid);
papi_counter_t counters = smpi_process()->papi_counters();
for (auto const& it : counters) {
#endif
}
-void TRACE_smpi_sleeping_in(int rank, double duration)
+void TRACE_smpi_sleeping_in(aid_t pid, double duration)
{
if (TRACE_smpi_is_enabled() && TRACE_smpi_is_sleeping())
- smpi_container(rank)
+ smpi_container(pid)
->get_state("MPI_STATE")
->push_event("sleeping", new simgrid::instr::CpuTIData("sleep", duration));
}
-void TRACE_smpi_sleeping_out(int rank)
+void TRACE_smpi_sleeping_out(aid_t pid)
{
if (TRACE_smpi_is_enabled() && TRACE_smpi_is_sleeping())
- smpi_container(rank)->get_state("MPI_STATE")->pop_event();
+ smpi_container(pid)->get_state("MPI_STATE")->pop_event();
}
-void TRACE_smpi_comm_in(int rank, const char* operation, simgrid::instr::TIData* extra)
+void TRACE_smpi_comm_in(aid_t pid, const char* operation, simgrid::instr::TIData* extra)
{
if (not TRACE_smpi_is_enabled()) {
delete extra;
return;
}
- simgrid::instr::StateType* state = smpi_container(rank)->get_state("MPI_STATE");
+ simgrid::instr::StateType* state = smpi_container(pid)->get_state("MPI_STATE");
state->add_entity_value(operation, instr_find_color(operation));
state->push_event(operation, extra);
}
-void TRACE_smpi_comm_out(int rank)
+void TRACE_smpi_comm_out(aid_t pid)
{
if (TRACE_smpi_is_enabled())
- smpi_container(rank)->get_state("MPI_STATE")->pop_event();
+ smpi_container(pid)->get_state("MPI_STATE")->pop_event();
}
-void TRACE_smpi_send(int rank, int src, int dst, int tag, int size)
+void TRACE_smpi_send(aid_t rank, aid_t src, aid_t dst, int tag, int size)
{
if (not TRACE_smpi_is_enabled())
return;
std::string key = TRACE_smpi_get_key(src, dst, tag, 1);
- XBT_DEBUG("Send tracing from %d to %d, tag %d, with key %s", src, dst, tag, key.c_str());
+ XBT_DEBUG("Send tracing from %ld to %ld, tag %d, with key %s", src, dst, tag, key.c_str());
simgrid::instr::Container::get_root()->get_link("MPI_LINK")->start_event(smpi_container(rank), "PTP", key, size);
}
-void TRACE_smpi_recv(int src, int dst, int tag)
+void TRACE_smpi_recv(aid_t src, aid_t dst, int tag)
{
if (not TRACE_smpi_is_enabled())
return;
std::string key = TRACE_smpi_get_key(src, dst, tag, 0);
- XBT_DEBUG("Recv tracing from %d to %d, tag %d, with key %s", src, dst, tag, key.c_str());
+ XBT_DEBUG("Recv tracing from %ld to %ld, tag %d, with key %s", src, dst, tag, key.c_str());
simgrid::instr::Container::get_root()->get_link("MPI_LINK")->end_event(smpi_container(dst), "PTP", key);
}
smpi_bench_end();
XBT_DEBUG("Sleep for: %lf secs", secs);
- int rank = simgrid::s4u::this_actor::get_pid();
- TRACE_smpi_sleeping_in(rank, secs);
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
+ TRACE_smpi_sleeping_in(pid, secs);
simgrid::s4u::this_actor::sleep_for(secs);
- TRACE_smpi_sleeping_out(rank);
+ TRACE_smpi_sleeping_out(pid);
smpi_bench_begin();
return 0;
return;
}
- int rank = request->comm() != MPI_COMM_NULL ? request->comm()->rank() : -1;
+ aid_t rank = request->comm() != MPI_COMM_NULL ? request->comm()->rank() : -1;
// Must be taken before Request::wait() since the request may be set to
// MPI_REQUEST_NULL by Request::wait!
void SendAction::kernel(simgrid::xbt::ReplayAction&)
{
const SendRecvParser& args = get_args();
- int dst_traced = MPI_COMM_WORLD->group()->actor(args.partner);
+ aid_t dst_traced = MPI_COMM_WORLD->group()->actor(args.partner);
TRACE_smpi_comm_in(
get_pid(), __func__,
{
const SleepParser& args = get_args();
XBT_DEBUG("Sleep for: %lf secs", args.time);
- int rank = simgrid::s4u::this_actor::get_pid();
- TRACE_smpi_sleeping_in(rank, args.time);
+ aid_t pid = simgrid::s4u::this_actor::get_pid();
+ TRACE_smpi_sleeping_in(pid, args.time);
simgrid::s4u::this_actor::sleep_for(args.time/smpi_adjust_comp_speed());
- TRACE_smpi_sleeping_out(rank);
+ TRACE_smpi_sleeping_out(pid);
}
void LocationAction::kernel(simgrid::xbt::ReplayAction&)
if (count_requests > 0) {
TRACE_smpi_comm_in(get_pid(), __func__, new simgrid::instr::Pt2PtTIData("waitall", -1, count_requests, ""));
- std::vector<std::pair</*sender*/int,/*recv*/int>> sender_receiver;
+ std::vector<std::pair</*sender*/ aid_t, /*recv*/ aid_t>> sender_receiver;
std::vector<MPI_Request> reqs;
req_storage.get_requests(reqs);
for (auto const& req : reqs) {
smpi_process()->mark_as_initialized();
smpi_process()->set_replaying(true);
- int my_proc_id = simgrid::s4u::this_actor::get_pid();
-
- TRACE_smpi_init(my_proc_id, "smpi_replay_run_init");
+ TRACE_smpi_init(simgrid::s4u::this_actor::get_pid(), "smpi_replay_run_init");
xbt_replay_action_register("init", [](simgrid::xbt::ReplayAction& action) { simgrid::smpi::replay::InitAction().execute(action); });
xbt_replay_action_register("finalize", [](simgrid::xbt::ReplayAction const&) { /* nothing to do */ });
xbt_replay_action_register("comm_size", [](simgrid::xbt::ReplayAction& action) { simgrid::smpi::replay::CommunicatorAction().execute(action); });
}
if (TRACE_smpi_view_internals() && ((req->flags_ & MPI_REQ_RECV) != 0)) {
- int rank = simgrid::s4u::this_actor::get_pid();
- int src_traced = (req->src_ == MPI_ANY_SOURCE ? req->real_src_ : req->src_);
+ aid_t rank = simgrid::s4u::this_actor::get_pid();
+ aid_t src_traced = (req->src_ == MPI_ANY_SOURCE ? req->real_src_ : req->src_);
TRACE_smpi_recv(src_traced, rank,req->tag_);
}
if(req->detached_sender_ != nullptr){