added broadcast/multicast to the CCS section
authorFilippo Gioachin <gioachin@illinois.edu>
Thu, 3 Sep 2009 01:08:13 +0000 (01:08 +0000)
committerFilippo Gioachin <gioachin@illinois.edu>
Thu, 3 Sep 2009 01:08:13 +0000 (01:08 +0000)
doc/converse/ccs.tex
doc/converse/cmi.tex

index 4d87832c6effcbe9d6e19849b60cfc09995ff5bc..1596d353260e98e51c5f09bdd1464df7676f5cd1 100644 (file)
@@ -68,6 +68,15 @@ Ask the server to execute the handler hdlrID on the given processor.
 The handler is passed the given data as a message.  The data may
 be in any desired format (including binary). 
 
+\function{int CcsSendBroadcastRequest(CcsServer *svr, const char *hdlrID,
+            int size, const void *msg);}
+As CcsSendRequest, only that the handler hdlrID is invoked on all processors.
+
+\function{int CcsSendMulticastRequest(CcsServer *svr, const char *hdlrID, int npes, 
+            int *pes, int size, const void *msg);}
+As CcsSendRequest, only that the handler hdlrID is invoked on the processors
+specified in the array \uw{pes} (of size \uw{npes}).
+
 \function{int CcsRecvResponse(CcsServer *svr, 
                     unsigned int maxsize, char *recvBuffer, int timeout);}
 Receive a response to the previous request in-place.
@@ -117,7 +126,13 @@ hdlr is a \converse{} handler index; fn is a function pointer.
 The ID string cannot be more than 32 characters, including the
 terminating NULL.
 
+After a handler has been registered to CCS, the user can also setup a merging
+function. This function will be passed in to CmiReduce to combine replies to
+multicast and broadcast requests.
 
+\function{void CcsSetMergeFn(const char *name, CmiReduceMergeFn newMerge);}
+\desc{Associate the given merge function to the CCS identified by id. This will
+be used for CCS request received as broadcast or multicast.}
 
 These calls can be used from within a CCS handler:
 
@@ -138,6 +153,8 @@ Can only be called from a CCS handler invoked remotely.
 \function{void CcsSendReply(int size, const void *reply);}
 Send the given data back to the client as a reply.
 Can only be called from a CCS handler invoked remotely.
+In case of broadcast or multicast CCS requests, the handlers in
+all processors involved must call this function.
 
 \function{CcsDelayedReply CcsDelayReply(void);}
 Allows a CCS reply to be delayed until after the handler
index 8bcb23aa6b59531002334c5958fe5fdaa4cb44de..7e8f0ee518d7822fe6172b59578a9822a7a1ce7b 100644 (file)
@@ -498,23 +498,23 @@ adding more nodes.
 
 The signatures for the functions in Table~\ref{table:reductions} are:
 
-\function{void CmiReduce(void *msg, int size, CmiReduceMergeFn mergeFn)}
+\function{void CmiReduce(void *msg, int size, CmiReduceMergeFn mergeFn);}
 \function{void CmiReduceStruct(void *data, CmiReducePupFn pupFn,
                      CmiReduceMergeFn mergeFn, CmiHandler dest,
-                     CmiReduceDeleteFn deleteFn)}
-\function{void CmiReduceID(void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id)}
+                     CmiReduceDeleteFn deleteFn);}
+\function{void CmiReduceID(void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id);}
 \function{void CmiReduceStructID(void *data, CmiReducePupFn pupFn,
                      CmiReduceMergeFn mergeFn, CmiHandler dest,
-                     CmiReduceDeleteFn deleteFn, CmiReductionID id)}
-\function{void CmiListReduce(int npes, int *pes, void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id)}
+                     CmiReduceDeleteFn deleteFn, CmiReductionID id);}
+\function{void CmiListReduce(int npes, int *pes, void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id);}
 \function{void CmiListReduceStruct(int npes, int *pes,
                      void *data, CmiReducePupFn pupFn,
                      CmiReduceMergeFn mergeFn, CmiHandler dest,
-                     CmiReduceDeleteFn deleteFn, CmiReductionID id)}
-\function{void CmiGroupReduce(CmiGroup grp, void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id)}
+                     CmiReduceDeleteFn deleteFn, CmiReductionID id);}
+\function{void CmiGroupReduce(CmiGroup grp, void *msg, int size, CmiReduceMergeFn mergeFn, CmiReductionID id);}
 \function{void CmiGroupReduceStruct(CmiGroup grp, void *data, CmiReducePupFn pupFn,
                      CmiReduceMergeFn mergeFn, CmiHandler dest,
-                     CmiReduceDeleteFn deleteFn, CmiReductionID id)}
+                     CmiReduceDeleteFn deleteFn, CmiReductionID id);}
 
 In all the above, \uw{msg} is the Converse message deposited by the local
 processor, \uw{size} is the size of the message \uw{msg}, and \uw{data} is a