- int dst_traced = group->index(target_rank);
- TRACE_smpi_comm_in(rank, __FUNCTION__, new simgrid::instr::Pt2PtTIData("Put", dst_traced,
- origin_datatype->is_basic() ? origin_count : origin_count * origin_datatype->size(),
- encode_datatype(origin_datatype)));
- TRACE_smpi_send(rank, rank, dst_traced, SMPI_RMA_TAG, origin_count*origin_datatype->size());
+ int dst_traced = group->actor(target_rank)->getPid();
+ TRACE_smpi_comm_in(my_proc_id, __func__,
+ new simgrid::instr::Pt2PtTIData("Put", target_rank, origin_datatype->is_replayable()
+ ? origin_count
+ : origin_count * origin_datatype->size(),
+ simgrid::smpi::Datatype::encode(origin_datatype)));
+ TRACE_smpi_send(my_proc_id, my_proc_id, dst_traced, SMPI_RMA_TAG, origin_count * origin_datatype->size());