Jayesh,<div>       Just playing catch up in the next 2 lines - I have 3 classes 2 of which have been parallelized using MPI and all 3 are being instantiated and executed in my main code. Since one of the classes was not parallelized i had it inside an &quot;if&quot; condition: if rank==zero then execute the non-parallel class1. I then used MPI_BCast to broadcast the results from class1 to all the processors.</div>
<div>        Turns out this &quot;if&quot; condition caused the child processors (those with rank not equal to zero) to jump directly to the functions below the MPI_BCast command while root node was still stuck at MPI_BCast. This caused my code/debugger to hang. </div>
<div>         It takes me less than 2seconds to execute class1 so I can get away with running class1 on all the processors but I want to learn the &quot;proper&quot; way to execute a MPI application. Any thoughts?</div><div>
         Please let me know if the above email was confusing.</div><div>Thanks</div><div>Prashanth</div><div>        </div><div><br><div class="gmail_quote">On Thu, Dec 9, 2010 at 1:48 PM, Prashanth <span dir="ltr">&lt;<a href="mailto:prashanth.dumpuri@gmail.com">prashanth.dumpuri@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>Jayesh,</div><div>   Thanks for the immediate response (again). You need VTK (visualization toolkit) and PETSc (parallel sparse matrix) libraries to compile my code. Can I include these toolkits in the zip file i&#39;m going to send you?</div>

<div>Thanks</div><div>Prashanth</div><div><div></div><div class="h5"><br><div class="gmail_quote">On Thu, Dec 9, 2010 at 1:44 PM, Jayesh Krishna <span dir="ltr">&lt;<a href="mailto:jayesh@mcs.anl.gov" target="_blank">jayesh@mcs.anl.gov</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
 The parameters to MPI_Bcast() look alright. It might be easier for me to debug if you can send me the complete code. Can you send a zip of the complete code to <a href="mailto:jayesh@mcs.anl.gov" target="_blank">jayesh@mcs.anl.gov</a> ?<br>


<div><br>
Regards,<br>
Jayesh<br>
----- Original Message -----<br>
From: Prashanth &lt;<a href="mailto:prashanth.dumpuri@gmail.com" target="_blank">prashanth.dumpuri@gmail.com</a>&gt;<br>
</div><div><div></div><div>To: Jayesh Krishna &lt;<a href="mailto:jayesh@mcs.anl.gov" target="_blank">jayesh@mcs.anl.gov</a>&gt;<br>
Cc: <a href="mailto:mpich-discuss@mcs.anl.gov" target="_blank">mpich-discuss@mcs.anl.gov</a><br>
Sent: Thu, 09 Dec 2010 13:33:08 -0600 (CST)<br>
Subject: Re: [mpich-discuss] MPICH2 hangs during debug<br>
<br>
Jayesh,<br>
    Thanks for the immediate response. The example MPI application ran fine<br>
in the Debug mode. MPI_BCast did not hang for the example application. To<br>
answer your question as to why i&#39;m reading the same file from all MPI<br>
processes, I couldn&#39;t figure out how to use MPI_Byte(s) / MPI_Send() to send<br>
data from root node to all the child nodes. Once I figure that out I&#39;ll ask<br>
my code to read the data on the root node and then broadcast it to child<br>
nodes.<br>
   I&#39;m not sure if can attach documents to this mailing list and hence &#39;am<br>
just pasting the snippet of my code containing the MPI call. If you need the<br>
entire code, please let me know how to send it to you and i&#39;ll send it to<br>
you.  The code hangs at the MPI_BCast command in the Debug mode. FYI, I&#39;m<br>
using another toolkit VTK - visualization toolkit - to format my data.<br>
Output1 from class1 is in the vtk data format and translates to a double<br>
array in C++.<br>
<br>
int main(  int argc, char * argv[] )<br>
{<br>
<br>
    MPI_Init(&amp;argc,&amp;argv);<br>
    int rank, number_of_processors;<br>
    MPI_Comm_size(MPI_COMM_WORLD,&amp; number_of_processors);<br>
    MPI_Comm_rank(MPI_COMM_WORLD,&amp;rank);<br>
<br>
    // read inputs on all processors<br>
    // snipped for brevity<br>
<br>
   // class1 - read the inputs and generate output1: need not be<br>
parallelized<br>
  vtkSmartPointer&lt;vtkGetSignedClosestPointDistances&gt;<br>
ComputeSignedClosestPointDistances =<br>
<br>
<br>
 vtkSmartPointer&lt;vtkGetSignedClosestPointDistances&gt;::New();<br>
  if ( rank == 0 )<br>
  {<br>
           ComputeSignedClosestPointDistances-&gt;SetInput( inputs i just read<br>
);<br>
           ComputeSignedClosestPointDistances-&gt;Update();<br>
  }<br>
   // get output1 from class1<br>
   vtkSmartPointer&lt;vtkDoubleArray&gt; signedclosestpointdistancesbefore =<br>
vtkSmartPointer&lt;vtkDoubleArray&gt;::New();<br>
<br>
signedclosestpointdistancesbefore-&gt;DeepCopy(<br>
ComputeSignedClosestPointDistances-&gt;GetSignedClosestPointDistances() );<br>
<br>
    // GetVoidPointer(0) returns the void pointer at 0th element<br>
    // GetNumberOfTuples - size of the array<br>
    MPI_Bcast( signedclosestpointdistancesbefore-&gt;GetVoidPointer(0),<br>
signedclosestpointdistancesbefore-&gt;GetNumberOfTuples(), MPI_DOUBLE, 0,<br>
                                                 MPI_COMM_WORLD );<br>
<br>
   // code snipped for brevity<br>
<br>
   MPI_Finalize();<br>
<br>
    return 0;<br>
}<br>
<br>
Thanks again for all your help<br>
Prashanth<br>
<br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br></div>