The problem seems to be with the communicator in MPI_Bcast() (/src/mpi/coll/bcast.c).<br>The comm_ptr is initialized to NULL and after a call to MPID_Comm_get_ptr( comm, comm_ptr ); , the comm_ptr points to the communicator object which was created throught MPI_Init(). However, MPID_Comm_valid_ptr( comm_ptr, mpi_errno ) returns with a value other than MPI_SUCCESS. <br>
During some traces, it used to crash at this point itself. On some other traces, it used to go into the progress engine as I described in my previous mails. <br><br>What could be the reason? Hope someone chips in. I havent been able to figure this out for sometime now. <br>
<br>Krishna Chaitanya K <br><br><div class="gmail_quote">On Wed, Mar 19, 2008 at 8:44 AM, Krishna Chaitanya <<a href="mailto:kris.c1986@gmail.com">kris.c1986@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
This might help : <br><br>In the MPID_Comm structure, I have included the following line for the peruse place-holder : <br><span style="color: rgb(0, 0, 153);"> struct mpich_peruse_handle_t** c_peruse_handles;</span><br><br>
And in the function, MPID_Init_thread(), i have the line <br><span style="color: rgb(0, 0, 153);"> MPIR_Process.comm_world->c_peruse_handles = NULL;</span><br> when the rest of the members of the comm_world structure are being populated. <br>
<br>Thanks,<br><font color="#888888">Krishna Chaitanya K <br></font><div><div></div><div class="Wj3C7c"><br><br><br><div class="gmail_quote">On Wed, Mar 19, 2008 at 8:19 AM, Krishna Chaitanya <<a href="mailto:kris.c1986@gmail.com" target="_blank">kris.c1986@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks for the help. I am facing an weird problem right now. To incorporate the PERUSE component, I have modified the communicator data structure to incude the PERUSE handles. The program executes as expected when compiled without the "mpe=mpilog" flag.When I compile it with the mpe component, the program gives this output : <br>
<span style="color: rgb(0, 0, 153);"><br>Fatal error in MPI_Bcast: Invalid communicator, error stack:</span><br style="color: rgb(0, 0, 153);"><span style="color: rgb(0, 0, 153);">MPI_Bcast(784): MPI_Bcast(buf=0x9260f98, count=1, MPI_INT, root=0, MPI_COMM_WORLD) failed</span><br style="color: rgb(0, 0, 153);">
<span style="color: rgb(0, 0, 153);">MPI_Bcast(717): Invalid communicator<br><br><font color="#000000">On tracing further, I understood this : <br>MPI_Init () ( log_mpi_core.c )<br> -- > PMPI_Init ( the communicator object is created here ) <br>
-- > MPE_Init_log () <br></font></span> -- > CLOG_Local_init() <br> -- > CLOG_Buffer_init4write () <br> -- > CLOG_Preamble_env_init() <br> -- > MPI_Bcast () (bcast.c) <br>
-- > MPIR_Bcast () <br> -- > MPIC_Recv () / MPIC_Send() <br> -- > MPIC_Wait() <br> < Program crashes > <br>
The MPIC_Wait function is invoking the progress engine, which works properly without the mpe component. <br> Even within the progress engine, MPIDU_Sock_wait() and MPIDI_CH3I_Progress_handle_sock_event() are executed a couple of times before the program crashes in the MPIDU_Socki_handle_read() or the MPIDU_Socki_handle_write() functions. ( The read() and the write() functions work two times, I think)<br>
I am finding it very hard to reason why the program crashes with mpe. Could you please suggest where I need to look at to sort this issue out? <br><br>Thanks,<br><font color="#888888">Krishna Chaitanya K <br></font><div>
<div></div><div><br><div class="gmail_quote">On Wed, Mar 19, 2008 at 2:20 AM, Anthony Chan <<a href="mailto:chan@mcs.anl.gov" target="_blank">chan@mcs.anl.gov</a>> 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><br>
<br>
On Wed, 19 Mar 2008, Krishna Chaitanya wrote:<br>
<br>
> Hi,<br>
> I tried configuring MPICH2 by doing :<br>
> ./configure --prefix=/home/kc/mpich-install/ --enable-mpe<br>
> --with-logging=SLOG CC=gcc CFLAGS=-g && make && make install<br>
> It flashed an error messaage saying :<br>
> onfigure: error: ./src/util/logging/SLOG does not exist. Configure aborted<br>
<br>
</div>The --with-logging is for MPICH2's internal logging, not MPE's logging.<br>
As what you did below is fine is fine.<br>
<div>><br>
> After that, I tried :<br>
> ./configure --prefix=/home/kc/mpich-install/ --enable-mpe CC=gcc CFLAGS=-g<br>
> && make && make install<br>
> The installation was normal, when I tried compiling an example<br>
> program by doing :<br>
> mpicc -mpilog -o sample sample.c<br>
> cc1: error: unrecognized command line option "-mpilog"<br>
<br>
</div>Do "mpicc -mpe=mpilog -o sample sample.c" instead. For more details,<br>
see "mpicc -mpe=help" and see mpich2/src/mpe2/README.<br>
<br>
A.Chan<br>
<div><div></div><div><br>
><br>
> Can anyone please tell me what needs to be done to use the SLOG<br>
> logging format?<br>
><br>
> Thanks,<br>
> Krishna Chaitanya K<br>
><br>
><br>
><br>
><br>
><br>
> --<br>
> In the middle of difficulty, lies opportunity<br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>In the middle of difficulty, lies opportunity
</div></div></blockquote></div><br><br clear="all"><br></div></div>-- <br><div><div></div><div class="Wj3C7c">In the middle of difficulty, lies opportunity
</div></div></blockquote></div><br><br clear="all"><br>-- <br>In the middle of difficulty, lies opportunity