QCD_MP_Library (Rich) Messaging Fuctions.--- The Devil is the Details. ---------------------------------------------------------------------- QCD_MP_Init: Initialize the QCD_MP execution environment (MAYBE THIS IS JUST AN MPI CALL?) ---------------------------------------------------------------------- int QCD_MP_Init(int *argc, char ***argv) argc Pointer to the number of arguments argv Pointer to the argument vector ---------------------------------------------------------------------- QCD_MP_rec_alloc: Allocates receive buffer ---------------------------------------------------------------------- int QCD_MP_rec_alloc( void *buf, int count) buf initial address of receive buffer (integer) count number of bytes in receive buffer (integer) ---------------------------------------------------------------------- QCD_MP_send_alloc: Allocates send bugger ---------------------------------------------------------------------- int QCD_MP_send_alloc( void *buf, int count) buf initial address of send buffer (integer) count number of bytes in send buffer (integer) ---------------------------------------------------------------------- QCD_MP_Send: Performs a non blocking send ---------------------------------------------------------------------- int QCD_MP_Send( void *buf, int count, int dest,int tag) Input Parameters buf initial address of send buffer (choice) count number of bytes in send buffer (nonnegative integer) dest rank of destination (integer) tag message tag (integer) ---------------------------------------------------------------------- QCD_MP_Recv: ---------------------------------------------------------------------- int QCD_MP_Recv( void *buf, int count, int source, int tag) Output Parameters buf initial address of receive buffer Input Parameters count maximum number of elements in receive buffer (integer) source rank of source (integer) tag message tag (integer) ---------------------------------------------------------------------- QCD_MP_Wait Waits for an QCD_MP send or receive to complete ---------------------------------------------------------------------- int QCD_MP_Wait ( QCD_MP_Request *request, QCD_MP_Status *status) Input Parameter request request (handle) Output Parameter status status object (Status) ---------------------------------------------------------------------- QCD_MP_rank ---------------------------------------------------------------------- int QCD_MP_rank (int *rank ) Output Parameter rank rank of the calling process ---------------------------------------------------------------------- QCD_MP_Barrier: Blocks until all process have reached this routine. ---------------------------------------------------------------------- int QCD_MP_Barrier ( ) ---------------------------------------------------------------------- QCD_MP_Allreduce32: Combines values from all processes and distribute the result back to all processes ---------------------------------------------------------------------- int QCD_MP_Allreduce ( void *sendbuf, void *recvbuf, int count, int precesion, QCD_MP_Op op ) Input Parameters sendbuf starting address of send buffer count number of elements in send buffer (integer) precision number of bytes in flaoting point number op operation (handle) Output Parameter recvbuf starting address of receive buffer (choice) ---------------------------------------------------------------------- QCD_MP_Bcast: Broadcasts a message from the process with rank "root" to all other processes of the group. ---------------------------------------------------------------------- int QCD_MP_Bcast ( void *buffer, int count, int precesion, int root) Input/output Parameters buffer starting address of buffer (choice) count number of entries in buffer (integer) precision number of bytes in flaoting point number root rank of broadcast root (integer) ---------------------------------------------------------------------- QCD_MP_Finalize: Terminates QCD_MP execution environment ---------------------------------------------------------------------- int QCD_MP_Finalize() ------------------------------------------------------------------------ Chip suggests additional routines for strides, faces of sublattices, etc. ------------------------------------------------------------------------