Commit b208dd70 authored by Antonio J. Pena's avatar Antonio J. Pena Committed by Kenneth Raffenetti
Browse files

Fix usage of weak,alias attributes



Moved the weak,alias attribute declarations from header files to the
implementation. Complies with the requirement that alias targets are
defined in the same compilation unit.

Fixes #2002
Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
parent 0011344a
......@@ -22,6 +22,8 @@
#pragma _HP_SECONDARY_DEF PMPI_Type_create_f90_complex MPI_Type_create_f90_complex
#elif defined(HAVE_PRAGMA_CRI_DUP)
#pragma _CRI duplicate MPI_Type_create_f90_complex as PMPI_Type_create_f90_complex
#elif defined(HAVE_WEAK_ATTRIBUTE)
int MPI_Type_create_f90_complex(int precision, int range, MPI_Datatype *newtype) __attribute__((weak,alias("PMPI_Type_create_f90_complex")));
#endif
/* -- End Profiling Symbol Block */
......
......@@ -21,6 +21,8 @@
#pragma _HP_SECONDARY_DEF PMPI_Type_create_f90_integer MPI_Type_create_f90_integer
#elif defined(HAVE_PRAGMA_CRI_DUP)
#pragma _CRI duplicate MPI_Type_create_f90_integer as PMPI_Type_create_f90_integer
#elif defined(HAVE_WEAK_ATTRIBUTE)
int MPI_Type_create_f90_integer(int range, MPI_Datatype *newtype) __attribute__((weak,alias("PMPI_Type_create_f90_integer")));
#endif
/* -- End Profiling Symbol Block */
......
......@@ -22,6 +22,8 @@
#pragma _HP_SECONDARY_DEF PMPI_Type_create_f90_real MPI_Type_create_f90_real
#elif defined(HAVE_PRAGMA_CRI_DUP)
#pragma _CRI duplicate MPI_Type_create_f90_real as PMPI_Type_create_f90_real
#elif defined(HAVE_WEAK_ATTRIBUTE)
int MPI_Type_create_f90_real(int precision, int range, MPI_Datatype *newtype) __attribute__((weak,alias("PMPI_Type_create_f90_real")));
#endif
/* -- End Profiling Symbol Block */
......
......@@ -899,633 +899,633 @@ typedef int (MPI_Datarep_extent_function)(MPI_Datatype datatype, MPI_Aint *,
/* We require that the C compiler support prototypes */
/* Begin Prototypes */
int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Send");
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
MPI_Comm comm, MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Recv");
int MPI_Get_count(const MPI_Status *status, MPI_Datatype datatype, int *count) MPICH_ATTR_WEAK_ALIAS("PMPI_Get_count");
MPI_Comm comm, MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Get_count(const MPI_Status *status, MPI_Datatype datatype, int *count);
int MPI_Bsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Bsend");
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Ssend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Ssend");
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Rsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Rsend");
int MPI_Buffer_attach(void *buffer, int size) MPICH_ATTR_WEAK_ALIAS("PMPI_Buffer_attach");
int MPI_Buffer_detach(void *buffer_addr, int *size) MPICH_ATTR_WEAK_ALIAS("PMPI_Buffer_detach");
MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Buffer_attach(void *buffer, int size);
int MPI_Buffer_detach(void *buffer_addr, int *size);
int MPI_Isend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Isend");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Ibsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Ibsend");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Issend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Issend");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Irsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Irsend");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Irecv");
int MPI_Wait(MPI_Request *request, MPI_Status *status) MPICH_ATTR_WEAK_ALIAS("PMPI_Wait");
int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status) MPICH_ATTR_WEAK_ALIAS("PMPI_Test");
int MPI_Request_free(MPI_Request *request) MPICH_ATTR_WEAK_ALIAS("PMPI_Request_free");
int MPI_Waitany(int count, MPI_Request array_of_requests[], int *indx, MPI_Status *status) MPICH_ATTR_WEAK_ALIAS("PMPI_Waitany");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Wait(MPI_Request *request, MPI_Status *status);
int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status);
int MPI_Request_free(MPI_Request *request);
int MPI_Waitany(int count, MPI_Request array_of_requests[], int *indx, MPI_Status *status);
int MPI_Testany(int count, MPI_Request array_of_requests[], int *indx, int *flag,
MPI_Status *status) MPICH_ATTR_WEAK_ALIAS("PMPI_Testany");
int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Waitall");
MPI_Status *status);
int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]);
int MPI_Testall(int count, MPI_Request array_of_requests[], int *flag,
MPI_Status array_of_statuses[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Testall");
MPI_Status array_of_statuses[]);
int MPI_Waitsome(int incount, MPI_Request array_of_requests[], int *outcount,
int array_of_indices[], MPI_Status array_of_statuses[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Waitsome");
int array_of_indices[], MPI_Status array_of_statuses[]);
int MPI_Testsome(int incount, MPI_Request array_of_requests[], int *outcount,
int array_of_indices[], MPI_Status array_of_statuses[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Testsome");
int MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status) MPICH_ATTR_WEAK_ALIAS("PMPI_Iprobe");
int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status) MPICH_ATTR_WEAK_ALIAS("PMPI_Probe");
int MPI_Cancel(MPI_Request *request) MPICH_ATTR_WEAK_ALIAS("PMPI_Cancel");
int MPI_Test_cancelled(const MPI_Status *status, int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Test_cancelled");
int array_of_indices[], MPI_Status array_of_statuses[]);
int MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status);
int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status);
int MPI_Cancel(MPI_Request *request);
int MPI_Test_cancelled(const MPI_Status *status, int *flag);
int MPI_Send_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Send_init");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Bsend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Bsend_init");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Ssend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Ssend_init");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Rsend_init(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Rsend_init");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source, int tag,
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Recv_init");
int MPI_Start(MPI_Request *request) MPICH_ATTR_WEAK_ALIAS("PMPI_Start");
int MPI_Startall(int count, MPI_Request array_of_requests[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Startall");
MPI_Comm comm, MPI_Request *request) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Start(MPI_Request *request);
int MPI_Startall(int count, MPI_Request array_of_requests[]);
int MPI_Sendrecv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest,
int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype,
int source, int recvtag, MPI_Comm comm, MPI_Status *status)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(6,8) MPICH_ATTR_WEAK_ALIAS("PMPI_Sendrecv");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(6,8);
int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest,
int sendtag, int source, int recvtag, MPI_Comm comm,
MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Sendrecv_replace");
int MPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_contiguous");
MPI_Status *status) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype);
int MPI_Type_vector(int count, int blocklength, int stride, MPI_Datatype oldtype,
MPI_Datatype *newtype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_vector");
MPI_Datatype *newtype);
int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype,
MPI_Datatype *newtype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_hvector");
MPI_Datatype *newtype);
int MPI_Type_indexed(int count, const int *array_of_blocklengths,
const int *array_of_displacements, MPI_Datatype oldtype,
MPI_Datatype *newtype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_indexed");
MPI_Datatype *newtype);
int MPI_Type_hindexed(int count, const int *array_of_blocklengths,
const MPI_Aint *array_of_displacements, MPI_Datatype oldtype,
MPI_Datatype *newtype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_hindexed");
MPI_Datatype *newtype);
int MPI_Type_struct(int count, const int *array_of_blocklengths,
const MPI_Aint *array_of_displacements,
const MPI_Datatype *array_of_types, MPI_Datatype *newtype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_struct");
int MPI_Address(const void *location, MPI_Aint *address) MPICH_ATTR_WEAK_ALIAS("PMPI_Address");
int MPI_Type_extent(MPI_Datatype datatype, MPI_Aint *extent) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_extent");
int MPI_Type_size(MPI_Datatype datatype, int *size) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_size");
int MPI_Type_lb(MPI_Datatype datatype, MPI_Aint *displacement) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_lb");
int MPI_Type_ub(MPI_Datatype datatype, MPI_Aint *displacement) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_ub");
int MPI_Type_commit(MPI_Datatype *datatype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_commit");
int MPI_Type_free(MPI_Datatype *datatype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_free");
int MPI_Get_elements(const MPI_Status *status, MPI_Datatype datatype, int *count) MPICH_ATTR_WEAK_ALIAS("PMPI_Get_elements");
const MPI_Datatype *array_of_types, MPI_Datatype *newtype);
int MPI_Address(const void *location, MPI_Aint *address);
int MPI_Type_extent(MPI_Datatype datatype, MPI_Aint *extent);
int MPI_Type_size(MPI_Datatype datatype, int *size);
int MPI_Type_lb(MPI_Datatype datatype, MPI_Aint *displacement);
int MPI_Type_ub(MPI_Datatype datatype, MPI_Aint *displacement);
int MPI_Type_commit(MPI_Datatype *datatype);
int MPI_Type_free(MPI_Datatype *datatype);
int MPI_Get_elements(const MPI_Status *status, MPI_Datatype datatype, int *count);
int MPI_Pack(const void *inbuf, int incount, MPI_Datatype datatype, void *outbuf,
int outsize, int *position, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Pack");
int outsize, int *position, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Unpack(const void *inbuf, int insize, int *position, void *outbuf, int outcount,
MPI_Datatype datatype, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_ATTR_WEAK_ALIAS("PMPI_Unpack");
int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int *size) MPICH_ATTR_WEAK_ALIAS("PMPI_Pack_size");
int MPI_Barrier(MPI_Comm comm) MPICH_ATTR_WEAK_ALIAS("PMPI_Barrier");
MPI_Datatype datatype, MPI_Comm comm) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6);
int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int *size);
int MPI_Barrier(MPI_Comm comm);
int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Bcast");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_ATTR_WEAK_ALIAS("PMPI_Gather");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6);
int MPI_Gatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
const int *recvcounts, const int *displs, MPI_Datatype recvtype, int root,
MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_ATTR_WEAK_ALIAS("PMPI_Gatherv");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7);
int MPI_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_ATTR_WEAK_ALIAS("PMPI_Scatter");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6);
int MPI_Scatterv(const void *sendbuf, const int *sendcounts, const int *displs,
MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype,
int root, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7) MPICH_ATTR_WEAK_ALIAS("PMPI_Scatterv");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,7);
int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_ATTR_WEAK_ALIAS("PMPI_Allgather");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6);
int MPI_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
const int *recvcounts, const int *displs, MPI_Datatype recvtype, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7) MPICH_ATTR_WEAK_ALIAS("PMPI_Allgatherv");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,7);
int MPI_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf,
int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_ATTR_WEAK_ALIAS("PMPI_Alltoall");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6);
int MPI_Alltoallv(const void *sendbuf, const int *sendcounts, const int *sdispls,
MPI_Datatype sendtype, void *recvbuf, const int *recvcounts,
const int *rdispls, MPI_Datatype recvtype, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8) MPICH_ATTR_WEAK_ALIAS("PMPI_Alltoallv");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(5,8);
int MPI_Alltoallw(const void *sendbuf, const int sendcounts[], const int sdispls[],
const MPI_Datatype sendtypes[], void *recvbuf, const int recvcounts[],
const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm) MPICH_ATTR_WEAK_ALIAS("PMPI_Alltoallw");
const int rdispls[], const MPI_Datatype recvtypes[], MPI_Comm comm);
int MPI_Exscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
MPI_Op op, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_ATTR_WEAK_ALIAS("PMPI_Exscan");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4);
int MPI_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
MPI_Op op, int root, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_ATTR_WEAK_ALIAS("PMPI_Reduce");
int MPI_Op_create(MPI_User_function *user_fn, int commute, MPI_Op *op) MPICH_ATTR_WEAK_ALIAS("PMPI_Op_create");
int MPI_Op_free(MPI_Op *op) MPICH_ATTR_WEAK_ALIAS("PMPI_Op_free");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4);
int MPI_Op_create(MPI_User_function *user_fn, int commute, MPI_Op *op);
int MPI_Op_free(MPI_Op *op);
int MPI_Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
MPI_Op op, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_ATTR_WEAK_ALIAS("PMPI_Allreduce");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4);
int MPI_Reduce_scatter(const void *sendbuf, void *recvbuf, const int recvcounts[],
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_ATTR_WEAK_ALIAS("PMPI_Reduce_scatter");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4);
int MPI_Scan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op,
MPI_Comm comm)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4) MPICH_ATTR_WEAK_ALIAS("PMPI_Scan");
int MPI_Group_size(MPI_Group group, int *size) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_size");
int MPI_Group_rank(MPI_Group group, int *rank) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_rank");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4) MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4);
int MPI_Group_size(MPI_Group group, int *size);
int MPI_Group_rank(MPI_Group group, int *rank);
int MPI_Group_translate_ranks(MPI_Group group1, int n, const int ranks1[], MPI_Group group2,
int ranks2[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_translate_ranks");
int MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_compare");
int MPI_Comm_group(MPI_Comm comm, MPI_Group *group) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_group");
int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_union");
int MPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_intersection");
int MPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_difference");
int MPI_Group_incl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_incl");
int MPI_Group_excl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_excl");
int MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_range_incl");
int MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_range_excl");
int MPI_Group_free(MPI_Group *group) MPICH_ATTR_WEAK_ALIAS("PMPI_Group_free");
int MPI_Comm_size(MPI_Comm comm, int *size) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_size");
int MPI_Comm_rank(MPI_Comm comm, int *rank) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_rank");
int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_compare");
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_dup");
int MPI_Comm_dup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm *newcomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_dup_with_info");
int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_create");
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_split");
int MPI_Comm_free(MPI_Comm *comm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_free");
int MPI_Comm_test_inter(MPI_Comm comm, int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_test_inter");
int MPI_Comm_remote_size(MPI_Comm comm, int *size) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_remote_size");
int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_remote_group");
int ranks2[]);
int MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result);
int MPI_Comm_group(MPI_Comm comm, MPI_Group *group);
int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup);
int MPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup);
int MPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *newgroup);
int MPI_Group_incl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup);
int MPI_Group_excl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup);
int MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup);
int MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup);
int MPI_Group_free(MPI_Group *group);
int MPI_Comm_size(MPI_Comm comm, int *size);
int MPI_Comm_rank(MPI_Comm comm, int *rank);
int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result);
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm);
int MPI_Comm_dup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm *newcomm);
int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm);
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm);
int MPI_Comm_free(MPI_Comm *comm);
int MPI_Comm_test_inter(MPI_Comm comm, int *flag);
int MPI_Comm_remote_size(MPI_Comm comm, int *size);
int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group);
int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm,
int remote_leader, int tag, MPI_Comm *newintercomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Intercomm_create");
int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Intercomm_merge");
int remote_leader, int tag, MPI_Comm *newintercomm);
int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm);
int MPI_Keyval_create(MPI_Copy_function *copy_fn, MPI_Delete_function *delete_fn,
int *keyval, void *extra_state) MPICH_ATTR_WEAK_ALIAS("PMPI_Keyval_create");
int MPI_Keyval_free(int *keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Keyval_free");
int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val) MPICH_ATTR_WEAK_ALIAS("PMPI_Attr_put");
int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Attr_get");
int MPI_Attr_delete(MPI_Comm comm, int keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Attr_delete");
int MPI_Topo_test(MPI_Comm comm, int *status) MPICH_ATTR_WEAK_ALIAS("PMPI_Topo_test");
int *keyval, void *extra_state);
int MPI_Keyval_free(int *keyval);
int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val);
int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag);
int MPI_Attr_delete(MPI_Comm comm, int keyval);
int MPI_Topo_test(MPI_Comm comm, int *status);
int MPI_Cart_create(MPI_Comm comm_old, int ndims, const int dims[], const int periods[],
int reorder, MPI_Comm *comm_cart) MPICH_ATTR_WEAK_ALIAS("PMPI_Cart_create");
int MPI_Dims_create(int nnodes, int ndims, int dims[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Dims_create");
int reorder, MPI_Comm *comm_cart);
int MPI_Dims_create(int nnodes, int ndims, int dims[]);
int MPI_Graph_create(MPI_Comm comm_old, int nnodes, const int indx[], const int edges[],
int reorder, MPI_Comm *comm_graph) MPICH_ATTR_WEAK_ALIAS("PMPI_Graph_create");
int MPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges) MPICH_ATTR_WEAK_ALIAS("PMPI_Graphdims_get");
int MPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, int indx[], int edges[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Graph_get");
int MPI_Cartdim_get(MPI_Comm comm, int *ndims) MPICH_ATTR_WEAK_ALIAS("PMPI_Cartdim_get");
int MPI_Cart_get(MPI_Comm comm, int maxdims, int dims[], int periods[], int coords[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Cart_get");
int MPI_Cart_rank(MPI_Comm comm, const int coords[], int *rank) MPICH_ATTR_WEAK_ALIAS("PMPI_Cart_rank");
int MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int coords[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Cart_coords");
int MPI_Graph_neighbors_count(MPI_Comm comm, int rank, int *nneighbors) MPICH_ATTR_WEAK_ALIAS("PMPI_Graph_neighbors_count");
int MPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, int neighbors[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Graph_neighbors");
int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest) MPICH_ATTR_WEAK_ALIAS("PMPI_Cart_shift");
int MPI_Cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Cart_sub");
int MPI_Cart_map(MPI_Comm comm, int ndims, const int dims[], const int periods[], int *newrank) MPICH_ATTR_WEAK_ALIAS("PMPI_Cart_map");
int MPI_Graph_map(MPI_Comm comm, int nnodes, const int indx[], const int edges[], int *newrank) MPICH_ATTR_WEAK_ALIAS("PMPI_Graph_map");
int MPI_Get_processor_name(char *name, int *resultlen) MPICH_ATTR_WEAK_ALIAS("PMPI_Get_processor_name");
int MPI_Get_version(int *version, int *subversion) MPICH_ATTR_WEAK_ALIAS("PMPI_Get_version");
int MPI_Get_library_version(char *version, int *resultlen) MPICH_ATTR_WEAK_ALIAS("PMPI_Get_library_version");
int MPI_Errhandler_create(MPI_Handler_function *function, MPI_Errhandler *errhandler) MPICH_ATTR_WEAK_ALIAS("PMPI_Errhandler_create");
int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler) MPICH_ATTR_WEAK_ALIAS("PMPI_Errhandler_set");
int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler) MPICH_ATTR_WEAK_ALIAS("PMPI_Errhandler_get");
int MPI_Errhandler_free(MPI_Errhandler *errhandler) MPICH_ATTR_WEAK_ALIAS("PMPI_Errhandler_free");
int MPI_Error_string(int errorcode, char *string, int *resultlen) MPICH_ATTR_WEAK_ALIAS("PMPI_Error_string");
int MPI_Error_class(int errorcode, int *errorclass) MPICH_ATTR_WEAK_ALIAS("PMPI_Error_class");
double MPI_Wtime(void) MPICH_ATTR_WEAK_ALIAS("PMPI_Wtime");
double MPI_Wtick(void) MPICH_ATTR_WEAK_ALIAS("PMPI_Wtick");
int MPI_Init(int *argc, char ***argv) MPICH_ATTR_WEAK_ALIAS("PMPI_Init");
int MPI_Finalize(void) MPICH_ATTR_WEAK_ALIAS("PMPI_Finalize");
int MPI_Initialized(int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Initialized");
int MPI_Abort(MPI_Comm comm, int errorcode) MPICH_ATTR_WEAK_ALIAS("PMPI_Abort");
int reorder, MPI_Comm *comm_graph);
int MPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges);
int MPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, int indx[], int edges[]);
int MPI_Cartdim_get(MPI_Comm comm, int *ndims);
int MPI_Cart_get(MPI_Comm comm, int maxdims, int dims[], int periods[], int coords[]);
int MPI_Cart_rank(MPI_Comm comm, const int coords[], int *rank);
int MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int coords[]);
int MPI_Graph_neighbors_count(MPI_Comm comm, int rank, int *nneighbors);
int MPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, int neighbors[]);
int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest);
int MPI_Cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm);
int MPI_Cart_map(MPI_Comm comm, int ndims, const int dims[], const int periods[], int *newrank);
int MPI_Graph_map(MPI_Comm comm, int nnodes, const int indx[], const int edges[], int *newrank);
int MPI_Get_processor_name(char *name, int *resultlen);
int MPI_Get_version(int *version, int *subversion);
int MPI_Get_library_version(char *version, int *resultlen);
int MPI_Errhandler_create(MPI_Handler_function *function, MPI_Errhandler *errhandler);
int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler);
int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler);
int MPI_Errhandler_free(MPI_Errhandler *errhandler);
int MPI_Error_string(int errorcode, char *string, int *resultlen);
int MPI_Error_class(int errorcode, int *errorclass);
double MPI_Wtime(void);
double MPI_Wtick(void);
int MPI_Init(int *argc, char ***argv);
int MPI_Finalize(void);
int MPI_Initialized(int *flag);
int MPI_Abort(MPI_Comm comm, int errorcode);
/* Note that we may need to define a @PCONTROL_LIST@ depending on whether
stdargs are supported */
int MPI_Pcontrol(const int level, ...) MPICH_ATTR_WEAK_ALIAS("PMPI_Pcontrol");
int MPI_Pcontrol(const int level, ...);
int MPI_DUP_FN(MPI_Comm oldcomm, int keyval, void *extra_state, void *attribute_val_in,
void *attribute_val_out, int *flag);
/* Process Creation and Management */
int MPI_Close_port(const char *port_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Close_port");
int MPI_Close_port(const char *port_name);
int MPI_Comm_accept(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
MPI_Comm *newcomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_accept");
MPI_Comm *newcomm);
int MPI_Comm_connect(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
MPI_Comm *newcomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_connect");
int MPI_Comm_disconnect(MPI_Comm *comm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_disconnect");
int MPI_Comm_get_parent(MPI_Comm *parent) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_get_parent");
int MPI_Comm_join(int fd, MPI_Comm *intercomm) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_join");
MPI_Comm *newcomm);
int MPI_Comm_disconnect(MPI_Comm *comm);
int MPI_Comm_get_parent(MPI_Comm *parent);
int MPI_Comm_join(int fd, MPI_Comm *intercomm);
int MPI_Comm_spawn(const char *command, char *argv[], int maxprocs, MPI_Info info, int root,
MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_spawn");
MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]);
int MPI_Comm_spawn_multiple(int count, char *array_of_commands[], char **array_of_argv[],
const int array_of_maxprocs[], const MPI_Info array_of_info[],
int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_spawn_multiple");
int MPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Lookup_name");
int MPI_Open_port(MPI_Info info, char *port_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Open_port");
int MPI_Publish_name(const char *service_name, MPI_Info info, const char *port_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Publish_name");
int MPI_Unpublish_name(const char *service_name, MPI_Info info, const char *port_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Unpublish_name");
int MPI_Comm_set_info(MPI_Comm comm, MPI_Info info) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_set_info");
int MPI_Comm_get_info(MPI_Comm comm, MPI_Info *info) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_get_info");
int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[]);
int MPI_Lookup_name(const char *service_name, MPI_Info info, char *port_name);
int MPI_Open_port(MPI_Info info, char *port_name);
int MPI_Publish_name(const char *service_name, MPI_Info info, const char *port_name);
int MPI_Unpublish_name(const char *service_name, MPI_Info info, const char *port_name);
int MPI_Comm_set_info(MPI_Comm comm, MPI_Info info);
int MPI_Comm_get_info(MPI_Comm comm, MPI_Info *info);
/* One-Sided Communications */
int MPI_Accumulate(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
int target_rank, MPI_Aint target_disp, int target_count,
MPI_Datatype target_datatype, MPI_Op op, MPI_Win win)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Accumulate");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Get(void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
int target_rank, MPI_Aint target_disp, int target_count,
MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Get");
MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Put(const void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
int target_rank, MPI_Aint target_disp, int target_count,
MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Put");
int MPI_Win_complete(MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_complete");
MPI_Datatype target_datatype, MPI_Win win) MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Win_complete(MPI_Win win);
int MPI_Win_create(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm,
MPI_Win *win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_create");
int MPI_Win_fence(int assert, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_fence");
int MPI_Win_free(MPI_Win *win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_free");
int MPI_Win_get_group(MPI_Win win, MPI_Group *group) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_get_group");
int MPI_Win_lock(int lock_type, int rank, int assert, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_lock");
int MPI_Win_post(MPI_Group group, int assert, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_post");
int MPI_Win_start(MPI_Group group, int assert, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_start");
int MPI_Win_test(MPI_Win win, int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_test");
int MPI_Win_unlock(int rank, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_unlock");
int MPI_Win_wait(MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_wait");
MPI_Win *win);
int MPI_Win_fence(int assert, MPI_Win win);
int MPI_Win_free(MPI_Win *win);
int MPI_Win_get_group(MPI_Win win, MPI_Group *group);
int MPI_Win_lock(int lock_type, int rank, int assert, MPI_Win win);
int MPI_Win_post(MPI_Group group, int assert, MPI_Win win);
int MPI_Win_start(MPI_Group group, int assert, MPI_Win win);
int MPI_Win_test(MPI_Win win, int *flag);
int MPI_Win_unlock(int rank, MPI_Win win);
int MPI_Win_wait(MPI_Win win);
/* MPI-3 One-Sided Communication Routines */
int MPI_Win_allocate(MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, void *baseptr,
MPI_Win *win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_allocate");
MPI_Win *win);
int MPI_Win_allocate_shared(MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm,
void *baseptr, MPI_Win *win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_allocate_shared");
int MPI_Win_shared_query(MPI_Win win, int rank, MPI_Aint *size, int *disp_unit, void *baseptr) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_shared_query");
int MPI_Win_create_dynamic(MPI_Info info, MPI_Comm comm, MPI_Win *win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_create_dynamic");
int MPI_Win_attach(MPI_Win win, void *base, MPI_Aint size) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_attach");
int MPI_Win_detach(MPI_Win win, const void *base) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_detach");
int MPI_Win_get_info(MPI_Win win, MPI_Info *info_used) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_get_info");
int MPI_Win_set_info(MPI_Win win, MPI_Info info) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_set_info");
void *baseptr, MPI_Win *win);
int MPI_Win_shared_query(MPI_Win win, int rank, MPI_Aint *size, int *disp_unit, void *baseptr);
int MPI_Win_create_dynamic(MPI_Info info, MPI_Comm comm, MPI_Win *win);
int MPI_Win_attach(MPI_Win win, void *base, MPI_Aint size);
int MPI_Win_detach(MPI_Win win, const void *base);
int MPI_Win_get_info(MPI_Win win, MPI_Info *info_used);
int MPI_Win_set_info(MPI_Win win, MPI_Info info);
int MPI_Get_accumulate(const void *origin_addr, int origin_count,
MPI_Datatype origin_datatype, void *result_addr, int result_count,
MPI_Datatype result_datatype, int target_rank, MPI_Aint target_disp,
int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_ATTR_WEAK_ALIAS("PMPI_Get_accumulate");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6);
int MPI_Fetch_and_op(const void *origin_addr, void *result_addr,
MPI_Datatype datatype, int target_rank, MPI_Aint target_disp,
MPI_Op op, MPI_Win win)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Fetch_and_op");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Compare_and_swap(const void *origin_addr, const void *compare_addr,
void *result_addr, MPI_Datatype datatype, int target_rank,
MPI_Aint target_disp, MPI_Win win)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,4)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(2,4)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(3,4) MPICH_ATTR_WEAK_ALIAS("PMPI_Compare_and_swap");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(3,4);
int MPI_Rput(const void *origin_addr, int origin_count,
MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
int target_count, MPI_Datatype target_datatype, MPI_Win win,
MPI_Request *request)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Rput");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Rget(void *origin_addr, int origin_count,
MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
int target_count, MPI_Datatype target_datatype, MPI_Win win,
MPI_Request *request)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Rget");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Raccumulate(const void *origin_addr, int origin_count,
MPI_Datatype origin_datatype, int target_rank, MPI_Aint target_disp,
int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win,
MPI_Request *request)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3) MPICH_ATTR_WEAK_ALIAS("PMPI_Raccumulate");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3);
int MPI_Rget_accumulate(const void *origin_addr, int origin_count,
MPI_Datatype origin_datatype, void *result_addr, int result_count,
MPI_Datatype result_datatype, int target_rank, MPI_Aint target_disp,
int target_count, MPI_Datatype target_datatype, MPI_Op op, MPI_Win win,
MPI_Request *request)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(1,3)
MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6) MPICH_ATTR_WEAK_ALIAS("PMPI_Rget_accumulate");
int MPI_Win_lock_all(int assert, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_lock_all");
int MPI_Win_unlock_all(MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_unlock_all");
int MPI_Win_flush(int rank, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_flush");
int MPI_Win_flush_all(MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_flush_all");
int MPI_Win_flush_local(int rank, MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_flush_local");
int MPI_Win_flush_local_all(MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_flush_local_all");
int MPI_Win_sync(MPI_Win win) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_sync");
MPICH_ATTR_POINTER_WITH_TYPE_TAG(4,6);
int MPI_Win_lock_all(int assert, MPI_Win win);
int MPI_Win_unlock_all(MPI_Win win);
int MPI_Win_flush(int rank, MPI_Win win);
int MPI_Win_flush_all(MPI_Win win);
int MPI_Win_flush_local(int rank, MPI_Win win);
int MPI_Win_flush_local_all(MPI_Win win);
int MPI_Win_sync(MPI_Win win);
/* External Interfaces */
int MPI_Add_error_class(int *errorclass) MPICH_ATTR_WEAK_ALIAS("PMPI_Add_error_class");
int MPI_Add_error_code(int errorclass, int *errorcode) MPICH_ATTR_WEAK_ALIAS("PMPI_Add_error_code");
int MPI_Add_error_string(int errorcode, const char *string) MPICH_ATTR_WEAK_ALIAS("PMPI_Add_error_string");
int MPI_Comm_call_errhandler(MPI_Comm comm, int errorcode) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_call_errhandler");
int MPI_Add_error_class(int *errorclass);
int MPI_Add_error_code(int errorclass, int *errorcode);
int MPI_Add_error_string(int errorcode, const char *string);
int MPI_Comm_call_errhandler(MPI_Comm comm, int errorcode);
int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn,
MPI_Comm_delete_attr_function *comm_delete_attr_fn, int *comm_keyval,
void *extra_state) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_create_keyval");
int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_delete_attr");
int MPI_Comm_free_keyval(int *comm_keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_free_keyval");
int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attribute_val, int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_get_attr");
int MPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_get_name");
int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_set_attr");
int MPI_Comm_set_name(MPI_Comm comm, const char *comm_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Comm_set_name");
int MPI_File_call_errhandler(MPI_File fh, int errorcode) MPICH_ATTR_WEAK_ALIAS("PMPI_File_call_errhandler");
int MPI_Grequest_complete(MPI_Request request) MPICH_ATTR_WEAK_ALIAS("PMPI_Grequest_complete");
void *extra_state);
int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval);
int MPI_Comm_free_keyval(int *comm_keyval);
int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attribute_val, int *flag);
int MPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen);
int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val);
int MPI_Comm_set_name(MPI_Comm comm, const char *comm_name);
int MPI_File_call_errhandler(MPI_File fh, int errorcode);
int MPI_Grequest_complete(MPI_Request request);
int MPI_Grequest_start(MPI_Grequest_query_function *query_fn, MPI_Grequest_free_function *free_fn,
MPI_Grequest_cancel_function *cancel_fn, void *extra_state,
MPI_Request *request) MPICH_ATTR_WEAK_ALIAS("PMPI_Grequest_start");
int MPI_Init_thread(int *argc, char ***argv, int required, int *provided) MPICH_ATTR_WEAK_ALIAS("PMPI_Init_thread");
int MPI_Is_thread_main(int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Is_thread_main");
int MPI_Query_thread(int *provided) MPICH_ATTR_WEAK_ALIAS("PMPI_Query_thread");
int MPI_Status_set_cancelled(MPI_Status *status, int flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Status_set_cancelled");
int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype, int count) MPICH_ATTR_WEAK_ALIAS("PMPI_Status_set_elements");
MPI_Request *request);
int MPI_Init_thread(int *argc, char ***argv, int required, int *provided);
int MPI_Is_thread_main(int *flag);
int MPI_Query_thread(int *provided);
int MPI_Status_set_cancelled(MPI_Status *status, int flag);
int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype, int count);
int MPI_Type_create_keyval(MPI_Type_copy_attr_function *type_copy_attr_fn,
MPI_Type_delete_attr_function *type_delete_attr_fn,
int *type_keyval, void *extra_state) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_create_keyval");
int MPI_Type_delete_attr(MPI_Datatype datatype, int type_keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_delete_attr");
int MPI_Type_dup(MPI_Datatype oldtype, MPI_Datatype *newtype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_dup");
int MPI_Type_free_keyval(int *type_keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_free_keyval");
int MPI_Type_get_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val, int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_get_attr");
int *type_keyval, void *extra_state);
int MPI_Type_delete_attr(MPI_Datatype datatype, int type_keyval);
int MPI_Type_dup(MPI_Datatype oldtype, MPI_Datatype *newtype);
int MPI_Type_free_keyval(int *type_keyval);
int MPI_Type_get_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val, int *flag);
int MPI_Type_get_contents(MPI_Datatype datatype, int max_integers, int max_addresses,
int max_datatypes, int array_of_integers[],
MPI_Aint array_of_addresses[], MPI_Datatype array_of_datatypes[]) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_get_contents");
MPI_Aint array_of_addresses[], MPI_Datatype array_of_datatypes[]);
int MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers, int *num_addresses,
int *num_datatypes, int *combiner) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_get_envelope");
int MPI_Type_get_name(MPI_Datatype datatype, char *type_name, int *resultlen) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_get_name");
int MPI_Type_set_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_set_attr");
int MPI_Type_set_name(MPI_Datatype datatype, const char *type_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_set_name");
int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *datatype) MPICH_ATTR_WEAK_ALIAS("PMPI_Type_match_size");
int MPI_Win_call_errhandler(MPI_Win win, int errorcode) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_call_errhandler");
int *num_datatypes, int *combiner);
int MPI_Type_get_name(MPI_Datatype datatype, char *type_name, int *resultlen);
int MPI_Type_set_attr(MPI_Datatype datatype, int type_keyval, void *attribute_val);
int MPI_Type_set_name(MPI_Datatype datatype, const char *type_name);
int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *datatype);
int MPI_Win_call_errhandler(MPI_Win win, int errorcode);
int MPI_Win_create_keyval(MPI_Win_copy_attr_function *win_copy_attr_fn,
MPI_Win_delete_attr_function *win_delete_attr_fn, int *win_keyval,
void *extra_state) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_create_keyval");
int MPI_Win_delete_attr(MPI_Win win, int win_keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_delete_attr");
int MPI_Win_free_keyval(int *win_keyval) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_free_keyval");
int MPI_Win_get_attr(MPI_Win win, int win_keyval, void *attribute_val, int *flag) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_get_attr");
int MPI_Win_get_name(MPI_Win win, char *win_name, int *resultlen) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_get_name");
int MPI_Win_set_attr(MPI_Win win, int win_keyval, void *attribute_val) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_set_attr");
int MPI_Win_set_name(MPI_Win win, const char *win_name) MPICH_ATTR_WEAK_ALIAS("PMPI_Win_set_name");
int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr) MPICH_ATTR_WEAK_ALIAS("PMPI_Alloc_mem");
void *extra_state);
int MPI_Win_delete_attr(MPI_Win win, int win_keyval);
int MPI_Win_free_keyval(int *win_keyval);
int MPI_Win_get_attr(MPI_Win win, int win_keyval, void *attribute_val, int *flag);
int MPI_Win_get_name(MPI_Win win, char *win_name, int *resultlen);
int MPI_Win_set_attr(MPI_Win win, int win_keyval, void *attribute_val);
int MPI_Win_set_name(MPI_Win win, const char *win_name);
int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr);
int MPI_Comm_create_errhandler(MPI_Comm_errhandler_function *comm_errhandler_fn,