Dear Sir,<br>Sorry for the delay. <br>I added a few print statements and took a closer look at the  functions <span style="color: rgb(51, 51, 255);">MPIU_DBG_MSG_FMT() and&nbsp;</span><span style="color: rgb(0, 0, 153);"><span style="color: rgb(51, 51, 255);">
 MPIU_DBG_Outevent ()</span>. <span style="color: rgb(0, 0, 0);">It turns out that the <span style="color: rgb(51, 51, 255);">MPIU_DBG_ActiveClasses</span> parameter remains at 0 for the entire program execution, which means, the if() test fails and the 
</span></span><span style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 0);"><span style="color: rgb(51, 51, 255);">MPIU_DBG_Outevent</span> function never gets called. So, the call to <span style="color: rgb(51, 51, 255);">
MPIU_Object_set_ref()</span>&nbsp; that is being called from <span style="color: rgb(51, 51, 255);">MPIR_Init_thread()</span> is not doing anything in terms of updating or maintaining the internal data structures.Am I missing something,here?&nbsp; Could some one help me out&nbsp; by explaining this? I hope I have explained my doubt clearly.
<br><br>Thanks,<br>Krishna Chaitanya <br></span></span><br><div class="gmail_quote">On Jan 16, 2008 3:14 AM, William Gropp &lt;<a href="mailto:gropp@mcs.anl.gov">gropp@mcs.anl.gov</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="">
Most of the operations that are used as macros are defined that way so that they can be eliminated at compile time. &nbsp;The MPIU_DBG routines are a good example. &nbsp;These are macros that are used to enable various debugging options and are not core parts of the communicator structure. &nbsp;In fact, when MPICH2 is built for use in production, these macros are defined as empty. &nbsp;
<div><br></div><div>To answer your other question, there are no universally used routines for list management - instead, different modules make use of the routines that they need.</div><div><br></div><div>Bill</div><div><div>
<div></div><div class="Wj3C7c"><br><div><div>On Jan 15, 2008, at 2:25 PM, Krishna Chaitanya wrote:</div><br><blockquote type="cite">Dear All,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I have been trying to understand the types of data structures used by MPICH2 and the way in which the various lists are maintained and how they are initialized. I happen to observe that most of such routines have been implemented as macros which has made my job slightly harder as they dont appear while debugging with gdb.( Is there a way to trace through them at run time?) 
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For example, I was keen on observing how MPICH2 deals with the MPI_COMM_WORLD data structure, which is of type MPID_COMM and it is a member of MPICH_PerProcess_t. So, at the time of populating&nbsp; this structure , the library calls&nbsp; [ from 
<span style="color: rgb(0, 0, 153);">MPIR_Init_thread</span>(...) &nbsp;&nbsp; ]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 153);">MPIU_Object_set_ref( MPIR_Process.comm_world, 1 ); </span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- &gt;&nbsp;&nbsp; MPIU_DBG_MSG_FM ( .... ) </span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- &gt; MPIU_DBG_MSG_FMT ( .. ) </span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- &gt;&nbsp; MPIU_DBG_Outevent ( ... ) </span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt; va_start and other such list related macros. <br><br>However, when the <span style="color: rgb(0, 0, 153);">MPIU_DBG_Outevent 
</span> function is invoked, the paramater, <span style="color: rgb(0, 0, 153);">int kind </span>is hard-coded to be 0. When the kind value is zero, the library does not do any list related work.Instead, it prints some details into a file.&nbsp; So, how does the MPICH library maintain reference to the&nbsp; MPIR_Process.comm_world structure, without the invocation of macros like va_start, va_arg etc. 
<br>&nbsp;<br clear="all">Its quite possible that I have got things wrong as I am jumping from one function to another using the ctags and I havent actually seen the code behave as above during run-time as we are dealing with macros. So, please correct me if I have got something wrong. 
<br><br>And, I am trying to draw an analogy between the OPEN-MPI and the MPICH2 when it comes to the way the internal data structures are handled. In Open-MPI, the OPAL library maitains such lists and has routines to manipulate them. Does MPICH have any other way of working with the lists of objects other than using the va_start and other related macros? 
<br><br>NOTE :&nbsp; I am using the mpich2-1.0.6 version. <br><br>Thanks,<br>Krishna Chaitanya K,<br>National Institute of Technology,Karnataka ( NITK) <br>India.<br>-- <br>In the middle of difficulty, lies opportunity</blockquote>
</div><br></div></div><font color="#888888"><div> <span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<span style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<div>William&nbsp;Gropp</div><div>Paul and Cynthia Saylor Professor of Computer Science</div><div>University of Illinois Urbana-Champaign</div><br></span></span></span></span> </div><br></font></div></div></blockquote></div><br>
<br clear="all"><br>-- <br>In the middle of difficulty, lies opportunity