MPI_Status status;
int i, j, k, src, dst, rank, num_procs, send_offset, recv_offset;
MPI_Status status;
int i, j, k, src, dst, rank, num_procs, send_offset, recv_offset;
- int mask, relative_rank, curr_size, recv_size, send_size, nbytes;
+ int mask, relative_rank, curr_size, recv_size = 0, send_size, nbytes;
int scatter_size, tree_root, relative_dst, dst_tree_root;
int my_tree_root, offset, tmp_mask, num_procs_completed;
int tag = 1;
int scatter_size, tree_root, relative_dst, dst_tree_root;
int my_tree_root, offset, tmp_mask, num_procs_completed;
int tag = 1;
- MPI_Comm_rank(comm, &rank);
- MPI_Comm_size(comm, &num_procs);
- MPI_Type_extent(data_type, &extent);
+ rank = smpi_comm_rank(comm);
+ num_procs = smpi_comm_size(comm);
+ extent = smpi_datatype_get_extent(data_type);
MPI_BYTE, src, tag, comm, &status);
MPI_BYTE, src, tag, comm, &status);
send_size, MPI_BYTE, dst, tag, comm);
curr_size -= send_size;
send_size, MPI_BYTE, dst, tag, comm);
curr_size -= send_size;
- MPI_Sendrecv((char *)buff + send_offset, curr_size, MPI_BYTE, dst, tag,
+ smpi_mpi_sendrecv((char *)buff + send_offset, curr_size, MPI_BYTE, dst, tag,
(char *)buff + recv_offset, scatter_size * mask, MPI_BYTE, dst,
tag, comm, &status);
(char *)buff + recv_offset, scatter_size * mask, MPI_BYTE, dst,
tag, comm, &status);
if ((relative_dst > relative_rank)
&& (relative_rank < tree_root + num_procs_completed)
&& (relative_dst >= tree_root + num_procs_completed)) {
if ((relative_dst > relative_rank)
&& (relative_rank < tree_root + num_procs_completed)
&& (relative_dst >= tree_root + num_procs_completed)) {
- MPI_Send((char *)buff + offset, recv_size, MPI_BYTE, dst, tag, comm);
+ smpi_mpi_send((char *)buff + offset, recv_size, MPI_BYTE, dst, tag, comm);
&& (relative_dst < tree_root + num_procs_completed)
&& (relative_rank >= tree_root + num_procs_completed)) {
&& (relative_dst < tree_root + num_procs_completed)
&& (relative_rank >= tree_root + num_procs_completed)) {
MPI_BYTE, dst, tag, comm, &status);
/* num_procs_completed is also equal to the no. of processes
whose data we don't have */
MPI_BYTE, dst, tag, comm, &status);
/* num_procs_completed is also equal to the no. of processes
whose data we don't have */