[MPICH] Problem with MPICH2 mpiexec with different executables

Ralph Butler rbutler at mtsu.edu
Thu May 4 23:06:46 CDT 2006


I will defer to others on when MPI_Init needs to be called, but it  
seems that mpich2 treats it somewhat like
a barrier with each process hanging until they all arrive.

On May 4, 2006, at 10:58 PM, Matthew Siegel wrote:

> OK, so I guess that makes sense that you can not run a non-mpi  
> program, and an mpi program.
>
> The real programs that we are trying to run, one has the MPI::Init 
> () right at the top of the main function, and the other has it  
> buried all the way down inside of a constructor of an object that  
> it creates.  Is there an issue with when each app would call  
> MPI::Init()??
>
> Thinking about this more, I would guess that MPI::Init() would have  
> to be called in the main thread, and right now I'm not sure that  
> this object is being created in the main thread.  Will have to  
> check when I'm in front of the code.
>
> Thanks alot for the help . . . still learning all the intricacies  
> of MPI and MPICH.
>
> Matt
>
> On 5/4/06, Ralph Butler < rbutler at mtsu.edu> wrote:> Hi Matthew:
> >
> > If you run something like this:
> >     mpiexec -n 1 master_mpi_pgm : -n 8 slave_mpi_pgm
> > you are saying that you have a 9 process MPI process job that
> > happens to run 2 different programs.
> > If you were to call MPI_Comm_size in this program, you would get 21.
>
>      Correction: you would get 9
>
> > When running MPI programs, mpd assumes that the entire set of of
> > processes are part of the computation.
> > So using mpd, it is not allowed to run a mixed bag of MPI and non-
> > MPI processes in a single job.
> > If you run this:
> >     mpiexec -n 1 mpi_pgm : -n 1 non_mpi_pgm
> > The mpi_pgm will hang at MPI_Init trying to set up the communicator
> > for what it believes is a 2 process job.
> >
> > --ralph
> >
> > On May 4, 2006, at 8:55 PM, Matthew Siegel wrote:
> >
> >> Hi all,
> >>
> >> Thanks for the help in advance.  Here's a detailed explanantion of
> >> the problem I'm running in to.
> >>
> >> A little background . . . I am running the latest MPICH2.  I am
> >> using Rocks, running on Xeon EM64T processors with Gig-E IP
> >> between the compute nodes.  Not completely relevant, but want to
> >> be complete.
> >>
> >> I have written an app that has the following source code.  It is a
> >> very very simple because my real program which is quite
> >> complicated was not working, and I figured that this app would
> >> work just fine.
> >>
> >> #include < mpi.h>
> >> #include <stdio.h>
> >>
> >> int main(int argc, char** argv) {
> >>     MPI::Init(argc, argv);
> >>     printf("My app is running!!!!\n");
> >>     MPI::Finalize();
> >>     return 0;
> >> }
> >>
> >> I compiled it like this:
> >>     mpicxx -o my_app my_app.cpp
> >>
> >> I start an mpd daemon on the the head node 'mpd &', and verify
> >> with mpdtrace.  So far so good.
> >>
> >> I then execute the following:
> >>     mpiexec -l -n 1 ./myapp
> >>
> >> and I get:
> >>     0: My app is running!!!!
> >>
> >> and it quits.  I then run:
> >>     mpiexec -l -n 4 ./myapp
> >>
> >> and I get (as expected):
> >>     0: My app is running!!!!
> >>     1: My app is running!!!!
> >>     3: My app is running!!!!
> >>     2: My app is running!!!!
> >>
> >> OK, so this is good so far.   Here's where things go awry...
> >>
> >> I then run:
> >>     mpiexec -l -n 1 hostname : -n 1 date
> >>
> >> and I get (again as expected):
> >>     0: <hostname>
> >>     1: <date>
> >>
> >> Then I run (and here's where the problem is):
> >>     mpiexec -l -n 1 ./myapp : -n 1 hostname
> >>
> >> and I get:
> >>     1: <hostname>
> >>
> >> And NOTHING else!  Just hangs FOREVER . . . have to hit CTRL-C to
> >> quit.
> >>
> >> This continues regardless of the order that I run my app in,
> >> whether it's the first or second on the line, it does not matter.
> >> Also, this is true regardless of the "other" app that I am
> >> running, not necessarilly just 'hostname' or 'date', and does not
> >> matter how many nodes that I am using.  The real apps that I am
> >> trying to run both are using MPI and am trying to pass data
> >> between the two processes.  I have rebuilt MPICH2 multiple times,
> >> and tried various configure options with zero luck.
> >>
> >> Please help, this has become a showstopper for me.
> >>
> >> Thanks!
> >>
> >> Matt
> >
>
>




More information about the mpich-discuss mailing list