Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Tim Prins (tprins_at_[hidden])
Date: 2007-07-08 20:40:44


On Sunday 08 July 2007 08:22:04 pm Neville Clark wrote:
> I have openmpi installed and running, but have a need to run non mpi
> programs (3rd party software for which I don't have the source) together
> with mpi programs.
>
> Have managed to simplify the problem down to the following
>
> JobA
> int main(.)
> {
> printf("Starting JobA\n");
> MPI::Init();
> printf("JobA Init done\n");
> }
>
> JobB
> Int main(.)
> {
> printf("Starting JobB\n");
> }
>
> And running with
> mpirun -mca btl tcp,self,sm -np 1 -host lyre JobA : -np 1 -host lyre JobB
>
> The output is the two messages "Starting ." message and then hangs.
>
> It would appear that the MPI::Init() is waiting for all Ranks to call
> MPI::Init() before continuing.
This is correct. You cannot run both mpi and non-mpi processes like this
together. The best you can do is run mpirun twice.

Hope this helps,

Tim

>
> Please note the above works as expected if we run either two JobAs or two
> JobBs. Only have a problem if there is a mixture of JobAs and JobBs.
>
> Is there a way around this problem?
>
> Thanks in advance Neville