documentation for ListSend functions
authorFilippo Gioachin <gioachin@illinois.edu>
Sat, 9 Apr 2005 07:37:42 +0000 (07:37 +0000)
committerFilippo Gioachin <gioachin@illinois.edu>
Sat, 9 Apr 2005 07:37:42 +0000 (07:37 +0000)
doc/converse/cmi.tex
src/conv-core/convcore.c

index 9baf576c4f4e1541533e7573725c7dce7edc5418..e40f4ceea58a07ee51c3b0ccb55571cdaf220bef 100644 (file)
@@ -406,6 +406,7 @@ Group IDs are useful for the multicast functions below.}
 
 \function{CmiGroup CmiEstablishGroup(int npes, int *pes);}
 \index{CmiGroup}
+\index{CmiEstablishGroup}
 \desc{Converts an array of processor numbers into a group ID.  Group
 IDs are useful for the multicast functions below.  Caution: this call
 uses up some resources.  In particular, establishing a group uses 
@@ -413,13 +414,13 @@ some network bandwidth (one broadcast's worth) and a small amount of
 memory on all processors.}
 
 \function{void CmiSyncMulticast(CmiGroup grp, unsigned int size, void *msg)}
-\index{CmiSyncBroadcast}
+\index{CmiSyncMulticast}
 \desc{Sends \uw{msg} of length \uw{size} bytes to all members
 of the specified group.  Group IDs are created using
 \kw{CmiEstablishGroup}.}
 
 \function{void CmiSyncMulticastAndFree(CmiGroup grp, unsigned int size, void *msg)}
-\index{CmiSyncBroadcastAndFree}
+\index{CmiSyncMulticastAndFree}
 \desc{Sends \uw{msg} of length \uw{size} bytes to all members
 of the specified group.  Uses \kw{CmiFree} to deallocate the
 message buffer for \uw{msg} when the broadcast completes. Therefore
@@ -427,7 +428,7 @@ message buffer for \uw{msg} when the broadcast completes. Therefore
 Group IDs are created using \kw{CmiEstablishGroup}.}
 
 \function{CmiCommHandle CmiAsyncMulticast(CmiGroup grp, unsigned int size, void *msg)}
-\index{CmiAsyncBroadcast}
+\index{CmiAsyncMulticast}
 \desc{\note{Not yet implemented.} Initiates asynchronous broadcast of
 message \uw{msg} of length \uw{size} bytes to all members of
 the specified group.  It returns a communication handle which could
@@ -439,30 +440,25 @@ freed before the communication is complete.
 Group IDs are created using \kw{CmiEstablishGroup}.}
 
 \function{void CmiSyncListSend(int npes, int *pes, unsigned int size, void *msg)}
-\index{CmiSyncBroadcast}
-\desc{\note{Not yet implemented.} Sends \uw{msg} of length \uw{size} bytes
-to all processors in the list.  Group IDs are created using
-\kw{CmiEstablishGroup}.}
-
-\function{void CmiSyncMulticastAndFree(int npes, int *pes, unsigned int size, void *msg)}
-\index{CmiSyncBroadcastAndFree}
-\desc{\note{Not yet implemented.} Sends \uw{msg} of length \uw{size}
-bytes to all processors in the list.  Uses \kw{CmiFree} to deallocate the
-message buffer for \uw{msg} when the broadcast completes. Therefore
-\uw{msg} must point to a buffer allocated with \kw{CmiAlloc}.
-Group IDs are created using \kw{CmiEstablishGroup}.}
-
-\function{CmiCommHandle CmiAsyncMulticast(int npes, int *pes, unsigned int size, void *msg)}
-\index{CmiAsyncBroadcast}
-\desc{\note{Not yet implemented.} Initiates asynchronous broadcast of
-message \uw{msg} of length \uw{size} bytes to all processors
-in the list.  It returns a communication handle which could
-be used to check the status of this send using
-\kw{CmiAsyncMsgSent}. If the returned communication handle is 0,
-message buffer can be reused immediately, thus saving a call to 
-\kw{CmiAsyncMsgSent}. \uw{msg} should not be overwritten or
-freed before the communication is complete.
-Group IDs are created using \kw{CmiEstablishGroup}.}
+\index{CmiSyncListSend}
+\desc{Sends \uw{msg} of length \uw{size} bytes to \uw{npes} processors in the
+array \uw{pes}.
+
+\function{void CmiSyncListSendAndFree(int npes, int *pes, unsigned int size, void *msg)}
+\index{CmiSyncListSendAndFree}
+\desc{Sends \uw{msg} of length \uw{size} bytes to \uw{npes} processors in the
+array \uw{pes}. Uses \kw{CmiFree} to deallocate the message buffer for \uw{msg}
+when the multicast completes. Therefore, \uw{msg} must point to a buffer
+allocated with \kw{CmiAlloc}.
+
+\function{CmiCommHandle CmiAsyncListSend(int npes, int *pes, unsigned int size, void *msg)}
+\index{CmiAsyncListSend}
+\desc{Initiates asynchronous multicast of message \uw{msg} of length \uw{size}
+bytes to \uw{npes} processors in the array \uw{pes}. It returns a communication
+handle which could be used to check the status of this send using
+\kw{CmiAsyncMsgSent}. If the returned communication handle is 0, message buffer
+can be reused immediately, thus saving a call to \kw{CmiAsyncMsgSent}. \uw{msg}
+should not be overwritten or freed before the communication is complete.
 
 \section{Scheduling Messages}
 \label{schedqueue}
index 49f480422e55ed437c28adb3de5dfb56eb0d3955..e8c08ceffa576f1725916988a91f5ea31b59a478 100644 (file)
@@ -1630,7 +1630,8 @@ void CmiSyncListSendFn(int npes, int *pes, int len, char *msg)
 
 CmiCommHandle CmiAsyncListSendFn(int npes, int *pes, int len, char *msg)
 {
-  CmiError("ListSend not implemented.");
+  /* A better asynchronous implementation may be wanted, but at least it works */
+  CmiSyncListSendFn(npes, pes, len, msg);
   return (CmiCommHandle) 0;
 }