1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: vtkCommunicator</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FreeMat
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('vtkparallel_vtkcommunicator.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">vtkCommunicator </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_vtkparallel.html">Visualization Toolkit Parallel Classes</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>This is an abstact class which contains functionality for sending and receiving inter-process messages. It contains methods for marshaling an object into a string (currently used by the MPI communicator but not the shared memory communicator).</p>
<p>To create an instance of class vtkCommunicator, simply invoke its constructor as follows </p>
<pre class="fragment"> obj = vtkCommunicator
</pre> <h1><a class="anchor" id="Methods"></a>
Methods</h1>
<p>The class vtkCommunicator has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, <code>obj</code> is an instance of the vtkCommunicator class. </p>
<ul>
<li>
<code>string = obj.GetClassName ()</code> </li>
<li>
<code>int = obj.IsA (string name)</code> </li>
<li>
<code>vtkCommunicator = obj.NewInstance ()</code> </li>
<li>
<code>vtkCommunicator = obj.SafeDownCast (vtkObject o)</code> </li>
<li>
<code>obj.SetNumberOfProcesses (int num)</code> - Set the number of processes you will be using. This defaults to the maximum number available. If you set this to a value higher than the default, you will get an error. </li>
<li>
<code>int = obj.GetNumberOfProcesses ()</code> - Set the number of processes you will be using. This defaults to the maximum number available. If you set this to a value higher than the default, you will get an error. </li>
<li>
<code>int = obj.GetLocalProcessId ()</code> - Tells you which process [0, NumProcess) you are in. </li>
<li>
<code>int = obj.Send (vtkDataObject data, int remoteHandle, int tag)</code> - This method sends a data object to a destination. Tag eliminates ambiguity and is used to match sends to receives. </li>
<li>
<code>int = obj.Send (vtkDataArray data, int remoteHandle, int tag)</code> - This method sends a data array to a destination. Tag eliminates ambiguity and is used to match sends to receives. </li>
<li>
<code>int = obj.Send (int data, vtkIdType length, int remoteHandle, int tag)</code> - Convenience methods for sending data arrays. </li>
<li>
<code>int = obj.Send (int data, vtkIdType length, int remoteHandle, int tag)</code> - Convenience methods for sending data arrays. </li>
<li>
<code>int = obj.Send (long data, vtkIdType length, int remoteHandle, int tag)</code> - Convenience methods for sending data arrays. </li>
<li>
<code>int = obj.Send (string data, vtkIdType length, int remoteHandle, int tag)</code> - Convenience methods for sending data arrays. </li>
<li>
<code>int = obj.Send (string data, vtkIdType length, int remoteHandle, int tag)</code> - Convenience methods for sending data arrays. </li>
<li>
<code>int = obj.Send (float data, vtkIdType length, int remoteHandle, int tag)</code> - Convenience methods for sending data arrays. </li>
<li>
<code>int = obj.Send (double data, vtkIdType length, int remoteHandle, int tag)</code> - Convenience methods for sending data arrays. </li>
<li>
<code>int = obj.Receive (vtkDataObject data, int remoteHandle, int tag)</code> - This method receives a data object from a corresponding send. It blocks until the receive is finished. </li>
<li>
<code>vtkDataObject = obj.ReceiveDataObject (int remoteHandle, int tag)</code> - The caller does not have to know the data type before this call is made. It returns the newly created object. </li>
<li>
<code>int = obj.Receive (vtkDataArray data, int remoteHandle, int tag)</code> - This method receives a data array from a corresponding send. It blocks until the receive is finished. </li>
<li>
<code>int = obj.Receive (int data, vtkIdType maxlength, int remoteHandle, int tag)</code> - Convenience methods for receiving data arrays. </li>
<li>
<code>int = obj.Receive (int data, vtkIdType maxlength, int remoteHandle, int tag)</code> - Convenience methods for receiving data arrays. </li>
<li>
<code>int = obj.Receive (long data, vtkIdType maxlength, int remoteHandle, int tag)</code> - Convenience methods for receiving data arrays. </li>
<li>
<code>int = obj.Receive (string data, vtkIdType maxlength, int remoteHandle, int tag)</code> - Convenience methods for receiving data arrays. </li>
<li>
<code>int = obj.Receive (string data, vtkIdType maxlength, int remoteHandle, int tag)</code> - Convenience methods for receiving data arrays. </li>
<li>
<code>int = obj.Receive (float data, vtkIdType maxlength, int remoteHandle, int tag)</code> - Convenience methods for receiving data arrays. </li>
<li>
<code>int = obj.Receive (double data, vtkIdType maxlength, int remoteHandle, int tag)</code> - Convenience methods for receiving data arrays. </li>
<li>
<code>vtkIdType = obj.GetCount ()</code> - Returns the number of words received by the most recent Receive(). Note that this is not the number of bytes received, but the number of items of the data-type received by the most recent Receive() eg. if Receive(int*,..) was used, then this returns the number of ints received; if Receive(double*,..) was used, then this returns the number of doubles received etc. The return value is valid only after a successful Receive(). </li>
<li>
<code>obj.Barrier ()</code> - Will block the processes until all other processes reach the Barrier function. </li>
<li>
<code>int = obj.Broadcast (int data, vtkIdType length, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Broadcast (long data, vtkIdType length, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Broadcast (string data, vtkIdType length, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Broadcast (string data, vtkIdType length, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Broadcast (float data, vtkIdType length, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Broadcast (double data, vtkIdType length, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Broadcast (vtkDataObject data, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Broadcast (vtkDataArray data, int srcProcessId)</code> - Broadcast sends the array in the process with id <code>srcProcessId</code> to all of the other processes. All processes must call these method with the same arguments in order for it to complete. </li>
<li>
<code>int = obj.Gather (int sendBuffer, int recvBuffer, vtkIdType length, int destProcessId)</code> - Gather collects arrays in the process with id <code>destProcessId</code>. Each process (including the destination) sends the contents of its send buffer to the destination process. The destination process receives the messages and stores them in rank order. The <code>length</code> argument (which must be the same on all processes) is the length of the sendBuffers. The <code>recvBuffer</code> (on te destination process) must be of length length*numProcesses. Gather is the inverse operation of Scatter. </li>
<li>
<code>int = obj.Gather (long sendBuffer, long recvBuffer, vtkIdType length, int destProcessId)</code> - Gather collects arrays in the process with id <code>destProcessId</code>. Each process (including the destination) sends the contents of its send buffer to the destination process. The destination process receives the messages and stores them in rank order. The <code>length</code> argument (which must be the same on all processes) is the length of the sendBuffers. The <code>recvBuffer</code> (on te destination process) must be of length length*numProcesses. Gather is the inverse operation of Scatter. </li>
<li>
<code>int = obj.Gather (string sendBuffer, string recvBuffer, vtkIdType length, int destProcessId)</code> - Gather collects arrays in the process with id <code>destProcessId</code>. Each process (including the destination) sends the contents of its send buffer to the destination process. The destination process receives the messages and stores them in rank order. The <code>length</code> argument (which must be the same on all processes) is the length of the sendBuffers. The <code>recvBuffer</code> (on te destination process) must be of length length*numProcesses. Gather is the inverse operation of Scatter. </li>
<li>
<code>int = obj.Gather (string sendBuffer, string recvBuffer, vtkIdType length, int destProcessId)</code> - Gather collects arrays in the process with id <code>destProcessId</code>. Each process (including the destination) sends the contents of its send buffer to the destination process. The destination process receives the messages and stores them in rank order. The <code>length</code> argument (which must be the same on all processes) is the length of the sendBuffers. The <code>recvBuffer</code> (on te destination process) must be of length length*numProcesses. Gather is the inverse operation of Scatter. </li>
<li>
<code>int = obj.Gather (float sendBuffer, float recvBuffer, vtkIdType length, int destProcessId)</code> - Gather collects arrays in the process with id <code>destProcessId</code>. Each process (including the destination) sends the contents of its send buffer to the destination process. The destination process receives the messages and stores them in rank order. The <code>length</code> argument (which must be the same on all processes) is the length of the sendBuffers. The <code>recvBuffer</code> (on te destination process) must be of length length*numProcesses. Gather is the inverse operation of Scatter. </li>
<li>
<code>int = obj.Gather (double sendBuffer, double recvBuffer, vtkIdType length, int destProcessId)</code> - Gather collects arrays in the process with id <code>destProcessId</code>. Each process (including the destination) sends the contents of its send buffer to the destination process. The destination process receives the messages and stores them in rank order. The <code>length</code> argument (which must be the same on all processes) is the length of the sendBuffers. The <code>recvBuffer</code> (on te destination process) must be of length length*numProcesses. Gather is the inverse operation of Scatter. </li>
<li>
<code>int = obj.Gather (vtkDataArray sendBuffer, vtkDataArray recvBuffer, int destProcessId)</code> - Gather collects arrays in the process with id <code>destProcessId</code>. Each process (including the destination) sends the contents of its send buffer to the destination process. The destination process receives the messages and stores them in rank order. The <code>length</code> argument (which must be the same on all processes) is the length of the sendBuffers. The <code>recvBuffer</code> (on te destination process) must be of length length*numProcesses. Gather is the inverse operation of Scatter. </li>
<li>
<code>int = obj.Scatter (int sendBuffer, int recvBuffer, vtkIdType length, int srcProcessId)</code> - Scatter takes an array in the process with id <code>srcProcessId</code> and distributes it. Each process (including the source) receives a portion of the send buffer. Process 0 receives the first <code>length</code> values, process 1 receives the second <code>length</code> values, and so on. Scatter is the inverse operation of Gather. </li>
<li>
<code>int = obj.Scatter (long sendBuffer, long recvBuffer, vtkIdType length, int srcProcessId)</code> - Scatter takes an array in the process with id <code>srcProcessId</code> and distributes it. Each process (including the source) receives a portion of the send buffer. Process 0 receives the first <code>length</code> values, process 1 receives the second <code>length</code> values, and so on. Scatter is the inverse operation of Gather. </li>
<li>
<code>int = obj.Scatter (string sendBuffer, string recvBuffer, vtkIdType length, int srcProcessId)</code> - Scatter takes an array in the process with id <code>srcProcessId</code> and distributes it. Each process (including the source) receives a portion of the send buffer. Process 0 receives the first <code>length</code> values, process 1 receives the second <code>length</code> values, and so on. Scatter is the inverse operation of Gather. </li>
<li>
<code>int = obj.Scatter (string sendBuffer, string recvBuffer, vtkIdType length, int srcProcessId)</code> - Scatter takes an array in the process with id <code>srcProcessId</code> and distributes it. Each process (including the source) receives a portion of the send buffer. Process 0 receives the first <code>length</code> values, process 1 receives the second <code>length</code> values, and so on. Scatter is the inverse operation of Gather. </li>
<li>
<code>int = obj.Scatter (float sendBuffer, float recvBuffer, vtkIdType length, int srcProcessId)</code> - Scatter takes an array in the process with id <code>srcProcessId</code> and distributes it. Each process (including the source) receives a portion of the send buffer. Process 0 receives the first <code>length</code> values, process 1 receives the second <code>length</code> values, and so on. Scatter is the inverse operation of Gather. </li>
<li>
<code>int = obj.Scatter (double sendBuffer, double recvBuffer, vtkIdType length, int srcProcessId)</code> - Scatter takes an array in the process with id <code>srcProcessId</code> and distributes it. Each process (including the source) receives a portion of the send buffer. Process 0 receives the first <code>length</code> values, process 1 receives the second <code>length</code> values, and so on. Scatter is the inverse operation of Gather. </li>
<li>
<code>int = obj.Scatter (vtkDataArray sendBuffer, vtkDataArray recvBuffer, int srcProcessId)</code> - Scatter takes an array in the process with id <code>srcProcessId</code> and distributes it. Each process (including the source) receives a portion of the send buffer. Process 0 receives the first <code>length</code> values, process 1 receives the second <code>length</code> values, and so on. Scatter is the inverse operation of Gather. </li>
<li>
<code>int = obj.AllGather (int sendBuffer, int recvBuffer, vtkIdType length)</code> - Same as gather except that the result ends up on all processes. </li>
<li>
<code>int = obj.AllGather (long sendBuffer, long recvBuffer, vtkIdType length)</code> - Same as gather except that the result ends up on all processes. </li>
<li>
<code>int = obj.AllGather (string sendBuffer, string recvBuffer, vtkIdType length)</code> - Same as gather except that the result ends up on all processes. </li>
<li>
<code>int = obj.AllGather (string sendBuffer, string recvBuffer, vtkIdType length)</code> - Same as gather except that the result ends up on all processes. </li>
<li>
<code>int = obj.AllGather (float sendBuffer, float recvBuffer, vtkIdType length)</code> - Same as gather except that the result ends up on all processes. </li>
<li>
<code>int = obj.AllGather (double sendBuffer, double recvBuffer, vtkIdType length)</code> - Same as gather except that the result ends up on all processes. </li>
<li>
<code>int = obj.AllGather (vtkDataArray sendBuffer, vtkDataArray recvBuffer)</code> - Same as gather except that the result ends up on all processes. </li>
<li>
<code>int = obj.Reduce (int sendBuffer, int recvBuffer, vtkIdType length, int operation, int destProcessId)</code> - Reduce an array to the given destination process. This version of Reduce takes an identifier defined in the vtkCommunicator::StandardOperations enum to define the operation. </li>
<li>
<code>int = obj.Reduce (long sendBuffer, long recvBuffer, vtkIdType length, int operation, int destProcessId)</code> - Reduce an array to the given destination process. This version of Reduce takes an identifier defined in the vtkCommunicator::StandardOperations enum to define the operation. </li>
<li>
<code>int = obj.Reduce (string sendBuffer, string recvBuffer, vtkIdType length, int operation, int destProcessId)</code> - Reduce an array to the given destination process. This version of Reduce takes an identifier defined in the vtkCommunicator::StandardOperations enum to define the operation. </li>
<li>
<code>int = obj.Reduce (string sendBuffer, string recvBuffer, vtkIdType length, int operation, int destProcessId)</code> - Reduce an array to the given destination process. This version of Reduce takes an identifier defined in the vtkCommunicator::StandardOperations enum to define the operation. </li>
<li>
<code>int = obj.Reduce (float sendBuffer, float recvBuffer, vtkIdType length, int operation, int destProcessId)</code> - Reduce an array to the given destination process. This version of Reduce takes an identifier defined in the vtkCommunicator::StandardOperations enum to define the operation. </li>
<li>
<code>int = obj.Reduce (double sendBuffer, double recvBuffer, vtkIdType length, int operation, int destProcessId)</code> - Reduce an array to the given destination process. This version of Reduce takes an identifier defined in the vtkCommunicator::StandardOperations enum to define the operation. </li>
<li>
<code>int = obj.Reduce (vtkDataArray sendBuffer, vtkDataArray recvBuffer, int operation, int destProcessId)</code> - Reduce an array to the given destination process. This version of Reduce takes an identifier defined in the vtkCommunicator::StandardOperations enum to define the operation. </li>
<li>
<code>int = obj.AllReduce (int sendBuffer, int recvBuffer, vtkIdType length, int operation)</code> - Same as Reduce except that the result is placed in all of the processes. </li>
<li>
<code>int = obj.AllReduce (long sendBuffer, long recvBuffer, vtkIdType length, int operation)</code> - Same as Reduce except that the result is placed in all of the processes. </li>
<li>
<code>int = obj.AllReduce (string sendBuffer, string recvBuffer, vtkIdType length, int operation)</code> - Same as Reduce except that the result is placed in all of the processes. </li>
<li>
<code>int = obj.AllReduce (string sendBuffer, string recvBuffer, vtkIdType length, int operation)</code> - Same as Reduce except that the result is placed in all of the processes. </li>
<li>
<code>int = obj.AllReduce (float sendBuffer, float recvBuffer, vtkIdType length, int operation)</code> - Same as Reduce except that the result is placed in all of the processes. </li>
<li>
<code>int = obj.AllReduce (double sendBuffer, double recvBuffer, vtkIdType length, int operation)</code> - Same as Reduce except that the result is placed in all of the processes. </li>
<li>
<code>int = obj.AllReduce (vtkDataArray sendBuffer, vtkDataArray recvBuffer, int operation)</code> - Same as Reduce except that the result is placed in all of the processes. </li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_vtkparallel.html">Visualization Toolkit Parallel Classes</a></li>
<li class="footer">Generated on Thu Jul 25 2013 17:18:34 for FreeMat by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
</ul>
</div>
</body>
</html>
|