<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>sc::MessageGrp class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.5 on Mon Oct 14 14:17:09 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>sc::MessageGrp Class Reference</h1>The <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> abstract class provides a mechanism for moving data and objects between nodes in a parallel machine. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="message_h-source.html">message.h</a>></code> <p> Inheritance diagram for sc::MessageGrp<p><center><img src="class_sc__MessageGrp_inherit_graph.gif" border="0" usemap="#sc::MessageGrp_inherit_map" alt="Inheritance graph"></center> <map name="sc::MessageGrp_inherit_map"> <area href="class_sc__intMessageGrp.html" shape="rect" coords="19,280,131,299"> <area href="class_sc__MPIMessageGrp.html" shape="rect" coords="155,280,278,299"> <area href="class_sc__ProcMessageGrp.html" shape="rect" coords="302,280,425,299"> <area href="class_sc__DescribedClass.html" shape="rect" coords="159,147,274,165"> <area href="class_sc__RefCount.html" shape="rect" coords="175,80,258,99"> <area href="class_sc__Identity.html" shape="rect" coords="181,13,253,32"> <area href="class_sc__ShmMessageGrp.html" shape="rect" coords="14,347,137,365"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for sc::MessageGrp:<p><center><img src="class_sc__MessageGrp_coll_graph.gif" border="0" usemap="#sc::MessageGrp_coll_map" alt="Collaboration graph"></center> <map name="sc::MessageGrp_coll_map"> <area href="class_sc__DescribedClass.html" shape="rect" coords="14,179,129,198"> <area href="class_sc__RefCount.html" shape="rect" coords="18,96,101,115"> <area href="class_sc__Identity.html" shape="rect" coords="23,14,95,32"> <area href="class_sc__Ref.html" shape="rect" coords="373,179,543,198"> <area href="class_sc__RefBase.html" shape="rect" coords="419,96,497,115"> </map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="class_sc__MessageGrp-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="a0" doxytag="sc::MessageGrp::MessageGrp"></a> </td><td valign=bottom><b>MessageGrp</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a1" doxytag="sc::MessageGrp::MessageGrp"></a> </td><td valign=bottom><b>MessageGrp</b> (const <a class="el" href="class_sc__Ref.html">Ref</a>< <a class="el" href="class_sc__KeyVal.html">KeyVal</a> > &)</td></tr> <tr><td nowrap align=right valign=top><a name="a2" doxytag="sc::MessageGrp::~MessageGrp"></a> virtual </td><td valign=bottom><b>~MessageGrp</b> ()</td></tr> <tr><td nowrap align=right valign=top><a name="a3" doxytag="sc::MessageGrp::n"></a> int </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a3">n</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Returns the number of processors.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a4" doxytag="sc::MessageGrp::me"></a> int </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a4">me</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Returns my processor number. In the range [0,<a class="el" href="class_sc__MessageGrp.html#a3">n</a>()).</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a5" doxytag="sc::MessageGrp::clone"></a> virtual <a class="el" href="class_sc__Ref.html">Ref</a><MessageGrp> </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a5">clone</a> (void)=0</td></tr> <tr><td> </td><td><font size=-1><em>Returns a copy of this <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> specialization that provides an independent communication context.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a6">send</a> (int target, double *data, int ndata)</td></tr> <tr><td> </td><td><font size=-1><em>Send messages sequentially to the target processor.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a7" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, unsigned int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a8" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a9" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a10" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, unsigned char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a11" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, signed char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a12" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, short *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a13" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, long *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a14" doxytag="sc::MessageGrp::send"></a> virtual void </td><td valign=bottom><b>send</b> (int target, float *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a15" doxytag="sc::MessageGrp::send"></a> void </td><td valign=bottom><b>send</b> (int target, double data)</td></tr> <tr><td nowrap align=right valign=top><a name="a16" doxytag="sc::MessageGrp::send"></a> void </td><td valign=bottom><b>send</b> (int target, int data)</td></tr> <tr><td nowrap align=right valign=top><a name="a17" doxytag="sc::MessageGrp::raw_send"></a> virtual void </td><td valign=bottom><b>raw_send</b> (int target, void *data, int nbyte)=0</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a18">sendt</a> (int target, int type, double *data, int ndata)</td></tr> <tr><td> </td><td><font size=-1><em>Send typed messages to the target processor.</em> <a href="#a18">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a19" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, unsigned int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a20" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a21" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a22" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, unsigned char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a23" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, signed char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a24" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, short *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a25" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, long *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a26" doxytag="sc::MessageGrp::sendt"></a> virtual void </td><td valign=bottom><b>sendt</b> (int target, int type, float *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a27" doxytag="sc::MessageGrp::sendt"></a> void </td><td valign=bottom><b>sendt</b> (int target, int type, double data)</td></tr> <tr><td nowrap align=right valign=top><a name="a28" doxytag="sc::MessageGrp::sendt"></a> void </td><td valign=bottom><b>sendt</b> (int target, int type, int data)</td></tr> <tr><td nowrap align=right valign=top><a name="a29" doxytag="sc::MessageGrp::raw_sendt"></a> virtual void </td><td valign=bottom><b>raw_sendt</b> (int target, int type, void *data, int nbyte)=0</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a30">recv</a> (int sender, double *data, int ndata)</td></tr> <tr><td> </td><td><font size=-1><em>Receive messages sent sequentually from the sender.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a31" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, unsigned int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a32" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a33" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a34" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, unsigned char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a35" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, signed char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a36" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, short *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a37" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, long *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a38" doxytag="sc::MessageGrp::recv"></a> virtual void </td><td valign=bottom><b>recv</b> (int sender, float *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a39" doxytag="sc::MessageGrp::recv"></a> void </td><td valign=bottom><b>recv</b> (int sender, double &data)</td></tr> <tr><td nowrap align=right valign=top><a name="a40" doxytag="sc::MessageGrp::recv"></a> void </td><td valign=bottom><b>recv</b> (int sender, int &data)</td></tr> <tr><td nowrap align=right valign=top><a name="a41" doxytag="sc::MessageGrp::raw_recv"></a> virtual void </td><td valign=bottom><b>raw_recv</b> (int sender, void *data, int nbyte)=0</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a42">recvt</a> (int type, double *data, int ndata)</td></tr> <tr><td> </td><td><font size=-1><em>Receive messages sent by type.</em> <a href="#a42">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a43" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, unsigned int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a44" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, int *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a45" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a46" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, unsigned char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a47" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, signed char *data, int nbyte)</td></tr> <tr><td nowrap align=right valign=top><a name="a48" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, short *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a49" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, long *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a50" doxytag="sc::MessageGrp::recvt"></a> virtual void </td><td valign=bottom><b>recvt</b> (int type, float *data, int ndata)</td></tr> <tr><td nowrap align=right valign=top><a name="a51" doxytag="sc::MessageGrp::recvt"></a> void </td><td valign=bottom><b>recvt</b> (int type, double &data)</td></tr> <tr><td nowrap align=right valign=top><a name="a52" doxytag="sc::MessageGrp::recvt"></a> void </td><td valign=bottom><b>recvt</b> (int type, int &data)</td></tr> <tr><td nowrap align=right valign=top><a name="a53" doxytag="sc::MessageGrp::raw_recvt"></a> virtual void </td><td valign=bottom><b>raw_recvt</b> (int type, void *data, int nbyte)=0</td></tr> <tr><td nowrap align=right valign=top><a name="a54" doxytag="sc::MessageGrp::probet"></a> virtual int </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a54">probet</a> (int type)=0</td></tr> <tr><td> </td><td><font size=-1><em>Ask if a given typed message has been received.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a55">bcast</a> (double *data, int ndata, int from=0)</td></tr> <tr><td> </td><td><font size=-1><em>Do broadcasts of various types of data.</em> <a href="#a55">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a56" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (unsigned int *data, int ndata, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a57" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (int *data, int ndata, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a58" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (char *data, int nbyte, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a59" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (unsigned char *data, int nbyte, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a60" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (signed char *data, int nbyte, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a61" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (short *data, int ndata, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a62" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (long *data, int ndata, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a63" doxytag="sc::MessageGrp::bcast"></a> virtual void </td><td valign=bottom><b>bcast</b> (float *data, int ndata, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a64" doxytag="sc::MessageGrp::raw_bcast"></a> virtual void </td><td valign=bottom><b>raw_bcast</b> (void *data, int nbyte, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a65" doxytag="sc::MessageGrp::bcast"></a> void </td><td valign=bottom><b>bcast</b> (double &data, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a66" doxytag="sc::MessageGrp::bcast"></a> void </td><td valign=bottom><b>bcast</b> (int &data, int from=0)</td></tr> <tr><td nowrap align=right valign=top><a name="a67" doxytag="sc::MessageGrp::raw_collect"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a67">raw_collect</a> (const void *part, const int *lengths, void *whole, int bytes_per_datum=1)</td></tr> <tr><td> </td><td><font size=-1><em>Collect data distributed on the nodes to a big array replicated on each node.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a68" doxytag="sc::MessageGrp::collect"></a> void </td><td valign=bottom><b>collect</b> (const double *part, const int *lengths, double *whole)</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a69">sum</a> (double *data, int n, double *=0, int target=-1)</td></tr> <tr><td> </td><td><font size=-1><em>Global sum reduction.</em> <a href="#a69">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a70" doxytag="sc::MessageGrp::sum"></a> virtual void </td><td valign=bottom><b>sum</b> (unsigned int *data, int n, unsigned int *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a71" doxytag="sc::MessageGrp::sum"></a> virtual void </td><td valign=bottom><b>sum</b> (int *data, int n, int *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a72" doxytag="sc::MessageGrp::sum"></a> virtual void </td><td valign=bottom><b>sum</b> (char *data, int n, char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a73" doxytag="sc::MessageGrp::sum"></a> virtual void </td><td valign=bottom><b>sum</b> (unsigned char *data, int n, unsigned char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a74" doxytag="sc::MessageGrp::sum"></a> virtual void </td><td valign=bottom><b>sum</b> (signed char *data, int n, signed char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a75" doxytag="sc::MessageGrp::sum"></a> void </td><td valign=bottom><b>sum</b> (double &data)</td></tr> <tr><td nowrap align=right valign=top><a name="a76" doxytag="sc::MessageGrp::sum"></a> void </td><td valign=bottom><b>sum</b> (int &data)</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a77">max</a> (double *data, int n, double *=0, int target=-1)</td></tr> <tr><td> </td><td><font size=-1><em>Global maximization.</em> <a href="#a77">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a78" doxytag="sc::MessageGrp::max"></a> virtual void </td><td valign=bottom><b>max</b> (int *data, int n, int *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a79" doxytag="sc::MessageGrp::max"></a> virtual void </td><td valign=bottom><b>max</b> (unsigned int *data, int n, unsigned int *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a80" doxytag="sc::MessageGrp::max"></a> virtual void </td><td valign=bottom><b>max</b> (char *data, int n, char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a81" doxytag="sc::MessageGrp::max"></a> virtual void </td><td valign=bottom><b>max</b> (unsigned char *data, int n, unsigned char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a82" doxytag="sc::MessageGrp::max"></a> virtual void </td><td valign=bottom><b>max</b> (signed char *data, int n, signed char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a83" doxytag="sc::MessageGrp::max"></a> void </td><td valign=bottom><b>max</b> (double &data)</td></tr> <tr><td nowrap align=right valign=top><a name="a84" doxytag="sc::MessageGrp::max"></a> void </td><td valign=bottom><b>max</b> (int &data)</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a85">min</a> (double *data, int n, double *=0, int target=-1)</td></tr> <tr><td> </td><td><font size=-1><em>Global minimization.</em> <a href="#a85">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a86" doxytag="sc::MessageGrp::min"></a> virtual void </td><td valign=bottom><b>min</b> (int *data, int n, int *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a87" doxytag="sc::MessageGrp::min"></a> virtual void </td><td valign=bottom><b>min</b> (unsigned int *data, int n, unsigned int *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a88" doxytag="sc::MessageGrp::min"></a> virtual void </td><td valign=bottom><b>min</b> (char *data, int n, char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a89" doxytag="sc::MessageGrp::min"></a> virtual void </td><td valign=bottom><b>min</b> (unsigned char *data, int n, unsigned char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a90" doxytag="sc::MessageGrp::min"></a> virtual void </td><td valign=bottom><b>min</b> (signed char *data, int n, signed char *=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a91" doxytag="sc::MessageGrp::min"></a> void </td><td valign=bottom><b>min</b> (double &data)</td></tr> <tr><td nowrap align=right valign=top><a name="a92" doxytag="sc::MessageGrp::min"></a> void </td><td valign=bottom><b>min</b> (int &data)</td></tr> <tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a93">reduce</a> (double *, int n, GrpReduce< double > &, double *scratch=0, int target=-1)</td></tr> <tr><td> </td><td><font size=-1><em>Global generic reduction.</em> <a href="#a93">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a94" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (int *, int n, GrpReduce< int > &, int *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a95" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (unsigned int *, int n, GrpReduce< unsigned int > &, unsigned int *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a96" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (char *, int n, GrpReduce< char > &, char *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a97" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (unsigned char *, int n, GrpReduce< unsigned char > &, unsigned char *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a98" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (signed char *, int n, GrpReduce< signed char > &, signed char *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a99" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (short *, int n, GrpReduce< short > &, short *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a100" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (float *, int n, GrpReduce< float > &, float *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a101" doxytag="sc::MessageGrp::reduce"></a> virtual void </td><td valign=bottom><b>reduce</b> (long *, int n, GrpReduce< long > &, long *scratch=0, int target=-1)</td></tr> <tr><td nowrap align=right valign=top><a name="a102" doxytag="sc::MessageGrp::reduce"></a> void </td><td valign=bottom><b>reduce</b> (double &data, GrpReduce< double > &r)</td></tr> <tr><td nowrap align=right valign=top><a name="a103" doxytag="sc::MessageGrp::reduce"></a> void </td><td valign=bottom><b>reduce</b> (int &data, GrpReduce< int > &r)</td></tr> <tr><td nowrap align=right valign=top><a name="a104" doxytag="sc::MessageGrp::sync"></a> virtual void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a104">sync</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Synchronize all of the processors.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#a105">classdesc_to_index</a> (const <a class="el" href="class_sc__ClassDesc.html">ClassDesc</a> *)</td></tr> <tr><td> </td><td><font size=-1><em>Each message group maintains an association of <a class="el" href="class_sc__ClassDesc.html">ClassDesc</a> with a global index so <a class="el" href="class_sc__SavableState.html">SavableState</a> information can be sent between nodes without needing to send the classname and look up the <a class="el" href="class_sc__ClassDesc.html">ClassDesc</a> with each transfer.</em> <a href="#a105">More...</a><em></em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="a106" doxytag="sc::MessageGrp::index_to_classdesc"></a> const <a class="el" href="class_sc__ClassDesc.html">ClassDesc</a>* </td><td valign=bottom><b>index_to_classdesc</b> (int)</td></tr> <tr><td nowrap align=right valign=top><a name="a107" doxytag="sc::MessageGrp::nclass"></a> int </td><td valign=bottom><b>nclass</b> () const</td></tr> <tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr> <tr><td nowrap align=right valign=top><a name="d0" doxytag="sc::MessageGrp::set_default_messagegrp"></a> void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#d0">set_default_messagegrp</a> (const <a class="el" href="class_sc__Ref.html">Ref</a>< MessageGrp > &)</td></tr> <tr><td> </td><td><font size=-1><em>The default message group contains the primary message group to be used by an application.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top><a name="d1" doxytag="sc::MessageGrp::get_default_messagegrp"></a> MessageGrp* </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#d1">get_default_messagegrp</a> ()</td></tr> <tr><td> </td><td><font size=-1><em>Returns the default message group.</em></font><br><br></td></tr> <tr><td nowrap align=right valign=top>MessageGrp* </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#d2">initial_messagegrp</a> (int &argc, char **&argv)</td></tr> <tr><td> </td><td><font size=-1><em>Create a message group.</em> <a href="#d2">More...</a><em></em></font><br><br></td></tr> <tr><td colspan=2><br><h2>Protected Methods</h2></td></tr> <tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="class_sc__MessageGrp.html#b0">initialize</a> (int me, int n)</td></tr> <tr><td> </td><td><font size=-1><em>The classdesc_to_index_ and index_to_classdesc_ arrays cannot be initialized by the <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> CTOR, because the <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> specialization has not yet been initialized and communication is not available.</em> <a href="#b0">More...</a><em></em></font><br><br></td></tr> <tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr> <tr><td nowrap align=right valign=top><a name="n0" doxytag="sc::MessageGrp::topology_"></a> <a class="el" href="class_sc__Ref.html">Ref</a><MachineTopology> </td><td valign=bottom><b>topology_</b></td></tr> <tr><td nowrap align=right valign=top><a name="n1" doxytag="sc::MessageGrp::debug_"></a> int </td><td valign=bottom><b>debug_</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> The <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> abstract class provides a mechanism for moving data and objects between nodes in a parallel machine. <p> <hr><h2>Member Function Documentation</h2> <a name="a55" doxytag="sc::MessageGrp::bcast"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::bcast ( </b></td> <td valign="bottom"><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>ndata</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>from</em> = 0 )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Do broadcasts of various types of data. <p> Similar members exist for each of the basic types. </td> </tr> </table> <a name="a105" doxytag="sc::MessageGrp::classdesc_to_index"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> int sc::MessageGrp::classdesc_to_index ( </b></td> <td valign="bottom"><b> const <a class="el" href="class_sc__ClassDesc.html">ClassDesc</a> * ) </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Each message group maintains an association of <a class="el" href="class_sc__ClassDesc.html">ClassDesc</a> with a global index so <a class="el" href="class_sc__SavableState.html">SavableState</a> information can be sent between nodes without needing to send the classname and look up the <a class="el" href="class_sc__ClassDesc.html">ClassDesc</a> with each transfer. <p> These routines return information about that mapping. </td> </tr> </table> <a name="d2" doxytag="sc::MessageGrp::initial_messagegrp"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> MessageGrp * sc::MessageGrp::initial_messagegrp ( </b></td> <td valign="bottom"><b> int & <em>argc</em>, </b></td> </tr> <tr> <td></td> <td><b> char **& <em>argv</em> )<code> [static]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Create a message group. <p> This routine looks for a -messagegrp argument, then the environmental variable MESSAGEGRP to decide which specialization of <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> would be appropriate. The argument to -messagegrp should be either string for a <a class="el" href="class_sc__ParsedKeyVal.html">ParsedKeyVal</a> constructor or a classname. If this returns null, it is up to the programmer to create a <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a>. </td> </tr> </table> <a name="b0" doxytag="sc::MessageGrp::initialize"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::initialize ( </b></td> <td valign="bottom"><b> int <em>me</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>n</em> )<code> [protected]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> The classdesc_to_index_ and index_to_classdesc_ arrays cannot be initialized by the <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> CTOR, because the <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> specialization has not yet been initialized and communication is not available. <p> CTOR's of specializations of <a class="el" href="class_sc__MessageGrp.html">MessageGrp</a> must call the initialize member in their body to complete the initialization process. </td> </tr> </table> <a name="a77" doxytag="sc::MessageGrp::max"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::max ( </b></td> <td valign="bottom"><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>n</em>, </b></td> </tr> <tr> <td></td> <td><b> double * = 0, </b></td> </tr> <tr> <td></td> <td><b> int <em>target</em> = -1 )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Global maximization. <p> Similar members exist for each of the basic types. </td> </tr> </table> <a name="a85" doxytag="sc::MessageGrp::min"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::min ( </b></td> <td valign="bottom"><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>n</em>, </b></td> </tr> <tr> <td></td> <td><b> double * = 0, </b></td> </tr> <tr> <td></td> <td><b> int <em>target</em> = -1 )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Global minimization. <p> Similar members exist for each of the basic types. </td> </tr> </table> <a name="a30" doxytag="sc::MessageGrp::recv"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::recv ( </b></td> <td valign="bottom"><b> int <em>sender</em>, </b></td> </tr> <tr> <td></td> <td><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>ndata</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Receive messages sent sequentually from the sender. <p> Similar members exist for each of the basic types. </td> </tr> </table> <a name="a42" doxytag="sc::MessageGrp::recvt"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::recvt ( </b></td> <td valign="bottom"><b> int <em>type</em>, </b></td> </tr> <tr> <td></td> <td><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>ndata</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Receive messages sent by type. <p> Similar members exist for each of the basic types. </td> </tr> </table> <a name="a93" doxytag="sc::MessageGrp::reduce"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::reduce ( </b></td> <td valign="bottom"><b> double *, </b></td> </tr> <tr> <td></td> <td><b> int <em>n</em>, </b></td> </tr> <tr> <td></td> <td><b> GrpReduce< double > &, </b></td> </tr> <tr> <td></td> <td><b> double * <em>scratch</em> = 0, </b></td> </tr> <tr> <td></td> <td><b> int <em>target</em> = -1 )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Global generic reduction. <p> Similar members exist for each of the basic types. <p> Reimplemented in <a class="el" href="class_sc__MPIMessageGrp.html#a12">sc::MPIMessageGrp</a>. </td> </tr> </table> <a name="a6" doxytag="sc::MessageGrp::send"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::send ( </b></td> <td valign="bottom"><b> int <em>target</em>, </b></td> </tr> <tr> <td></td> <td><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>ndata</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Send messages sequentially to the target processor. <p> Similar members exist for each of the basic types. </td> </tr> </table> <a name="a18" doxytag="sc::MessageGrp::sendt"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::sendt ( </b></td> <td valign="bottom"><b> int <em>target</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>type</em>, </b></td> </tr> <tr> <td></td> <td><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>ndata</em> )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Send typed messages to the target processor. <p> Similar members exist for each of the basic types. </td> </tr> </table> <a name="a69" doxytag="sc::MessageGrp::sum"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> void sc::MessageGrp::sum ( </b></td> <td valign="bottom"><b> double * <em>data</em>, </b></td> </tr> <tr> <td></td> <td><b> int <em>n</em>, </b></td> </tr> <tr> <td></td> <td><b> double * = 0, </b></td> </tr> <tr> <td></td> <td><b> int <em>target</em> = -1 )<code> [virtual]</code> </b></td> </tr> </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> Global sum reduction. <p> Similar members exist for each of the basic types. </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="message_h-source.html">message.h</a></ul> <hr> <address> <small> Generated at Mon Oct 14 14:17:09 2002 for <a href="http://aros.ca.sandia.gov/~cljanss/mpqc">MPQC</a> 2.1.2 using the documentation package <a href="http://www.stack.nl/~dimitri/doxygen/index.html">Doxygen</a> 1.2.5. </small> </address> </body> </html>