[MPICH] A doubt regarding the manner in the which MPI_init works

Krishna Chaitanya kris.c1986 at gmail.com
Mon Jan 21 11:37:52 CST 2008


Dear Sir,
Sorry for the delay.
I added a few print statements and took a closer look at the functions
MPIU_DBG_MSG_FMT()
and  MPIU_DBG_Outevent (). It turns out that the
MPIU_DBG_ActiveClassesparameter remains at 0 for the entire program
execution, which means, the
if() test fails and the MPIU_DBG_Outevent function never gets called. So,
the call to MPIU_Object_set_ref()  that is being called from
MPIR_Init_thread() is not doing anything in terms of updating or maintaining
the internal data structures.Am I missing something,here?  Could some one
help me out  by explaining this? I hope I have explained my doubt clearly.

Thanks,
Krishna Chaitanya

On Jan 16, 2008 3:14 AM, William Gropp <gropp at mcs.anl.gov> wrote:

> Most of the operations that are used as macros are defined that way so
> that they can be eliminated at compile time.  The MPIU_DBG routines are a
> good example.  These are macros that are used to enable various debugging
> options and are not core parts of the communicator structure.  In fact, when
> MPICH2 is built for use in production, these macros are defined as empty.
> 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.
>
> Bill
>
> On Jan 15, 2008, at 2:25 PM, Krishna Chaitanya wrote:
>
> Dear All,
>              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?)
>
>              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  this structure
> , the library calls  [ from MPIR_Init_thread(...)    ]
>          MPIU_Object_set_ref( MPIR_Process.comm_world, 1 );
>          -- >   MPIU_DBG_MSG_FM ( .... )
>                   -- > MPIU_DBG_MSG_FMT ( .. )
>                          -- >  MPIU_DBG_Outevent ( ... )
>                                  --> va_start and other such list related
> macros.
>
> However, when the MPIU_DBG_Outevent function is invoked, the paramater, int
> kind 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.
> So, how does the MPICH library maintain reference to the
> MPIR_Process.comm_world structure, without the invocation of macros like
> va_start, va_arg etc.
>
> 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.
>
> 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?
>
> NOTE :  I am using the mpich2-1.0.6 version.
>
> Thanks,
> Krishna Chaitanya K,
> National Institute of Technology,Karnataka ( NITK)
> India.
> --
> In the middle of difficulty, lies opportunity
>
>
> William Gropp
> Paul and Cynthia Saylor Professor of Computer Science
> University of Illinois Urbana-Champaign
>
>
>


-- 
In the middle of difficulty, lies opportunity
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20080121/2ea078ad/attachment.htm>


More information about the mpich-discuss mailing list