File mpi.h

Defines

MPI_SUCCESS
MPI_ERR_OTHER
MPI_MAX_OBJECT_NAME

Custom Faabric MPI implementation Official MPI spec: https://www.mpi-forum.org/docs/ Open MPI repo: https://github.com/open-mpi/ompi

FAABRIC_COMM_WORLD

User-facing constants

FAABRIC_COMM_NULL
MPI_COMM_WORLD
MPI_COMM_NULL
FAABRIC_INT8
FAABRIC_INT16
FAABRIC_INT32
FAABRIC_INT
FAABRIC_INT64
FAABRIC_UINT8
FAABRIC_UINT16
FAABRIC_UINT32
FAABRIC_UINT
FAABRIC_UINT64
FAABRIC_LONG
FAABRIC_LONG_LONG
FAABRIC_LONG_LONG_INT
FAABRIC_FLOAT
FAABRIC_DOUBLE
FAABRIC_DOUBLE_INT
FAABRIC_CHAR
FAABRIC_C_BOOL
FAABRIC_BYTE
FAABRIC_DATATYPE_NULL
MPI_INT8_T
MPI_INT16_T
MPI_INT32_T
MPI_INT
MPI_INT64_T
MPI_UINT8_T
MPI_UINT16_T
MPI_UINT32_T
MPI_UINT_T
MPI_UINT64_T
MPI_LONG
MPI_LONG_LONG
MPI_LONG_LONG_INT
MPI_FLOAT
MPI_DOUBLE
MPI_DOUBLE_INT
MPI_CHAR
MPI_C_BOOL
MPI_BYTE
MPI_DATATYPE_NULL
FAABRIC_BOTTOM
FAABRIC_IN_PLACE
MPI_BOTTOM
MPI_IN_PLACE
FAABRIC_INFO_NULL
MPI_INFO_NULL
MPI_ANY_SOURCE
MPI_UNDEFINED
MPI_MAX_PROCESSOR_NAME
MPI_CART_MAX_DIMENSIONS
FAABRIC_OP_MAX
FAABRIC_OP_MIN
FAABRIC_OP_SUM
FAABRIC_OP_PROD
FAABRIC_OP_LAND
FAABRIC_OP_LOR
FAABRIC_OP_BAND
FAABRIC_OP_BOR
FAABRIC_OP_MAXLOC
FAABRIC_OP_MINLOC
FAABRIC_OP_NULL
MPI_MAX
MPI_MIN
MPI_SUM
MPI_PROD
MPI_LAND
MPI_LOR
MPI_BAND
MPI_BOR
MPI_MAXLOC
MPI_MINLOC
MPI_OP_NULL
MPI_STATUS_IGNORE
MPI_STATUSES_IGNORE
MPI_WIN_BASE
MPI_WIN_SIZE
MPI_WIN_DISP_UNIT
MPI_WIN_CREATE_FLAVOR
MPI_WIN_MODEL

Typedefs

typedef struct faabric_op_t *MPI_Op
typedef struct faabric_communicator_t *MPI_Comm
typedef struct faabric_datatype_t *MPI_Datatype
typedef struct faabric_status_public_t MPI_Status
typedef struct faabric_message_t *MPI_Message
typedef struct faabric_info_t *MPI_Info
typedef struct faabric_request_t *MPI_Request
typedef struct faabric_group_t *MPI_Group
typedef struct faabric_win_t *MPI_Win
typedef ptrdiff_t MPI_Aint
typedef int MPI_Fint
typedef long MPI_Offset
void() MPI_User_function (void *, void *, int *, MPI_Datatype *)

Enums

enum [anonymous]

Values:

enumerator MPI_COMM_TYPE_SHARED
enum [anonymous]

Values:

enumerator MPI_THREAD_SINGLE
enumerator MPI_THREAD_FUNNELED
enumerator MPI_THREAD_SERIALIZED
enumerator MPI_THREAD_MULTIPLE

Functions

struct faabric_datatype_t *getFaabricDatatypeFromId(int datatypeId)
int MPI_Init(int *argc, char ***argv)
int MPI_Initialized(int *flag)
int MPI_Get_version(int *version, int *subversion)
int MPI_Finalized(int *flag)
int MPI_Finalize(void)
int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
int MPI_Rsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
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)
int MPI_Abort(MPI_Comm comm, int errorcode)
int MPI_Get_count(const MPI_Status *status, MPI_Datatype datatype, int *count)
int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status)
int MPI_Barrier(MPI_Comm comm)
int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
int MPI_Scatter(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
int MPI_Gather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
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)
int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
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)
int MPI_Reduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
int MPI_Reduce_scatter(const void *sendbuf, void *recvbuf, const int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
int MPI_Allreduce(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
int MPI_Scan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
int MPI_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
int MPI_Cart_create(MPI_Comm old_comm, int ndims, const int dims[], const int periods[], int reorder, MPI_Comm *comm)
int MPI_Cart_rank(MPI_Comm comm, int coords[], int *rank)
int MPI_Cart_get(MPI_Comm comm, int maxdims, int dims[], int periods[], int coords[])
int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest)
int MPI_Type_size(MPI_Datatype type, int *size)
int MPI_Type_free(MPI_Datatype *datatype)
int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr)
int MPI_Win_fence(int assert, 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)
int MPI_Win_shared_query(MPI_Win win, int rank, MPI_Aint *size, int *disp_unit, void *baseptr)
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)
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)
int MPI_Win_free(MPI_Win *win)
int MPI_Win_create(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win)
int MPI_Get_processor_name(char *name, int *resultlen)
int MPI_Win_get_attr(MPI_Win win, int win_keyval, void *attribute_val, int *flag)
int MPI_Free_mem(void *base)
int MPI_Request_free(MPI_Request *request)
int MPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype)
int MPI_Type_commit(MPI_Datatype *type)
int MPI_Isend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)
double MPI_Wtime(void)
int MPI_Wait(MPI_Request *request, MPI_Status *status)
int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status *array_of_statuses)
int MPI_Waitany(int count, MPI_Request array_of_requests[], int *index, MPI_Status *status)
int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm)
int MPI_Comm_group(MPI_Comm comm, MPI_Group *group)
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm)
MPI_Fint MPI_Comm_c2f(MPI_Comm comm)
MPI_Comm MPI_Comm_f2c(MPI_Fint comm)
int MPI_Group_incl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup)
int MPI_Comm_rank(MPI_Comm comm, int *rank)
int MPI_Comm_size(MPI_Comm comm, int *size)
int MPI_Comm_create_group(MPI_Comm comm, MPI_Group group, int tag, MPI_Comm *newcomm)
int MPI_Comm_free(MPI_Comm *comm)
int MPI_Comm_split_type(MPI_Comm comm, int split_type, int key, MPI_Info info, MPI_Comm *newcomm)
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm)
int MPI_Group_free(MPI_Group *group)
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)
int MPI_Query_thread(int *provided)
int MPI_Init_thread(int *argc, char ***argv, int required, int *provided)
int MPI_Op_create(MPI_User_function *user_fn, int commute, MPI_Op *op)
int MPI_Op_free(MPI_Op *op)

Variables

struct faabric_communicator_t faabric_comm_world
struct faabric_communicator_t faabric_comm_null
struct faabric_datatype_t faabric_type_int8
struct faabric_datatype_t faabric_type_int16
struct faabric_datatype_t faabric_type_int32
struct faabric_datatype_t faabric_type_int
struct faabric_datatype_t faabric_type_int64
struct faabric_datatype_t faabric_type_uint8
struct faabric_datatype_t faabric_type_uint16
struct faabric_datatype_t faabric_type_uint32
struct faabric_datatype_t faabric_type_uint
struct faabric_datatype_t faabric_type_uint64
struct faabric_datatype_t faabric_type_long
struct faabric_datatype_t faabric_type_long_long
struct faabric_datatype_t faabric_type_long_long_int
struct faabric_datatype_t faabric_type_float
struct faabric_datatype_t faabric_type_double
struct faabric_datatype_t faabric_type_double_int
struct faabric_datatype_t faabric_type_char
struct faabric_datatype_t faabric_type_c_bool
struct faabric_datatype_t faabric_type_byte
struct faabric_datatype_t faabric_type_null
struct faabric_info_t faabric_info_null
struct faabric_op_t faabric_op_max
struct faabric_op_t faabric_op_min
struct faabric_op_t faabric_op_sum
struct faabric_op_t faabric_op_prod
struct faabric_op_t faabric_op_land
struct faabric_op_t faabric_op_lor
struct faabric_op_t faabric_op_band
struct faabric_op_t faabric_op_bor
struct faabric_op_t faabric_op_maxloc
struct faabric_op_t faabric_op_minloc
struct faabric_op_t faabric_op_null
struct faabric_status_public_t

Public Members

int MPI_SOURCE
int MPI_TAG
int MPI_ERROR
int bytesSize
struct faabric_datatype_t

Public Members

int id
int size
struct faabric_communicator_t

Public Members

int id
struct faabric_message_t

Public Members

int id
struct faabric_win_t

Public Members

int worldId
int rank
int size
void *basePtr
int dispUnit
struct faabric_op_t

Public Members

int id
struct faabric_info_t

Public Members

int id
struct faabric_request_t

Public Members

int id
struct faabric_group_t

Public Members

int id