|
Packit Service |
c5cf8c |
/* -*- Mode: C; c-basic-offset:4 ; -*- */
|
|
Packit Service |
c5cf8c |
/*
|
|
Packit Service |
c5cf8c |
* (C) 2015 by Argonne National Laboratory.
|
|
Packit Service |
c5cf8c |
* See COPYRIGHT in top-level directory.
|
|
Packit Service |
c5cf8c |
*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#ifndef MPICOLLTEST_H_INCLUDED
|
|
Packit Service |
c5cf8c |
#define MPICOLLTEST_H_INCLUDED
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* This file defines MTest wrapper functions for MPI collectives.
|
|
Packit Service |
c5cf8c |
* Test uses MTest_Collective calls that are defined as blocking collective by
|
|
Packit Service |
c5cf8c |
* default, or as non-blocking version by compiling with -DUSE_MTEST_NBC. */
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#include "mpi.h"
|
|
Packit Service |
c5cf8c |
#include "mpitestconf.h"
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
/* Wrap up MTest_Collective calls by non-blocking collectives.
|
|
Packit Service |
c5cf8c |
* It requires MPI_VERSION >= 3. */
|
|
Packit Service |
c5cf8c |
#if defined(USE_MTEST_NBC) && MPI_VERSION >= 3
|
|
Packit Service |
c5cf8c |
static inline int MTest_Barrier(MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ibarrier(comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Bcast(void *buffer, int count, MPI_Datatype datatype, int root,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ibcast(buffer, count, datatype, root, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype, int root,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Igather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype,
|
|
Packit Service |
c5cf8c |
root, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, const int *recvcounts, const int *displs,
|
|
Packit Service |
c5cf8c |
MPI_Datatype recvtype, int root, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Igatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs,
|
|
Packit Service |
c5cf8c |
recvtype, root, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype, int root,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Iscatter(sendbuf, sendcount, sendtype, recvbuf, recvcount,
|
|
Packit Service |
c5cf8c |
recvtype, root, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Scatterv(const void *sendbuf, const int *sendcounts, const int *displs,
|
|
Packit Service |
c5cf8c |
MPI_Datatype sendtype, void *recvbuf, int recvcount,
|
|
Packit Service |
c5cf8c |
MPI_Datatype recvtype, int root, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Iscatterv(sendbuf, sendcounts, displs, sendtype, recvbuf,
|
|
Packit Service |
c5cf8c |
recvcount, recvtype, root, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Iallgather(sendbuf, sendcount, sendtype, recvbuf, recvcount,
|
|
Packit Service |
c5cf8c |
recvtype, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, const int *recvcounts, const int *displs,
|
|
Packit Service |
c5cf8c |
MPI_Datatype recvtype, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Iallgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts,
|
|
Packit Service |
c5cf8c |
displs, recvtype, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ialltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount,
|
|
Packit Service |
c5cf8c |
recvtype, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Alltoallv(const void *sendbuf, const int *sendcounts, const int *sdispls,
|
|
Packit Service |
c5cf8c |
MPI_Datatype sendtype, void *recvbuf, const int *recvcounts,
|
|
Packit Service |
c5cf8c |
const int *rdispls, MPI_Datatype recvtype, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ialltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf,
|
|
Packit Service |
c5cf8c |
recvcounts, rdispls, recvtype, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Alltoallw(const void *sendbuf, const int *sendcounts, const int *sdispls,
|
|
Packit Service |
c5cf8c |
const MPI_Datatype * sendtypes, void *recvbuf,
|
|
Packit Service |
c5cf8c |
const int *recvcounts, const int *rdispls,
|
|
Packit Service |
c5cf8c |
const MPI_Datatype * recvtypes, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ialltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf,
|
|
Packit Service |
c5cf8c |
recvcounts, rdispls, recvtypes, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
|
|
Packit Service |
c5cf8c |
MPI_Op op, int root, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ireduce(sendbuf, recvbuf, count, datatype, op, root, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Allreduce(const void *sendbuf, void *recvbuf, int count,
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Iallreduce(sendbuf, recvbuf, count, datatype, op, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Reduce_scatter(const void *sendbuf, void *recvbuf, const int *recvcounts,
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ireduce_scatter(sendbuf, recvbuf, recvcounts, datatype, op, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Reduce_scatter_block(const void *sendbuf, void *recvbuf, int recvcount,
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Ireduce_scatter_block(sendbuf, recvbuf, recvcount, datatype, op, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Scan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
|
|
Packit Service |
c5cf8c |
MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Iscan(sendbuf, recvbuf, count, datatype, op, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Exscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
|
|
Packit Service |
c5cf8c |
MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
int mpi_errno;
|
|
Packit Service |
c5cf8c |
MPI_Request req = MPI_REQUEST_NULL;
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Iexscan(sendbuf, recvbuf, count, datatype, op, comm, &req;;
|
|
Packit Service |
c5cf8c |
if (mpi_errno != MPI_SUCCESS)
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
mpi_errno = MPI_Wait(&req, MPI_STATUS_IGNORE);
|
|
Packit Service |
c5cf8c |
return mpi_errno;
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
#else
|
|
Packit Service |
c5cf8c |
/* If USE_MTEST_NBC is not specified, or MPI_VERSION is less than 3,
|
|
Packit Service |
c5cf8c |
* wrap up MTest_Collective calls by traditional blocking collectives.*/
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Barrier(MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Barrier(comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Bcast(void *buffer, int count, MPI_Datatype datatype, int root,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Bcast(buffer, count, datatype, root, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype, int root,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Gather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, const int *recvcounts, const int *displs,
|
|
Packit Service |
c5cf8c |
MPI_Datatype recvtype, int root, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Gatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts, displs,
|
|
Packit Service |
c5cf8c |
recvtype, root, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype, int root,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Scatter(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, root, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Scatterv(const void *sendbuf, const int *sendcounts, const int *displs,
|
|
Packit Service |
c5cf8c |
MPI_Datatype sendtype, void *recvbuf, int recvcount,
|
|
Packit Service |
c5cf8c |
MPI_Datatype recvtype, int root, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Scatterv(sendbuf, sendcounts, displs, sendtype, recvbuf,
|
|
Packit Service |
c5cf8c |
recvcount, recvtype, root, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype,
|
|
Packit Service |
c5cf8c |
MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, const int *recvcounts, const int *displs,
|
|
Packit Service |
c5cf8c |
MPI_Datatype recvtype, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Allgatherv(sendbuf, sendcount, sendtype, recvbuf, recvcounts,
|
|
Packit Service |
c5cf8c |
displs, recvtype, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
|
|
Packit Service |
c5cf8c |
void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Alltoall(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Alltoallv(const void *sendbuf, const int *sendcounts, const int *sdispls,
|
|
Packit Service |
c5cf8c |
MPI_Datatype sendtype, void *recvbuf, const int *recvcounts,
|
|
Packit Service |
c5cf8c |
const int *rdispls, MPI_Datatype recvtype, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Alltoallv(sendbuf, sendcounts, sdispls, sendtype, recvbuf,
|
|
Packit Service |
c5cf8c |
recvcounts, rdispls, recvtype, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Alltoallw(const void *sendbuf, const int *sendcounts, const int *sdispls,
|
|
Packit Service |
c5cf8c |
const MPI_Datatype * sendtypes, void *recvbuf,
|
|
Packit Service |
c5cf8c |
const int *recvcounts, const int *rdispls,
|
|
Packit Service |
c5cf8c |
const MPI_Datatype * recvtypes, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Alltoallw(sendbuf, sendcounts, sdispls, sendtypes, recvbuf,
|
|
Packit Service |
c5cf8c |
recvcounts, rdispls, recvtypes, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
|
|
Packit Service |
c5cf8c |
MPI_Op op, int root, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Reduce(sendbuf, recvbuf, count, datatype, op, root, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Allreduce(const void *sendbuf, void *recvbuf, int count,
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Allreduce(sendbuf, recvbuf, count, datatype, op, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Reduce_scatter(const void *sendbuf, void *recvbuf, const int *recvcounts,
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Reduce_scatter(sendbuf, recvbuf, recvcounts, datatype, op, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Reduce_scatter_block(const void *sendbuf, void *recvbuf, int recvcount,
|
|
Packit Service |
c5cf8c |
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Reduce_scatter_block(sendbuf, recvbuf, recvcount, datatype, op, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Scan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
|
|
Packit Service |
c5cf8c |
MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Scan(sendbuf, recvbuf, count, datatype, op, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
static inline int MTest_Exscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
|
|
Packit Service |
c5cf8c |
MPI_Op op, MPI_Comm comm)
|
|
Packit Service |
c5cf8c |
{
|
|
Packit Service |
c5cf8c |
return MPI_Exscan(sendbuf, recvbuf, count, datatype, op, comm);
|
|
Packit Service |
c5cf8c |
}
|
|
Packit Service |
c5cf8c |
|
|
Packit Service |
c5cf8c |
#endif /* USE_MTEST_NBC */
|
|
Packit Service |
c5cf8c |
#endif /* MPICOLLTEST_H_INCLUDED */
|