comm_size = comm->size();
rank = comm->rank();
MPI_Aint extent;
- extent = smpi_datatype_get_extent(dtype);
+ extent = dtype->get_extent();
tmp_buf = (void *) smpi_get_tmp_sendbuffer(count * extent);
int intra_rank, inter_rank;
// if (src < ((inter_rank + 1) * num_core)) {
if (src < comm_size) {
Request::recv(tmp_buf, count, dtype, src, tag, comm, &status);
- if(op!=MPI_OP_NULL) op->apply( tmp_buf, recv_buf, &count, &dtype);
+ if(op!=MPI_OP_NULL) op->apply( tmp_buf, recv_buf, &count, dtype);
//printf("Node %d recv from node %d when mask is %d\n", rank, src, mask);
}
} else {
// result is in rbuf
if(op!=MPI_OP_NULL) op->apply( tmp_buf, (char *) recv_buf + recv_offset, &seg_count,
- &dtype);
+ dtype);
}
// INTER: allgather