int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
{
int size = comm->size();
- int sendsize = smpi_datatype_size(sendtype) * sendcount;
+ int sendsize = sendtype->size() * sendcount;
if (sendsize < 200 && size > 12) {
return smpi_coll_tuned_alltoall_bruck(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
} else if (sendsize < 3000) {
int rank = comm->rank();
int size = comm->size();
XBT_DEBUG("<%d> algorithm alltoall_bruck() called.", rank);
- smpi_datatype_extent(sendtype, &lb, &sendext);
- smpi_datatype_extent(recvtype, &lb, &recvext);
+ sendtype->extent(&lb, &sendext);
+ recvtype->extent(&lb, &recvext);
/* Local copy from self */
- int err = smpi_datatype_copy(static_cast<char *>(sendbuf) + rank * sendcount * sendext, sendcount, sendtype,
+ int err = Datatype::copy(static_cast<char *>(sendbuf) + rank * sendcount * sendext, sendcount, sendtype,
static_cast<char *>(recvbuf) + rank * recvcount * recvext, recvcount, recvtype);
if (err == MPI_SUCCESS && size > 1) {
/* Initiate all send/recv to/from others. */
Request::waitall(count, requests, MPI_STATUS_IGNORE);
for(i = 0; i < count; i++) {
if(requests[i]!=MPI_REQUEST_NULL)
- Request::unuse(&requests[i]);
+ Request::unref(&requests[i]);
}
xbt_free(requests);
}
int rank = comm->rank();
int size = comm->size();
XBT_DEBUG("<%d> algorithm alltoall_basic_linear() called.", rank);
- smpi_datatype_extent(sendtype, &lb, &sendext);
- smpi_datatype_extent(recvtype, &lb, &recvext);
+ sendtype->extent(&lb, &sendext);
+ recvtype->extent(&lb, &recvext);
/* simple optimization */
- int err = smpi_datatype_copy(static_cast<char *>(sendbuf) + rank * sendcount * sendext, sendcount, sendtype,
+ int err = Datatype::copy(static_cast<char *>(sendbuf) + rank * sendcount * sendext, sendcount, sendtype,
static_cast<char *>(recvbuf) + rank * recvcount * recvext, recvcount, recvtype);
if (err == MPI_SUCCESS && size > 1) {
/* Initiate all send/recv to/from others. */
Request::waitall(count, requests, MPI_STATUS_IGNORE);
for(i = 0; i < count; i++) {
if(requests[i]!=MPI_REQUEST_NULL)
- Request::unuse(&requests[i]);
+ Request::unref(&requests[i]);
}
xbt_free(requests);
}
int rank = comm->rank();
int size = comm->size();
XBT_DEBUG("<%d> algorithm basic_alltoallv() called.", rank);
- smpi_datatype_extent(sendtype, &lb, &sendext);
- smpi_datatype_extent(recvtype, &lb, &recvext);
+ sendtype->extent(&lb, &sendext);
+ recvtype->extent(&lb, &recvext);
/* Local copy from self */
- int err = smpi_datatype_copy(static_cast<char *>(sendbuf) + senddisps[rank] * sendext, sendcounts[rank], sendtype,
+ int err = Datatype::copy(static_cast<char *>(sendbuf) + senddisps[rank] * sendext, sendcounts[rank], sendtype,
static_cast<char *>(recvbuf) + recvdisps[rank] * recvext, recvcounts[rank], recvtype);
if (err == MPI_SUCCESS && size > 1) {
/* Initiate all send/recv to/from others. */
Request::waitall(count, requests, MPI_STATUS_IGNORE);
for(i = 0; i < count; i++) {
if(requests[i]!=MPI_REQUEST_NULL)
- Request::unuse(&requests[i]);
+ Request::unref(&requests[i]);
}
xbt_free(requests);
}