[ Search |  Up Level |  Project home |  Index |  Class hierarchy ]

 MPIinterface.ox

Low-level routines that call MPI Library routines of the same name.

Your code can use these standalone global functions to interface with the MPI library.

To ask for the MPI library to be linked in, define MPI on the command line:
oxl -DMPI mymain.ox
If the shared CFMPI library cannot be found link error will be produced.

If you do not define MPI and your program includes CFMPI then a set of "fake" versions of the routines will be included. Your program will execute serially and calls to these functions end up in messages staying in the buffer.

 Global variables, functions

Variables
 fakebuffer static
 faketag static
Functions
 MPI_Allgather Gather in place all messages at all nodes: interface for MPI_Allgather().
 MPI_Allgatherv Gather variable length messages .
 MPI_Allsum Vector sum messages at all nodes in place.
 MPI_Barrier Make all nodes wait until this point is reached: interface to MPI_Barrier().
 MPI_Bcast Broadcast a message to all nodes: interface to MPI_Bcast().
 MPI_Exit
 MPI_Gather Gather all buffers at the client.
 MPI_Gatherv Gather variable length messages.
 MPI_Init Initialize the MPI environment: interface for MPI_Init().
 MPI_Recv Receive a message: interface for MPI_Recv().
 MPI_Send Send a message: interface for MPI_Send().
 MPI_Setdisplace Set the displacement amount for variable length gather.
 MPI_Sum Vector sum messages at client.

 Global

 fakebuffer

static decl fakebuffer

 faketag

static decl faketag

 MPI_Allgather

MPI_Allgather ( aBuffer , iCount )
Gather in place all messages at all nodes: interface for MPI_Allgather().
Parameters:
iCount integer, 0 send whole buffer
otherwise send first iCount elements

 MPI_Allgatherv

MPI_Allgatherv ( aBuffer )
Gather variable length messages .
Parameters:
Buffer address

 MPI_Allsum

MPI_Allsum ( aBuffer , iCount )
Vector sum messages at all nodes in place.
Parameters:
Buffer address
iCount integer, 0 send whole buffer
otherwise send first iCount elements

 MPI_Barrier

MPI_Barrier ( )
Make all nodes wait until this point is reached: interface to MPI_Barrier().

 MPI_Bcast

MPI_Bcast ( aBuffer , iCount )
Broadcast a message to all nodes: interface to MPI_Bcast().
Parameters:
Buffer address, message to broadcast to all nodes
iCount integer, 0 send whole buffer
otherwise send first iCount elements

 MPI_Exit

MPI_Exit ( )

 MPI_Gather

MPI_Gather ( aBuffer , iCount )
Gather all buffers at the client. Buffer at Client Node must be large enough to handle concatenation of all vectors.
Parameters:
Buffer address
iCount integer, 0 send whole buffer
otherwise send first iCount elements

 MPI_Gatherv

MPI_Gatherv ( aBuffer )
Gather variable length messages.
Parameters:
Buffer address,

 MPI_Init

MPI_Init ( aId , aNodes , aANY_TAG , aANY_SOURCE )
Initialize the MPI environment: interface for MPI_Init(). The external C routine calls MPI_Initialize() and stores key data in static C variables.
Parameters:
aId address, the MPI Rank or ID of this node returned
aNodes address, the number of nodes returned
aANY_TAG address, the integer tag for ANY_TAG in this MPI implementation returned
aANY_SOURCE addresss, the integer tag for ANY_SOURCE in this MPI implementation returned.

 MPI_Recv

MPI_Recv ( aBuffer , iSource , iTag , oSource , oTag , oError )
Receive a message: interface for MPI_Recv().
Parameters:
aBuffer address, vector message to send
iSource integer, ID of node to receive from (can be ANY_SOURCE)
iTag iteger, tag of message to receive (can be ANY_TAG)
oSource address actual source ID returned
oTag address actual tag returned
oError address error code returned

 MPI_Send

MPI_Send ( Buffer , iCount , iDest , iTag )
Send a message: interface for MPI_Send().
Parameters:
Buffer vector message to send
iCount integer, 0 send the whole buffer
otherwise only send the first iCount elements
iDest integer, ID of node to send message to
iTag integer, tag to accompany message.

 MPI_Setdisplace

MPI_Setdisplace ( iCount )
Set the displacement amount for variable length gather.
Parameters:
iCount integer

 MPI_Sum

MPI_Sum ( aBuffer , iCount )
Vector sum messages at client.
Parameters:
Buffer address
iCount integer, 0 send whole buffer
otherwise send first iCount elements