<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7226.0">
<TITLE>Failure of MPI_Recv related to timing - need help</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hello All</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">I have a problem with MPICH2 implementation that seems to be highly </FONT>

<BR><FONT SIZE=2 FACE="Arial">sensitive to timing (!)</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">In case I use many processes, each communicating less, the program works fine.</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;</FONT>

<BR><FONT SIZE=2 FACE="Arial">When I increase the amount of work and communications per worker by </FONT>

<BR><FONT SIZE=2 FACE="Arial">lowering the number of workers or by turning the clog2 logging on,</FONT>

<BR><FONT SIZE=2 FACE="Arial">I start having frequent failures of the MPI_Recv service.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Am I doing something wrong or its a known problem ?</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">//------------{ usage sample }-----------</FONT>

<BR><FONT SIZE=2 FACE="Arial">MPI_Status msgStatus ;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">MyAnswerClass answer ;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">MPI_Recv((void*)&amp;answer,sizeof(MyAnswerClass),MPI_CHAR,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&amp;msgStatus);</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">if (msgStatus.MPI_ERROR == MPI_SUCCESS)</FONT>

<BR><FONT SIZE=2 FACE="Arial">{</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Arial">// Process incoming message according to its TAG</FONT>

<BR><FONT SIZE=2 FACE="Arial">}</FONT>

<BR><FONT SIZE=2 FACE="Arial">else</FONT>

<BR><FONT SIZE=2 FACE="Arial">{</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Arial">char errorStr[MPI_MAX_ERROR_STRING];</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Arial">int errorStrLen ;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Arial">MPI_Error_string(msgStatus.MPI_ERROR,errorStr,&amp;errorStrLen);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Arial">printf(&quot;Rank: %d, Error code (%d) while receiving message: %s\n&quot;,m_myRank,msgStatus.MPI_ERROR,errorStr);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Arial">fflush(stdout);</FONT>

<BR><FONT SIZE=2 FACE="Arial">}</FONT>

<BR><FONT SIZE=2 FACE="Arial">//---------{ end of usage sample }---------</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Arial">// The resulting error print out</FONT>

<BR><FONT SIZE=2 FACE="Arial">Rank: 1, Error code (-858993460) while receiving message: Undefined dynamic error code</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">The value -858993460 is 0xCCCCCCCC - the value of uninitialized memory location in debug version</FONT>

<BR><FONT SIZE=2 FACE="Arial">In release version the value I get is -1.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">// Additional information:</FONT>

<BR><FONT SIZE=2 FACE="Arial">// I link the release version with &quot;mpi.lib cxx.lib&quot; and /MD</FONT>

<BR><FONT SIZE=2 FACE="Arial">// I link the release version with &quot;mpi.lib cxxd.lib&quot; and /MDd</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">To sum up: the problem appears or goes away just by changing the number of Processes </FONT>

<BR><FONT SIZE=2 FACE="Arial">Or by turning on/off the logging without changing anything in the executable (!)</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Any Ideas ?</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Thank you for your time</FONT>

<BR><FONT SIZE=2 FACE="Arial">Amnon</FONT>
</P>


<P>
<HR>
This e-mail message has been sent by EFW Inc. and is for the use of the intended 
recipients only. The message may contain privileged or confidential information. 
If you are not the intended recipient you are hereby notified that any use, 
distribution or copying of this communication is strictly prohibited, and you 
are requested to delete the e-mail and any attachments and notify the sender 
immediately. </P>
</BODY>
</HTML>