}
smpi_mpi_startall(tree->numChildren, requests);
smpi_mpi_waitall(tree->numChildren, requests, MPI_STATUS_IGNORE);
+ for(i = 0; i < tree->numChildren; i++) {
+ if(requests[i]!=MPI_REQUEST_NULL) smpi_mpi_request_free(&requests[i]);
+ }
xbt_free(requests);
}
}
smpi_mpi_startall(tree->numChildren, requests);
smpi_mpi_waitall(tree->numChildren, requests, MPI_STATUS_IGNORE);
+ for(i = 0; i < tree->numChildren; i++) {
+ if(requests[i]!=MPI_REQUEST_NULL) smpi_mpi_request_free(&requests[i]);
+ }
xbt_free(requests);
}
rank = smpi_comm_rank(comm);
size = smpi_comm_size(comm);
XBT_DEBUG("<%d> algorithm alltoall_bruck() called.", rank);
- err = smpi_datatype_extent(sendtype, &lb, &sendext);
- err = smpi_datatype_extent(recvtype, &lb, &recvext);
+ smpi_datatype_extent(sendtype, &lb, &sendext);
+ smpi_datatype_extent(recvtype, &lb, &recvext);
/* Local copy from self */
err =
smpi_datatype_copy((char *)sendbuf + rank * sendcount * sendext,
smpi_mpi_startall(count, requests);
XBT_DEBUG("<%d> wait for %d requests", rank, count);
smpi_mpi_waitall(count, requests, MPI_STATUS_IGNORE);
+ for(i = 0; i < count; i++) {
+ if(requests[i]!=MPI_REQUEST_NULL) smpi_mpi_request_free(&requests[i]);
+ }
xbt_free(requests);
}
return MPI_SUCCESS;
rank = smpi_comm_rank(comm);
size = smpi_comm_size(comm);
XBT_DEBUG("<%d> algorithm alltoall_basic_linear() called.", rank);
- err = smpi_datatype_extent(sendtype, &lb, &sendext);
- err = smpi_datatype_extent(recvtype, &lb, &recvext);
+ smpi_datatype_extent(sendtype, &lb, &sendext);
+ smpi_datatype_extent(recvtype, &lb, &recvext);
/* simple optimization */
err = smpi_datatype_copy((char *)sendbuf + rank * sendcount * sendext,
sendcount, sendtype,
smpi_mpi_startall(count, requests);
XBT_DEBUG("<%d> wait for %d requests", rank, count);
smpi_mpi_waitall(count, requests, MPI_STATUS_IGNORE);
+ for(i = 0; i < count; i++) {
+ if(requests[i]!=MPI_REQUEST_NULL) smpi_mpi_request_free(&requests[i]);
+ }
xbt_free(requests);
}
return err;
rank = smpi_comm_rank(comm);
size = smpi_comm_size(comm);
XBT_DEBUG("<%d> algorithm basic_alltoallv() called.", rank);
- err = smpi_datatype_extent(sendtype, &lb, &sendext);
- err = smpi_datatype_extent(recvtype, &lb, &recvext);
+ smpi_datatype_extent(sendtype, &lb, &sendext);
+ smpi_datatype_extent(recvtype, &lb, &recvext);
/* Local copy from self */
err =
smpi_datatype_copy((char *)sendbuf + senddisps[rank] * sendext,
smpi_mpi_startall(count, requests);
XBT_DEBUG("<%d> wait for %d requests", rank, count);
smpi_mpi_waitall(count, requests, MPI_STATUS_IGNORE);
+ for(i = 0; i < count; i++) {
+ if(requests[i]!=MPI_REQUEST_NULL) smpi_mpi_request_free(&requests[i]);
+ }
xbt_free(requests);
}
return err;