{
smpi_bench_end();
smpi_process_destroy();
-#ifdef HAVE_TRACING
- int rank = smpi_process_index();
- TRACE_smpi_computing_out(rank);
-#endif
// FIXME: should kill all processes in comm instead
simcall_process_kill(SIMIX_process_self());
return MPI_SUCCESS;
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
TRACE_smpi_send(rank, rank, dst_traced, count*smpi_datatype_size(datatype));
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
(*request)->send = 1;
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
TRACE_smpi_send(rank, rank, dst_traced, count*smpi_datatype_size(datatype));
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
(*request)->send = 1;
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
int src_traced = smpi_group_index(smpi_comm_group(comm), src);
- TRACE_smpi_computing_out(rank);
TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, count*smpi_datatype_size(datatype));
#endif
if(status!=MPI_STATUS_IGNORE)src_traced = smpi_group_index(smpi_comm_group(comm), status->MPI_SOURCE);
TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__);
TRACE_smpi_recv(rank, src_traced, rank);
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
TRACE_smpi_send(rank, rank, dst_traced,count*smpi_datatype_size(datatype));
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
TRACE_smpi_send(rank, rank, dst_traced,count*smpi_datatype_size(datatype));
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
int src_traced = smpi_group_index(smpi_comm_group(comm), src);
TRACE_smpi_ptp_in(rank, src_traced, dst_traced, __FUNCTION__, sendcount*smpi_datatype_size(sendtype));
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, src_traced, dst_traced, __FUNCTION__);
TRACE_smpi_recv(rank, src_traced, rank);
- TRACE_smpi_computing_in(rank);
#endif
}
int rank = request && (*request)->comm != MPI_COMM_NULL
? smpi_process_index()
: -1;
- TRACE_smpi_computing_out(rank);
int src_traced = (*request)->src;
int dst_traced = (*request)->dst;
src_traced;
TRACE_smpi_recv(rank, src_traced, dst_traced);
}
- TRACE_smpi_computing_in(rank);
#endif
}
}
}
int rank_traced = smpi_process_index();
- TRACE_smpi_computing_out(rank_traced);
TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,count);
xbt_free(comms);
}
- TRACE_smpi_computing_in(rank_traced);
#endif
smpi_bench_begin();
return retval;
}
}
int rank_traced = smpi_process_index();
- TRACE_smpi_computing_out(rank_traced);
TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,count);
#endif
xbt_free(valid);
xbt_free(comms);
- TRACE_smpi_computing_in(rank_traced);
#endif
smpi_bench_begin();
return retval;
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_index(smpi_comm_group(comm), root);
TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
#endif
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, smpi_comm_size(comm));
#endif
mpi_coll_barrier_fun(comm);
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_index(smpi_comm_group(comm), root);
TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,sendcount*smpi_datatype_size(sendtmptype));
#endif
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_index(smpi_comm_group(comm), root);
TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,sendcount*smpi_datatype_size(sendtmptype));
#endif
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__,sendcount*smpi_datatype_size(sendtype));
#endif
mpi_coll_allgather_fun(sendbuf, sendcount, sendtype, recvbuf, recvcount,
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__,sendcount*smpi_datatype_size(sendtype));
#endif
mpi_coll_allgatherv_fun(sendbuf, sendcount, sendtype, recvbuf, recvcounts,
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_index(smpi_comm_group(comm), root);
TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,sendcount*smpi_datatype_size(recvtype));
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_index(smpi_comm_group(comm), root);
int count=0, i;
for(i=0; i<smpi_comm_size(comm);i++)count+=sendcounts[i];
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_index(smpi_comm_group(comm), root);
TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
#endif
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
}
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
#endif
mpi_coll_allreduce_fun(sendtmpbuf, recvbuf, count, datatype, op, comm);
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
#endif
smpi_mpi_scan(sendbuf, recvbuf, count, datatype, op, comm);
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
#endif
smpi_mpi_exscan(sendbuf, recvbuf, count, datatype, op, comm);
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int count=0, i;
for(i=0; i<smpi_comm_size(comm);i++)count+=recvcounts[i];
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, recvcount*smpi_comm_size(comm)*smpi_datatype_size(datatype));
#endif
int count=smpi_comm_size(comm);
retval = MPI_SUCCESS;
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, sendcount*smpi_datatype_size(sendtype));
#endif
retval = mpi_coll_alltoall_fun(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
} else {
#ifdef HAVE_TRACING
int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int i, size=0;
for(i=0; i< smpi_comm_size(comm);i++)size+=sendcounts[i];
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, size*smpi_datatype_size(sendtype));
comm);
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = smpi_comm_rank(MPI_COMM_WORLD);
- TRACE_smpi_computing_out(rank);
+
int dst_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), to);
TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, size*smpi_datatype_size(MPI_CURRENT_TYPE));
TRACE_smpi_send(rank, rank, dst_traced, size*smpi_datatype_size(MPI_CURRENT_TYPE));
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
}
#ifdef HAVE_TRACING
int rank = smpi_comm_rank(MPI_COMM_WORLD);
- TRACE_smpi_computing_out(rank);
int dst_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), to);
TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, size*smpi_datatype_size(MPI_CURRENT_TYPE));
TRACE_smpi_send(rank, rank, dst_traced, size*smpi_datatype_size(MPI_CURRENT_TYPE));
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
request->send = 1;
- TRACE_smpi_computing_in(rank);
#endif
xbt_dynar_push(reqq[smpi_comm_rank(MPI_COMM_WORLD)],&request);
#ifdef HAVE_TRACING
int rank = smpi_comm_rank(MPI_COMM_WORLD);
int src_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), from);
- TRACE_smpi_computing_out(rank);
TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, size*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
#ifdef HAVE_TRACING
TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__);
TRACE_smpi_recv(rank, src_traced, rank);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
int rank = request && request->comm != MPI_COMM_NULL
? smpi_comm_rank(request->comm)
: -1;
- TRACE_smpi_computing_out(rank);
MPI_Group group = smpi_comm_group(request->comm);
int src_traced = smpi_group_rank(group, request->src);
if (is_wait_for_receive) {
TRACE_smpi_recv(rank, src_traced, dst_traced);
}
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
}
}
int rank_traced = smpi_process_index();
- TRACE_smpi_computing_out(rank_traced);
-
TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__, count_requests);
#endif
xbt_dynar_free(&srcs);
xbt_dynar_free(&dsts);
xbt_dynar_free(&recvs);
- TRACE_smpi_computing_in(rank_traced);
#endif
xbt_dynar_reset(reqq[smpi_comm_rank(MPI_COMM_WORLD)]);
double clock = smpi_process_simulated_elapsed();
#ifdef HAVE_TRACING
int rank = smpi_comm_rank(MPI_COMM_WORLD);
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, smpi_comm_size(MPI_COMM_WORLD));
#endif
smpi_mpi_barrier(MPI_COMM_WORLD);
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
#ifdef HAVE_TRACING
int rank = smpi_comm_rank(MPI_COMM_WORLD);
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), 0);
TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,size*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
smpi_mpi_bcast(NULL, size, MPI_CURRENT_TYPE, root, MPI_COMM_WORLD);
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
#ifdef HAVE_TRACING
int rank = smpi_comm_rank(MPI_COMM_WORLD);
- TRACE_smpi_computing_out(rank);
int root_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), 0);
TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,comm_size*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
smpi_execute_flops(comp_size);
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
double clock = smpi_process_simulated_elapsed();
#ifdef HAVE_TRACING
int rank = smpi_comm_rank(MPI_COMM_WORLD);
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__,comp_size*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
mpi_coll_reduce_fun(NULL, NULL, comm_size, MPI_CURRENT_TYPE, MPI_OP_NULL, 0, MPI_COMM_WORLD);
mpi_coll_bcast_fun(NULL, comm_size, MPI_CURRENT_TYPE, 0, MPI_COMM_WORLD);
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
#ifdef HAVE_TRACING
int rank = smpi_process_index();
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__,send_size*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
recv = calloc(recv_size*comm_size, smpi_datatype_size(MPI_CURRENT_TYPE2));
#ifdef HAVE_TRACING
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__,send_size*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
smpi_mpi_gather(send, send_size, MPI_CURRENT_TYPE,
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
}
#ifdef HAVE_TRACING
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__, recv_sum*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
mpi_coll_reduce_fun(NULL, NULL, recv_sum, MPI_CURRENT_TYPE, MPI_OP_NULL,
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
#ifdef HAVE_TRACING
int rank = MPI_COMM_WORLD != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
TRACE_smpi_collective_in(rank, -1, __FUNCTION__,sendcount*smpi_datatype_size(MPI_CURRENT_TYPE));
#endif
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);
#ifdef HAVE_TRACING
int rank = MPI_COMM_WORLD != MPI_COMM_NULL ? smpi_process_index() : -1;
- TRACE_smpi_computing_out(rank);
int count=0;
for(i=0;i<comm_size;i++) count+=sendcounts[i];
TRACE_smpi_collective_in(rank, -1, __FUNCTION__,count*smpi_datatype_size(MPI_CURRENT_TYPE));
MPI_COMM_WORLD);
#ifdef HAVE_TRACING
TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
- TRACE_smpi_computing_in(rank);
#endif
log_timed_action (action, clock);