12#ifndef SST_CORE_SST_MPI_H
13#define SST_CORE_SST_MPI_H
15#include "warnmacros.h"
17#ifdef SST_CONFIG_HAVE_MPI
19DISABLE_WARN_MISSING_OVERRIDE
20DISABLE_WARN_CAST_FUNCTION_TYPE
27#define UNUSED_WO_MPI(x) x
31#define UNUSED_WO_MPI(x) UNUSED(x)
66#ifndef SST_CONFIG_HAVE_MPI
69#define MPI_Datatype int
73#define MPI_COMM_WORLD 0
77#define MPI_SIGNED_CHAR (sizeof(signed char))
78#define MPI_UNSIGNED_CHAR (sizeof(unsigned char))
79#define MPI_SHORT (sizeof(short))
80#define MPI_UNSIGNED_SHORT (sizeof(unsigned short))
81#define MPI_INT (sizeof(int))
82#define MPI_UNSIGNED (sizeof(unsigned))
83#define MPI_LONG (sizeof(long))
84#define MPI_UNSIGNED_LONG (sizeof(unsigned long))
86#define MPI_CHAR (sizeof(char))
87#define MPI_WCHAR (sizeof(wchar))
88#define MPI_FLOAT (sizeof(float))
89#define MPI_DOUBLE (sizeof(double))
91#define MPI_INT8_T (sizeof(int8_t))
92#define MPI_UINT8_T (sizeof(uint8_t))
93#define MPI_INT16_T (sizeof(int16_t))
94#define MPI_UINT16_T (sizeof(uint16_t))
95#define MPI_INT32_T (sizeof(int32_t))
96#define MPI_UINT32_T (sizeof(uint32_t))
97#define MPI_INT64_T (sizeof(int64_t))
98#define MPI_UINT64_T (sizeof(uint64_t))
111#define MPI_SHORT_INT (sizeof(mpi_short_int_t))
112#define MPI_LONG_INT (sizeof(mpi_long_int_t))
113#define MPI_FLOAT_INT (sizeof(mpi_float_int_t))
114#define MPI_DOUBLE_INT (sizeof(mpi_double_int_t))
126#define MPI_Status int
127#define MPI_STATUS_IGNORE 0
135int SST_MPI_Allreduce(
const void* sendbuf,
void* recvbuf,
int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
136int SST_MPI_Allgather(
const void* sendbuf,
int sendcount, MPI_Datatype sendtype,
void* recvbuf,
int recvcount,
137 MPI_Datatype recvtype, MPI_Comm comm);
138int SST_MPI_Bcast(
void* buffer,
int count, MPI_Datatype datatype,
int root, MPI_Comm comm);
141int SST_MPI_Barrier(MPI_Comm comm);
146int SST_MPI_Send(
const void* buf,
int count, MPI_Datatype datatype,
int dest,
int tag, MPI_Comm comm);
147int SST_MPI_Recv(
void* buf,
int count, MPI_Datatype datatype,
int source,
int tag, MPI_Comm comm, MPI_Status* status);
149int SST_MPI_GetRank();