Hi everybody,<br><br>I&#39;m implementing an mathemathical method in parallel computing, but i&#39;m not happy about the result i&#39;m getting. That is about a lot of communication, and it is turning everything slow.<br><br>
The method is an integration that the next step always depends on the last step. But in the middle of the last step, everybody (all nodes of my cluster) must communicate with the master node. <br><br>Like that:<br><br><span style="font-weight: bold;">
node 1</span><br>stuff<br>stuff<br>for (i=0; i&lt; num. steps ; i++)<br>{<br>&nbsp;&nbsp; send X1 to master node<br>&nbsp;&nbsp; stuff<br>&nbsp;&nbsp; stuff<br>&nbsp;&nbsp; receive Y from master node<br>&nbsp;&nbsp; stuff ( with Y)<br>&nbsp;&nbsp; calculate X1<br>}<br><br><span style="font-weight: bold;">
node 2</span><br>stuff<br>
stuff<br>
for (i=0; i&lt; num. steps ; i++)<br>
{<br>
&nbsp;&nbsp; send X2 to master node<br>
&nbsp;&nbsp; stuff<br>
&nbsp;&nbsp; stuff<br>
&nbsp;&nbsp; receive Y from master node<br>
&nbsp;&nbsp; stuff ( with Y)<br>
&nbsp;&nbsp; calculate X2<br>
}<br>
<br>
<span style="font-weight: bold;">master node.</span><br>stuff <br>stuff<br>for (i=0; i&lt; num. steps ; i++)<br>

{<br>&nbsp;&nbsp;&nbsp;&nbsp;
receive X from everybody.<br>&nbsp;&nbsp;&nbsp;&nbsp; stuff<br>&nbsp;&nbsp;&nbsp;&nbsp; calculate Y.<br>&nbsp;&nbsp;&nbsp;&nbsp; send Y to everybody.<br>}<br clear="all"><br>Well, <br><br>My point is about excessive communication at <span style="font-weight: bold;">for</span>. The time spent to syncronize all processes is causing delay in processing.
<br>Anyone can help me? any advice?<br><br>The cluster contains three computers (one processor each one), and the time spent in shared memory is 60% faster than using sockets.<br><br>What do i do?<br><br>Thanks.<br><br>-- 
<br>Bruno. (from Brazil.)<br>