Sun MPI 4.0 Programming and Reference Guide

Sun MPI Routines

Table A-1 lists the Sun MPI routines in alphabetical order. The following sections list the routines by functional category.

Point-to-Point Communication

Blocking Routines

MPI_Send
MPI_Bsend
MPI_Ssend
MPI_Rsend
MPI_Recv
MPI_Sendrecv
MPI_Sendrecv_replace

Nonblocking Routines

MPI_Isend
MPI_Ibsend
MPI_Issend
MPI_Irsend
MPI_Irecv

Communication Buffer Allocation

MPI_Buffer_attach
MPI_Buffer_detach

Status Data Structure

MPI_Get_count
MPI_Get_elements

Persistent (Half-Channel) Communication

MPI_Send_init
MPI_Bsend_init
MPI_Rsend_init
MPI_Ssend_init
MPI_Recv_init
MPI_Start
MPI_Startall

Completion Tests

MPI_Wait
MPI_Waitany
MPI_Waitsome
MPI_Waitall
MPI_Test
MPI_Testany
MPI_Testsome
MPI_Testall
MPI_Request_free
MPI_Cancel
MPI_Test_cancelled

Probing for Messages (Blocking/Nonblocking)

MPI_Probe
MPI_Iprobe

Packing and Unpacking Functions

MPI_Pack
MPI_Pack_size
MPI_Unpack

Derived Data Type Constructors and Functions

MPI_Address: Deprecated - Use MPI_Get_address. 
MPI_Type_commit
MPI_Type_contiguous
MPI_Type_create_indexed_block
MPI_Type_create_keyval 
MPI_Type_delete_attr 
MPI_Type_dup
MPI_Type_free_keyval 
MPI_Type_get_attr 
MPI_Type_set_attr 
MPI_Type_get_contents 
MPI_Type_get_envelope 
MPI_Type_get_name 
MPI_Type_set_name 
MPI_Type_create_resized 
MPI_Type_free
MPI_Type_get_true_extent 
MPI_Type_hvector: Deprecated - Use
MPI_Type_create_hvector. 
MPI_Type_indexed
MPI_Type_hindexed: Deprecated - Use
MPI_Type_create_hindexed. 
MPI_Type_struct: Deprecated - Use
MPI_Type_create_struct. 
MPI_Type_lb: Deprecated - Use
MPI_Type_get_extent. 
MPI_Type_ub: Deprecated - Use
MPI_Type_get_extent. 
MPI_Type_vectorMPI_Type_extent: Deprecated - Use
MPI_Type_get_extent. 
MPI_Type_size

Collective Communication

Barrier

MPI_Barrier

Broadcast

MPI_Bcast

Processor Gather/Scatter

MPI_Gather
MPI_Gatherv
MPI_Allgather
MPI_Allgatherv
MPI_Scatter
MPI_Scatterv
MPI_Alltoall
MPI_Alltoallv

Global Reduction/Scan Operations

MPI_Reduce
MPI_Allreduce
MPI_Reduce_scatter
MPI_Scan
MPI_Op_create
MPI_Op_free

Groups, Contexts, and Communicators

Group Management

Group Accessors

MPI_Group_size
MPI_Group_rank
MPI_Group_translate_ranks
MPI_Group_compare 

Group Constructors

MPI_Comm_group
MPI_Group_union
MPI_Group_intersection
MPI_Group_difference
MPI_Group_incl
MPI_Group_excl
MPI_Group_range_incl
MPI_Group_range_excl
MPI_Group_free

Communicator Management

Communicator Accessors

MPI_Comm_size
MPI_Comm_rank
MPI_Comm_compare

Communicator Constructors

MPI_Comm_dup
MPI_Comm_create
MPI_Comm_split
MPI_Comm_free

Intercommunicators

MPI_Comm_test_inter
MPI_Comm_remote_group
MPI_Comm_remote_size
MPI_Intercomm_create
MPI_Intercomm_merge

Communicator Attributes

MPI_Keyval_create: Deprecated - Use
MPI_Comm_create_keyval. 
MPI_Keyval_free: Deprecated - Use
MPI_Comm_free_keyval. 
MPI_Attr_put: Deprecated - Use
MPI_Comm_set_attr. 
MPI_Attr_get: Deprecated - Use
MPI_Comm_get_attr. 
MPI_Attr_delete: Deprecated - Use
MPI_Comm_delete_attr. 

Process Topologies

MPI_Cart_create
MPI_Dims_create
MPI_Graph_create
MPI_Topo_test
MPI_Graphdims_get
MPI_Graph_get
MPI_Cartdim_get
MPI_Cart_get
MPI_Cart_rank
MPI_Cart_coords
MPI_Graph_neighbors
MPI_Graph_neighbors_count 
MPI_Cart_shift
MPI_Cart_sub
MPI_Cart_map
MPI_Graph_map

Process Creation and Management

Establishing Communication

MPI_Close_port 
MPI_Comm_accept 
MPI_Comm_connect 
MPI_Comm_disconnect
MPI_Open_port 

Process Manager Interface

MPI_Comm_get_parent
MPI_Comm_spawn
MPI_Comm_spawn_multiple

Environmental Inquiry Functions and Profiling

Startup and Shutdown

MPI_Init
MPI_Finalize
MPI_Finalized
MPI_Initialized
MPI_Abort
MPI_Get_processor_name
MPI_Get_version

Error Handler Functions

MPI_Errhandler_create: Deprecated - Use
MPI_Comm_create_errhandler. 
MPI_Errhandler_set: Deprecated - Use
MPI_Comm_set_errhandler. 
MPI_Errhandler_get: Deprecated - Use
MPI_Comm_get_errhandler. 
MPI_Errhandler_free
MPI_Error_string
MPI_Error_class

Info Objects

MPI_Info_create 
MPI_Info_delete 
MPI_Info_dup 
MPI_Info_free 
MPI_Info_get 
MPI_Info_get_nkeys 
MPI_Info_get_nthkey 
MPI_Info_get_valuelen 
MPI_Info_set 

Timers

MPI_Wtime 
MPI_Wtick

Profiling

MPI_Pcontrol

Miscellaneous

Associating Information With Status

MPI_Status_set_cancelled 
MPI_Status_set_elements

Generalized Requests

MPI_Grequest_complete 
MPI_Grequest_start

Naming Objects

MPI_Comm_get_name 
MPI_Comm_set_name 
MPI_Type_get_name 
MPI_Type_set_name 

Threads

MPI_Query_thread

Handle Translation

MPI_Comm_c2f
MPI_Comm_f2c
MPI_Group_c2f
MPI_Group_f2c
MPI_Info_c2f
MPI_Info_f2c
MPI_Op_c2f
MPI_Op_f2c
MPI_Request_c2f
MPI_Request_f2c
MPI_Type_c2f
MPI_Type_f2c

Status Conversion

MPI_Status_c2f
MPI_Status_f2c

MPI Routines: Alphabetical Listing

Table A-1 Sun MPI Routines

Routine and C Syntax 

Description 

MPI_Abort(MPI_Comm comm, int errorcode)

Terminates MPI execution environment.  

MPI_Address(void *location, MPI_Aint *address)

Deprecated: Use instead MPI_Get_address. Gets the address of a location in memory.

MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)

Gathers data from all processes and distributes it to all.  

MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcount, int *displs, MPI_Datatype recvtype, MPI_Comm comm)

Gathers data from all processes and delivers it to all. Each process may contribute a different amount of data.  

MPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)

Combines values from all processes and distributes the result back to all processes.  

MPI_Alltoall(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)

Sends data from all to all processes.  

MPI_Alltoallv(void *sendbuf, int *sendcounts, int *sdispls, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *rdispls, MPI_Datatype recvtype, MPI_Comm comm)

Sends data from all to all processes, with a displacement. Each process may contribute a different amount of data.  

MPI_Attr_delete(MPI_Comm comm, int keyval)

Deprecated: Use instead MPI_Comm_delete_attr. Deletes attribute value associated with a key.

MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)

Deprecated: Use instead MPI_Comm_get_attr. Retrieves attribute value by key.

MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)

Deprecated: Use instead MPI_Comm_set_attr. Stores attribute value associated with a key.

MPI_Barrier(MPI_Comm comm)

Blocks until all processes have reached this routine.  

MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)

Broadcasts a message from the process with rank root to all other processes of the group.

MPI_Bsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)

Basic send with user-specified buffering.  

MPI_Bsend_init(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Builds a handle for a buffered send.  

MPI_Buffer_attach(void *buf, int size)

Attaches a user-defined buffer for sending.  

MPI_Buffer_detach(void *buf, int *size)

Removes an existing buffer (for use in MPI_Bsend, etc.).

MPI_Cancel(MPI_Request *request)

Cancels a communication request.  

MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int *coords)

Determines process coordinates in Cartesian topology given rank in group.  

MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods, int reorder, MPI_Comm *comm_cart)

Makes a new communicator to which topology information has been attached.  

MPI_Cart_get(MPI_Comm comm, int maxdims, int *dims, int *periods, int *coords)

Retrieves Cartesian topology information associated with a communicator.  

MPI_Cart_map(MPI_Comm comm, int ndims, int *dims, int *periods, int *newrank)

Maps process to Cartesian topology information.  

MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank)

Determines process rank in communicator given Cartesian location.  

MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source, int *rank_dest)

Returns the shifted source and destination ranks, given a shift direction and amount.  

MPI_Cart_sub(MPI_Comm comm, int *remain_dims, MPI_Comm *comm_new)

Partitions a communicator into subcommunicators, which form lower-dimensional Cartesian subgrids.  

MPI_Cartdim_get(MPI_Comm comm, int *ndims)

Retrieves Cartesian topology information associated with a communicator.  

MPI_Close_port(char *port_name)

Releases the specified network address.  

MPI_Comm_c2f(MPI_Comm comm)

Translates a C handle into a Fortran handle.  

MPI_Comm_accept(char *port_name, MPI_Info info, int root, MPI_Comm comm, MPI_Comm *newcomm)

Establishes communication with a client (collective). 

MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result)

Compares two communicators.  

MPI_Comm_connect(char *port_name, MPI_Info info, int root, MPI_Comm comm, MPI_Comm *newcomm)

Establishes communication with a server (collective). 

MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm)

Creates a new communicator from a group.  

MPI_Comm_create_errhandler(MPI_Comm_errhandler_fn *function,

MPI_Errhandler *errhandler)

Creates an error handler that can be attached to communicators. 

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)

Generates a new attribute key.  

MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval)

Deletes attribute value associated with a key.  

MPI_Comm_disconnect(MPI_Comm *comm)

Deallocates communicator object and sets handle to MPI_COMM_NULL (collective).

MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm)

Duplicates an existing communicator with all its cached information.  

MPI_Comm_f2c(MPI_Fint comm)

Translates a Fortran handle into a C handle. 

MPI_Comm_free(MPI_Comm *comm)

Marks the communicator object for deallocation.  

MPI_Comm_free_keyval(int *comm_keyval)

Frees attribute key for communicator cache attribute.  

MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attribute_val, int *flag)

Retrieves attribute value by key.  

MPI_Comm_get_errhandler(MPI_Comm comm, MPI_Errhandler *errhandler)

Retrieves error handler associated with a communicator.  

MPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen)

Returns the name that was most recently associated with a communicator.  

MPI_Comm_get_parent(MPI_Comm *parent)

Returns the parent intercommunicator of current spawned process.  

MPI_Comm_group(MPI_Comm comm, MPI_Group *group)

Accesses the group associated with a communicator.  

MPI_Comm_rank(MPI_Comm comm, int *rank)

Determines the rank of the calling process in a communicator.  

MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group)

Accesses the remote group associated with an intercommunicator.  

MPI_Comm_remote_size(MPI_Comm comm, int size)

Determines the size of the remote group associated with an intercommunicator.  

MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val)

Stores attribute value associated with a key.  

MPI_Comm_set_errhandler(MPI_Comm comm, MPI_Errhandler *errhandler)

Attaches a new error handler to a communicator.  

MPI_Comm_set_name(MPI_Comm comm, char *comm_name)

Associates a name with a communicator.  

MPI_Comm_size(MPI_Comm comm, int *size)

Determines the size of the group associated with a communicator.  

MPI_Comm_spawn(char *command, char *argv[], int maxprocs, MPI_Info info, int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[])

Spawns a number of identical binaries. 

MPI_Comm_spawn_multiple(int count, char *array_of_commands[], char **array_of_argv[], int array_of_maxprocs[], MPI_Info array_of_info[], int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[])

Spawns multiple binaries, or the same binary with multiple sets of arguments.  

MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm)

Creates new communicators based on colors and keys.  

MPI_Comm_test_inter(MPI_Comm comm, int *flag)

Tests whether a communicator is an intercommunicator.  

MPI_Dims_create(int nnodes, int ndims, int *dims)

Creates a division of processors in a Cartesian grid.  

MPI_Errhandler_create(MPI_Handler_function *function, MPI_Errhandler *errhandler)

Deprecated: Use instead MPI_Comm_create_errhandler. Creates an MPI error handler.

MPI_Errhandler_free(MPI_Errhandler *errhandler)

Frees an MPI error handler.  

MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)

Deprecated: Use instead MPI_Comm_get_errhandler. Gets the error handler for a communicator.

MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)

Deprecated: Use instead MPI_Comm_set_errhandler. Sets the error handler for a communicator.

MPI_Error_class(int errorcode, int *errorclass)

Converts an error code into an error class.  

MPI_Error_string(int errorcode, char *string, int *resultlen)

Returns a string for a given error code.  

MPI_Finalize()

Terminates MPI execution environment.  

MPI_Finalized(int *flag)

Checks whether MPI_Finalize has completed.

MPI_Gather(void *sendbuf, int *sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)

Gathers values from a group of processes.  

MPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, int root, MPI_Comm comm)

Gathers into specified locations from all processes in a group. Each process may contribute a different amount of data.  

MPI_Get_address(void *location, MPI_Aint *address)

Gets the address of a location in memory.  

MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count)

Gets the number of top-level elements received.  

MPI_Get_elements(MPI_Status *status, MPI_Datatype datatype, int *count)

Returns the number of basic elements in a data type.  

MPI_Get_processor_name(char *name, int *resultlen)

Gets the name of the processor.  

MPI_Get_version(int *version, int *subversion)

Returns the version of the standard corresponding to the current implementation. 

MPI_Graph_create(MPI_Comm comm_old, int nnodes, int *index, int *edges, int reorder, MPI_Comm *comm_graph)

Makes a new communicator to which graph topology information has been attached.  

MPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, int *index, int *edges)

Retrieves graph topology information associated with a communicator.  

MPI_Graph_map(MPI_Comm comm, int nnodes, int *index, int *edges, int *newrank)

Maps process to graph topology information.  

MPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, int *neighbors)

Returns the neighbors of a node associated with a graph topology.  

MPI_Graph_neighbors_count(MPI_Comm comm, int rank, int *nneighbors)

Returns the number of neighbors of a node associated with a graph topology.  

MPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges)

Retrieves graph topology information associated with a communicator.  

MPI_Grequest_complete(MPI_Request request)

Reports that a generalized request is complete. 

MPI_Grequest_start(MPI_Grequest_query_function *query_fn, MPI_Grequest_free_function *free_fn, MPI_Greqeust_cancel_function *cancel_fn, void *extra_state, MPI_Request *request)

Starts a generalized request and returns a handle to it.  

MPI_Group_c2f(MPI_Group group)

Translates a C handle into a Fortran handle. 

MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result)

Compares two groups.  

MPI_Group_difference(MPI_Group group1, MPI_Group group2, MPI_Group *group_out)

Makes a group from the difference of two groups.  

MPI_Group_excl(MPI_Group group, int n, int *ranks, MPI_Group *newgroup)

Produces a group by reordering an existing group and taking only unlisted members.  

MPI_Group_f2c(MPI_Fint group)

Translates a Fortran handle into a C handle. 

MPI_Group_free(MPI_Group *group)

Frees a group.  

MPI_Group_incl(MPI_Group group, int n, int *ranks, MPI_Group *group_out)

Produces a group by reordering an existing group and taking only listed members.  

MPI_Group_intersection(MPI_Group group1, MPI_Group group2, MPI_Group *group_out)

Produces a group at the intersection of two existing groups.  

MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup)

Produces a group by excluding ranges of processes from an existing group.  

MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], MPI_Group *newgroup)

Creates a new group from ranges of ranks in an existing group.  

MPI_Group_rank(MPI_Group group, int *rank)

Returns the rank of this process in the given group.  

MPI_Group_size(MPI_Group group, int *size)

Returns the size of a group.  

MPI_Group_translate_ranks(MPI_Group group1, int n, int *ranks1, MPI_Group group2, int *ranks2)

Translates the ranks of processes in one group to those in another group.  

MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *group_out)

Produces a group by combining two groups.  

MPI_Ibsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Starts a nonblocking buffered send.  

MPI_Info_c2f(MPI_Info info)

Translates a C handle into a Fortran handle. 

MPI_Info_create(MPI_Info *info)

Creates a new info object. 

MPI_Info_delete(MPI_Info *info, char *key, char *value)

Deletes a key/value pair from info. 

MPI_Info_dup(MPI_Info info, MPI_Info *newinfo)

Duplicates an info object. 

MPI_Info_f2c(MPI_Fint info)

Translates a Fortran handle into a C handle. 

MPI_Info_free(MPI_Info *info)

Frees info and sets it to MPI_INFO_NULL.

MPI_Info_get(MPI_Info *info, char *key, char *value)

Retrieves key value for an info object. 

MPI_Info_get_nkeys(MPI_Info info, int *nkeys)

Returns the number of currently defined keys in info. 

MPI_Info_get_nthkey(MPI_Info info, int n, char *key)

Returns the nth defined key in info.

MPI_Info_get_valuelen(MPI_Info info, char *key, int *valuelen, int *flag)

Retrieves the length of the key value associated with an info object.  

MPI_Info_set(MPI_Info *info, char *key, char *value)

Adds a key/value pair to info. 

MPI_Init(int *argc, char ***argv)

Initializes the MPI execution environment.  

MPI_Initialized(int *flag)

Indicates whether MPI_Init has been called.

MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *newintercomm)

Creates an intercommunicator.  

MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm

Creates an intracommunicator from an intercommunicator.  

MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status)

Nonblocking test for a message.  

MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)

Begins a nonblocking receive.  

MPI_Irsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Begins a nonblocking ready send.  

MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Begins a nonblocking send.  

MPI_Issend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Begins a nonblocking synchronous send.  

MPI_Keyval_create(MPI_Copy_function *copy_fn, MPI_Delete_function *delete_fn, int *keyval, void *extra_state)

Deprecated: Use instead MPI_Comm_create_keyval. Generates a new attribute key.

MPI_Keyval_free(int *keyval)

Deprecated: Use instead MPI_Comm_free_keyval. Frees attribute key for communicator cache attribute.

MPI_Op_c2f(MPI_Op op)

Translates a C handle into a Fortran handle.  

MPI_Op_create(MPI_User_function *function, int commute, MPI_Op *op)

Creates a user-defined combination function handle.  

MPI_Op_f2c(MPI_Fint op)

Translates a Fortran handle into a C handle. 

MPI_Op_free(MPI_Op *op)

Frees a user-defined combination function handle.  

MPI_Open_port(MPI_Info info, char *port_name)

Establishes a network address for a server to accept connections from clients. 

MPI_Pack(void *inbuf, int incount, MPI_Datatype datatype, void *outbuf, int outsize, int *position, MPI_Comm comm)

Packs data of a given data type into contiguous memory.  

MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int *size)

Returns the upper bound on the amount of space needed to pack a message.  

MPI_Pcontrol(int level, ...)

Controls profiling.  

MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status)

Blocking test for a message.  

MPI_Query_thread(int *provided)

Returns the current level of thread support. 

MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)

Performs a standard receive.  

MPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)

Builds a persistent receive request handle.  

MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)

Reduces values on all processes to a single value.  

MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)

Combines values and scatters the results.  

MPI_Request_c2f(MPI_Request request)

Translates a C handle into a Fortran handle. 

MPI_Request_f2c(MPI_Fint request)

Translates a Fortran handle into a C handle. 

MPI_Request_free(MPI_Request *request)

Frees a communication request object.  

MPI_Request_get_status(MPI_Request request, int *flag, MPI_Status *status)

Accesses information associated with a request without freeing the request.  

MPI_Rsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)

Performs a ready send.  

MPI_Rsend_init(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Builds a persistent ready send request handle.  

MPI_Scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)

Computes the scan (partial reductions) of data on a collection of processes.  

MPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)

Sends data from one task to all other processes in a group.  

MPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)

Scatters a buffer in parts to all processes in a group.  

MPI_Send(int *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)

Performs a standard send.  

MPI_Send_init(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Builds a persistent send request handle.  

MPI_Sendrecv(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)

Sends and receives two messages at the same time.  

MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, MPI_Status *status)

Sends and receives using a single buffer.  

MPI_Ssend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)

Performs a synchronous send.  

MPI_Ssend_init(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

Builds a persistent synchronous send request handle.  

MPI_Start(MPI_Request *request)

Initiates a communication using a persistent request handle.  

MPI_Startall(int count, MPI_Request array_of_requests[])

Starts a collection of requests.  

MPI_Status_c2f(MPI_Status *c_status, MPI_Fint *f_status)

Translates a C status into a Fortran status. 

MPI_Status_f2c(MPI_Fint *f_status, MPI_Status *c_status)

Translates a Fortran status into a C status. 

MPI_Status_set_cancelled(MPI_Status *status, int flag)

Sets status to indicate a request has been cancelled.

MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype, int count)

Modifies opaque part of status to allow MPI_Get_elements to return count.

MPI_Test(MPI_Request *request, int *flag, MPI_Status *status)

Tests for the completion of a send or receive.  

MPI_Test_cancelled(MPI_Status *status, int *flag)

Tests whether a request was canceled.  

MPI_Testall(int count, MPI_Request array_of_requests, int *flag, MPI_Status *array_of_statuses)

Tests for the completion of all of the given communications.  

MPI_Testany(int count, MPI_Request array_of_requests[], int *index, int *flag, MPI_Status status)

Tests for completion of any of the given communications.  

MPI_Testsome(int incount, MPI_Request array_of_requests[], int *outcount, int *array_of_indices, MPI_Status *array_of_statuses)

Tests for some given communications to complete.  

MPI_Topo_test(MPI_Comm comm, int *top_type)

Determines the type of topology (if any) associated with a communicator.  

MPI_Type_c2f(MPI_Datatype datatype)

Translates a C handle into a Fortran handle.  

MPI_Type_commit(MPI_Datatype *datatype)

Commits a data type.  

MPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates a contiguous data type.  

MPI_Type_create_darray(int size, int rank, int ndims, int array_of_gsizes[], int array_of_distribs[], int array_of_dargs[], int array_of_psizes[], int order, MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates an array of data types.  

MPI_Type_create_hindexed(int count, int array_of_blocklengths, MPI_Aint array_of_displacements[], MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates an indexed data type with offsets in bytes.  

MPI_Type_create_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates a vector (strided) data type with offset in bytes.  

MPI_Type_create_indexed_block(int count, int blocklength, int array_of_displacements[], MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates an indexed block.  

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)

Generates a new attribute key.  

MPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb, MPI_Aint extent, MPI_Datatype *newtype)

Returns a new data type with new extent and upper and lower bounds.  

MPI_Type_create_struct(int count, int array_of_blocklengths[], MPI_Aint array_of_displacements[], MPI_Datatype array_of_types[], MPI_Datatype *newtype)

Creates a struct data type.

MPI_Type_create_subarray(int ndims, int array_of_sizes[], int array_of_subsizes[], int array_of_starts[], int order, MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates a data type describing a subarray of an array.  

MPI_Type_delete_attr(MPI_Datatype type, int type_keyval)

Deletes attribute value associated with a key.  

MPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype)

Duplicates a data type with associated key values. 

MPI_Type_extent(MPI_Datatype datatype, MPI_Aint *extent)

Deprecated: Use instead MPI_Type_get_extent. Returns the extent of a data type, the difference between the upper and lower bounds of the data type.

MPI_Type_f2c(MPI_Fint datatype)

Translates a Fortran handle into a C handle. 

MPI_Type_free(MPI_Datatype *datatype)

Frees a data type.  

MPI_Type_free_keyval(int *type_keyval)

 

MPI_Type_get_attr(MPI_Datatype type, int type_keyval, void *attribute_val, int *flag)

Returns the attribute associated with a data type. 

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[])

Returns information about arguments used in creation of a data type.  

MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers, int *num_addresses, int *num_datatypes, int *combiner)

Returns information about input arguments associated with a data type.  

MPI_Type_get_extent(MPI_Datatype datatype, MPI_Aint *lb, MPI_Aint *extent)

Returns the lower bound and extent of a data type.  

MPI_Type_get_name(MPI_Datatype type, char *type_name, int *resultlen)

Gets the name of a data type. 

MPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *true_lb, MPI_Aint *true_extent)

Returns the true lower bound and extent of a data type's corresponding typemap, ignoring MPI_UB and MPI_LB markers.

MPI_Type_hindexed(int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype)

Deprecated: Use instead MPI_Type_create_hindexed. Creates an indexed data type with offsets in bytes.

MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype, MPI_Datatype *newtype)

Deprecated: Use instead MPI_Type_create_hvector. Creates a vector (strided) data type with offset in bytes.

MPI_Type_indexed(int count, int *array_of_blocklengths, int *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates an indexed data type.  

MPI_Type_lb(MPI_Datatype datatype, MPI_Aint *displacement)

Deprecated: Use instead MPI_Type_get_extent. Returns the lower bound of a data type.

MPI_Type_set_attr(MPI_Datatype type, int type_keyval, void *attribute_val)

Stores attribute value associated with a key.  

MPI_Type_set_name(MPI_Comm comm, char *comm_name)

Sets the name of a data type. 

MPI_Type_size(MPI_Datatype datatype, int *size)

Returns the number of bytes occupied by entries in the data type.  

MPI_Type_struct(int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype *array_of_types, MPI_Datatype *newtype)

Deprecated: Use instead MPI_Type_create_struct. Creates a struct data type.

MPI_Type_ub(MPI_Datatype datatype, MPI_Aint *displacement)

Deprecated: Use instead MPI_Type_get_extent. Returns the upper bound of a data type.

MPI_Type_vector(int count, int blocklength, int stride, MPI_Datatype oldtype, MPI_Datatype *newtype)

Creates a vector (strided) data type.  

MPI_Unpack(void *inbuf, int insize, int *position, void *outbuf, int outcount, MPI_Datatype datatype, MPI_Comm comm)

Unpacks a data type into contiguous memory.  

MPI_Wait(MPI_Request *request, MPI_Status *status)

Waits for an MPI send or receive to complete.  

MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[])

Waits for all of the given communications to complete.  

MPI_Waitany(int count, MPI_Request array_of_requests[], int *index, MPI_Status *status)

Waits for any of the given communications to complete.  

MPI_Waitsome(int incount, MPI_Request array_of_requests[], int *outcount, int array_of_indices[], MPI_Status array_of_statuses[])

Waits for some given communications to complete.  

double MPI_Wtick()

Returns the resolution of MPI_Wtime.

double MPI_Wtime()

Returns an elapsed time on the calling processor.